about summary refs log tree commit diff stats
path: root/050scenario.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-11-15 22:30:52 -0800
committerKartik K. Agaram <vc@akkartik.com>2016-11-15 23:01:52 -0800
commit00e9ddebbd5c6e23b77a7e43fc8cd6c99a1c0672 (patch)
tree50386d48264a306819433222b4cca7a166664ca2 /050scenario.cc
parent4cec4143d3f35be3f4379e00cc4fea357ef2a349 (diff)
downloadmu-00e9ddebbd5c6e23b77a7e43fc8cd6c99a1c0672.tar.gz
3676 - stop scenarios on error in transform
Thanks Jack Couch for running into this.
Diffstat (limited to '050scenario.cc')
-rw-r--r--050scenario.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/050scenario.cc b/050scenario.cc
index 8f8d2d8f..a7f59c68 100644
--- a/050scenario.cc
+++ b/050scenario.cc
@@ -188,7 +188,8 @@ void run_mu_scenario(const scenario& s) {
   mark_autogenerated(tmp.at(0));
   bind_special_scenario_names(tmp.at(0));
   transform_all();
-  run(tmp.front());
+  if (!trace_contains_errors())
+    run(tmp.front());
   // End Mu Test Teardown
   if (!Hide_errors && trace_contains_errors() && !Scenario_testing_scenario)
     Passed = false;
@@ -259,6 +260,14 @@ def scenario-foo [
 ]
 +error: redefining recipe scenario-foo
 
+:(scenario scenario_containing_transform_error)
+% Hide_errors = true;
+def main [
+  local-scope
+  add x, 1
+]
+# no crash
+
 :(after "bool should_check_for_redefine(const string& recipe_name)")
   if (recipe_name.find("scenario-") == 0) return true;