diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2020-12-07 16:22:08 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2020-12-09 12:50:01 +0300 |
commit | 6faed425b2109f86dc15b249294dd74b7da67cf7 (patch) | |
tree | 679517c3efc1fa6a5a5823a9f4e34ff0767d1d11 | |
parent | 9ad74f21458dea14d591097b4b5332f7627111da (diff) |
housekeeping: Modernize test style
The housekeeping tests are fairly old and haven't been touched that much
recently, except for some linting fixes. This commit touches up the code
to feel a little bit more modern.
-rw-r--r-- | internal/git/housekeeping/housekeeping_test.go | 70 | ||||
-rw-r--r-- | internal/git/housekeeping/testhelper_test.go | 18 |
2 files changed, 46 insertions, 42 deletions
diff --git a/internal/git/housekeeping/housekeeping_test.go b/internal/git/housekeeping/housekeeping_test.go index 4077c9f9c..b385a8d0a 100644 --- a/internal/git/housekeeping/housekeeping_test.go +++ b/internal/git/housekeeping/housekeeping_test.go @@ -1,7 +1,6 @@ package housekeeping import ( - "io/ioutil" "os" "path/filepath" "testing" @@ -106,93 +105,82 @@ func d(name string, mode os.FileMode, age time.Duration, finalState entryFinalSt } func TestPerform(t *testing.T) { - tests := []struct { + testcases := []struct { name string entries []entry - wantErr bool }{ { name: "clean", entries: []entry{ - f("a", os.FileMode(0700), 24*time.Hour, Keep), - f("b", os.FileMode(0700), 24*time.Hour, Keep), - f("c", os.FileMode(0700), 24*time.Hour, Keep), + f("a", 0700, 24*time.Hour, Keep), + f("b", 0700, 24*time.Hour, Keep), + f("c", 0700, 24*time.Hour, Keep), }, - wantErr: false, }, { name: "emptyperms", entries: []entry{ - f("b", os.FileMode(0700), 24*time.Hour, Keep), - f("tmp_a", os.FileMode(0000), 2*time.Hour, Keep), + f("b", 0700, 24*time.Hour, Keep), + f("tmp_a", 0000, 2*time.Hour, Keep), }, - wantErr: false, }, { name: "emptytempdir", entries: []entry{ - d("tmp_d", os.FileMode(0000), 240*time.Hour, Delete, []entry{}), - f("b", os.FileMode(0700), 24*time.Hour, Keep), + d("tmp_d", 0000, 240*time.Hour, Delete, []entry{}), + f("b", 0700, 24*time.Hour, Keep), }, - wantErr: false, }, { name: "oldtempfile", entries: []entry{ - f("tmp_a", os.FileMode(0770), 240*time.Hour, Delete), - f("b", os.FileMode(0700), 24*time.Hour, Keep), + f("tmp_a", 0770, 240*time.Hour, Delete), + f("b", 0700, 24*time.Hour, Keep), }, - wantErr: false, }, { name: "subdir temp file", entries: []entry{ - d("a", os.FileMode(0770), 240*time.Hour, Keep, []entry{ - f("tmp_b", os.FileMode(0700), 240*time.Hour, Delete), + d("a", 0770, 240*time.Hour, Keep, []entry{ + f("tmp_b", 0700, 240*time.Hour, Delete), }), }, - wantErr: false, }, { name: "inaccessible tmp directory", entries: []entry{ - d("tmp_a", os.FileMode(0000), 240*time.Hour, Delete, []entry{ - f("tmp_b", os.FileMode(0700), 240*time.Hour, Delete), + d("tmp_a", 0000, 240*time.Hour, Delete, []entry{ + f("tmp_b", 0700, 240*time.Hour, Delete), }), }, - wantErr: false, }, { name: "deeply nested inaccessible tmp directory", entries: []entry{ - d("tmp_a", os.FileMode(0000), 240*time.Hour, Delete, []entry{ - d("tmp_a", os.FileMode(0000), 24*time.Hour, Delete, []entry{ - f("tmp_b", os.FileMode(0000), 24*time.Hour, Delete), + d("tmp_a", 0000, 240*time.Hour, Delete, []entry{ + d("tmp_a", 0000, 24*time.Hour, Delete, []entry{ + f("tmp_b", 0000, 24*time.Hour, Delete), }), }), }, - wantErr: false, }, } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - rootPath, err := ioutil.TempDir("", "test") - assert.NoError(t, err, "TempDir creation failed") - defer os.RemoveAll(rootPath) + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + rootPath, cleanup := testhelper.TempDir(t) + defer cleanup() - for _, e := range tt.entries { + for _, e := range tc.entries { e.create(t, rootPath) } ctx, cancel := testhelper.Context() defer cancel() - if err = Perform(ctx, rootPath); (err != nil) != tt.wantErr { - t.Errorf("Perform() error = %v, wantErr %v", err, tt.wantErr) - } + require.NoError(t, Perform(ctx, rootPath)) - for _, e := range tt.entries { + for _, e := range tc.entries { e.validate(t, rootPath) } }) @@ -205,7 +193,7 @@ func TestShouldUnlink(t *testing.T) { modTime time.Time mode os.FileMode } - tests := []struct { + testcases := []struct { name string args args want bool @@ -266,11 +254,9 @@ func TestShouldUnlink(t *testing.T) { }, } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := shouldRemove(tt.args.path, tt.args.modTime, tt.args.mode); got != tt.want { - t.Errorf("shouldUnlink() = %v, want %v", got, tt.want) - } + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + require.Equal(t, tc.want, shouldRemove(tc.args.path, tc.args.modTime, tc.args.mode)) }) } } diff --git a/internal/git/housekeeping/testhelper_test.go b/internal/git/housekeeping/testhelper_test.go new file mode 100644 index 000000000..449a89caa --- /dev/null +++ b/internal/git/housekeeping/testhelper_test.go @@ -0,0 +1,18 @@ +package housekeeping + +import ( + "os" + "testing" + + "gitlab.com/gitlab-org/gitaly/internal/testhelper" +) + +func TestMain(m *testing.M) { + os.Exit(testMain(m)) +} + +func testMain(m *testing.M) int { + cleanup := testhelper.Configure() + defer cleanup() + return m.Run() +} |