On Sun, Apr 09 2023, David Bremner wrote: > It is desirable to have the tests consider these variables being > undefined as equivalent to the feature not being present, and in > particular for the tests not to generate errors. > > We know the test suite is tied to bash anyway, so this is a simple > fix. > --- > test/T060-count.sh | 2 +- > test/T081-sexpr-search.sh | 2 +- > test/T150-tagging.sh | 2 +- > test/T160-json.sh | 2 +- > test/T220-reply.sh | 2 +- > test/T240-dump-restore.sh | 2 +- > test/T391-python-cffi.sh | 3 +-- > test/T392-python-cffi-notmuch.sh | 2 +- > test/T520-show.sh | 2 +- > test/T570-revision-tracking.sh | 2 +- > test/T700-reindex.sh | 2 +- > test/T800-asan.sh | 2 +- > test/T810-tsan.sh | 2 +- > test/T850-git.sh | 2 +- > 14 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/test/T060-count.sh b/test/T060-count.sh > index 48146706..4499b4cb 100755 > --- a/test/T060-count.sh > +++ b/test/T060-count.sh > @@ -157,7 +157,7 @@ print("4: {} messages".format(query.count_messages())) > EOF > test_expect_equal_file EXPECTED OUTPUT > > -if [ $NOTMUCH_HAVE_SFSEXP -eq 1 ]; then > +if [[ $NOTMUCH_HAVE_SFSEXP -eq 1 ]]; then Hmm, I send reply to Felipe's email, before seeing this, so this is followup ... which, at the end, reaches the same "conclusion" :D anyway, while this is good progress the [[ $v -eq 1 ]] is still somewhat fragile (using -eu shows some interesting behaviors): the easy try: $ bash -eu -c ' [[ $AAA -ne 1 ]] && echo 1 || echo 0' bash: line 1: AAA: unbound variable weirder...: $ bash -eu -c 'a="x"; [[ $a -eq 2 ]]' bash: line 1: x: unbound variable wat, as $a is not numeric, it tries to re-eval $x ??? $ bash -eu -c 'x=3; a="x"; [[ $a -eq 2 ]] && echo 1 || echo 0' 0 $ bash -eu -c 'x=2; a="x"; [[ $a -eq 2 ]] && echo 1 || echo 0' 1 for reference $ bash -eu -c 'a="2"; [[ $a -eq 2 ]] && echo 1 || echo 0' 1 and again, w/ = instead of -eq $ bash -eu -c 'a="x"; [[ $a = 2 ]] && echo 1 || echo 0' 0 and -- modified the first AAA case above: $ bash -eu -c ' AAA=b; [[ ${AAA-} = 1 ]] && echo 1 || echo 0' 0 hmm, when using [[ ]] I recall == and != were to used... uh, see bash manual about the pattern matching and such... tried also with (( ... )) (documenter before [[ ]] in bash manual page but now it fails even heavier..: $ bash -eu -c 'XXX="a"; (( ${XXX-} == 2 )) && echo 1 || echo 0' bash: line 1: a: unbound variable $ bash -eu -c 'a=2; XXX="a"; (( ${XXX-} == 2 )) && echo 1 || echo 0' 1 I would just use [ "${VAR-}" = 1 ] in shell script code (or barely [[ ${VAR-0} == 1 ]] if desired not to have ""s around variables...but...) ... using [ "${VAR-}" = 1 ] is also good in a sense that someone may use it as an example to write shell scripts with #!/bin/sh as a hashbang -- and it works fine on Fedora since there /bin/sh is bash, but would fail on Debian since there /bin/sh is dash. HTH ;D Tomi _______________________________________________ notmuch mailing list -- notmuch@notmuchmail.org To unsubscribe send an email to notmuch-leave@notmuchmail.org