Stefan Beller <sbeller@xxxxxxxxxx> writes: >> Preparing the expected output "expect" outside test_expect_success >> block is also old-school. Move it inside the new test? > > I looked into that. What is our current stance on using single/double quotes? Using dq around executable part, i.e. test_expect_success title " echo \"'foo'\" " is a million-times more grave sin even if the test initially does not refer to any variable in its body. Somebody will eventually need to add a line that refers to a variable and either forgets to quote \$ in front or properly quotes it. The former makes the variable interpolated while the arguments to the test_expect_success is prepared (which is a bug) and the latter makes the result quite ugly, like so: test_expect_success title " sq=\' var=foo && echo \"\${sq}\$value\${sq}\" " Enclosing the body always in sq-pair does mean something ugly like this from the beginning once you need to use sq inside: test_expect_success title ' sq='\'' && echo "${sq}foo${sq}" ' or test_expect_success title ' echo "'\''foo'\''" ' but the ugliness is localized to places where single quote is absolutely needed, and '\'' is something eyes soon get used to as an idiom [*1*]. It does not affect every reference of variables like enclosing with dq does. [Footnote] *1* That "idiom"-ness is the reason why the last example above is not written like this: test_expect_success title ' echo "'\'foo\''" ' even though the sq pair surrounding "foo" is not technically necessary. It lets us think of the string as almost always is inside sq context, with the single exception that we step outside sq context and append a sq by saying bs-sq (\').