| package main |
| |
| import ( |
| "encoding/json" |
| "testing" |
| |
| "github.com/stretchr/testify/require" |
| ) |
| |
| func TestIsPrivileged(t *testing.T) { |
| var tests = []struct { |
| spec string |
| expected bool |
| }{ |
| { |
| ` |
| { |
| "ociVersion": "1.0.0", |
| "process": { |
| "capabilities": { |
| "bounding": [ "CAP_SYS_ADMIN" ] |
| } |
| } |
| } |
| `, |
| true, |
| }, |
| { |
| ` |
| { |
| "ociVersion": "1.0.0", |
| "process": { |
| "capabilities": { |
| "bounding": [ "CAP_SYS_OTHER" ] |
| } |
| } |
| } |
| `, |
| false, |
| }, |
| { |
| ` |
| { |
| "ociVersion": "1.0.0", |
| "process": {} |
| } |
| `, |
| false, |
| }, |
| { |
| ` |
| { |
| "ociVersion": "1.0.0-rc2-dev", |
| "process": { |
| "capabilities": [ "CAP_SYS_ADMIN" ] |
| } |
| } |
| `, |
| true, |
| }, |
| { |
| ` |
| { |
| "ociVersion": "1.0.0-rc2-dev", |
| "process": { |
| "capabilities": [ "CAP_SYS_OTHER" ] |
| } |
| } |
| `, |
| false, |
| }, |
| { |
| ` |
| { |
| "ociVersion": "1.0.0-rc2-dev", |
| "process": {} |
| } |
| `, |
| false, |
| }, |
| } |
| for i, tc := range tests { |
| var spec Spec |
| _ = json.Unmarshal([]byte(tc.spec), &spec) |
| privileged := isPrivileged(&spec) |
| |
| require.Equal(t, tc.expected, privileged, "%d: %v", i, tc) |
| } |
| } |