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:
parent
a9386010ef
commit
40c89212da
2 changed files with 11 additions and 10 deletions
|
|
@ -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 ];
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue