From 8f73527228a82c6331cad0a56fab9d5344d51990 Mon Sep 17 00:00:00 2001 From: "Andrew S. Brown" Date: Sat, 26 Dec 2020 09:46:23 -0800 Subject: [PATCH 1/4] Allow fix tests to run concurrently Ensure cleanup doesn't happen until after all tests are done. Also don't require holding a lock since files are not shared between tests. --- test/fix_test.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/fix_test.go b/test/fix_test.go index 4ea3eaf6eb2d..0b2019394040 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -27,7 +27,9 @@ func TestFix(t *testing.T) { if os.Getenv("GL_KEEP_TEMP_FILES") == "1" { t.Logf("Temp dir for fix test: %s", tmpDir) } else { - defer os.RemoveAll(tmpDir) + t.Cleanup(func() { + os.RemoveAll(tmpDir) + }) } fixDir := filepath.Join(testdataDir, "fix") @@ -38,9 +40,10 @@ func TestFix(t *testing.T) { for _, input := range inputs { input := input t.Run(filepath.Base(input), func(t *testing.T) { + t.Parallel() args := []string{ "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - "--fix", + "--allow-parallel-runners", "--fix", input, } rc := extractRunContextFromComments(t, input) From c09584bbc827f2a0ce3b56b11ffa40542b28d6f4 Mon Sep 17 00:00:00 2001 From: "Andrew S. Brown" Date: Sat, 26 Dec 2020 11:26:31 -0800 Subject: [PATCH 2/4] Fix go1.13 --- test/fix_test.go | 11 ++++++++--- test/fix_test_go1_13.go | 10 ++++++++++ test/register_cleanup.go | 12 ++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 test/fix_test_go1_13.go create mode 100644 test/register_cleanup.go diff --git a/test/fix_test.go b/test/fix_test.go index 0b2019394040..cf8d51d95200 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -26,10 +26,12 @@ func TestFix(t *testing.T) { if os.Getenv("GL_KEEP_TEMP_FILES") == "1" { t.Logf("Temp dir for fix test: %s", tmpDir) - } else { - t.Cleanup(func() { + } else if tCleanupExists { + registerCleanup(t, func() { os.RemoveAll(tmpDir) }) + } else { + os.RemoveAll(tmpDir) } fixDir := filepath.Join(testdataDir, "fix") @@ -40,7 +42,10 @@ func TestFix(t *testing.T) { for _, input := range inputs { input := input t.Run(filepath.Base(input), func(t *testing.T) { - t.Parallel() + // if t.Cleanup does not exist, don't run these tests concurrently because we need to use defer for clean up + if tCleanupExists { + t.Parallel() + } args := []string{ "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", "--allow-parallel-runners", "--fix", diff --git a/test/fix_test_go1_13.go b/test/fix_test_go1_13.go new file mode 100644 index 000000000000..16eb825a76cf --- /dev/null +++ b/test/fix_test_go1_13.go @@ -0,0 +1,10 @@ +// +build !go1.14 + +package test + +import "testing" + +const tCleanupExists = false + +// do nothing for go.1.13 +func registerCleanup(t *testing.T, f func()) {} diff --git a/test/register_cleanup.go b/test/register_cleanup.go new file mode 100644 index 000000000000..503b757e6bfa --- /dev/null +++ b/test/register_cleanup.go @@ -0,0 +1,12 @@ +// +build go1.14 + +package test + +import "testing" + +const tCleanupExists = true + +// registerCleanup exists because t.Cleanup doesn't exist prior to go1.14 +func registerCleanup(t *testing.T, f func()) { + t.Cleanup(f) +} From 6b95b70c5b68c21102eb853692207b8dea4f6859 Mon Sep 17 00:00:00 2001 From: "Andrew S. Brown" Date: Sat, 2 Jan 2021 06:39:51 -0800 Subject: [PATCH 3/4] Add back defer --- test/fix_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fix_test.go b/test/fix_test.go index cf8d51d95200..bacfcc9fbd4a 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -31,7 +31,7 @@ func TestFix(t *testing.T) { os.RemoveAll(tmpDir) }) } else { - os.RemoveAll(tmpDir) + defer os.RemoveAll(tmpDir) } fixDir := filepath.Join(testdataDir, "fix") From 9606ad9910e8aa0c86899550751828666118dcdf Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 19 Feb 2021 21:51:35 +0100 Subject: [PATCH 4/4] drop go1.13 workaround. --- test/fix_test.go | 12 ++++-------- test/fix_test_go1_13.go | 10 ---------- test/register_cleanup.go | 12 ------------ 3 files changed, 4 insertions(+), 30 deletions(-) delete mode 100644 test/fix_test_go1_13.go delete mode 100644 test/register_cleanup.go diff --git a/test/fix_test.go b/test/fix_test.go index bacfcc9fbd4a..e2c8bfc4c4e2 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -26,12 +26,10 @@ func TestFix(t *testing.T) { if os.Getenv("GL_KEEP_TEMP_FILES") == "1" { t.Logf("Temp dir for fix test: %s", tmpDir) - } else if tCleanupExists { - registerCleanup(t, func() { + } else { + t.Cleanup(func() { os.RemoveAll(tmpDir) }) - } else { - defer os.RemoveAll(tmpDir) } fixDir := filepath.Join(testdataDir, "fix") @@ -42,10 +40,8 @@ func TestFix(t *testing.T) { for _, input := range inputs { input := input t.Run(filepath.Base(input), func(t *testing.T) { - // if t.Cleanup does not exist, don't run these tests concurrently because we need to use defer for clean up - if tCleanupExists { - t.Parallel() - } + t.Parallel() + args := []string{ "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", "--allow-parallel-runners", "--fix", diff --git a/test/fix_test_go1_13.go b/test/fix_test_go1_13.go deleted file mode 100644 index 16eb825a76cf..000000000000 --- a/test/fix_test_go1_13.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build !go1.14 - -package test - -import "testing" - -const tCleanupExists = false - -// do nothing for go.1.13 -func registerCleanup(t *testing.T, f func()) {} diff --git a/test/register_cleanup.go b/test/register_cleanup.go deleted file mode 100644 index 503b757e6bfa..000000000000 --- a/test/register_cleanup.go +++ /dev/null @@ -1,12 +0,0 @@ -// +build go1.14 - -package test - -import "testing" - -const tCleanupExists = true - -// registerCleanup exists because t.Cleanup doesn't exist prior to go1.14 -func registerCleanup(t *testing.T, f func()) { - t.Cleanup(f) -}