about summary refs log tree commit diff stats
path: root/cpp/020run
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-04-22 13:29:02 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-04-22 13:30:13 -0700
commitb39ceb27794272100154b88b6d50195d1dca0431 (patch)
tree8ad4ea50075be99e874c63c95067a3ce410d4a64 /cpp/020run
parent8c9ffa039f2f623cf61f263d487c1f4a919bea65 (diff)
downloadmu-b39ceb27794272100154b88b6d50195d1dca0431.tar.gz
1133 - more reorg of commandline parsing
1. Drop the ability to run just some C++ tests. It's a lousy interface
to use line numbers, we can't selectively run mu tests, we haven't used
it in a while because our tests run plenty fast, and it's complicating
other parts, like Next_recipe_number and test space handling.

2. Create a new layer right up top to show the usage message and all the
different forms that are possible. Good for documentation until we come
up with a way to put the different forms in their own layers. At least
it's out of the test layer now.

3. Strengthen the assertion that no recipes exist in test space before
we start running any sorts of tests. Earlier it was possible for
files loaded explicitly to overflow into test space because we were
asserting before load, not after. Now we check if we need to run tests,
load all files, then make the assertion, run tests, and exit if
necessary.

Now we don't need to mess with commandline args at all in layer 50.
That's a sign that we're on the right track.
Diffstat (limited to 'cpp/020run')
-rw-r--r--cpp/020run7
1 files changed, 5 insertions, 2 deletions
diff --git a/cpp/020run b/cpp/020run
index 0ce86d7a..3dad12bf 100644
--- a/cpp/020run
+++ b/cpp/020run
@@ -93,13 +93,16 @@ inline bool done(routine& rr) {
   return running_at(rr) >= steps(rr).size();
 }
 
-:(before "End Main")
+:(before "End Commandline Parsing")
 if (argc > 1) {
-  setup();
   for (int i = 1; i < argc; ++i) {
     load(argv[i]);
   }
+}
 
+:(before "End Main")
+if (!Run_tests) {
+  setup();
   Trace_stream = new trace_stream;
 //?   Trace_stream->dump_layer = "all"; //? 2
   transform_all();