mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-02 14:37:30 +00:00
Update cl_git_pass to return more info
This adds a failure reporting function that is called by cl_git_pass which captures the actual error return code and the error message if available in the failure report.
This commit is contained in:
parent
6040616214
commit
e9e20c8474
@ -2,6 +2,16 @@
|
||||
#include "posix.h"
|
||||
#include "path.h"
|
||||
|
||||
void cl_git_report_failure(
|
||||
int error, const char *file, int line, const char *fncall)
|
||||
{
|
||||
char msg[4096];
|
||||
const git_error *last = giterr_last();
|
||||
p_snprintf(msg, 4096, "error %d - %s",
|
||||
error, last ? last->message : "<no message>");
|
||||
clar__assert(0, file, line, fncall, msg, 1);
|
||||
}
|
||||
|
||||
void cl_git_mkfile(const char *filename, const char *content)
|
||||
{
|
||||
int fd;
|
||||
|
@ -6,17 +6,17 @@
|
||||
#include "common.h"
|
||||
|
||||
/**
|
||||
* Special wrapper for `clar_must_pass` that passes
|
||||
* the last library error as the test failure message.
|
||||
* Replace for `clar_must_pass` that passes the last library error as the
|
||||
* test failure message.
|
||||
*
|
||||
* Use this wrapper around all `git_` library calls that
|
||||
* return error codes!
|
||||
* Use this wrapper around all `git_` library calls that return error codes!
|
||||
*/
|
||||
#define cl_git_pass(expr) do { \
|
||||
int _lg2_error; \
|
||||
giterr_clear(); \
|
||||
if ((expr) != 0) \
|
||||
clar__assert(0, __FILE__, __LINE__, "Function call failed: " #expr, giterr_last() ? giterr_last()->message : NULL, 1); \
|
||||
} while(0)
|
||||
if ((_lg2_error = (expr)) != 0) \
|
||||
cl_git_report_failure(_lg2_error, __FILE__, __LINE__, "Function call failed: " #expr); \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* Wrapper for `clar_must_fail` -- this one is
|
||||
@ -25,6 +25,10 @@
|
||||
*/
|
||||
#define cl_git_fail(expr) cl_must_fail(expr)
|
||||
|
||||
#define cl_git_fail_with(expr, error) cl_assert_equal_i(error,expr)
|
||||
|
||||
void cl_git_report_failure(int, const char *, int, const char *);
|
||||
|
||||
#define cl_assert_equal_sz(sz1,sz2) cl_assert((sz1) == (sz2))
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user