| #!/bin/sh |
| # |
| # Copyright (C) 2020 Shourya Shukla |
| # |
| |
| test_description='Summary support for submodules, adding them using git submodule add |
| |
| This test script tries to verify the sanity of summary subcommand of git submodule |
| while making sure to add submodules using `git submodule add` instead of |
| `git add` as done in t7401. |
| ' |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./test-lib.sh |
| |
| test_expect_success 'setup' ' |
| git config --global protocol.file.allow always |
| ' |
| |
| test_expect_success 'summary test environment setup' ' |
| git init sm && |
| test_commit -C sm "add file" file file-content file-tag && |
| |
| git submodule add ./sm my-subm && |
| test_tick && |
| git commit -m "add submodule" |
| ' |
| |
| test_expect_success 'submodule summary output for initialized submodule' ' |
| test_commit -C sm "add file2" file2 file2-content file2-tag && |
| git submodule update --remote && |
| test_tick && |
| git commit -m "update submodule" my-subm && |
| git submodule summary HEAD^ >actual && |
| rev1=$(git -C sm rev-parse --short HEAD^) && |
| rev2=$(git -C sm rev-parse --short HEAD) && |
| cat >expected <<-EOF && |
| * my-subm ${rev1}...${rev2} (1): |
| > add file2 |
| |
| EOF |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'submodule summary output for deinitialized submodule' ' |
| git submodule deinit my-subm && |
| git submodule summary HEAD^ >actual && |
| test_must_be_empty actual && |
| git submodule update --init my-subm && |
| git submodule summary HEAD^ >actual && |
| rev1=$(git -C sm rev-parse --short HEAD^) && |
| rev2=$(git -C sm rev-parse --short HEAD) && |
| cat >expected <<-EOF && |
| * my-subm ${rev1}...${rev2} (1): |
| > add file2 |
| |
| EOF |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'submodule summary output for submodules with changed paths' ' |
| git mv my-subm subm && |
| git commit -m "change submodule path" && |
| rev=$(git -C sm rev-parse --short HEAD^) && |
| git submodule summary HEAD^^ -- my-subm >actual 2>err && |
| test_must_be_empty err && |
| cat >expected <<-EOF && |
| * my-subm ${rev}...0000000: |
| |
| EOF |
| test_cmp expected actual |
| ' |
| |
| test_done |