| #!/bin/sh |
| |
| test_description='overly long paths' |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./test-lib.sh |
| |
| test_expect_success setup ' |
| p=filefilefilefilefilefilefilefile && |
| p=$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p && |
| p=$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p && |
| |
| path_a=${p}_a && |
| path_z=${p}_z && |
| |
| blob_a=$(echo frotz | git hash-object -w --stdin) && |
| blob_z=$(echo nitfol | git hash-object -w --stdin) && |
| |
| pat="100644 %s 0\t%s\n" |
| ' |
| |
| test_expect_success 'overly-long path by itself is not a problem' ' |
| printf "$pat" "$blob_a" "$path_a" | |
| git update-index --add --index-info && |
| echo "$path_a" >expect && |
| git ls-files >actual && |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'overly-long path does not replace another by mistake' ' |
| printf "$pat" "$blob_a" "$path_a" "$blob_z" "$path_z" | |
| git update-index --add --index-info && |
| ( |
| echo "$path_a" && |
| echo "$path_z" |
| ) >expect && |
| git ls-files >actual && |
| test_cmp expect actual |
| ' |
| |
| test_done |