Git fork
at reftables-rust 52 lines 1.5 kB view raw
1#!/bin/sh 2 3test_description='check handling of .gitmodule path with dash' 4GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main 5export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME 6 7. ./test-lib.sh 8 9test_expect_success 'setup' ' 10 git config --global protocol.file.allow always 11' 12 13test_expect_success 'create submodule with dash in path' ' 14 git init upstream && 15 git -C upstream commit --allow-empty -m base && 16 git submodule add ./upstream sub && 17 git mv sub ./-sub && 18 git commit -m submodule 19' 20 21test_expect_success 'clone rejects unprotected dash' ' 22 test_when_finished "rm -rf dst" && 23 git clone --recurse-submodules . dst 2>err && 24 test_grep ignoring err 25' 26 27test_expect_success 'fsck rejects unprotected dash' ' 28 test_when_finished "rm -rf dst" && 29 git init --bare dst && 30 git -C dst config transfer.fsckObjects true && 31 test_must_fail git push dst HEAD 2>err && 32 grep gitmodulesPath err 33' 34 35test_expect_success MINGW 'submodule paths disallows trailing spaces' ' 36 git init super && 37 test_must_fail git -C super submodule add ../upstream "sub " && 38 39 : add "sub", then rename "sub" to "sub ", the hard way && 40 git -C super submodule add ../upstream sub && 41 tree=$(git -C super write-tree) && 42 git -C super ls-tree $tree >tree && 43 sed "s/sub/sub /" <tree >tree.new && 44 tree=$(git -C super mktree <tree.new) && 45 commit=$(echo with space | git -C super commit-tree $tree) && 46 git -C super update-ref refs/heads/main $commit && 47 48 test_must_fail git clone --recurse-submodules super dst 2>err && 49 test_grep "sub " err 50' 51 52test_done