From 250519bb51e63dd0f1a6fda3d1fca2c7d60058de Mon Sep 17 00:00:00 2001 From: Vadim Markovtsev Date: Thu, 28 Sep 2017 20:58:13 +0200 Subject: [PATCH] Add the external test linguist dir from env var This allows to use a cached directory with linguist instead of cloning and speeds up the tests by -10s on my local machine. Signed-off-by: Vadim Markovtsev --- common_test.go | 25 +++++++++++------ .../generator/generator_test.go | 27 ++++++++++++------- 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/common_test.go b/common_test.go index 8c53a6f..019e743 100644 --- a/common_test.go +++ b/common_test.go @@ -20,6 +20,7 @@ type EnryTestSuite struct { suite.Suite repoLinguist string samplesDir string + cloned bool } func TestEnryTestSuite(t *testing.T) { @@ -28,14 +29,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("ENRY_TEST_REPO") + s.cloned = len(s.repoLinguist) == 0 + 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 +50,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 +59,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..9177731 100644 --- a/internal/code-generator/generator/generator_test.go +++ b/internal/code-generator/generator/generator_test.go @@ -13,7 +13,7 @@ import ( ) const ( - lingustURL = "https://github.com/github/linguist.git" + linguistURL = "https://github.com/github/linguist.git" commit = "d5c8db3fb91963c4b2762ca2ea2ff7cfac109f68" samplesDir = "samples" languagesFile = "lib/linguist/languages.yml" @@ -80,6 +80,7 @@ const ( type GeneratorTestSuite struct { suite.Suite tmpLinguist string + cloned bool } func TestGeneratorTestSuite(t *testing.T) { @@ -88,12 +89,18 @@ func TestGeneratorTestSuite(t *testing.T) { func (s *GeneratorTestSuite) SetupSuite() { var err error - s.tmpLinguist, err = ioutil.TempDir("", "linguist-") - assert.NoError(s.T(), err) + s.tmpLinguist = os.Getenv("ENRY_TEST_REPO") + s.cloned = len(s.tmpLinguist) == 0 + if s.cloned { + 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) + if s.cloned { + 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 +108,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 +117,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() {