mirror of
https://github.com/git/git
synced 2024-08-23 18:00:25 +00:00
![Ævar Arnfjörð Bjarmason](/assets/img/avatar_default.png)
Change those tests that assumed that a .git/info directory would be created for them when writing .git/info/attributes to explicitly create the directory by setting "TEST_CREATE_REPO_NO_TEMPLATE=1" before sourcing test-lib.sh, and using the "--template=" argument to "git clone". The change here in here in t7814-grep-recurse-submodules.sh would continue "succeeding" with only the "TEST_CREATE_REPO_NO_TEMPLATE=1" part of this change. That's because those tests use "test_expect_failure", so they'd "pass" without this change, as "test_expect_failure" by design isn't discerning about what failure conditions it'll accept. But as we're fixing these sorts of issues across the test suite let's fix this one too. This issue was spotted with a local merge with another topic of mine[1], which introduces a stricter alternative to "test_expect_failure". 1. https://lore.kernel.org/git/cover-0.7-00000000000-20220318T002951Z-avarab@gmail.com/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
89 lines
3 KiB
Bash
Executable file
89 lines
3 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='git archive attribute pattern tests'
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
TEST_CREATE_REPO_NO_TEMPLATE=1
|
|
. ./test-lib.sh
|
|
|
|
test_expect_exists() {
|
|
test_expect_success " $1 exists" "test -e $1"
|
|
}
|
|
|
|
test_expect_missing() {
|
|
test_expect_success " $1 does not exist" "test ! -e $1"
|
|
}
|
|
|
|
test_expect_success 'setup' '
|
|
echo ignored >ignored &&
|
|
mkdir .git/info &&
|
|
echo ignored export-ignore >>.git/info/attributes &&
|
|
git add ignored &&
|
|
|
|
mkdir not-ignored-dir &&
|
|
echo ignored-in-tree >not-ignored-dir/ignored &&
|
|
echo not-ignored-in-tree >not-ignored-dir/ignored-only-if-dir &&
|
|
git add not-ignored-dir &&
|
|
|
|
mkdir ignored-only-if-dir &&
|
|
echo ignored by ignored dir >ignored-only-if-dir/ignored-by-ignored-dir &&
|
|
echo ignored-only-if-dir/ export-ignore >>.git/info/attributes &&
|
|
git add ignored-only-if-dir &&
|
|
|
|
mkdir -p ignored-without-slash &&
|
|
echo "ignored without slash" >ignored-without-slash/foo &&
|
|
git add ignored-without-slash/foo &&
|
|
echo "ignored-without-slash export-ignore" >>.git/info/attributes &&
|
|
|
|
mkdir -p wildcard-without-slash &&
|
|
echo "ignored without slash" >wildcard-without-slash/foo &&
|
|
git add wildcard-without-slash/foo &&
|
|
echo "wild*-without-slash export-ignore" >>.git/info/attributes &&
|
|
|
|
mkdir -p deep/and/slashless &&
|
|
echo "ignored without slash" >deep/and/slashless/foo &&
|
|
git add deep/and/slashless/foo &&
|
|
echo "deep/and/slashless export-ignore" >>.git/info/attributes &&
|
|
|
|
mkdir -p deep/with/wildcard &&
|
|
echo "ignored without slash" >deep/with/wildcard/foo &&
|
|
git add deep/with/wildcard/foo &&
|
|
echo "deep/*t*/wildcard export-ignore" >>.git/info/attributes &&
|
|
|
|
mkdir -p one-level-lower/two-levels-lower/ignored-only-if-dir &&
|
|
echo ignored by ignored dir >one-level-lower/two-levels-lower/ignored-only-if-dir/ignored-by-ignored-dir &&
|
|
git add one-level-lower &&
|
|
|
|
git commit -m. &&
|
|
|
|
git clone --template= --bare . bare &&
|
|
mkdir bare/info &&
|
|
cp .git/info/attributes bare/info/attributes
|
|
'
|
|
|
|
test_expect_success 'git archive' '
|
|
git archive HEAD >archive.tar &&
|
|
(mkdir archive && cd archive && "$TAR" xf -) <archive.tar
|
|
'
|
|
|
|
test_expect_missing archive/ignored
|
|
test_expect_missing archive/not-ignored-dir/ignored
|
|
test_expect_exists archive/not-ignored-dir/ignored-only-if-dir
|
|
test_expect_exists archive/not-ignored-dir/
|
|
test_expect_missing archive/ignored-only-if-dir/
|
|
test_expect_missing archive/ignored-ony-if-dir/ignored-by-ignored-dir
|
|
test_expect_missing archive/ignored-without-slash/ &&
|
|
test_expect_missing archive/ignored-without-slash/foo &&
|
|
test_expect_missing archive/wildcard-without-slash/
|
|
test_expect_missing archive/wildcard-without-slash/foo &&
|
|
test_expect_missing archive/deep/and/slashless/ &&
|
|
test_expect_missing archive/deep/and/slashless/foo &&
|
|
test_expect_missing archive/deep/with/wildcard/ &&
|
|
test_expect_missing archive/deep/with/wildcard/foo &&
|
|
test_expect_missing archive/one-level-lower/
|
|
test_expect_missing archive/one-level-lower/two-levels-lower/ignored-only-if-dir/
|
|
test_expect_missing archive/one-level-lower/two-levels-lower/ignored-ony-if-dir/ignored-by-ignored-dir
|
|
|
|
|
|
test_done
|