diff --git a/src/main/scala/modbat/mbt/Dotify.scala b/src/main/scala/modbat/mbt/Dotify.scala index 90d79e4f..f41ab358 100644 --- a/src/main/scala/modbat/mbt/Dotify.scala +++ b/src/main/scala/modbat/mbt/Dotify.scala @@ -176,7 +176,7 @@ class Dotify(val model: MBT, outFile: String = "") { } } - def dotify(coverage: Boolean = false) { + def dotify(coverage: Boolean = false) = { out.println("digraph model {") out.println(" orientation = landscape;") out.println(" graph [ rankdir = \"TB\", ranksep=\"0.4\", nodesep=\"0.2\" ];") @@ -199,5 +199,6 @@ class Dotify(val model: MBT, outFile: String = "") { } } out.println("}") + 0 // TODO (issue #27): replace interal System.exit usage with error code } } diff --git a/src/main/scala/modbat/mbt/Main.scala b/src/main/scala/modbat/mbt/Main.scala index a3652a76..2fdb836f 100644 --- a/src/main/scala/modbat/mbt/Main.scala +++ b/src/main/scala/modbat/mbt/Main.scala @@ -8,6 +8,10 @@ object Main { val config = new Configuration() def main(args: Array[String]) { + System.exit(run(args)) + } + + def run(args: Array[String]): Int = { var modelClassName: String = null val c = new ConfigMgr("scala modbat.jar", "CLASSNAME", config, new Version ("modbat.mbt")) @@ -17,18 +21,18 @@ object Main { if (!remainingArgs.hasNext) { Log.error(c.header) Log.error("Model class argument missing. Try --help.") - System.exit(1) + return 1 } modelClassName = remainingArgs.next if (remainingArgs.hasNext) { Log.error("Extra arguments starting at \"" + remainingArgs.next() + "\" are not supported.") - System.exit(1) + return 1 } } catch { case e: IllegalArgumentException => { Log.error(e.getMessage()) - System.exit(1) + return 1 } } @@ -40,6 +44,7 @@ object Main { new Dotify(MBT.launch(null), modelClassName + ".dot").dotify() case _ => Modbat.explore(config.nRuns) } + // TODO (issue #27): Dotify.dotify() and Modbat.explore() should use return code } def setup(modelClassName: String) { diff --git a/src/main/scala/modbat/mbt/Modbat.scala b/src/main/scala/modbat/mbt/Modbat.scala index 5113ca9f..2d9d1dc6 100644 --- a/src/main/scala/modbat/mbt/Modbat.scala +++ b/src/main/scala/modbat/mbt/Modbat.scala @@ -215,6 +215,8 @@ object Modbat { appState = AppShutdown shutdown Runtime.getRuntime().removeShutdownHook(ShutdownHandler) + // TODO (issue #27): Replace internal System.exit usage with return code + 0 } def getRandomSeed = {