diff options
| author | Vicent Martà <tanoku@gmail.com> | 2011-05-18 16:59:09 -0700 |
|---|---|---|
| committer | Vicent Martà <tanoku@gmail.com> | 2011-05-18 16:59:09 -0700 |
| commit | 05e5857614a01981356fa31d404c2dec5d9f22ed (patch) | |
| tree | 555d1d5fbdd0fb2eae6b8cd1fc858989fc155647 | |
| parent | ba9cc91fd71371c5d8ece0e7ebd2972ec319e27f (diff) | |
| parent | 6628c2560c73315a208378919510e1c2cf01f4cd (diff) | |
| download | libgit2-05e5857614a01981356fa31d404c2dec5d9f22ed.tar.gz | |
Merge pull request #194 from schu/must-pass-ret
test_lib: add return value to git_test
| -rwxr-xr-x | tests/test_lib.c | 18 | ||||
| -rwxr-xr-x | tests/test_lib.h | 3 |
2 files changed, 17 insertions, 4 deletions
diff --git a/tests/test_lib.c b/tests/test_lib.c index 5778404c1..026428f21 100755 --- a/tests/test_lib.c +++ b/tests/test_lib.c @@ -16,6 +16,8 @@ struct git_test { char *failed_pos; char *description; + int ret_value; + git_testfunc function; unsigned failed:1, ran:1; jmp_buf *jump; @@ -60,6 +62,7 @@ static git_test *create_test(git_testfunc function) t->ran = 0; t->description = NULL; t->message = NULL; + t->ret_value = 0; t->failed_pos = NULL; t->function = function; t->jump = NULL; @@ -78,7 +81,7 @@ void git_test__init(git_test *t, const char *name, const char *description) * Public assert methods *-------------------------------------------------------------------------*/ -static void fail_test(git_test *tc, const char *file, int line, const char *message) +static void fail_test(git_test *tc, const char *file, int line, const char *message, int ret_value) { char buf[1024]; @@ -86,6 +89,7 @@ static void fail_test(git_test *tc, const char *file, int line, const char *mess tc->failed = 1; tc->message = strdup(message); + tc->ret_value = ret_value; tc->failed_pos = strdup(buf); if (tc->jump != 0) @@ -94,13 +98,19 @@ static void fail_test(git_test *tc, const char *file, int line, const char *mess void git_test__fail(git_test *tc, const char *file, int line, const char *message) { - fail_test(tc, file, line, message); + fail_test(tc, file, line, message, 0); } void git_test__assert(git_test *tc, const char *file, int line, const char *message, int condition) { if (condition == 0) - fail_test(tc, file, line, message); + fail_test(tc, file, line, message, 0); +} + +void git_test__assert_pass(git_test *tc, const char *file, int line, const char *message, int ret_value) +{ + if (ret_value < 0) + fail_test(tc, file, line, message, ret_value); } /*-------------------------------------------------------------------------* @@ -157,6 +167,8 @@ static void print_details(git_testsuite *ts) failCount++; printf(" %d) \"%s\" [test %s @ %s]\n\t%s\n", failCount, tc->description, tc->name, tc->failed_pos, tc->message); + if (tc->ret_value) + printf("\tError: (%d) %s\n", tc->ret_value, git_lasterror()); } } } diff --git a/tests/test_lib.h b/tests/test_lib.h index d0b62c8d4..f3febe857 100755 --- a/tests/test_lib.h +++ b/tests/test_lib.h @@ -38,8 +38,9 @@ typedef git_testsuite *(*libgit2_suite)(void); void git_test__init(git_test *t, const char *name, const char *description); void git_test__fail(git_test *tc, const char *file, int line, const char *message); void git_test__assert(git_test *tc, const char *file, int line, const char *message, int condition); +void git_test__assert_pass(git_test *tc, const char *file, int line, const char *message, int ret_value); -#define must_pass(expr) git_test__assert(_gittest, __FILE__, __LINE__, "Method failed: " #expr, (expr) == 0) +#define must_pass(expr) git_test__assert_pass(_gittest, __FILE__, __LINE__, "Method failed: " #expr, (expr)) #define must_fail(expr) git_test__assert(_gittest, __FILE__, __LINE__, "Expected method to fail: " #expr, (expr) < 0) #define must_be_true(expr) git_test__assert(_gittest, __FILE__, __LINE__, "Expression is not true: " #expr, !!(expr)) |
