From 062edb3487c1cc116cae78bf77420b65c43517d1 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Tue, 7 Apr 2026 15:50:59 +0900 Subject: container: remove setup pipe helper The API forces use of finalizer to close the read end of the setup pipe, which is no longer considered acceptable. Exporting this as part of package container also imposes unnecessary maintenance burden. Signed-off-by: Ophestra --- container/params_test.go | 72 ------------------------------------------------ 1 file changed, 72 deletions(-) (limited to 'container/params_test.go') diff --git a/container/params_test.go b/container/params_test.go index 11d08850..4d2f84f6 100644 --- a/container/params_test.go +++ b/container/params_test.go @@ -1,10 +1,8 @@ package container_test import ( - "encoding/gob" "errors" "os" - "slices" "strconv" "syscall" "testing" @@ -52,74 +50,4 @@ func TestSetupReceive(t *testing.T) { t.Errorf("Receive: error = %v, want %v", err, syscall.EDOM) } }) - - t.Run("setup receive", func(t *testing.T) { - check := func(t *testing.T, useNilFdp bool) { - const key = "TEST_SETUP_RECEIVE" - payload := []uint64{syscall.MS_MGC_VAL, syscall.MS_MGC_MSK, syscall.MS_ASYNC, syscall.MS_ACTIVE} - - encoderDone := make(chan error, 1) - extraFiles := make([]*os.File, 0, 1) - deadline, _ := t.Deadline() - if fd, f, err := container.Setup(&extraFiles); err != nil { - t.Fatalf("Setup: error = %v", err) - } else if fd != 3 { - t.Fatalf("Setup: fd = %d, want 3", fd) - } else { - if err = f.SetDeadline(deadline); err != nil { - t.Fatal(err.Error()) - } - go func() { encoderDone <- gob.NewEncoder(f).Encode(payload) }() - } - - if len(extraFiles) != 1 { - t.Fatalf("extraFiles: len = %v, want 1", len(extraFiles)) - } - - var dupFd int - if fd, err := syscall.Dup(int(extraFiles[0].Fd())); err != nil { - t.Fatalf("Dup: error = %v", err) - } else { - syscall.CloseOnExec(fd) - dupFd = fd - t.Setenv(key, strconv.Itoa(fd)) - } - - var ( - gotPayload []uint64 - fdp *uintptr - ) - if !useNilFdp { - fdp = new(uintptr) - } - var closeFile func() error - if f, err := container.Receive(key, &gotPayload, fdp); err != nil { - t.Fatalf("Receive: error = %v", err) - } else { - closeFile = f - - if !slices.Equal(payload, gotPayload) { - t.Errorf("Receive: %#v, want %#v", gotPayload, payload) - } - } - if !useNilFdp { - if int(*fdp) != dupFd { - t.Errorf("Fd: %d, want %d", *fdp, dupFd) - } - } - - if err := <-encoderDone; err != nil { - t.Errorf("Encode: error = %v", err) - } - - if closeFile != nil { - if err := closeFile(); err != nil { - t.Errorf("Close: error = %v", err) - } - } - } - - t.Run("fp", func(t *testing.T) { check(t, false) }) - t.Run("nil", func(t *testing.T) { check(t, true) }) - }) } -- cgit v1.3.1