74 lines
1.7 KiB
Go
74 lines
1.7 KiB
Go
package system
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestEnsure(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
perm os.FileMode
|
|
}{
|
|
{"/tmp/fortify.1971", 0701},
|
|
{"/tmp/fortify.1971/tmpdir", 0700},
|
|
{"/tmp/fortify.1971/tmpdir/150", 0700},
|
|
{"/run/user/1971/fortify", 0700},
|
|
}
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name+"_"+tc.perm.String(), func(t *testing.T) {
|
|
sys := New(150)
|
|
sys.Ensure(tc.name, tc.perm)
|
|
(&tcOp{User, tc.name}).test(t, sys.ops, []Op{&Mkdir{User, tc.name, tc.perm, false}}, "Ensure")
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestEphemeral(t *testing.T) {
|
|
testCases := []struct {
|
|
perm os.FileMode
|
|
tcOp
|
|
}{
|
|
{0700, tcOp{Process, "/run/user/1971/fortify/ec07546a772a07cde87389afc84ffd13"}},
|
|
{0701, tcOp{Process, "/tmp/fortify.1971/ec07546a772a07cde87389afc84ffd13"}},
|
|
}
|
|
for _, tc := range testCases {
|
|
t.Run(tc.path+"_"+tc.perm.String()+"_"+TypeString(tc.et), func(t *testing.T) {
|
|
sys := New(150)
|
|
sys.Ephemeral(tc.et, tc.path, tc.perm)
|
|
tc.test(t, sys.ops, []Op{&Mkdir{tc.et, tc.path, tc.perm, true}}, "Ephemeral")
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestMkdir_String(t *testing.T) {
|
|
testCases := []struct {
|
|
want string
|
|
ephemeral bool
|
|
et Enablement
|
|
}{
|
|
{"Ensure", false, User},
|
|
{"Ensure", false, Process},
|
|
{"Ensure", false, EWayland},
|
|
|
|
{"Wayland", true, EWayland},
|
|
{"X11", true, EX11},
|
|
{"D-Bus", true, EDBus},
|
|
{"PulseAudio", true, EPulse},
|
|
}
|
|
for _, tc := range testCases {
|
|
t.Run(tc.want, func(t *testing.T) {
|
|
m := &Mkdir{
|
|
et: tc.et,
|
|
path: "/nonexistent",
|
|
perm: 0701,
|
|
ephemeral: tc.ephemeral,
|
|
}
|
|
want := "mode: " + os.FileMode(0701).String() + " type: " + tc.want + " path: \"/nonexistent\""
|
|
if got := m.String(); got != want {
|
|
t.Errorf("String() = %v, want %v", got, want)
|
|
}
|
|
})
|
|
}
|
|
}
|