diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-04-29 17:07:40 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-04-29 17:07:40 -0700 |
commit | 0cc4f18dd56e2e6a80809d48ef1d1e0fb302029e (patch) | |
tree | ffe02c48e563bf88119805529a34e4a85be4d544 /cpp/052scenario_trace.cc | |
parent | 9da019fcda10240cbce35b6b0b3e148d1219b4a4 (diff) | |
download | mu-0cc4f18dd56e2e6a80809d48ef1d1e0fb302029e.tar.gz |
1222
Diffstat (limited to 'cpp/052scenario_trace.cc')
-rw-r--r-- | cpp/052scenario_trace.cc | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/cpp/052scenario_trace.cc b/cpp/052scenario_trace.cc index 4436ee3f..cf782835 100644 --- a/cpp/052scenario_trace.cc +++ b/cpp/052scenario_trace.cc @@ -1,5 +1,23 @@ -//: Support a scenario [ ... ] form at the top level so we can start creating -//: scenarios in mu just like we do in C++. +//: Support a trace block inside scenario blocks. +//: Allows two kinds of assertions: +//: trace must contain [ ... ] +//: trace must not contain [ ... ] + +:(scenarios "parse_scenario") +:(scenario scenario_trace_block) +scenario foo [ + trace should contain [ + bar: baz + bar: floo + ] + trace should not contain [ + bar: abc + ] + +] ++scenario: +bar: baz ++scenario: +bar: floo ++scenario: -bar: abc :(before "End scenario Fields") vector<pair<string, string> > trace_checks; @@ -43,7 +61,7 @@ void handle_scenario_trace_directive(istream& in, scenario& out) { } string message = slurp_rest(tmp); out.trace_checks.push_back(pair<string, string>(label, message)); - trace("scenario") << "trace: " << label << ": " << message << '\n'; + trace("scenario") << '+' << label << ": " << message << '\n'; } skip_whitespace(in); assert(in.get() == ']'); @@ -70,7 +88,7 @@ void handle_scenario_trace_negative_directive(istream& in, scenario& out) { } string message = slurp_rest(tmp); out.trace_negative_checks.push_back(pair<string, string>(label, message)); - trace("scenario") << "trace: " << label << ": " << message << '\n'; + trace("scenario") << '-' << label << ": " << message << '\n'; } skip_whitespace(in); assert(in.get() == ']'); |