diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-04-24 22:49:29 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-04-24 22:49:29 -0700 |
commit | 6d8ef6b12d37336a92c7a6b20b4b66f3ab424464 (patch) | |
tree | 49c4b2b75ebc85540861b2682e3d48fe958c5dc8 /cpp/002test | |
parent | 0b0cfb6f1f4579eef463ffcb41ba782ddbd56035 (diff) | |
download | mu-6d8ef6b12d37336a92c7a6b20b4b66f3ab424464.tar.gz |
1189 - add extensions to all layers
I'm sick of fighting vim's filetype detection. No modeline and files highlight in random colors. I add a modeline and it stops highlighting tangle comments. Even though it read my #$%# vimrc! Fuck this shite.
Diffstat (limited to 'cpp/002test')
-rw-r--r-- | cpp/002test | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/cpp/002test b/cpp/002test deleted file mode 100644 index fa91c0a7..00000000 --- a/cpp/002test +++ /dev/null @@ -1,92 +0,0 @@ -//: A simple test harness. To create new tests define functions starting with -//: 'test_'. To run all tests so defined, run: -//: $ wart test -//: -//: So far it seems tasteful for layers to never ever reach back to modify -//: previously-defined tests. Every test is a contract once written, and should -//: pass as-is if it is included, regardless of how much later layers change -//: the program. Avoid writing 'temporary' tests that only work with some -//: subsets of the program. - -:(before "End Types") -typedef void (*test_fn)(void); - -:(before "End Globals") -const test_fn Tests[] = { - #include "test_list" // auto-generated; see makefile -}; - -bool Run_tests = false; -bool Passed = true; // set this to false inside any test to indicate failure -long Num_failures = 0; - -#define CHECK(X) \ - if (!(X)) { \ - ++Num_failures; \ - cerr << "\nF " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): " << #X << '\n'; \ - Passed = false; \ - return; /* Currently we stop at the very first failure. */ \ - } - -#define CHECK_EQ(X, Y) \ - if ((X) != (Y)) { \ - ++Num_failures; \ - cerr << "\nF " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): " << #X << " == " << #Y << '\n'; \ - cerr << " got " << (X) << '\n'; /* BEWARE: multiple eval */ \ - Passed = false; \ - return; /* Currently we stop at the very first failure. */ \ - } - -:(before "End Commandline Parsing") -if (argc > 1 && is_equal(argv[1], "test")) { - Run_tests = true; --argc; ++argv; // shift 'test' out of commandline args -} - -:(before "End Main") -if (Run_tests) { - // Test Runs - // we run some tests and then exit; assume no state need be maintained afterward - - // End Test Run Initialization - time_t t; time(&t); - cerr << "C tests: " << ctime(&t); - for (size_t i=0; i < sizeof(Tests)/sizeof(Tests[0]); ++i) { - run_test(i); - } - // End Tests - cerr << '\n'; - if (Num_failures > 0) - cerr << Num_failures << " failure" - << (Num_failures > 1 ? "s" : "") - << '\n'; - return 0; -} - -:(code) -void run_test(size_t i) { - if (i >= sizeof(Tests)/sizeof(Tests[0])) { - cerr << "no test " << i << '\n'; - return; - } - setup(); - Passed = true; - // End Test Setup - (*Tests[i])(); - teardown(); - if (Passed) cerr << "."; -} - -bool is_number(const string& s) { - return s.find_first_not_of("0123456789-.") == string::npos; -} - -int to_int(string n) { - char* end = NULL; - int result = strtol(n.c_str(), &end, /*any base*/0); - assert(*end == '\0'); - return result; -} - -:(before "End Includes") -#include<assert.h> -#include<cstdlib> |