[PATCH] t3000 (ls-files -o): modernize style

Subsystems: the rest

STALE3730d

4 messages, 3 authors, 2016-06-15 · open the first message on its own page

[PATCH] t3000 (ls-files -o): modernize style

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:49:06

This script is part of the second batch of tests, from the same day
the test infrastructure was added to git.  Update it to use a more
modern style in the spirit of v1.6.4-rc0~45^2~2 (2009-05-22).
In particular:

 - Put setup code inside test assertions, to avoid unexpected
   breakages and avoid stray output without -v (as t/README
   recommends); and

 - Put the test title on the same line as the "test_expect_success",
   and end the line with a single-quote to begin the body of the test
   which is one multi-line string.

Signed-off-by: Jonathan Nieder <redacted>
---
 t/t3000-ls-files-others.sh |   99 +++++++++++++++++++++-----------------------
 1 files changed, 47 insertions(+), 52 deletions(-)
diff --git a/t/t3000-ls-files-others.sh b/t/t3000-ls-files-others.sh
index 86291e8..2eec011 100755
--- a/t/t3000-ls-files-others.sh
+++ b/t/t3000-ls-files-others.sh
@@ -17,57 +17,52 @@ filesystem.
 '
 . ./test-lib.sh
 
-date >path0
-if test_have_prereq SYMLINKS
-then
-	ln -s xyzzy path1
-else
-	date > path1
-fi
-mkdir path2 path3 path4
-date >path2/file2
-date >path2-junk
-date >path3/file3
-date >path3-junk
-git update-index --add path3-junk path3/file3
-
+test_expect_success 'setup ' '
+	date >path0 &&
+	if test_have_prereq SYMLINKS
+	then
+		ln -s xyzzy path1
+	else
+		date >path1
+	fi &&
+	mkdir path2 path3 path4 &&
+	date >path2/file2 &&
+	date >path2-junk &&
+	date >path3/file3 &&
+	date >path3-junk &&
+	git update-index --add path3-junk path3/file3
+'
+
-cat >expected1 <<EOF
-expected1
-expected2
-expected3
-output
-path0
-path1
-path2-junk
-path2/file2
-EOF
-sed -e 's|path2/file2|path2/|' <expected1 >expected2
-cat <expected2 >expected3
-echo path4/ >>expected2
-
+test_expect_success 'setup: expected output' '
+	cat >expected1 <<-\EOF &&
+	expected1
+	expected2
+	expected3
+	output
+	path0
+	path1
+	path2-junk
+	path2/file2
+	EOF
+
+	sed -e "s|path2/file2|path2/|" <expected1 >expected2 &&
+	cp expected2 expected3 &&
+	echo path4/ >>expected2
+'
+
-test_expect_success \
-    'git ls-files --others to show output.' \
-    'git ls-files --others >output'
-
-test_expect_success \
-    'git ls-files --others should pick up symlinks.' \
-    'test_cmp expected1 output'
-
+test_expect_success 'ls-files --others' '
+	git ls-files --others >output &&
+	test_cmp expected1 output
+'
+
-test_expect_success \
-    'git ls-files --others --directory to show output.' \
-    'git ls-files --others --directory >output'
-
-
-test_expect_success \
-    'git ls-files --others --directory should not get confused.' \
-    'test_cmp expected2 output'
-
+test_expect_success 'ls-files --others --directory' '
+	git ls-files --others --directory >output &&
+	test_cmp expected2 output
+'
+
-test_expect_success \
-    'git ls-files --others --directory --no-empty-directory to show output.' \
-    'git ls-files --others --directory --no-empty-directory >output'
-
-test_expect_success \
-    '--no-empty-directory hides empty directory' \
-    'test_cmp expected3 output'
+test_expect_success '--no-empty-directory hides empty directory' '
+	git ls-files --others --directory --no-empty-directory >output &&
+	test_cmp expected3 output
+'
 
 test_done
-- 
1.7.2.rc2

Re: [PATCH] t3000 (ls-files -o): modernize style

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:49:07

Jonathan Nieder [off-list ref] writes:
This script is part of the second batch of tests, from the same day
the test infrastructure was added to git.  Update it to use a more
modern style in the spirit of v1.6.4-rc0~45^2~2 (2009-05-22).
In particular:

 - Put setup code inside test assertions, to avoid unexpected
   breakages and avoid stray output without -v (as t/README
   recommends); and
