From 6309469e933a31a300fbf16d8e77f48dcee402d3 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sat, 12 Apr 2025 13:56:41 +0900 Subject: app/instance: wrap internal implementation This reduces the scope of the fst package, which was growing questionably large. Signed-off-by: Ophestra --- internal/app/instance/common/path_test.go | 85 +++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 internal/app/instance/common/path_test.go (limited to 'internal/app/instance/common/path_test.go') diff --git a/internal/app/instance/common/path_test.go b/internal/app/instance/common/path_test.go new file mode 100644 index 00000000..b14f24df --- /dev/null +++ b/internal/app/instance/common/path_test.go @@ -0,0 +1,85 @@ +package common + +import ( + "testing" +) + +func TestDeepContainsH(t *testing.T) { + testCases := []struct { + name string + basepath string + targpath string + want bool + wantErr bool + }{ + { + name: "empty", + want: true, + }, + { + name: "equal abs", + basepath: "/run", + targpath: "/run", + want: true, + }, + { + name: "equal rel", + basepath: "./run", + targpath: "run", + want: true, + }, + { + name: "contains abs", + basepath: "/run", + targpath: "/run/dbus", + want: true, + }, + { + name: "inverse contains abs", + basepath: "/run/dbus", + targpath: "/run", + want: false, + }, + { + name: "contains rel", + basepath: "../run", + targpath: "../run/dbus", + want: true, + }, + { + name: "inverse contains rel", + basepath: "../run/dbus", + targpath: "../run", + want: false, + }, + { + name: "weird abs", + basepath: "/run/dbus", + targpath: "/run/dbus/../current-system", + want: false, + }, + { + name: "weird rel", + basepath: "../run/dbus", + targpath: "../run/dbus/../current-system", + want: false, + }, + + { + name: "invalid mix", + basepath: "/run", + targpath: "./run", + wantErr: true, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + if got, err := deepContainsH(tc.basepath, tc.targpath); (err != nil) != tc.wantErr { + t.Errorf("deepContainsH() error = %v, wantErr %v", err, tc.wantErr) + } else if got != tc.want { + t.Errorf("deepContainsH() = %v, want %v", got, tc.want) + } + }) + } +} -- cgit v1.3.1