зеркало из https://github.com/microsoft/git.git
Merge branch 'rj/test-regex'
Git ships with a fall-back regexp implementation for platforms with buggy regexp library; give people a tool to see if they should be using it on their platform. * rj/test-regex: test-regex: Add a test to check for a bug in the regex routines
This commit is contained in:
Коммит
efe0a206a2
|
@ -189,6 +189,7 @@
|
|||
/test-mktemp
|
||||
/test-parse-options
|
||||
/test-path-utils
|
||||
/test-regex
|
||||
/test-revision-walking
|
||||
/test-run-command
|
||||
/test-sha1
|
||||
|
|
1
Makefile
1
Makefile
|
@ -496,6 +496,7 @@ TEST_PROGRAMS_NEED_X += test-mergesort
|
|||
TEST_PROGRAMS_NEED_X += test-mktemp
|
||||
TEST_PROGRAMS_NEED_X += test-parse-options
|
||||
TEST_PROGRAMS_NEED_X += test-path-utils
|
||||
TEST_PROGRAMS_NEED_X += test-regex
|
||||
TEST_PROGRAMS_NEED_X += test-revision-walking
|
||||
TEST_PROGRAMS_NEED_X += test-run-command
|
||||
TEST_PROGRAMS_NEED_X += test-scrap-cache-tree
|
||||
|
|
|
@ -25,4 +25,9 @@ test_expect_success POSIXPERM 'mktemp to unwritable directory prints filename' '
|
|||
grep "cannotwrite/test" err
|
||||
'
|
||||
|
||||
test_expect_success 'check for a bug in the regex routines' '
|
||||
# if this test fails, re-build git with NO_REGEX=1
|
||||
test-regex
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
#include <git-compat-util.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char *pat = "[^={} \t]+";
|
||||
char *str = "={}\nfred";
|
||||
regex_t r;
|
||||
regmatch_t m[1];
|
||||
|
||||
if (regcomp(&r, pat, REG_EXTENDED | REG_NEWLINE))
|
||||
die("failed regcomp() for pattern '%s'", pat);
|
||||
if (regexec(&r, str, 1, m, 0))
|
||||
die("no match of pattern '%s' to string '%s'", pat, str);
|
||||
|
||||
/* http://sourceware.org/bugzilla/show_bug.cgi?id=3957 */
|
||||
if (m[0].rm_so == 3) /* matches '\n' when it should not */
|
||||
die("regex bug confirmed: re-build git with NO_REGEX=1");
|
||||
|
||||
exit(0);
|
||||
}
|
Загрузка…
Ссылка в новой задаче