test: Print last error message properly
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
diff --git a/tests/test_lib.c b/tests/test_lib.c
index aaacdff..3136eb0 100755
--- a/tests/test_lib.c
+++ b/tests/test_lib.c
@@ -15,8 +15,7 @@ struct git_test {
char *message;
char *failed_pos;
char *description;
-
- int ret_value;
+ char *error_message;
git_testfunc function;
unsigned failed:1, ran:1;
@@ -36,6 +35,7 @@ static void test_free(git_test *t)
free(t->description);
free(t->failed_pos);
free(t->message);
+ free(t->error_message);
free(t);
}
}
@@ -57,15 +57,8 @@ static git_test *create_test(git_testfunc function)
{
git_test *t = DO_ALLOC(git_test);
- t->name = NULL;
- t->failed = 0;
- t->ran = 0;
- t->description = NULL;
- t->message = NULL;
- t->ret_value = 0;
- t->failed_pos = NULL;
+ memset(t, 0x0, sizeof(git_test));
t->function = function;
- t->jump = NULL;
return t;
}
@@ -81,7 +74,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, int ret_value)
+static void fail_test(git_test *tc, const char *file, int line, const char *message)
{
char buf[1024];
@@ -89,8 +82,8 @@ 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);
+ tc->error_message = strdup(git_lasterror());
if (tc->jump != 0)
longjmp(*(tc->jump), 0);
@@ -98,19 +91,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, 0);
+ fail_test(tc, file, line, message);
}
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, 0);
+ fail_test(tc, file, line, message);
}
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);
+ fail_test(tc, file, line, message);
}
/*-------------------------------------------------------------------------*
@@ -167,8 +160,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());
+ if (tc->error_message)
+ printf("\tError: %s\n", tc->error_message);
}
}
}