Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToon Claes <toon@gitlab.com>2022-08-08 16:58:16 +0300
committerToon Claes <toon@gitlab.com>2022-08-09 12:34:18 +0300
commit8b1e96f1fb722a7ea099723717c35e205875f738 (patch)
treec31b010d8b63c9123f61d4347fa98380aae2ce41
parenta847bafa7f23bf2dd9852f3959692eaa06df8756 (diff)
linguist: Convert to table-based test
To make sure test cases are independent from eachother, convert the existing test cases to table-based tests that set up a repository from scratch each run.
-rw-r--r--internal/gitaly/linguist/language_stats_test.go66
1 files changed, 41 insertions, 25 deletions
diff --git a/internal/gitaly/linguist/language_stats_test.go b/internal/gitaly/linguist/language_stats_test.go
index 7e8a44d3b..07904769d 100644
--- a/internal/gitaly/linguist/language_stats_test.go
+++ b/internal/gitaly/linguist/language_stats_test.go
@@ -17,34 +17,50 @@ func TestNewLanguageStats(t *testing.T) {
t.Parallel()
cfg := testcfg.Build(t)
- repoProto, repoPath := gittest.InitRepo(t, cfg, cfg.Storages[0])
- repo := localrepo.NewTestRepo(t, cfg, repoProto)
-
- t.Run("non-existing cache", func(t *testing.T) {
- s, err := newLanguageStats(repo)
- require.NoError(t, err)
- require.Empty(t, s.Totals)
- require.Empty(t, s.ByFile)
- })
- t.Run("pre-existing cache", func(t *testing.T) {
- s, err := newLanguageStats(repo)
- require.NoError(t, err)
-
- s.Totals["C"] = 555
- require.NoError(t, s.save(repo, "badcafe"))
-
- require.Equal(t, ByteCountPerLanguage{"C": 555}, s.Totals)
- })
+ for _, tc := range []struct {
+ desc string
+ run func(*testing.T, *localrepo.Repo, string)
+ }{
+ {
+ desc: "non-existing cache",
+ run: func(t *testing.T, repo *localrepo.Repo, repoPath string) {
+ stats, err := newLanguageStats(repo)
+ require.NoError(t, err)
+ require.Empty(t, stats.Totals)
+ require.Empty(t, stats.ByFile)
+ },
+ },
+ {
+ desc: "pre-existing cache",
+ run: func(t *testing.T, repo *localrepo.Repo, repoPath string) {
+ stats, err := newLanguageStats(repo)
+ require.NoError(t, err)
- t.Run("corrupt cache", func(t *testing.T) {
- require.NoError(t, os.WriteFile(filepath.Join(repoPath, languageStatsFilename), []byte("garbage"), 0o644))
+ stats.Totals["C"] = 555
+ require.NoError(t, stats.save(repo, "badcafe"))
- s, err := newLanguageStats(repo)
- require.Errorf(t, err, "new language stats zlib reader: invalid header")
- require.Empty(t, s.Totals)
- require.Empty(t, s.ByFile)
- })
+ require.Equal(t, ByteCountPerLanguage{"C": 555}, stats.Totals)
+ },
+ },
+ {
+ desc: "corrupt cache",
+ run: func(t *testing.T, repo *localrepo.Repo, repoPath string) {
+ require.NoError(t, os.WriteFile(filepath.Join(repoPath, languageStatsFilename), []byte("garbage"), 0o644))
+
+ stats, err := newLanguageStats(repo)
+ require.Errorf(t, err, "new language stats zlib reader: invalid header")
+ require.Empty(t, stats.Totals)
+ require.Empty(t, stats.ByFile)
+ },
+ },
+ } {
+ t.Run(tc.desc, func(t *testing.T) {
+ repoProto, repoPath := gittest.InitRepo(t, cfg, cfg.Storages[0])
+ repo := localrepo.NewTestRepo(t, cfg, repoProto)
+ tc.run(t, repo, repoPath)
+ })
+ }
}
func TestLanguageStats_add(t *testing.T) {