From 07f1b92d8057dc05c6be4a7655834764fd4f5a7a Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 27 Mar 2025 03:09:16 +0900 Subject: [PATCH] app: pass through $SHELL Signed-off-by: Ophestra --- test/configuration.nix | 7 ++++++- test/sandbox/assert.go | 5 ++++- test/sandbox/assert.nix | 2 +- test/sandbox/case/default.nix | 9 +++++++-- test/sandbox/default.nix | 14 -------------- 5 files changed, 18 insertions(+), 19 deletions(-) delete mode 100644 test/sandbox/default.nix diff --git a/test/configuration.nix b/test/configuration.nix index a4fa829..75439fc 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 43cdd9d..3cf81ff 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 e3aeb06..7871108 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 d7c5083..d00eabf 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 9014ebb..0000000 --- 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 -''