mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-07 01:42:27 +00:00
test: Properly show error messages
This commit is contained in:
parent
5cf1f909e4
commit
ab7941b5d9
@ -146,6 +146,11 @@ GIT_EXTERN(const char *) git_lasterror(void);
|
|||||||
*/
|
*/
|
||||||
GIT_EXTERN(const char *) git_strerror(int num);
|
GIT_EXTERN(const char *) git_strerror(int num);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear the latest library error
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(void) git_clearerror(void);
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
GIT_END_DECL
|
GIT_END_DECL
|
||||||
#endif
|
#endif
|
||||||
|
@ -108,6 +108,13 @@ int git__throw(int error, const char *msg, ...)
|
|||||||
|
|
||||||
const char *git_lasterror(void)
|
const char *git_lasterror(void)
|
||||||
{
|
{
|
||||||
|
if (!g_last_error[0])
|
||||||
|
return NULL;
|
||||||
|
|
||||||
return g_last_error;
|
return g_last_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void git_clearerror(void)
|
||||||
|
{
|
||||||
|
g_last_error[0] = '\0';
|
||||||
|
}
|
||||||
|
@ -123,8 +123,7 @@ int gitfo_isdir(const char *path)
|
|||||||
struct stat st;
|
struct stat st;
|
||||||
int len, stat_error;
|
int len, stat_error;
|
||||||
|
|
||||||
if (!path)
|
assert(path);
|
||||||
return git__throw(GIT_ENOTFOUND, "No path given to gitfo_isdir");
|
|
||||||
|
|
||||||
len = strlen(path);
|
len = strlen(path);
|
||||||
|
|
||||||
@ -140,10 +139,10 @@ int gitfo_isdir(const char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (stat_error < GIT_SUCCESS)
|
if (stat_error < GIT_SUCCESS)
|
||||||
return git__throw(GIT_ENOTFOUND, "%s does not exist", path);
|
return GIT_ERROR;
|
||||||
|
|
||||||
if (!S_ISDIR(st.st_mode))
|
if (!S_ISDIR(st.st_mode))
|
||||||
return git__throw(GIT_ENOTFOUND, "%s is not a directory", path);
|
return GIT_ERROR;
|
||||||
|
|
||||||
return GIT_SUCCESS;
|
return GIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -77,13 +77,16 @@ void git_test__init(git_test *t, const char *name, const char *description)
|
|||||||
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)
|
||||||
{
|
{
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
|
const char *last_error = git_lasterror();
|
||||||
|
|
||||||
snprintf(buf, 1024, "%s:%d", file, line);
|
snprintf(buf, 1024, "%s:%d", file, line);
|
||||||
|
|
||||||
tc->failed = 1;
|
tc->failed = 1;
|
||||||
tc->message = strdup(message);
|
tc->message = strdup(message);
|
||||||
tc->failed_pos = strdup(buf);
|
tc->failed_pos = strdup(buf);
|
||||||
tc->error_message = strdup(git_lasterror());
|
|
||||||
|
if (last_error)
|
||||||
|
tc->error_message = strdup(last_error);
|
||||||
|
|
||||||
if (tc->jump != 0)
|
if (tc->jump != 0)
|
||||||
longjmp(*(tc->jump), 0);
|
longjmp(*(tc->jump), 0);
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#define BEGIN_TEST(TNAME, DESC) \
|
#define BEGIN_TEST(TNAME, DESC) \
|
||||||
static void _gittest__##TNAME(git_test *_gittest) { \
|
static void _gittest__##TNAME(git_test *_gittest) { \
|
||||||
git_test__init(_gittest, #TNAME, DESC); \
|
git_test__init(_gittest, #TNAME, DESC); \
|
||||||
|
git_clearerror();\
|
||||||
{\
|
{\
|
||||||
|
|
||||||
#define END_TEST }}
|
#define END_TEST }}
|
||||||
|
Loading…
Reference in New Issue
Block a user