On 2/8/2018 12:21 PM, Torsten Bögershausen wrote:
On Wed, Feb 07, 2018 at 07:41:56PM -0500, Ben Peart wrote:
[]
diff --git a/t/t0050-filesystem.sh b/t/t0050-filesystem.sh
index b29d749bb7..219c96594c 100755
--- a/t/t0050-filesystem.sh
+++ b/t/t0050-filesystem.sh
@@ -80,7 +80,17 @@ test_expect_success 'merge (case change)' '
git merge topic
'
-
+test_expect_success CASE_INSENSITIVE_FS 'add directory (with different case)' '
+ git reset --hard initial &&
+ mkdir -p dir1 &&
+ mkdir -p dir1/dir2 &&
+ touch dir1/dir2/a &&
+ touch dir1/dir2/b &&
+ git add dir1/dir2/a &&
+ git add dir1/DIR2/b &&
+ camel=$(git ls-files | grep dir2) &&
+ test $(echo "$camel" | wc -l) = 2
+'
There is nothing wrong with with "wc -l", but:
a more new-style would probably use test_line_count() here.
My personal favorite would be to spell out what we expect and run a diff.
When it fails, we can see what fails, and the function would look
like this:
I agree with you completely that this is a better format and is easier
to read. All the new tests I've been writing follow this same pattern.
In this particular test file, I opted (for better and for worse) to
stick with the style of all the other tests rather than 1) have this one
test be very different than all the others or 2) rewriting all the
existing tests in the new style.
test_expect_success CASE_INSENSITIVE_FS 'add directory (with different case)' '
git reset --hard initial &&
mkdir -p dir1 &&
mkdir -p dir1/dir2 &&
touch dir1/dir2/a &&
touch dir1/dir2/b &&
git add dir1/dir2/a &&
git add dir1/DIR2/b &&
git ls-files | grep dir2 | sort >actual &&
cat >expected <<-\EOF &&
dir1/dir2/a
dir1/dir2/b
EOF
test_cmp expected actual
'