diff --git a/server/ctrlsubsonic/ctrl_test.go b/server/ctrlsubsonic/ctrl_test.go index aa36bfa..c2697dd 100644 --- a/server/ctrlsubsonic/ctrl_test.go +++ b/server/ctrlsubsonic/ctrl_test.go @@ -96,10 +96,10 @@ func runQueryCases(t *testing.T, contr *Controller, h handlerSubsonic, cases []* } } -func makeController(t *testing.T) (*Controller, *mockfs.MockFS) { return makec(t, []string{""}) } -func makeControllerRoots(t *testing.T, r []string) (*Controller, *mockfs.MockFS) { return makec(t, r) } +func makeController(t *testing.T) *Controller { return makec(t, []string{""}) } +func makeControllerRoots(t *testing.T, r []string) *Controller { return makec(t, r) } -func makec(t *testing.T, roots []string) (*Controller, *mockfs.MockFS) { +func makec(t *testing.T, roots []string) *Controller { t.Helper() m := mockfs.NewWithDirs(t, roots) @@ -117,7 +117,7 @@ func makec(t *testing.T, roots []string) (*Controller, *mockfs.MockFS) { } base := &ctrlbase.Controller{DB: m.DB()} - return &Controller{Controller: base, MusicPaths: absRoots}, m + return &Controller{Controller: base, MusicPaths: absRoots} } func TestMain(m *testing.M) { diff --git a/server/ctrlsubsonic/handlers_by_folder_test.go b/server/ctrlsubsonic/handlers_by_folder_test.go index 4cfa4f3..4d6208c 100644 --- a/server/ctrlsubsonic/handlers_by_folder_test.go +++ b/server/ctrlsubsonic/handlers_by_folder_test.go @@ -8,8 +8,7 @@ import ( ) func TestGetIndexes(t *testing.T) { - contr, m := makeControllerRoots(t, []string{"m-0", "m-1"}) - defer m.CleanUp() + contr := makeControllerRoots(t, []string{"m-0", "m-1"}) runQueryCases(t, contr, contr.ServeGetIndexes, []*queryCase{ {url.Values{}, "no_args", false}, @@ -19,8 +18,7 @@ func TestGetIndexes(t *testing.T) { } func TestGetMusicDirectory(t *testing.T) { - contr, m := makeController(t) - defer m.CleanUp() + contr := makeController(t) runQueryCases(t, contr, contr.ServeGetMusicDirectory, []*queryCase{ {url.Values{"id": {"al-2"}}, "without_tracks", false}, @@ -30,8 +28,7 @@ func TestGetMusicDirectory(t *testing.T) { func TestGetAlbumList(t *testing.T) { t.Parallel() - contr, m := makeController(t) - defer m.CleanUp() + contr := makeController(t) runQueryCases(t, contr, contr.ServeGetAlbumList, []*queryCase{ {url.Values{"type": {"alphabeticalByArtist"}}, "alpha_artist", false}, @@ -43,8 +40,7 @@ func TestGetAlbumList(t *testing.T) { func TestSearchTwo(t *testing.T) { t.Parallel() - contr, m := makeController(t) - defer m.CleanUp() + contr := makeController(t) runQueryCases(t, contr, contr.ServeSearchTwo, []*queryCase{ {url.Values{"query": {"art"}}, "q_art", false}, diff --git a/server/ctrlsubsonic/handlers_by_tags_test.go b/server/ctrlsubsonic/handlers_by_tags_test.go index f05cc2f..7ea1bf8 100644 --- a/server/ctrlsubsonic/handlers_by_tags_test.go +++ b/server/ctrlsubsonic/handlers_by_tags_test.go @@ -7,8 +7,7 @@ import ( func TestGetArtists(t *testing.T) { t.Parallel() - contr, m := makeControllerRoots(t, []string{"m-0", "m-1"}) - defer m.CleanUp() + contr := makeControllerRoots(t, []string{"m-0", "m-1"}) runQueryCases(t, contr, contr.ServeGetArtists, []*queryCase{ {url.Values{}, "no_args", false}, @@ -19,8 +18,7 @@ func TestGetArtists(t *testing.T) { func TestGetArtist(t *testing.T) { t.Parallel() - contr, m := makeController(t) - defer m.CleanUp() + contr := makeController(t) runQueryCases(t, contr, contr.ServeGetArtist, []*queryCase{ {url.Values{"id": {"ar-1"}}, "id_one", false}, @@ -31,8 +29,7 @@ func TestGetArtist(t *testing.T) { func TestGetAlbum(t *testing.T) { t.Parallel() - contr, m := makeController(t) - defer m.CleanUp() + contr := makeController(t) runQueryCases(t, contr, contr.ServeGetAlbum, []*queryCase{ {url.Values{"id": {"al-2"}}, "without_cover", false}, @@ -42,8 +39,7 @@ func TestGetAlbum(t *testing.T) { func TestGetAlbumListTwo(t *testing.T) { t.Parallel() - contr, m := makeController(t) - defer m.CleanUp() + contr := makeController(t) runQueryCases(t, contr, contr.ServeGetAlbumListTwo, []*queryCase{ {url.Values{"type": {"alphabeticalByArtist"}}, "alpha_artist", false}, @@ -55,8 +51,7 @@ func TestGetAlbumListTwo(t *testing.T) { func TestSearchThree(t *testing.T) { t.Parallel() - contr, m := makeController(t) - defer m.CleanUp() + contr := makeController(t) runQueryCases(t, contr, contr.ServeSearchThree, []*queryCase{ {url.Values{"query": {"art"}}, "q_art", false}, diff --git a/server/mockfs/mockfs.go b/server/mockfs/mockfs.go index 66b5f22..ca32720 100644 --- a/server/mockfs/mockfs.go +++ b/server/mockfs/mockfs.go @@ -35,6 +35,12 @@ func new(t testing.TB, dirs []string) *MockFS { if err != nil { t.Fatalf("create db: %v", err) } + t.Cleanup(func() { + if err := dbc.Close(); err != nil { + t.Fatalf("close db: %v", err) + } + }) + if err := dbc.Migrate(db.MigrationContext{}); err != nil { t.Fatalf("migrate db db: %v", err) } @@ -89,12 +95,6 @@ func (m *MockFS) ResetDates() { } } -func (m *MockFS) CleanUp() { - if err := m.db.Close(); err != nil { - m.t.Fatalf("close db: %v", err) - } -} - func (m *MockFS) AddItems() { m.addItems("", false) } func (m *MockFS) AddItemsPrefix(prefix string) { m.addItems(prefix, false) } func (m *MockFS) AddItemsWithCovers() { m.addItems("", true) } diff --git a/server/scanner/scanner_benchmark_test.go b/server/scanner/scanner_benchmark_test.go index b4205ab..2b132be 100644 --- a/server/scanner/scanner_benchmark_test.go +++ b/server/scanner/scanner_benchmark_test.go @@ -9,7 +9,6 @@ import ( func BenchmarkScanIncremental(b *testing.B) { m := mockfs.New(b) - defer m.CleanUp() for i := 0; i < 5; i++ { m.AddItemsPrefix(fmt.Sprintf("t-%d", i)) } @@ -30,6 +29,5 @@ func BenchmarkScanFull(b *testing.B) { b.StartTimer() m.ScanAndClean() b.StopTimer() - m.CleanUp() } } diff --git a/server/scanner/scanner_fuzz_test.go b/server/scanner/scanner_fuzz_test.go index 9acb58c..34f41dc 100644 --- a/server/scanner/scanner_fuzz_test.go +++ b/server/scanner/scanner_fuzz_test.go @@ -30,7 +30,6 @@ func FuzzScanner(f *testing.F) { f.Fuzz(func(t *testing.T, data []byte, seed int64) { is := is.NewRelaxed(t) m := mockfs.New(t) - defer m.CleanUp() const toAdd = 1000 for i := 0; i < toAdd; i++ { diff --git a/server/scanner/scanner_test.go b/server/scanner/scanner_test.go index b76c750..3b663f3 100644 --- a/server/scanner/scanner_test.go +++ b/server/scanner/scanner_test.go @@ -28,7 +28,6 @@ func TestTableCounts(t *testing.T) { t.Parallel() is := is.NewRelaxed(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItems() m.ScanAndClean() @@ -50,7 +49,6 @@ func TestParentID(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItems() m.ScanAndClean() @@ -74,7 +72,6 @@ func TestUpdatedCover(t *testing.T) { t.Parallel() is := is.NewRelaxed(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItems() m.ScanAndClean() @@ -90,7 +87,6 @@ func TestCoverBeforeTracks(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() m.AddCover("artist-2/album-2/cover.jpg") m.ScanAndClean() @@ -111,7 +107,6 @@ func TestUpdatedTags(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() m.AddTrack("artist-10/album-10/track-10.flac") m.SetTags("artist-10/album-10/track-10.flac", func(tags *mockfs.Tags) error { @@ -154,7 +149,6 @@ func TestDeleteAlbum(t *testing.T) { t.Parallel() is := is.NewRelaxed(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItems() m.ScanAndClean() @@ -171,7 +165,6 @@ func TestDeleteArtist(t *testing.T) { t.Parallel() is := is.NewRelaxed(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItems() m.ScanAndClean() @@ -189,7 +182,6 @@ func TestGenres(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() albumGenre := func(artist, album, genre string) error { return m.DB(). @@ -281,7 +273,6 @@ func TestMultiFolders(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.NewWithDirs(t, []string{"m-1", "m-2", "m-3"}) - defer m.CleanUp() m.AddItemsPrefix("m-1") m.AddItemsPrefix("m-2") @@ -316,7 +307,6 @@ func TestNewAlbumForExistingArtist(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItems() m.ScanAndClean() @@ -352,7 +342,6 @@ func TestMultiFolderWithSharedArtist(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.NewWithDirs(t, []string{"m-0", "m-1"}) - defer m.CleanUp() const artistName = "artist-a" @@ -400,7 +389,6 @@ func TestSymlinkedAlbum(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.NewWithDirs(t, []string{"scan"}) - defer m.CleanUp() m.AddItemsPrefixWithCovers("temp") @@ -428,7 +416,6 @@ func TestSymlinkedSubdiscs(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.NewWithDirs(t, []string{"scan"}) - defer m.CleanUp() addItem := func(prefix, artist, album, disc, track string) { p := fmt.Sprintf("%s/%s/%s/%s/%s", prefix, artist, album, disc, track) @@ -472,7 +459,6 @@ func TestArtistHasCover(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItemsWithCovers() m.AddCover("artist-2/artist.png") @@ -491,7 +477,6 @@ func TestTagErrors(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItemsWithCovers() m.SetTags("artist-1/album-0/track-0.flac", func(tags *mockfs.Tags) error { @@ -520,7 +505,6 @@ func TestCompilationAlbumWithoutAlbumArtist(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() const pathArtist = "various-artists" const pathAlbum = "my-compilation" @@ -558,7 +542,6 @@ func TestIncrementalScanNoChangeNoUpdatedAt(t *testing.T) { t.Parallel() is := is.New(t) m := mockfs.New(t) - defer m.CleanUp() m.AddItems()