aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/sandbox/case
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-03-29 19:33:17 +0900
committerOphestra <cat@gensokyo.uk>2025-03-29 19:33:17 +0900
commit8b62e08b44d255fcb15e94bd2ed721f34c65a726 (patch)
treef46d60837818f678bfa1ca6934f7ccb60c2b2bf5 /test/sandbox/case
parent72c59f92298cf6ec872bb0c93e44bea4efd72aec (diff)
test: build test program in nixos config
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'test/sandbox/case')
-rw-r--r--test/sandbox/case/default.nix39
-rw-r--r--test/sandbox/case/main.go39
2 files changed, 4 insertions, 74 deletions
diff --git a/test/sandbox/case/default.nix b/test/sandbox/case/default.nix
index 01395ff0..0377246c 100644
--- a/test/sandbox/case/default.nix
+++ b/test/sandbox/case/default.nix
@@ -1,14 +1,5 @@
-pkgs: version:
+lib: testProgram:
let
- inherit (pkgs)
- lib
- writeText
- buildGoModule
- pkg-config
- util-linux
- foot
- ;
-
fs = mode: dir: data: {
mode = lib.fromHexString mode;
inherit
@@ -32,26 +23,6 @@ let
;
};
- checkSandbox = buildGoModule {
- pname = "check-sandbox";
- inherit version;
-
- src = ../../.;
- vendorHash = null;
-
- buildInputs = [ util-linux ];
- nativeBuildInputs = [ pkg-config ];
-
- preBuild = ''
- go mod init git.gensokyo.uk/security/fortify/test >& /dev/null
- cp ${./main.go} main.go
- '';
-
- postInstall = ''
- mv $out/bin/test $out/bin/fortify-test
- '';
- };
-
callTestCase =
path:
let
@@ -67,12 +38,12 @@ let
name = "check-sandbox-${tc.name}";
verbose = true;
inherit (tc) tty mapRealUid;
- share = foot;
+ share = testProgram;
packages = [ ];
- path = "${checkSandbox}/bin/fortify-test";
+ path = "${testProgram}/bin/fortify-test";
args = [
"test"
- (toString (writeText "fortify-${tc.name}-want.json" (builtins.toJSON tc.want)))
+ (toString (builtins.toFile "fortify-${tc.name}-want.json" (builtins.toJSON tc.want)))
];
};
in
@@ -80,6 +51,4 @@ in
preset = callTestCase ./preset.nix;
tty = callTestCase ./tty.nix;
mapuid = callTestCase ./mapuid.nix;
-
- _testProgram = checkSandbox;
}
diff --git a/test/sandbox/case/main.go b/test/sandbox/case/main.go
deleted file mode 100644
index 4c639b28..00000000
--- a/test/sandbox/case/main.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package main
-
-import (
- "log"
- "os"
- "strconv"
- "strings"
-
- "git.gensokyo.uk/security/fortify/test/sandbox"
-)
-
-func main() {
- log.SetFlags(0)
- log.SetPrefix("test: ")
-
- if len(os.Args) < 2 {
- log.Fatal("invalid argument")
- }
-
- switch os.Args[1] {
- case "filter":
- if len(os.Args) != 4 {
- log.Fatal("invalid argument")
- }
-
- if pid, err := strconv.Atoi(strings.TrimSpace(os.Args[2])); err != nil {
- log.Fatalf("%s", err)
- } else if pid < 1 {
- log.Fatalf("%d out of range", pid)
- } else {
- sandbox.MustCheckFilter(pid, os.Args[3])
- return
- }
-
- default:
- (&sandbox.T{FS: os.DirFS("/")}).MustCheckFile(os.Args[1], "/tmp/sandbox-ok")
- return
- }
-}