diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-03-25 05:35:02 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-03-25 05:35:02 +0900 |
| commit | b39f3aeb59095aef123920d891fecf890ce0b088 (patch) | |
| tree | 1940f9bbe0cae854e8d5bcc1d5e921b6c2778fed /helper/bwrap_test.go | |
| parent | 61dbfeffe77df9c1a11413b3cb8954933e79b45f (diff) | |
helper: remove bubblewrap wrapper
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'helper/bwrap_test.go')
| -rw-r--r-- | helper/bwrap_test.go | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/helper/bwrap_test.go b/helper/bwrap_test.go deleted file mode 100644 index a7804e3f..00000000 --- a/helper/bwrap_test.go +++ /dev/null @@ -1,127 +0,0 @@ -package helper_test - -import ( - "context" - "errors" - "fmt" - "io" - "os" - "os/exec" - "strings" - "testing" - "time" - - "git.gensokyo.uk/security/fortify/helper" - "git.gensokyo.uk/security/fortify/helper/bwrap" -) - -func TestBwrap(t *testing.T) { - sc := &bwrap.Config{ - Net: true, - Hostname: "localhost", - Chdir: "/proc/nonexistent", - Clearenv: true, - NewSession: true, - DieWithParent: true, - AsInit: true, - } - - t.Run("nonexistent bwrap name", func(t *testing.T) { - bubblewrapName := helper.BubblewrapName - helper.BubblewrapName = "/proc/nonexistent" - t.Cleanup(func() { helper.BubblewrapName = bubblewrapName }) - - h := helper.MustNewBwrap( - context.Background(), - "false", - argsWt, false, - argF, nil, - nil, - sc, nil, - ) - - if err := h.Start(); !errors.Is(err, os.ErrNotExist) { - t.Errorf("Start: error = %v, wantErr %v", - err, os.ErrNotExist) - } - }) - - t.Run("valid new helper nil check", func(t *testing.T) { - if got := helper.MustNewBwrap( - context.TODO(), - "false", - argsWt, false, - argF, nil, - nil, - sc, nil, - ); got == nil { - t.Errorf("MustNewBwrap(%#v, %#v, %#v) got nil", - sc, argsWt, "false") - return - } - }) - - t.Run("invalid bwrap config new helper panic", func(t *testing.T) { - defer func() { - wantPanic := "argument contains null character" - if r := recover(); r != wantPanic { - t.Errorf("MustNewBwrap: panic = %q, want %q", - r, wantPanic) - } - }() - - helper.MustNewBwrap( - context.TODO(), - "false", - argsWt, false, - argF, nil, - nil, - &bwrap.Config{Hostname: "\x00"}, nil, - ) - }) - - t.Run("start without pipes", func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - stdout, stderr := new(strings.Builder), new(strings.Builder) - h := helper.MustNewBwrap( - ctx, os.Args[0], - nil, false, - argFChecked, func(cmd *exec.Cmd) { cmd.Stdout, cmd.Stderr = stdout, stderr; hijackBwrap(cmd) }, - nil, - sc, nil, - ) - - if err := h.Start(); err != nil { - t.Errorf("Start: error = %v", - err) - return - } - - if err := h.Wait(); err != nil { - t.Errorf("Wait() err = %v stderr = %s", - err, stderr) - } - }) - - t.Run("implementation compliance", func(t *testing.T) { - testHelper(t, func(ctx context.Context, setOutput func(stdoutP, stderrP *io.Writer), stat bool) helper.Helper { - return helper.MustNewBwrap( - ctx, os.Args[0], - argsWt, stat, - argF, func(cmd *exec.Cmd) { setOutput(&cmd.Stdout, &cmd.Stderr); hijackBwrap(cmd) }, - nil, - sc, nil, - ) - }) - }) -} - -func hijackBwrap(cmd *exec.Cmd) { - if cmd.Args[0] != "bwrap" { - panic(fmt.Sprintf("unexpected argv0 %q", cmd.Args[0])) - } - cmd.Err = nil - cmd.Path = os.Args[0] - cmd.Args = append([]string{os.Args[0], "-test.run=TestHelperStub", "--"}, cmd.Args...) -} |
