feat(nix): Add doCheck parameter to buildRustWorkspace

Allows per-package control over whether tests are run during nix build.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
centra 2025-12-13 05:06:22 +09:00
parent a9386010ef
commit 40c89212da
2 changed files with 11 additions and 10 deletions

View file

@ -78,7 +78,8 @@
# workspaceSubdir: subdirectory containing Cargo.toml (e.g., "chainfire") # workspaceSubdir: subdirectory containing Cargo.toml (e.g., "chainfire")
# mainCrate: optional main crate name if different from workspace # mainCrate: optional main crate name if different from workspace
# description: package description for meta # description: package description for meta
buildRustWorkspace = { name, workspaceSubdir, mainCrate ? null, description ? "" }: # doCheck: whether to run tests during build (default: true)
buildRustWorkspace = { name, workspaceSubdir, mainCrate ? null, description ? "", doCheck ? true }:
pkgs.rustPlatform.buildRustPackage ({ pkgs.rustPlatform.buildRustPackage ({
pname = name; pname = name;
version = "0.1.0"; version = "0.1.0";
@ -102,8 +103,8 @@
# Set environment variables for build # Set environment variables for build
inherit (commonEnvVars) LIBCLANG_PATH PROTOC ROCKSDB_LIB_DIR; inherit (commonEnvVars) LIBCLANG_PATH PROTOC ROCKSDB_LIB_DIR;
# Enable cargo tests during build # Enable cargo tests during build (can be overridden per-package)
doCheck = true; inherit doCheck;
# Test flags: run tests for the main crate only # Test flags: run tests for the main crate only
cargoTestFlags = pkgs.lib.optionals (mainCrate != null) [ "-p" mainCrate ]; cargoTestFlags = pkgs.lib.optionals (mainCrate != null) [ "-p" mainCrate ];

View file

@ -375,7 +375,7 @@ async fn test_zone_pagination() {
page_token: page1.next_page_token.clone(), page_token: page1.next_page_token.clone(),
}); });
let response = zone_service.list_zones(request).await.unwrap(); let response: Response<ListZonesResponse> = zone_service.list_zones(request).await.unwrap();
let page2 = response.into_inner(); let page2 = response.into_inner();
assert_eq!(page2.zones.len(), 5); assert_eq!(page2.zones.len(), 5);
@ -390,7 +390,7 @@ async fn test_zone_pagination() {
page_token: page2.next_page_token.clone(), page_token: page2.next_page_token.clone(),
}); });
let response = zone_service.list_zones(request).await.unwrap(); let response: Response<ListZonesResponse> = zone_service.list_zones(request).await.unwrap();
let page3 = response.into_inner(); let page3 = response.into_inner();
assert_eq!(page3.zones.len(), 5); assert_eq!(page3.zones.len(), 5);
@ -418,7 +418,7 @@ async fn test_zone_pagination() {
page_token: String::new(), page_token: String::new(),
}); });
let response = zone_service.list_zones(request).await.unwrap(); let response: Response<ListZonesResponse> = zone_service.list_zones(request).await.unwrap();
let default_page = response.into_inner(); let default_page = response.into_inner();
assert_eq!(default_page.zones.len(), 15, "Should return all zones with default page size"); assert_eq!(default_page.zones.len(), 15, "Should return all zones with default page size");
@ -473,7 +473,7 @@ async fn test_record_pagination() {
page_token: page1.next_page_token.clone(), page_token: page1.next_page_token.clone(),
}); });
let response = record_service.list_records(request).await.unwrap(); let response: Response<ListRecordsResponse> = record_service.list_records(request).await.unwrap();
let page2 = response.into_inner(); let page2 = response.into_inner();
assert_eq!(page2.records.len(), 10); assert_eq!(page2.records.len(), 10);
@ -488,7 +488,7 @@ async fn test_record_pagination() {
page_token: page2.next_page_token.clone(), page_token: page2.next_page_token.clone(),
}); });
let response = record_service.list_records(request).await.unwrap(); let response: Response<ListRecordsResponse> = record_service.list_records(request).await.unwrap();
let page3 = response.into_inner(); let page3 = response.into_inner();
assert_eq!(page3.records.len(), 5, "Last page should have remaining 5 records"); assert_eq!(page3.records.len(), 5, "Last page should have remaining 5 records");
@ -516,7 +516,7 @@ async fn test_record_pagination() {
page_token: String::new(), page_token: String::new(),
}); });
let response = record_service.list_records(request).await.unwrap(); let response: Response<ListRecordsResponse> = record_service.list_records(request).await.unwrap();
let filtered_page1 = response.into_inner(); let filtered_page1 = response.into_inner();
assert_eq!(filtered_page1.records.len(), 5); assert_eq!(filtered_page1.records.len(), 5);
@ -531,7 +531,7 @@ async fn test_record_pagination() {
page_token: filtered_page1.next_page_token.clone(), page_token: filtered_page1.next_page_token.clone(),
}); });
let response = record_service.list_records(request).await.unwrap(); let response: Response<ListRecordsResponse> = record_service.list_records(request).await.unwrap();
let filtered_page2 = response.into_inner(); let filtered_page2 = response.into_inner();
assert!(filtered_page2.records.len() <= 6); // host1 + host10-19 = 11 total, so 5+6 assert!(filtered_page2.records.len() <= 6); // host1 + host10-19 = 11 total, so 5+6