T070 tests portability

Tomi Ollila tomi.ollila at iki.fi
Tue Jan 5 12:58:43 PST 2016


On Tue, Jan 05 2016, J Farkas <jf.hyqohaczlksw4tx6ae at l2015aftruuq.dns007.net> wrote:

> I'm in the process of writing insert tests, but it looks like my
> environment is somewhat older than what the current tests are running
> on.  The following two trivial changes for the original tests make those
> pass cleanly:
>
> The wc I have from GNU textutils 2.0.22 seems to produce extra
> whitespace that needs to be cleaned:
>
> diff --git a/test/T070-insert.sh b/test/T070-insert.sh
> index e7ec6a6..5864b9b 100755
> --- a/test/T070-insert.sh
> +++ b/test/T070-insert.sh
> @@ -62,3 +62,3 @@ test_begin_subtest "Insert duplicate message"
>  notmuch insert +duptag -unread < "$gen_msg_filename"
> -output=$(notmuch search --output=files "subject:insert-subject" | wc -l)
> +output=$(notmuch search --output=files "subject:insert-subject" | echo $(wc -l))

For this we have found solution earlier, unfortunately this did not get it:

 output=$((`notmuch search --output=files "subject:insert-subject" | wc -l`))

$ fgrep '$((`' test/*.sh
test/T060-count.sh:    "$((`notmuch search --output=messages '*' | wc -l`))" \
test/T060-count.sh:    "$((`notmuch search --output=messages '*' | wc-l`))" \
test/T060-count.sh:    "$((`notmuch search --output=threads '*' | wc -l`))" \
test/T060-count.sh:    "$((`notmuch search '*' | wc -l`))" \
test/T060-count.sh:    "$((`notmuch search --output=files '*' | wc -l`))" \

i.e. arithmetic evaluation with just the number removes surrounding whitespace.

>  test_expect_equal "$output" 2
>
> And without the following cast, gdb 7.4 complains about the return type.
>
>     index-file-XAPIAN_EXCEPTION.gdb:7: Error in sourced command file:
>     Return value type not available for selected stack frame.
>     Please use an explicit cast of the value to return.
>
> diff --git a/test/T070-insert.sh b/test/T070-insert.sh
> index e7ec6a6..5864b9b 100755
> --- a/test/T070-insert.sh
> +++ b/test/T070-insert.sh
> @@ -196,3 +196,3 @@ break notmuch_database_add_message
>  commands
> -return NOTMUCH_STATUS_$code
> +return (int)NOTMUCH_STATUS_$code
>  continue

The page https://sourceware.org/gdb/onlinedocs/gdb/Returning.html
talks something about gdb not knowing the return type if function
was compiled without debug info... well, is this is the reason,
perhaps we should allow testing w/o debug info compiled in.

> Does any of the above look reasonable to reduce the false positives?
> With the above, the T070 tests all pass on my system.

1st is to be changed to be consistent w/ other code, second may be good.


> Janos


Tomi


More information about the notmuch mailing list