From 7442778ce912c4f7dfda29da046dcd7a7228ef4b Mon Sep 17 00:00:00 2001 From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch> Date: Fri, 9 Oct 2015 14:52:56 +0200 Subject: [PATCH] Simplify how we find resource dir. in tests --- build.sbt | 3 +- .../testcases/TestCasesCompile.scala | 8 +++-- .../scala/leon/test/LeonRegressionSuite.scala | 31 +++---------------- 3 files changed, 11 insertions(+), 31 deletions(-) diff --git a/build.sbt b/build.sbt index b7507c6ec..121a1311a 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 97f6ae603..64367b70d 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 78c56589b..07ca12b58 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) } } -- GitLab