From e69df1ae9c6c0368f826637db53660223b5a9719 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Mon, 18 Mar 2013 09:52:57 -0400 Subject: [PATCH] use separate ivy home directories in component provider test so tests can run concurrently --- ivy/src/test/scala/ComponentManagerTest.scala | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/ivy/src/test/scala/ComponentManagerTest.scala b/ivy/src/test/scala/ComponentManagerTest.scala index a9bbe051f..db3f676cc 100644 --- a/ivy/src/test/scala/ComponentManagerTest.scala +++ b/ivy/src/test/scala/ComponentManagerTest.scala @@ -50,16 +50,18 @@ object ComponentManagerTest extends Specification } "properly cache a file and then retrieve it to an unresolved component" in { - withManager { definingManager => - val hash = defineFile(definingManager, TestID, "a") - try - { - definingManager.cache(TestID) - withManager { usingManager => - checksum(usingManager.file(TestID)(Fail)) must beEqualTo(hash) + withTemporaryDirectory { ivyHome => + withManagerHome(ivyHome) { definingManager => + val hash = defineFile(definingManager, TestID, "a") + try + { + definingManager.cache(TestID) + withManagerHome(ivyHome) { usingManager => + checksum(usingManager.file(TestID)(Fail)) must beEqualTo(hash) + } } + finally { definingManager.clearCache(TestID) } } - finally { definingManager.clearCache(TestID) } } } } @@ -78,5 +80,13 @@ object ComponentManagerTest extends Specification private def writeRandomContent(file: File) = IO.write(file, randomString) private def randomString = "asdf" private def withManager[T](f: ComponentManager => T): T = - TestLogger( logger => withTemporaryDirectory { temp => f(new ComponentManager(xsbt.boot.Locks, new xsbt.boot.ComponentProvider(temp, true), None, logger)) } ) + withTemporaryDirectory { ivyHome => withManagerHome(ivyHome)(f) } + + private def withManagerHome[T](ivyHome: File)(f: ComponentManager => T): T = + TestLogger { logger => + withTemporaryDirectory { temp => + val mgr = new ComponentManager(xsbt.boot.Locks, new xsbt.boot.ComponentProvider(temp, true), Some(ivyHome), logger) + f(mgr) + } + } }