diff --git a/benchmark_test.go b/benchmark_test.go index 9ad8289..ca42191 100644 --- a/benchmark_test.go +++ b/benchmark_test.go @@ -23,6 +23,7 @@ var ( overcomeLanguages []string samples []*sample samplesDir string + cloned bool ) func TestMain(m *testing.M) { @@ -35,7 +36,9 @@ func TestMain(m *testing.M) { if err := cloneLinguist(linguistURL); err != nil { log.Fatal(err) } - defer os.RemoveAll(filepath.Dir(samplesDir)) + if cloned { + defer os.RemoveAll(filepath.Dir(samplesDir)) + } var err error samples, err = getSamples(samplesDir) @@ -47,16 +50,23 @@ func TestMain(m *testing.M) { } func cloneLinguist(linguistURL string) error { - repoLinguist, err := ioutil.TempDir("", "linguist-") - if err != nil { - return err + repoLinguist := os.Getenv(linguistClonedEnvVar) + cloned = repoLinguist == "" + if cloned { + var err error + repoLinguist, err = ioutil.TempDir("", "linguist-") + if err != nil { + return err + } } samplesDir = filepath.Join(repoLinguist, "samples") - cmd := exec.Command("git", "clone", linguistURL, repoLinguist) - if err := cmd.Run(); err != nil { - return err + if cloned { + cmd := exec.Command("git", "clone", linguistURL, repoLinguist) + if err := cmd.Run(); err != nil { + return err + } } cwd, err := os.Getwd() @@ -68,7 +78,7 @@ func cloneLinguist(linguistURL string) error { return err } - cmd = exec.Command("git", "checkout", data.LinguistCommit) + cmd := exec.Command("git", "checkout", data.LinguistCommit) if err := cmd.Run(); err != nil { return err } diff --git a/common_test.go b/common_test.go index 8c53a6f..de332de 100644 --- a/common_test.go +++ b/common_test.go @@ -15,11 +15,13 @@ import ( ) const linguistURL = "https://github.com/github/linguist.git" +const linguistClonedEnvVar = "ENRY_TEST_REPO" type EnryTestSuite struct { suite.Suite repoLinguist string samplesDir string + cloned bool } func TestEnryTestSuite(t *testing.T) { @@ -28,14 +30,20 @@ func TestEnryTestSuite(t *testing.T) { func (s *EnryTestSuite) SetupSuite() { var err error - s.repoLinguist, err = ioutil.TempDir("", "linguist-") - assert.NoError(s.T(), err) + s.repoLinguist = os.Getenv(linguistClonedEnvVar) + s.cloned = s.repoLinguist == "" + if s.cloned { + s.repoLinguist, err = ioutil.TempDir("", "linguist-") + assert.NoError(s.T(), err) + } s.samplesDir = filepath.Join(s.repoLinguist, "samples") - cmd := exec.Command("git", "clone", linguistURL, s.repoLinguist) - err = cmd.Run() - assert.NoError(s.T(), err) + if s.cloned { + cmd := exec.Command("git", "clone", linguistURL, s.repoLinguist) + err = cmd.Run() + assert.NoError(s.T(), err) + } cwd, err := os.Getwd() assert.NoError(s.T(), err) @@ -43,7 +51,7 @@ func (s *EnryTestSuite) SetupSuite() { err = os.Chdir(s.repoLinguist) assert.NoError(s.T(), err) - cmd = exec.Command("git", "checkout", data.LinguistCommit) + cmd := exec.Command("git", "checkout", data.LinguistCommit) err = cmd.Run() assert.NoError(s.T(), err) @@ -52,8 +60,10 @@ func (s *EnryTestSuite) SetupSuite() { } func (s *EnryTestSuite) TearDownSuite() { - err := os.RemoveAll(s.repoLinguist) - assert.NoError(s.T(), err) + if s.cloned { + err := os.RemoveAll(s.repoLinguist) + assert.NoError(s.T(), err) + } } func (s *EnryTestSuite) TestGetLanguage() { diff --git a/internal/code-generator/generator/generator_test.go b/internal/code-generator/generator/generator_test.go index efac26a..26926df 100644 --- a/internal/code-generator/generator/generator_test.go +++ b/internal/code-generator/generator/generator_test.go @@ -13,7 +13,8 @@ import ( ) const ( - lingustURL = "https://github.com/github/linguist.git" + linguistURL = "https://github.com/github/linguist.git" + linguistClonedEnvVar = "ENRY_TEST_REPO" commit = "d5c8db3fb91963c4b2762ca2ea2ff7cfac109f68" samplesDir = "samples" languagesFile = "lib/linguist/languages.yml" @@ -80,6 +81,7 @@ const ( type GeneratorTestSuite struct { suite.Suite tmpLinguist string + cloned bool } func TestGeneratorTestSuite(t *testing.T) { @@ -88,12 +90,15 @@ func TestGeneratorTestSuite(t *testing.T) { func (s *GeneratorTestSuite) SetupSuite() { var err error - s.tmpLinguist, err = ioutil.TempDir("", "linguist-") - assert.NoError(s.T(), err) - - cmd := exec.Command("git", "clone", lingustURL, s.tmpLinguist) - err = cmd.Run() - assert.NoError(s.T(), err) + s.tmpLinguist = os.Getenv(linguistClonedEnvVar) + s.cloned = s.tmpLinguist == "" + if s.cloned { + s.tmpLinguist, err = ioutil.TempDir("", "linguist-") + assert.NoError(s.T(), err) + cmd := exec.Command("git", "clone", linguistURL, s.tmpLinguist) + err = cmd.Run() + assert.NoError(s.T(), err) + } cwd, err := os.Getwd() assert.NoError(s.T(), err) @@ -101,7 +106,7 @@ func (s *GeneratorTestSuite) SetupSuite() { err = os.Chdir(s.tmpLinguist) assert.NoError(s.T(), err) - cmd = exec.Command("git", "checkout", commit) + cmd := exec.Command("git", "checkout", commit) err = cmd.Run() assert.NoError(s.T(), err) @@ -110,8 +115,10 @@ func (s *GeneratorTestSuite) SetupSuite() { } func (s *GeneratorTestSuite) TearDownSuite() { - err := os.RemoveAll(s.tmpLinguist) - assert.NoError(s.T(), err) + if s.cloned { + err := os.RemoveAll(s.tmpLinguist) + assert.NoError(s.T(), err) + } } func (s *GeneratorTestSuite) TestGenerationFiles() {