From 40c89212dad10a4c31498c37ab5c2ee59db9add6 Mon Sep 17 00:00:00 2001 From: centra Date: Sat, 13 Dec 2025 05:06:22 +0900 Subject: [PATCH] feat(nix): Add doCheck parameter to buildRustWorkspace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- flake.nix | 7 ++++--- .../crates/flashdns-server/tests/integration.rs | 14 +++++++------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/flake.nix b/flake.nix index af93220..9b3f0e3 100644 --- a/flake.nix +++ b/flake.nix @@ -78,7 +78,8 @@ # workspaceSubdir: subdirectory containing Cargo.toml (e.g., "chainfire") # mainCrate: optional main crate name if different from workspace # 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 ({ pname = name; version = "0.1.0"; @@ -102,8 +103,8 @@ # Set environment variables for build inherit (commonEnvVars) LIBCLANG_PATH PROTOC ROCKSDB_LIB_DIR; - # Enable cargo tests during build - doCheck = true; + # Enable cargo tests during build (can be overridden per-package) + inherit doCheck; # Test flags: run tests for the main crate only cargoTestFlags = pkgs.lib.optionals (mainCrate != null) [ "-p" mainCrate ]; diff --git a/flashdns/crates/flashdns-server/tests/integration.rs b/flashdns/crates/flashdns-server/tests/integration.rs index f232434..754d0c1 100644 --- a/flashdns/crates/flashdns-server/tests/integration.rs +++ b/flashdns/crates/flashdns-server/tests/integration.rs @@ -375,7 +375,7 @@ async fn test_zone_pagination() { page_token: page1.next_page_token.clone(), }); - let response = zone_service.list_zones(request).await.unwrap(); + let response: Response = zone_service.list_zones(request).await.unwrap(); let page2 = response.into_inner(); assert_eq!(page2.zones.len(), 5); @@ -390,7 +390,7 @@ async fn test_zone_pagination() { page_token: page2.next_page_token.clone(), }); - let response = zone_service.list_zones(request).await.unwrap(); + let response: Response = zone_service.list_zones(request).await.unwrap(); let page3 = response.into_inner(); assert_eq!(page3.zones.len(), 5); @@ -418,7 +418,7 @@ async fn test_zone_pagination() { page_token: String::new(), }); - let response = zone_service.list_zones(request).await.unwrap(); + let response: Response = zone_service.list_zones(request).await.unwrap(); let default_page = response.into_inner(); 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(), }); - let response = record_service.list_records(request).await.unwrap(); + let response: Response = record_service.list_records(request).await.unwrap(); let page2 = response.into_inner(); assert_eq!(page2.records.len(), 10); @@ -488,7 +488,7 @@ async fn test_record_pagination() { page_token: page2.next_page_token.clone(), }); - let response = record_service.list_records(request).await.unwrap(); + let response: Response = record_service.list_records(request).await.unwrap(); let page3 = response.into_inner(); 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(), }); - let response = record_service.list_records(request).await.unwrap(); + let response: Response = record_service.list_records(request).await.unwrap(); let filtered_page1 = response.into_inner(); assert_eq!(filtered_page1.records.len(), 5); @@ -531,7 +531,7 @@ async fn test_record_pagination() { page_token: filtered_page1.next_page_token.clone(), }); - let response = record_service.list_records(request).await.unwrap(); + let response: Response = record_service.list_records(request).await.unwrap(); let filtered_page2 = response.into_inner(); assert!(filtered_page2.records.len() <= 6); // host1 + host10-19 = 11 total, so 5+6