| #!/bin/sh |
| test_description='test wildcards and literals with git add/commit (subshell style)' |
| |
| . ./test-lib.sh |
| |
| test_have_prereq BSLASHPSPEC || { |
| skip_all='skipping: needs BSLASHPSPEC (backslashes in pathspecs)' |
| test_done |
| } |
| |
| prepare_test_files () { |
| for f in "*" "**" "?" "[abc]" "a" "f*" "f**" "f?z" "foo*bar" "hello?world" "hello_world" |
| do |
| >"$f" || return |
| done |
| } |
| |
| test_expect_success 'add wildcard *' ' |
| git init test-asterisk && |
| ( |
| cd test-asterisk && |
| prepare_test_files && |
| git add "*" && |
| cat >expect <<-EOF && |
| * |
| ** |
| ? |
| [abc] |
| a |
| f* |
| f** |
| f?z |
| foo*bar |
| hello?world |
| hello_world |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add literal \*' ' |
| git init test-asterisk-literal && |
| ( |
| cd test-asterisk-literal && |
| prepare_test_files && |
| git add "\*" && |
| cat >expect <<-EOF && |
| * |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard **' ' |
| git init test-dstar && |
| ( |
| cd test-dstar && |
| prepare_test_files && |
| git add "**" && |
| cat >expect <<-EOF && |
| * |
| ** |
| ? |
| [abc] |
| a |
| f* |
| f** |
| f?z |
| foo*bar |
| hello?world |
| hello_world |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard ?' ' |
| git init test-qmark && |
| ( |
| cd test-qmark && |
| prepare_test_files && |
| git add "?" && |
| cat >expect <<-\EOF | sort && |
| * |
| ? |
| a |
| EOF |
| git ls-files | sort >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard [abc]' ' |
| git init test-brackets && |
| ( |
| cd test-brackets && |
| prepare_test_files && |
| git add "[abc]" && |
| cat >expect <<-\EOF | sort && |
| [abc] |
| a |
| EOF |
| git ls-files | sort >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard f*' ' |
| git init test-f-wild && |
| ( |
| cd test-f-wild && |
| prepare_test_files && |
| git add "f*" && |
| cat >expect <<-\EOF | sort && |
| f* |
| f** |
| f?z |
| foo*bar |
| EOF |
| git ls-files | sort >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add literal f\*' ' |
| git init test-f-lit && |
| ( |
| cd test-f-lit && |
| prepare_test_files && |
| git add "f\*" && |
| cat >expect <<-\EOF && |
| f* |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard f**' ' |
| git init test-fdstar && |
| ( |
| cd test-fdstar && |
| prepare_test_files && |
| git add "f**" && |
| cat >expect <<-\EOF | sort && |
| f* |
| f** |
| f?z |
| foo*bar |
| EOF |
| git ls-files | sort >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add literal f\*\*' ' |
| git init test-fdstar-lit && |
| ( |
| cd test-fdstar-lit && |
| prepare_test_files && |
| git add "f\*\*" && |
| cat >expect <<-\EOF && |
| f** |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard f?z' ' |
| git init test-fqz && |
| ( |
| cd test-fqz && |
| prepare_test_files && |
| git add "f?z" && |
| cat >expect <<-\EOF && |
| f?z |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add literal \?' ' |
| git init test-q-lit && |
| ( |
| cd test-q-lit && |
| prepare_test_files && |
| git add "\?" && |
| cat >expect <<-\EOF && |
| ? |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard foo*bar' ' |
| git init test-foobar && |
| ( |
| cd test-foobar && |
| prepare_test_files && |
| git add "foo*bar" && |
| cat >expect <<-\EOF && |
| foo*bar |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add wildcard hello?world' ' |
| git init test-hellowild && |
| ( |
| cd test-hellowild && |
| prepare_test_files && |
| git add "hello?world" && |
| cat >expect <<-\EOF && |
| hello?world |
| hello_world |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add literal hello\?world' ' |
| git init test-hellolit && |
| ( |
| cd test-hellolit && |
| prepare_test_files && |
| git add "hello\?world" && |
| cat >expect <<-\EOF && |
| hello?world |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'add literal \[abc\]' ' |
| git init test-brackets-lit && |
| ( |
| cd test-brackets-lit && |
| prepare_test_files && |
| git add "\[abc\]" && |
| cat >expect <<-\EOF && |
| [abc] |
| EOF |
| git ls-files >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: wildcard *' ' |
| git init test-c-asterisk && |
| ( |
| cd test-c-asterisk && |
| prepare_test_files && |
| git add . && |
| git commit -m "c1" -- "*" && |
| cat >expect <<-EOF && |
| * |
| ** |
| ? |
| [abc] |
| a |
| f* |
| f** |
| f?z |
| foo*bar |
| hello?world |
| hello_world |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: literal \*' ' |
| git init test-c-asterisk-lit && |
| ( |
| cd test-c-asterisk-lit && |
| prepare_test_files && |
| git add . && |
| git commit -m "c2" -- "\*" && |
| cat >expect <<-EOF && |
| * |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: wildcard f*' ' |
| git init test-c-fwild && |
| ( |
| cd test-c-fwild && |
| prepare_test_files && |
| git add . && |
| git commit -m "c3" -- "f*" && |
| cat >expect <<-EOF && |
| f* |
| f** |
| f?z |
| foo*bar |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: literal f\*' ' |
| git init test-c-flit && |
| ( |
| cd test-c-flit && |
| prepare_test_files && |
| git add . && |
| git commit -m "c4" -- "f\*" && |
| cat >expect <<-EOF && |
| f* |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: wildcard f**' ' |
| git init test-c-pathlimit && |
| ( |
| cd test-c-pathlimit && |
| prepare_test_files && |
| git add . && |
| git commit -m "c5" -- "f**" && |
| cat >expect <<-EOF && |
| f* |
| f** |
| f?z |
| foo*bar |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: literal f\*\*' ' |
| git init test-c-fdstar-lit && |
| ( |
| cd test-c-fdstar-lit && |
| prepare_test_files && |
| git add . && |
| git commit -m "c6" -- "f\*\*" && |
| cat >expect <<-EOF && |
| f** |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: wildcard ?' ' |
| git init test-c-qwild && |
| ( |
| cd test-c-qwild && |
| prepare_test_files && |
| git add . && |
| git commit -m "c7" -- "?" && |
| cat >expect <<-EOF && |
| * |
| ? |
| a |
| EOF |
| git ls-tree -r --name-only HEAD | sort >actual && |
| sort expect >expect.sorted && |
| test_cmp expect.sorted actual |
| ) |
| ' |
| |
| test_expect_success 'commit: literal \?' ' |
| git init test-c-qlit && |
| ( |
| cd test-c-qlit && |
| prepare_test_files && |
| git add . && |
| git commit -m "c8" -- "\?" && |
| cat >expect <<-EOF && |
| ? |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_expect_success 'commit: wildcard hello?world' ' |
| git init test-c-hellowild && |
| ( |
| cd test-c-hellowild && |
| prepare_test_files && |
| git add . && |
| git commit -m "c9" -- "hello?world" && |
| cat >expect <<-EOF && |
| hello?world |
| hello_world |
| EOF |
| git ls-tree -r --name-only HEAD | sort >actual && |
| sort expect >expect.sorted && |
| test_cmp expect.sorted actual |
| ) |
| ' |
| |
| test_expect_success 'commit: literal hello\?world' ' |
| git init test-c-hellolit && |
| ( |
| cd test-c-hellolit && |
| prepare_test_files && |
| git add . && |
| git commit -m "c10" -- "hello\?world" && |
| cat >expect <<-EOF && |
| hello?world |
| EOF |
| git ls-tree -r --name-only HEAD >actual && |
| test_cmp expect actual |
| ) |
| ' |
| |
| test_done |