github.com/rootless-containers/rootlesskit/v2@v2.3.4/pkg/parent/parent_test.go (about) 1 package parent 2 3 import ( 4 "os" 5 "os/user" 6 "testing" 7 8 "github.com/rootless-containers/rootlesskit/v2/pkg/parent/idtools" 9 "golang.org/x/sys/unix" 10 "gotest.tools/v3/assert" 11 ) 12 13 func TestBSDLockFileCreated(t *testing.T) { 14 15 tmpDir, err := os.MkdirTemp("", "rootlesskit") 16 if err != nil { 17 t.Fatalf("expected no error, got %q", err) 18 } 19 20 err = createCleanupLock(tmpDir) 21 if err != nil { 22 t.Fatalf("expected no error, got %q", err) 23 } 24 25 stateDir, _ := os.Open(tmpDir) 26 err = unix.Flock(int(stateDir.Fd()), unix.LOCK_EX|unix.LOCK_NB) 27 if err == nil { 28 t.Fatal("expected that there was an error because of existing LOCK_SH") 29 } 30 } 31 32 func TestNewugidmapArgsFromSubIDRanges(t *testing.T) { 33 subuidRanges := []idtools.SubIDRange{ 34 {Start: 100000, Length: 65536}, 35 {Start: 200000, Length: 65536}, 36 } 37 subgidRanges := []idtools.SubIDRange{ 38 {Start: 100000, Length: 65536}, 39 {Start: 200000, Length: 65536}, 40 } 41 u, err := user.Current() 42 assert.NilError(t, err) 43 newuidmapArgs, newgidmapArgs, err := newugidmapArgsFromSubIDRanges(u, subuidRanges, subgidRanges) 44 assert.NilError(t, err) 45 expectedU := []string{ 46 "0", u.Uid, "1", "1", "100000", "65536", "65537", "200000", "65536", 47 } 48 expectedG := []string{ 49 "0", u.Gid, "1", "1", "100000", "65536", "65537", "200000", "65536", 50 } 51 assert.DeepEqual(t, expectedU, newuidmapArgs) 52 assert.DeepEqual(t, expectedG, newgidmapArgs) 53 }