53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
/*
|
|
* Copyright 2015 (c) Anna Schumaker.
|
|
*/
|
|
#include <tests/test.h>
|
|
#include <cstdlib>
|
|
|
|
static unsigned int expected_failures = 0;
|
|
|
|
#define should_fail(code) \
|
|
code; \
|
|
expected_failures++
|
|
|
|
static unsigned int test_for_each_body(unsigned int i)
|
|
{
|
|
if (i > 10)
|
|
return LOOP_FAILED;
|
|
return LOOP_PASSED;
|
|
}
|
|
|
|
static void test_tests()
|
|
{
|
|
test_equal(0, 0);
|
|
test_equal((std::string)"2", (std::string)"2");
|
|
test_equal((void *)4, (void *)4);
|
|
|
|
should_fail(test_equal(0, 1));
|
|
should_fail(test_equal((std::string)"2", "3"));
|
|
should_fail(test_equal((void *)4, (void *)5));
|
|
|
|
|
|
test_not_equal(0, 1);
|
|
test_not_equal((std::string)"2", "3");
|
|
test_not_equal((void *)4, (void *)5);
|
|
|
|
should_fail(test_not_equal(0, 0));
|
|
should_fail(test_not_equal((std::string)"2", "2"));
|
|
should_fail(test_not_equal((void *)4, (void *)4));
|
|
|
|
|
|
test_for_each(0, 10, 1, test_for_each_body);
|
|
should_fail(test_for_each(0, 15, 1, test_for_each_body));
|
|
|
|
|
|
test_equal(test :: failed, expected_failures);
|
|
test :: failed -= expected_failures;
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
test :: run("Testing Sanity Check", test_tests);
|
|
return 0;
|
|
}
|