mirror of
				https://github.com/opencontainers/runc.git
				synced 2025-10-31 19:13:12 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			897 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			897 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // +build linux
 | |
| 
 | |
| package system
 | |
| 
 | |
| import (
 | |
| 	"strings"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/opencontainers/runc/libcontainer/user"
 | |
| )
 | |
| 
 | |
| func TestUIDMapInUserNS(t *testing.T) {
 | |
| 	cases := []struct {
 | |
| 		s        string
 | |
| 		expected bool
 | |
| 	}{
 | |
| 		{
 | |
| 			s:        "         0          0 4294967295\n",
 | |
| 			expected: false,
 | |
| 		},
 | |
| 		{
 | |
| 			s:        "         0          0          1\n",
 | |
| 			expected: true,
 | |
| 		},
 | |
| 		{
 | |
| 			s:        "         0       1001          1\n         1     231072      65536\n",
 | |
| 			expected: true,
 | |
| 		},
 | |
| 		{
 | |
| 			// file exist but empty (the initial state when userns is created. see man 7 user_namespaces)
 | |
| 			s:        "",
 | |
| 			expected: true,
 | |
| 		},
 | |
| 	}
 | |
| 	for _, c := range cases {
 | |
| 		uidmap, err := user.ParseIDMap(strings.NewReader(c.s))
 | |
| 		if err != nil {
 | |
| 			t.Fatal(err)
 | |
| 		}
 | |
| 		actual := UIDMapInUserNS(uidmap)
 | |
| 		if c.expected != actual {
 | |
| 			t.Fatalf("expected %v, got %v for %q", c.expected, actual, c.s)
 | |
| 		}
 | |
| 	}
 | |
| }
 | 
