Re: [PATCH v2 7/9] test/count: fix numeric comparision tests on FreeBSD

Subject: Re: [PATCH v2 7/9] test/count: fix numeric comparision tests on FreeBSD

Date: Thu, 31 May 2012 08:28:24 +0000

To: Tomi Ollila, Jameson Graef Rollins, Mike Kelly,


From: Jani Nikula

On Wed, 30 May 2012, Tomi Ollila <> wrote:
> On Wed, May 30 2012, Jameson Graef Rollins <> wrote:
>> On Wed, May 30 2012, Mike Kelly <> wrote:
>>> FreeBSD's `wc -l` includes some white space in front of the number.
>>> Instead, we add a test_expect_equal_num() to, which ensures
>>> we do a proper numeric comparision, and in a portable way.
>> Is there a way we can avoid adding another new test function here?  This
>> new function is almost completely identical with the old one, except
>> that it uses "test .. -eq" instead of "[ .. =".  If the problem is just
>> that the arguments occasionally contain superfluous spaces, I would
>> rather see the existing function just strip the spaces.  Of maybe add an
>> option to the test to ask for arithmetic rather than string comparison.
>> That would be preferable to introducing an new function that is
>> confusingly similar to an existing one.
> I liked Mike's suggestion as I also thought the options; stripping in
> test_expect_equal cannot be done as there might be whitespace differences
> which mean failure arguments to test_expect_equal cannot be given without
> quotes as variable might be split into multiple args. if test_expect_equal
> were changed to take comparison argument (like '-eq' or '=')  then all
> calls would need to be changes (and function name could be changed to
> something more generic...) None of these sounded as good options...
> But, there is at least one option more:
> test_expect_equal \
> -    "`notmuch search --output=messages ${SEARCH} | wc -l`" \
> +    "$((`notmuch search --output=messages ${SEARCH} | wc -l`))" \
>     "`notmuch count --output=messages ${SEARCH}`"
> this makes arithmetic evaluation -- no operation to be done but
> the spaces around the value are dropped.

But it's non-obvious. How about just adding '| tr -d " "' to the end and
be done with it?


>> jamie.
> Tomi
> _______________________________________________
> notmuch mailing list