O.K., but...
 
-cat >expected1 <<EOF
-expected1
-expected2
-expected3
-output
-path0
-path1
-path2-junk
-path2/file2
-EOF
-sed -e 's|path2/file2|path2/|' <expected1 >expected2
-cat <expected2 >expected3
-echo path4/ >>expected2
-
+test_expect_success 'setup: expected output' '
+	cat >expected1 <<-\EOF &&
+	expected1
+	expected2
+	expected3
+	output
+	path0
+	path1
+	path2-junk
+	path2/file2
+	EOF
+
+	sed -e "s|path2/file2|path2/|" <expected1 >expected2 &&
+	cp expected2 expected3 &&
+	echo path4/ >>expected2
+'
... I don't think it is really needed.  There isn't anything there
that can fail, and there isn't anything there that produces any
output.

BTW. do all sane shells that can be used to run test suite support
'<<-' here-doc redirection operators?  Is it in POSIX?

-- 
Jakub Narebski
Poland
ShadeHawk on #git

Re: [PATCH] t3000 (ls-files -o): modernize style

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:49:07

On Sun, Jul 11, 2010 at 08:33, Jakub Narebski [off-list ref] wrote:
Jonathan Nieder [off-list ref] writes:
quoted
This script is part of the second batch of tests, from the same day
the test infrastructure was added to git.  Update it to use a more
modern style in the spirit of v1.6.4-rc0~45^2~2 (2009-05-22).
In particular:
On the patch:

    Acked-by: Ævar Arnfjörð Bjarmason [off-list ref]
quoted
 - Put setup code inside test assertions, to avoid unexpected
   breakages and avoid stray output without -v (as t/README
   recommends); and
O.K., but...
quoted
-cat >expected1 <<EOF
-expected1
-expected2
-expected3
-output
-path0
-path1
-path2-junk
-path2/file2
-EOF
-sed -e 's|path2/file2|path2/|' <expected1 >expected2
-cat <expected2 >expected3
-echo path4/ >>expected2
-
+test_expect_success 'setup: expected output' '
+     cat >expected1 <<-\EOF &&
+     expected1
+     expected2
+     expected3
+     output
+     path0
+     path1
+     path2-junk
+     path2/file2
+     EOF
+
+     sed -e "s|path2/file2|path2/|" <expected1 >expected2 &&
+     cp expected2 expected3 &&
+     echo path4/ >>expected2
+'
... I don't think it is really needed.  There isn't anything there
that can fail, and there isn't anything there that produces any
output.
The disk could fill up. In any case I like the test style of using
setup tests instead of stray setup code inside the tests themselves.
BTW. do all sane shells that can be used to run test suite support
'<<-' here-doc redirection operators?  Is it in POSIX?
I don't know. But it's POSIX enough that nobody's complained about it
thus far, it's used in a lot of existing code:

    $ ack -l '<<-EOF'
    t/t1012-read-tree-df.sh
    t/t7005-editor.sh
    t/t3507-cherry-pick-conflict.sh
    t/t7401-submodule-summary.sh
    t/t7201-co.sh
    t/t4132-apply-removal.sh
    t/t4041-diff-submodule-option.sh
    contrib/hooks/post-receive-email

Re: [PATCH] t3000 (ls-files -o): modernize style

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:49:07

Jakub Narebski wrote:
... I don't think it is really needed.  There isn't anything there
that can fail, and there isn't anything there that produces any
output.
I should clarify.  I wrote this patch as preparation to add some new
tests to the same script.  The new tests are not cooked yet, so I just
sent the trivial part; there certainly is no urgent reason to apply it
soon (though no reason I see not to apply it either).

A better explanation for the rationale would be "follow the modern
style to make the script more readable and set a good example for
future tests".
BTW. do all sane shells that can be used to run test suite support
'<<-' here-doc redirection operators?  Is it in POSIX?
Yes[1] and yes[2].

Thanks for looking it over.
Jonathan

[1] $ git grep -l -F -e '<<-EO' -e '<<-\EO' origin/maint -- t | wc -l
    13
[2] http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_04
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help