diff --git a/system/system_test.go b/system/system_test.go index cbe3dfc..3ab6c13 100644 --- a/system/system_test.go +++ b/system/system_test.go @@ -1,35 +1,28 @@ -package system_test +package system import ( - "reflect" "strconv" "testing" - _ "unsafe" - - "hakurei.app/system" ) -//go:linkname criteriaHasType hakurei.app/system.(*Criteria).hasType -func criteriaHasType(_ *system.Criteria, _ system.Enablement) bool - func TestCriteria(t *testing.T) { testCases := []struct { name string - ec, t system.Enablement + ec, t Enablement want bool }{ - {"nil", 0xff, system.EWayland, true}, - {"nil user", 0xff, system.User, false}, - {"all", system.EWayland | system.EX11 | system.EDBus | system.EPulse | system.User | system.Process, system.Process, true}, + {"nil", 0xff, EWayland, true}, + {"nil user", 0xff, User, false}, + {"all", EWayland | EX11 | EDBus | EPulse | User | Process, Process, true}, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - var criteria *system.Criteria + var criteria *Criteria if tc.ec != 0xff { - criteria = (*system.Criteria)(&tc.ec) + criteria = (*Criteria)(&tc.ec) } - if got := criteriaHasType(criteria, tc.t); got != tc.want { + if got := criteria.hasType(tc.t); got != tc.want { t.Errorf("hasType: got %v, want %v", got, tc.want) } @@ -39,23 +32,23 @@ func TestCriteria(t *testing.T) { func TestTypeString(t *testing.T) { testCases := []struct { - e system.Enablement + e Enablement want string }{ - {system.EWayland, system.EWayland.String()}, - {system.EX11, system.EX11.String()}, - {system.EDBus, system.EDBus.String()}, - {system.EPulse, system.EPulse.String()}, - {system.User, "user"}, - {system.Process, "process"}, - {system.User | system.Process, "user, process"}, - {system.EWayland | system.User | system.Process, "wayland, user, process"}, - {system.EX11 | system.Process, "x11, process"}, + {EWayland, EWayland.String()}, + {EX11, EX11.String()}, + {EDBus, EDBus.String()}, + {EPulse, EPulse.String()}, + {User, "user"}, + {Process, "process"}, + {User | Process, "user, process"}, + {EWayland | User | Process, "wayland, user, process"}, + {EX11 | Process, "x11, process"}, } for _, tc := range testCases { t.Run("label type string "+strconv.Itoa(int(tc.e)), func(t *testing.T) { - if got := system.TypeString(tc.e); got != tc.want { + if got := TypeString(tc.e); got != tc.want { t.Errorf("TypeString: %q, want %q", got, tc.want) } }) @@ -71,7 +64,7 @@ func TestNew(t *testing.T) { t.Errorf("recover: %v, want %v", r, want) } }() - system.New(nil, 0) + New(nil, 0) }) t.Run("uid", func(t *testing.T) { @@ -81,13 +74,13 @@ func TestNew(t *testing.T) { t.Errorf("recover: %v, want %v", r, want) } }() - system.New(t.Context(), -1) + New(t.Context(), -1) }) }) - sys := system.New(t.Context(), 0xdeadbeef) - if got := reflect.ValueOf(sys).Elem().FieldByName("ctx"); got.IsNil() { - t.Errorf("New: ctx = %#v", got) + sys := New(t.Context(), 0xdeadbeef) + if sys.ctx == nil { + t.Error("New: ctx = nil") } if got := sys.UID(); got != 0xdeadbeef { t.Errorf("UID: %d", got) @@ -97,56 +90,56 @@ func TestNew(t *testing.T) { func TestEqual(t *testing.T) { testCases := []struct { name string - sys *system.I - v *system.I + sys *I + v *I want bool }{ {"simple UID", - system.New(t.Context(), 150), - system.New(t.Context(), 150), + New(t.Context(), 150), + New(t.Context(), 150), true}, {"simple UID differ", - system.New(t.Context(), 150), - system.New(t.Context(), 151), + New(t.Context(), 150), + New(t.Context(), 151), false}, {"simple UID nil", - system.New(t.Context(), 150), + New(t.Context(), 150), nil, false}, {"op length mismatch", - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"), - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"). Ensure("/run", 0755), false}, {"op value mismatch", - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"). Ensure("/run", 0644), - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"). Ensure("/run", 0755), false}, {"op type mismatch", - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"). CopyFile(new([]byte), "/home/ophestra/xdg/config/pulse/cookie", 0, 256), - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"). Ensure("/run", 0755), false}, {"op equals", - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"). Ensure("/run", 0755), - system.New(t.Context(), 150). + New(t.Context(), 150). ChangeHosts("chronos"). Ensure("/run", 0755), true},