Make test-directory multi-threaded proof When running tests using sbt from CLI, all the test suites are running in parallel threads. Test directories need to include the thread name so to make sure they do not randomly fail for conflicting directory names. Change-Id: Ie37ab60e8d620565b091fc9d3979a3df6a46e50c
diff --git a/src/test/scala/com/googlesource/gerrit/plugins/analytics/test/GitTestCase.scala b/src/test/scala/com/googlesource/gerrit/plugins/analytics/test/GitTestCase.scala index 3bf36ae..8a1dcf7 100644 --- a/src/test/scala/com/googlesource/gerrit/plugins/analytics/test/GitTestCase.scala +++ b/src/test/scala/com/googlesource/gerrit/plugins/analytics/test/GitTestCase.scala
@@ -36,6 +36,7 @@ package com.googlesource.gerrit.plugins.analytics.test import java.io.{File, PrintWriter} +import java.nio.file.Files import java.text.MessageFormat import java.util.Date @@ -92,10 +93,7 @@ * @throws GitAPIException */ protected def initRepo: File = { - val tmpDir = System.getProperty("java.io.tmpdir") - assert(tmpDir != null, "java.io.tmpdir was null") - val dir = new File(tmpDir, "git-test-case-" + System.nanoTime) - assert(dir.mkdir) + val dir = Files.createTempDirectory(threadSpecificDirectoryPrefix).toFile Git.init.setDirectory(dir).setBare(false).call val repo = new File(dir, Constants.DOT_GIT) assert(repo.exists) @@ -103,6 +101,9 @@ repo } + private def threadSpecificDirectoryPrefix = + "git-test-case-" + Thread.currentThread().getName.replaceAll("~[0-9a-zA-Z]", "_") + System.nanoTime + /** * Create branch with name and checkout *