diff --git a/build.sbt b/build.sbt index b7507c6ec71011ccb645a7772ff31017e52aafc8..121a1311a55c452093541116e74a593be8094999 100644 --- a/build.sbt +++ b/build.sbt @@ -87,9 +87,10 @@ script := { sourceGenerators in Compile <+= Def.task { val libFiles = ((baseDirectory.value / "library") ** "*.scala").getPaths val build = (sourceManaged in Compile).value / "leon" / "Build.scala"; - IO.write(build, s"""|package leon; + IO.write(build, s"""|package leon | |object Build { + | val baseDirectory = \"${baseDirectory.value.toString}\" | val libFiles = List( | ${libFiles.mkString("\"\"\"", "\"\"\",\n \"\"\"", "\"\"\"")} | ) diff --git a/src/test/scala/leon/regression/testcases/TestCasesCompile.scala b/src/test/scala/leon/regression/testcases/TestCasesCompile.scala index 97f6ae603eece13d8c42fac4f25b33a632b7f709..64367b70d408c5cc36684ea4bc68879db5101fb0 100644 --- a/src/test/scala/leon/regression/testcases/TestCasesCompile.scala +++ b/src/test/scala/leon/regression/testcases/TestCasesCompile.scala @@ -19,8 +19,6 @@ class TestCasesCompile extends LeonRegressionSuite { val baseDir = "regression/testcases/" - val slashes = resourceDir(baseDir).getAbsolutePath.split("/").toList.size - val allTests = (filesIn(baseDir+"repair/") ++ filesIn(baseDir+"runtime/") ++ filesIn(baseDir+"synthesis/") ++ @@ -28,7 +26,11 @@ class TestCasesCompile extends LeonRegressionSuite { filesIn(baseDir+"web/")).sortBy(_.getAbsolutePath) allTests.foreach { f => - val name = f.getAbsolutePath.split("/").toList.drop(slashes).mkString("/") + + val path = f.getAbsolutePath + + val index = path.indexOf(baseDir) + val name = path.drop(index) test("Compiling "+name) { diff --git a/src/test/scala/leon/test/LeonRegressionSuite.scala b/src/test/scala/leon/test/LeonRegressionSuite.scala index 78c56589b66b87fe288d4a1fceabeaaee12b7ec1..07ca12b58a07d8215a9b1eb29ecf411a80745a7e 100644 --- a/src/test/scala/leon/test/LeonRegressionSuite.scala +++ b/src/test/scala/leon/test/LeonRegressionSuite.scala @@ -5,7 +5,6 @@ package leon.test import leon._ import leon.utils._ -import scala.io.Source import org.scalatest._ import org.scalatest.time.Span import org.scalatest.concurrent._ @@ -15,8 +14,8 @@ import org.scalatest.exceptions.TestFailedException import java.io.File trait LeonRegressionSuite extends FunSuite with Timeouts with BeforeAndAfterEach { - // Hard-code resource directory, for Eclipse purposes - val resourceDirHard = "src/test/resources/" + + val regressionTestDirectory = "src/test/resources" def createLeonContext(opts: String*): LeonContext = { val reporter = new TestSilentReporter @@ -66,23 +65,6 @@ trait LeonRegressionSuite extends FunSuite with Timeouts with BeforeAndAfterEach } protected val all : String=>Boolean = (s : String) => true - - - def resourceDir(dir : String) : File = { - - val d = this.getClass.getClassLoader.getResource(dir) - - if(d == null || d.getProtocol != "file") { - // We are in Eclipse. The only way we are saved is by hard-coding the path - new File(resourceDirHard + dir) - } - else { - new File(d.toURI) - } - } - - - def scanFilesIn(f: File, filter: String=>Boolean = all, recursive: Boolean = false): Iterable[File] = { Option(f.listFiles()).getOrElse(Array()).flatMap{f => @@ -96,13 +78,8 @@ trait LeonRegressionSuite extends FunSuite with Timeouts with BeforeAndAfterEach def filesInResourceDir(dir : String, filter : String=>Boolean = all, recursive: Boolean = false) : Iterable[File] = { - val d = this.getClass.getClassLoader.getResource(dir) - - val asFile = if(d == null || d.getProtocol != "file") { - // We are in Eclipse. The only way we are saved is by hard-coding the path - new File(resourceDirHard + dir) - } else new File(d.toURI) + val baseDir = new File(s"${Build.baseDirectory}/$regressionTestDirectory/$dir") - scanFilesIn(asFile, filter, recursive) + scanFilesIn(baseDir, filter, recursive) } }