mirror of
https://github.com/git/git
synced 2024-10-29 17:08:46 +00:00
Merge branch 'as/check-ignore'
"git check-ignore ." segfaulted, as a function it calls deep in its callchain took a string in the <ptr, length> form but did not stop when given an empty string. * as/check-ignore: name-hash: allow hashing an empty string t0008: document test_expect_success_multi
This commit is contained in:
commit
ef94636a4d
3 changed files with 18 additions and 3 deletions
|
@ -89,7 +89,7 @@ static int check_ignore(const char *prefix, const char **pathspec)
|
|||
? strlen(prefix) : 0, path);
|
||||
full_path = check_path_for_gitlink(full_path);
|
||||
die_if_path_beyond_symlink(full_path, prefix);
|
||||
if (!seen[i] && path[0]) {
|
||||
if (!seen[i]) {
|
||||
exclude = last_exclude_matching_path(&check, full_path,
|
||||
-1, &dtype);
|
||||
if (exclude) {
|
||||
|
|
|
@ -24,11 +24,11 @@ static unsigned int hash_name(const char *name, int namelen)
|
|||
{
|
||||
unsigned int hash = 0x123;
|
||||
|
||||
do {
|
||||
while (namelen--) {
|
||||
unsigned char c = *name++;
|
||||
c = icase_hash(c);
|
||||
hash = hash*101 + c;
|
||||
} while (--namelen);
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
|
|
|
@ -75,6 +75,16 @@ test_check_ignore () {
|
|||
stderr_empty_on_success "$expect_code"
|
||||
}
|
||||
|
||||
# Runs the same code with 3 different levels of output verbosity,
|
||||
# expecting success each time. Takes advantage of the fact that
|
||||
# check-ignore --verbose output is the same as normal output except
|
||||
# for the extra first column.
|
||||
#
|
||||
# Arguments:
|
||||
# - (optional) prereqs for this test, e.g. 'SYMLINKS'
|
||||
# - test name
|
||||
# - output to expect from -v / --verbose mode
|
||||
# - code to run (should invoke test_check_ignore)
|
||||
test_expect_success_multi () {
|
||||
prereq=
|
||||
if test $# -eq 4
|
||||
|
@ -128,6 +138,7 @@ test_expect_success 'setup' '
|
|||
cat <<-\EOF >.gitignore &&
|
||||
one
|
||||
ignored-*
|
||||
top-level-dir/
|
||||
EOF
|
||||
for dir in . a
|
||||
do
|
||||
|
@ -167,6 +178,10 @@ test_expect_success 'setup' '
|
|||
#
|
||||
# test invalid inputs
|
||||
|
||||
test_expect_success_multi '. corner-case' '' '
|
||||
test_check_ignore . 1
|
||||
'
|
||||
|
||||
test_expect_success_multi 'empty command line' '' '
|
||||
test_check_ignore "" 128 &&
|
||||
stderr_contains "fatal: no path specified"
|
||||
|
|
Loading…
Reference in a new issue