From 0047b60c1e0628d09ef528d94485bc5bd97bf53d Mon Sep 17 00:00:00 2001 From: Damien Engels Date: Tue, 7 Jun 2016 19:09:05 -0700 Subject: [PATCH] Homogenize config, enable overriding delite config from delite.properties file --- .../src/ppl/tests/scalatest/DeliteSuite.scala | 22 ++++++++----------- .../src/ppl/delite/framework/Config.scala | 13 ++++++++--- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/framework/delite-test/src/ppl/tests/scalatest/DeliteSuite.scala b/framework/delite-test/src/ppl/tests/scalatest/DeliteSuite.scala index f82e19825..2a8ac6b70 100644 --- a/framework/delite-test/src/ppl/tests/scalatest/DeliteSuite.scala +++ b/framework/delite-test/src/ppl/tests/scalatest/DeliteSuite.scala @@ -21,21 +21,17 @@ trait DeliteTestConfig { // something arbitrary that we should never see in any test's output val MAGICDELIMETER = "!~x02$758209" - val propFile = new File("delite.properties") - val props = new java.util.Properties(System.getProperties) - if (propFile.exists) props.load(new FileReader(propFile)) - // test parameters - val verbose = props.getProperty("tests.verbose", "false") != "false" - val verboseDefs = props.getProperty("tests.verboseDefs", "false") != "false" - val threads = props.getProperty("tests.threads", "1").split(",").map(_.toInt) - val cacheSyms = props.getProperty("tests.cacheSyms", "true").toBoolean - val javaHome = new File(props.getProperty("java.home", "")) - val scalaHome = new File(props.getProperty("scala.vanilla.home", "")) - val runtimeClasses = new File(props.getProperty("runtime.classes", "")) + val verbose = Config.getProperty("tests.verbose", "false") != "false" + val verboseDefs = Config.getProperty("tests.verboseDefs", "false") != "false" + val threads = Config.getProperty("tests.threads", "1").split(",").map(_.toInt) + val cacheSyms = Config.getProperty("tests.cacheSyms", "true").toBoolean + val javaHome = new File(Config.getProperty("java.home", "")) + val scalaHome = new File(Config.getProperty("scala.vanilla.home", "")) + val runtimeClasses = new File(Config.getProperty("runtime.classes", "")) val runtimeExternalProc = false // javaHome, scalaHome and runtimeClasses only required if runtimeExternalProc is true. should this be configurable? or should we just remove execTestExternal? - val deliteTestTargets = props.getProperty("tests.targets", "scala").split(",") - val useBlas = props.getProperty("tests.extern.blas", "false").toBoolean + val deliteTestTargets = Config.getProperty("tests.targets", "scala").split(",") + val useBlas = Config.getProperty("tests.extern.blas", "false").toBoolean var cppWhiteList = Seq("StaticData", "DeliteTestMkString", "DeliteTestAppend", "DeliteTestStrConcat", "DeliteTestFwNew", //test operations are Scala-only by design "DeliteTestBwNew", "DeliteTestBwWrite", "DeliteTestBwClose", "DeliteTestPrintLn", "scala.collection.mutable.ArrayBuffer", diff --git a/framework/src/ppl/delite/framework/Config.scala b/framework/src/ppl/delite/framework/Config.scala index ee979ac26..da1ebce8e 100644 --- a/framework/src/ppl/delite/framework/Config.scala +++ b/framework/src/ppl/delite/framework/Config.scala @@ -1,10 +1,17 @@ package ppl.delite.framework +import java.io.File +import java.io.FileReader + object Config { - private def getProperty(prop: String, default: String) = { - val p1 = System.getProperty(prop) - val p2 = System.getProperty(prop.substring(1)) + private val propFile = new File("delite.properties") + private val props = new java.util.Properties(System.getProperties) + if (propFile.exists) props.load(new FileReader(propFile)) + + def getProperty(prop: String, default: String) = { + val p1 = props.getProperty(prop) + val p2 = props.getProperty(prop.substring(1)) if (p1 != null && p2 != null) { assert(p1 == p2, "ERROR: conflicting properties") p1