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  }