| package oci |
| |
| import ( |
| "os" |
| "testing" |
| |
| "github.com/opencontainers/runc/libcontainer/devices" |
| "golang.org/x/sys/unix" |
| "gotest.tools/v3/assert" |
| ) |
| |
| func TestDeviceMode(t *testing.T) { |
| tests := []struct { |
| name string |
| in os.FileMode |
| out os.FileMode |
| }{ |
| {name: "regular permissions", in: 0777, out: 0777}, |
| {name: "block device", in: 0777 | unix.S_IFBLK, out: 0777}, |
| {name: "character device", in: 0777 | unix.S_IFCHR, out: 0777}, |
| {name: "fifo device", in: 0777 | unix.S_IFIFO, out: 0777}, |
| } |
| |
| for _, tc := range tests { |
| tc := tc |
| t.Run(tc.name, func(t *testing.T) { |
| d := Device(&devices.Device{FileMode: tc.in}) |
| assert.Equal(t, *d.FileMode, tc.out) |
| }) |
| } |
| } |