mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
Merge branch 'rj/test-regex' into maint-1.7.11
* rj/test-regex: test-regex: Add a test to check for a bug in the regex routines
This commit is contained in:
commit
dabdc0178e
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -186,6 +186,7 @@
|
|||
/test-mktemp
|
||||
/test-parse-options
|
||||
/test-path-utils
|
||||
/test-regex
|
||||
/test-revision-walking
|
||||
/test-run-command
|
||||
/test-sha1
|
||||
|
|
1
Makefile
1
Makefile
|
@ -495,6 +495,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
|
||||
|
|
20
test-regex.c
Normal file
20
test-regex.c
Normal file
|
@ -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);
|
||||
}
|
Loading…
Reference in a new issue