X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=nucleus%2Flibrary%2Ftests_nodes%2Ftest_symbol_tree.cpp;h=64e917e04c538861207e1bac908a670dce240ec8;hb=c28dc24c2c63c4b505009a911083245e1c87ebe8;hp=ef9917c45d44e34cc1d0feb5e0cf4964a348c9c8;hpb=457b128b77b5b4a0b7dd3094de543de2ce1477ad;p=feisty_meow.git diff --git a/nucleus/library/tests_nodes/test_symbol_tree.cpp b/nucleus/library/tests_nodes/test_symbol_tree.cpp index ef9917c4..64e917e0 100644 --- a/nucleus/library/tests_nodes/test_symbol_tree.cpp +++ b/nucleus/library/tests_nodes/test_symbol_tree.cpp @@ -28,9 +28,6 @@ #include #include -//#include -//#include - using namespace application; using namespace basis; using namespace filesystem; @@ -44,24 +41,28 @@ using namespace unit_test; #define LOG(to_print) EMERGENCY_LOG(program_wide_logger().get(), astring(to_print)) -#define DEBUG_SYMBOL_TREE +//#define DEBUG_TEST_SYMBOL_TREE + +// how many nodes we add to the tree. +const int MAX_NODES_TESTED = 40000; -class test_symbol_tree : public virtual unit_base, virtual public application_shell +class test_symbol_tree : public unit_base, public application_shell { public: - test_symbol_tree() {} + test_symbol_tree() : unit_base() {} DEFINE_CLASS_NAME("test_symbol_tree"); int execute(); }; int test_symbol_tree::execute() { - LOG("please check memory usage and record it, then hit a key to start testing."); + FUNCDEF("execute"); try { - symbol_tree t("blork"); - symbol_tree *curr = &t; - for (int i = 0; i < 40000; i++) { + // creates a crazy tree with only one branch per node, but hugely deep. + symbol_tree *t = new symbol_tree("blork"); + symbol_tree *curr = t; + for (int i = 0; i < MAX_NODES_TESTED; i++) { // if the current node has any branches, we'll jump on one as the next // place. if (curr->branches()) { @@ -72,17 +73,27 @@ int test_symbol_tree::execute() astring rando = string_manipulation::make_random_name(1, 10); curr->add(new symbol_tree(rando)); } - LOG("check memory usage now with full size. then hit a key."); +#ifdef DEBUG_TEST_SYMBOL_TREE + LOG("about to whack dynamic tree..."); +#endif + WHACK(t); + ASSERT_EQUAL(t, NULL_POINTER, "ensure pointer cleaned up"); +#ifdef DEBUG_TEST_SYMBOL_TREE + LOG("dynamic tree whacked."); +#endif } catch (...) { +#ifdef DEBUG_TEST_SYMBOL_TREE LOG("crashed during tree stuffing."); +#endif return 1; } - LOG("check memory usage after the run. then hit a key to end " - "the program."); + ASSERT_TRUE(true, "testing succeeded without cleanup crashes"); + + -//create a tree structure... -//perform known operations and validate shape of tree. +//hmmm: need more tests, like where we create a more balanced tree structure... +// perform known operations and validate shape of tree. return final_report(); }