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