mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-03 04:01:41 +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 "posix.h"
|
||||||
#include "path.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)
|
void cl_git_mkfile(const char *filename, const char *content)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
|
@ -6,17 +6,17 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Special wrapper for `clar_must_pass` that passes
|
* Replace for `clar_must_pass` that passes the last library error as the
|
||||||
* the last library error as the test failure message.
|
* test failure message.
|
||||||
*
|
*
|
||||||
* Use this wrapper around all `git_` library calls that
|
* Use this wrapper around all `git_` library calls that return error codes!
|
||||||
* return error codes!
|
|
||||||
*/
|
*/
|
||||||
#define cl_git_pass(expr) do { \
|
#define cl_git_pass(expr) do { \
|
||||||
|
int _lg2_error; \
|
||||||
giterr_clear(); \
|
giterr_clear(); \
|
||||||
if ((expr) != 0) \
|
if ((_lg2_error = (expr)) != 0) \
|
||||||
clar__assert(0, __FILE__, __LINE__, "Function call failed: " #expr, giterr_last() ? giterr_last()->message : NULL, 1); \
|
cl_git_report_failure(_lg2_error, __FILE__, __LINE__, "Function call failed: " #expr); \
|
||||||
} while(0)
|
} while (0)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wrapper for `clar_must_fail` -- this one is
|
* 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(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))
|
#define cl_assert_equal_sz(sz1,sz2) cl_assert((sz1) == (sz2))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user