mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-07 07:52:30 +00:00
Update clar to latest version
This commit is contained in:
parent
de0555a347
commit
f418334760
@ -183,10 +183,10 @@ clar_run_test(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clar_run_suite(const struct clar_suite *suite, const char *name)
|
clar_run_suite(const struct clar_suite *suite, const char *filter)
|
||||||
{
|
{
|
||||||
const struct clar_func *test = suite->tests;
|
const struct clar_func *test = suite->tests;
|
||||||
size_t i, namelen;
|
size_t i, matchlen;
|
||||||
|
|
||||||
if (!suite->enabled)
|
if (!suite->enabled)
|
||||||
return;
|
return;
|
||||||
@ -200,21 +200,21 @@ clar_run_suite(const struct clar_suite *suite, const char *name)
|
|||||||
_clar.active_suite = suite->name;
|
_clar.active_suite = suite->name;
|
||||||
_clar.suite_errors = 0;
|
_clar.suite_errors = 0;
|
||||||
|
|
||||||
if (name) {
|
if (filter) {
|
||||||
size_t suitelen = strlen(suite->name);
|
size_t suitelen = strlen(suite->name);
|
||||||
namelen = strlen(name);
|
matchlen = strlen(filter);
|
||||||
if (namelen <= suitelen) {
|
if (matchlen <= suitelen) {
|
||||||
name = NULL;
|
filter = NULL;
|
||||||
} else {
|
} else {
|
||||||
name += suitelen;
|
filter += suitelen;
|
||||||
while (*name == ':')
|
while (*filter == ':')
|
||||||
++name;
|
++filter;
|
||||||
namelen = strlen(name);
|
matchlen = strlen(filter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < suite->test_count; ++i) {
|
for (i = 0; i < suite->test_count; ++i) {
|
||||||
if (name && strncmp(test[i].name, name, namelen))
|
if (filter && strncmp(test[i].name, filter, matchlen))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
_clar.active_test = test[i].name;
|
_clar.active_test = test[i].name;
|
||||||
@ -230,7 +230,7 @@ clar_usage(const char *arg)
|
|||||||
{
|
{
|
||||||
printf("Usage: %s [options]\n\n", arg);
|
printf("Usage: %s [options]\n\n", arg);
|
||||||
printf("Options:\n");
|
printf("Options:\n");
|
||||||
printf(" -sname\tRun only the suite with `name`\n");
|
printf(" -sname\tRun only the suite with `name` (can go to individual test name)\n");
|
||||||
printf(" -iname\tInclude the suite with `name`\n");
|
printf(" -iname\tInclude the suite with `name`\n");
|
||||||
printf(" -xname\tExclude the suite with `name`\n");
|
printf(" -xname\tExclude the suite with `name`\n");
|
||||||
printf(" -q \tOnly report tests that had an error\n");
|
printf(" -q \tOnly report tests that had an error\n");
|
||||||
@ -256,21 +256,20 @@ clar_parse_args(int argc, char **argv)
|
|||||||
case 'x': { /* given suite name */
|
case 'x': { /* given suite name */
|
||||||
int offset = (argument[2] == '=') ? 3 : 2, found = 0;
|
int offset = (argument[2] == '=') ? 3 : 2, found = 0;
|
||||||
char action = argument[1];
|
char action = argument[1];
|
||||||
size_t j, len, cmplen;
|
size_t j, arglen, suitelen, cmplen;
|
||||||
|
|
||||||
argument += offset;
|
argument += offset;
|
||||||
len = strlen(argument);
|
arglen = strlen(argument);
|
||||||
|
|
||||||
if (len == 0)
|
if (arglen == 0)
|
||||||
clar_usage(argv[0]);
|
clar_usage(argv[0]);
|
||||||
|
|
||||||
for (j = 0; j < _clar_suite_count; ++j) {
|
for (j = 0; j < _clar_suite_count; ++j) {
|
||||||
cmplen = strlen(_clar_suites[j].name);
|
suitelen = strlen(_clar_suites[j].name);
|
||||||
if (cmplen > len)
|
cmplen = (arglen < suitelen) ? arglen : suitelen;
|
||||||
cmplen = len;
|
|
||||||
|
|
||||||
if (strncmp(argument, _clar_suites[j].name, cmplen) == 0) {
|
if (strncmp(argument, _clar_suites[j].name, cmplen) == 0) {
|
||||||
int exact = !strcmp(argument, _clar_suites[j].name);
|
int exact = (arglen >= suitelen);
|
||||||
|
|
||||||
++found;
|
++found;
|
||||||
|
|
||||||
@ -419,7 +418,16 @@ void clar__assert_equal_s(
|
|||||||
|
|
||||||
if (!match) {
|
if (!match) {
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
snprint_eq(buf, sizeof(buf), "'%s' != '%s'", s1, s2);
|
|
||||||
|
if (s1 && s2) {
|
||||||
|
int pos;
|
||||||
|
for (pos = 0; s1[pos] == s2[pos] && s1[pos] && s2[pos]; ++pos)
|
||||||
|
/* find differing byte offset */;
|
||||||
|
snprint_eq(buf, sizeof(buf), "'%s' != '%s' (at byte %d)", s1, s2, pos);
|
||||||
|
} else {
|
||||||
|
snprint_eq(buf, sizeof(buf), "'%s' != '%s'", s1, s2);
|
||||||
|
}
|
||||||
|
|
||||||
clar__fail(file, line, err, buf, should_abort);
|
clar__fail(file, line, err, buf, should_abort);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,9 +18,9 @@ static int
|
|||||||
find_tmp_path(char *buffer, size_t length)
|
find_tmp_path(char *buffer, size_t length)
|
||||||
{
|
{
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
static const size_t var_count = 4;
|
static const size_t var_count = 5;
|
||||||
static const char *env_vars[] = {
|
static const char *env_vars[] = {
|
||||||
"TMPDIR", "TMP", "TEMP", "USERPROFILE"
|
"CLAR_TMP", "TMPDIR", "TMP", "TEMP", "USERPROFILE"
|
||||||
};
|
};
|
||||||
|
|
||||||
size_t i;
|
size_t i;
|
||||||
@ -43,6 +43,12 @@ find_tmp_path(char *buffer, size_t length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
DWORD env_len;
|
||||||
|
|
||||||
|
if ((env_len = GetEnvironmentVariable("CLAR_TMP", buffer, length)) > 0 &&
|
||||||
|
env_len < length)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (GetTempPath((DWORD)length, buffer))
|
if (GetTempPath((DWORD)length, buffer))
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
@ -61,9 +67,7 @@ static void clar_unsandbox(void)
|
|||||||
if (_clar_path[0] == '\0')
|
if (_clar_path[0] == '\0')
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
chdir("..");
|
chdir("..");
|
||||||
#endif
|
|
||||||
|
|
||||||
fs_rm(_clar_path);
|
fs_rm(_clar_path);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user