aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-03-27 03:09:16 +0900
committerOphestra <cat@gensokyo.uk>2025-03-27 03:11:50 +0900
commit996b42634dba83a488d0ac67eac954c0b5582c71 (patch)
tree04eb4b05bc6929b1cffb39b5aac345a5423efb86
parent300571af4777c8322bc0c7fafdf18a5879c237e6 (diff)
test/sandbox: invoke check program directly
Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--test/configuration.nix7
-rw-r--r--test/sandbox/assert.go5
-rw-r--r--test/sandbox/assert.nix2
-rw-r--r--test/sandbox/case/default.nix9
-rw-r--r--test/sandbox/default.nix14
5 files changed, 18 insertions, 19 deletions
diff --git a/test/configuration.nix b/test/configuration.nix
index a4fa829a..75439fcd 100644
--- a/test/configuration.nix
+++ b/test/configuration.nix
@@ -6,7 +6,12 @@
}:
let
testCases = import ./sandbox/case {
- inherit (pkgs) lib callPackage foot;
+ inherit (pkgs)
+ lib
+ callPackage
+ writeText
+ foot
+ ;
inherit (config.environment.fortify.package) version;
};
in
diff --git a/test/sandbox/assert.go b/test/sandbox/assert.go
index 43cdd9d4..3cf81ffb 100644
--- a/test/sandbox/assert.go
+++ b/test/sandbox/assert.go
@@ -34,10 +34,13 @@ type T struct {
MountsPath string
}
-func (t *T) MustCheckFile(wantFilePath string) {
+func (t *T) MustCheckFile(wantFilePath, markerPath string) {
var want *TestCase
mustDecode(wantFilePath, &want)
t.MustCheck(want)
+ if _, err := os.Create(markerPath); err != nil {
+ fatalf("cannot create success marker: %v", err)
+ }
}
func (t *T) MustCheck(want *TestCase) {
diff --git a/test/sandbox/assert.nix b/test/sandbox/assert.nix
index e3aeb063..78711086 100644
--- a/test/sandbox/assert.nix
+++ b/test/sandbox/assert.nix
@@ -24,7 +24,7 @@ buildGoModule {
import "os"
import "git.gensokyo.uk/security/fortify/test/sandbox"
- func main() { (&sandbox.T{FS: os.DirFS("/")}).MustCheckFile(os.Args[1]) }
+ func main() { (&sandbox.T{FS: os.DirFS("/")}).MustCheckFile(os.Args[1], "/tmp/sandbox-ok") }
''} main.go
'';
}
diff --git a/test/sandbox/case/default.nix b/test/sandbox/case/default.nix
index d7c50836..d00eabf9 100644
--- a/test/sandbox/case/default.nix
+++ b/test/sandbox/case/default.nix
@@ -1,6 +1,7 @@
{
lib,
callPackage,
+ writeText,
foot,
version,
@@ -29,7 +30,7 @@ let
;
};
- checkSandbox = callPackage ../. { inherit version; };
+ checkSandbox = callPackage ../assert.nix { inherit version; };
callTestCase =
path:
@@ -48,7 +49,11 @@ let
inherit (tc) tty mapRealUid;
share = foot;
packages = [ ];
- command = builtins.toString (checkSandbox tc.name tc.want);
+ path = "${checkSandbox}/bin/test";
+ args = [
+ "test"
+ (toString (writeText "fortify-${tc.name}-want.json" (builtins.toJSON tc.want)))
+ ];
};
in
{
diff --git a/test/sandbox/default.nix b/test/sandbox/default.nix
deleted file mode 100644
index 9014ebba..00000000
--- a/test/sandbox/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- writeShellScript,
- writeText,
- callPackage,
-
- version,
-}:
-name: want:
-writeShellScript "fortify-${name}-check-sandbox-script" ''
- set -e
- ${callPackage ./assert.nix { inherit version; }}/bin/test \
- ${writeText "fortify-${name}-want.json" (builtins.toJSON want)}
- touch /tmp/sandbox-ok
-''