All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: "Đoàn Trần Công Danh" <congdanhqx@gmail.com>,
	git@vger.kernel.org, "Jeff King" <peff@peff.net>,
	"Matthieu Moy" <git@matthieu-moy.fr>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Eric Sunshine" <sunshine@sunshineco.com>,
	"SZEDER Gábor" <szeder.dev@gmail.com>
Subject: Re: [PATCH v3 01/12] check-non-portable-shell: check for "test <cond> -a/-o <cond>"
Date: Wed, 21 Apr 2021 09:32:11 -0700	[thread overview]
Message-ID: <xmqqmttrzjhw.fsf@gitster.g> (raw)
In-Reply-To: <87czun3en0.fsf@evledraar.gmail.com> (=?utf-8?B?IsOGdmFyIEFy?= =?utf-8?B?bmZqw7Zyw7A=?= Bjarmason"'s message of "Wed, 21 Apr 2021 16:18:11 +0200")

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:

>>> 	t6402-merge-rename.sh:865: error: "test A || test B" preferred to "test A -o B": test 0 -eq $(git ls-files -o | wc -l) &&
>>
>> With: 7dbe8c8003, (check-non-portable-shell.pl: `wc -l` may have
> ...
> I think those patches are good in their own right, i.e. replacing things
> with more incremental helpers and test_cmp-like functions.
>
> But I believe the code you're changing is not non-portable. It was using
> the output of "wc -l" with the "=" operator that wasn't portable.

Not necessarily.  The last one shown above

	test 0 -eq $(git ls-files -o | wc -l) &&

is still valid and correct with s/-eq/=/.  It lets shell to remove
excess whitespaces around output from some implementations of "wc",
so textual '=' is perfectly fine.

> These ones are all occurances that use "-eq".
>
> And:
>
>     test "0" -eq " 0"
>
> etc., is true, which is why these pass on OSX and beyond.

Perhaps, but I am not sure how portable it is to rely on "-eq"
ignoring the leading whitespaces.

A more conventional (read: time tested) way is to $(... | wc -l)
*NOT* enclosed inside dq, so that the shell will strip out any
excess spaces around it, and use '=', i.e.

    test 3 = $(... | wc -l)

and that is what we end up evaluating when we write

    test_line_count = 3 file

This does rely on that "wc -l" will run and produce _some_ output to
be syntactically correct, though.

  reply	other threads:[~2021-04-21 16:32 UTC|newest]

Thread overview: 175+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-12 11:08 [PATCH 00/16] test-lib.sh: new test_commit args, simplification & fixes Ævar Arnfjörð Bjarmason
2021-04-12 11:08 ` [PATCH 01/16] check-non-portable-shell: complain about "test" a/-o instead of &&/|| Ævar Arnfjörð Bjarmason
2021-04-12 17:00   ` Eric Sunshine
2021-04-12 17:13     ` Matthieu Moy
2021-04-12 18:36       ` Junio C Hamano
2021-04-12 18:38     ` Junio C Hamano
2021-04-12 18:48       ` Eric Sunshine
2021-04-12 11:08 ` [PATCH 02/16] test-lib: bring $remove_trash out of retirement Ævar Arnfjörð Bjarmason
2021-04-12 19:06   ` Junio C Hamano
2021-04-12 21:22     ` Junio C Hamano
2021-04-12 11:08 ` [PATCH 03/16] test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable Ævar Arnfjörð Bjarmason
2021-04-12 11:08 ` [PATCH 04/16] test-lib-functions: reword "test_commit --append" docs Ævar Arnfjörð Bjarmason
2021-04-12 11:08 ` [PATCH 05/16] test-lib-functions: document test_commit --no-tag Ævar Arnfjörð Bjarmason
2021-04-12 17:07   ` Eric Sunshine
2021-04-12 11:08 ` [PATCH 06/16] test-lib functions: add an --annotated-tag option to "test_commit" Ævar Arnfjörð Bjarmason
2021-04-15 15:33   ` Đoàn Trần Công Danh
2021-04-12 11:08 ` [PATCH 07/16] describe tests: convert setup to use test_commit Ævar Arnfjörð Bjarmason
2021-04-12 11:08 ` [PATCH 08/16] test-lib functions: add --printf option to test_commit Ævar Arnfjörð Bjarmason
2021-04-12 19:05   ` Eric Sunshine
2021-04-12 21:27     ` Junio C Hamano
2021-04-12 23:04       ` Eric Sunshine
2021-04-12 23:12         ` Junio C Hamano
2021-04-15 11:33           ` Ævar Arnfjörð Bjarmason
2021-04-15 14:52             ` Eric Sunshine
2021-04-15 18:37               ` Junio C Hamano
2021-04-12 11:08 ` [PATCH 09/16] submodule tests: use symbolic-ref --short to discover branch name Ævar Arnfjörð Bjarmason
2021-04-12 11:08 ` [PATCH 10/16] test-lib: reformat argument list in test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-12 11:09 ` [PATCH 11/16] test-lib: do not show advice about init.defaultBranch under --verbose Ævar Arnfjörð Bjarmason
2021-04-15 19:07   ` SZEDER Gábor
2021-04-12 11:09 ` [PATCH 12/16] test-lib: modernize test_create_repo() function Ævar Arnfjörð Bjarmason
2021-04-12 19:27   ` Junio C Hamano
2021-04-15 11:40     ` Ævar Arnfjörð Bjarmason
2021-04-15 21:10   ` SZEDER Gábor
2021-04-16 21:22     ` SZEDER Gábor
2021-04-16 23:38     ` Ævar Arnfjörð Bjarmason
2021-04-12 11:09 ` [PATCH 13/16] test-lib-functions: normalize test_path_is_missing() debugging Ævar Arnfjörð Bjarmason
2021-04-12 11:09 ` [PATCH 14/16] test-lib-functions: use "return 1" instead of "false" Ævar Arnfjörð Bjarmason
2021-04-12 19:31   ` Junio C Hamano
2021-04-12 11:09 ` [PATCH 15/16] Revert and amend "test-lib-functions: assert correct parameter count" Ævar Arnfjörð Bjarmason
2021-04-12 19:37   ` Junio C Hamano
2021-04-15 11:32     ` Ævar Arnfjörð Bjarmason
2021-04-15 12:31       ` Andreas Schwab
2021-04-15 18:35       ` Junio C Hamano
2021-04-16 21:06         ` Ævar Arnfjörð Bjarmason
2021-04-15 22:05   ` SZEDER Gábor
2021-04-15 22:24     ` Junio C Hamano
2021-04-16 23:48     ` Ævar Arnfjörð Bjarmason
2021-04-12 11:09 ` [PATCH 16/16] test-lib-functions: remove last two parameter count assertions Ævar Arnfjörð Bjarmason
2021-04-12 19:40   ` Junio C Hamano
2021-04-12 18:18 ` [PATCH 00/16] test-lib.sh: new test_commit args, simplification & fixes Junio C Hamano
2021-04-17 12:52 ` [PATCH v2 00/12] " Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 01/12] check-non-portable-shell: check for "test <cond> -a/-o <cond>" Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 02/12] test-lib: bring $remove_trash out of retirement Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 03/12] test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 04/12] test-lib-functions: reword "test_commit --append" docs Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 05/12] test-lib-functions: document test_commit --no-tag Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 06/12] test-lib functions: add an --annotated option to "test_commit" Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 07/12] describe tests: convert setup to use test_commit Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 08/12] test-lib functions: add --printf option to test_commit Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 09/12] submodule tests: use symbolic-ref --short to discover branch name Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 10/12] test-lib: reformat argument list in test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 11/12] test-lib: do not show advice about init.defaultBranch under --verbose Ævar Arnfjörð Bjarmason
2021-04-17 12:52   ` [PATCH v2 12/12] test-lib: split up and deprecate test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-17 15:42     ` SZEDER Gábor
2021-04-17 21:45       ` Ævar Arnfjörð Bjarmason
2021-04-20 21:27         ` SZEDER Gábor
2021-04-17 12:58   ` [PATCH 0/3] test-lib-functions.sh: trickery to make -x less verbose Ævar Arnfjörð Bjarmason
2021-04-17 12:58     ` [PATCH 1/3] test-lib-functions: normalize test_path_is_missing() debugging Ævar Arnfjörð Bjarmason
2021-04-17 12:58     ` [PATCH 2/3] Revert and amend "test-lib-functions: assert correct parameter count" Ævar Arnfjörð Bjarmason
2021-04-18  5:11       ` Eric Sunshine
2021-04-20 12:25         ` Ævar Arnfjörð Bjarmason
2021-04-17 12:58     ` [PATCH 3/3] test-lib-functions: remove last two parameter count assertions Ævar Arnfjörð Bjarmason
2021-04-20 12:21   ` [PATCH v3 00/12] test-lib.sh: new test_commit args, simplification & fixes Ævar Arnfjörð Bjarmason
2021-04-20 12:21     ` [PATCH v3 01/12] check-non-portable-shell: check for "test <cond> -a/-o <cond>" Ævar Arnfjörð Bjarmason
2021-04-20 22:25       ` Junio C Hamano
2021-04-21  8:46         ` Ævar Arnfjörð Bjarmason
2021-04-21 10:39           ` Đoàn Trần Công Danh
2021-04-21 10:41             ` [PATCH 1/2] t6400: check exit status of ls-files Đoàn Trần Công Danh
2021-04-21 10:41               ` [PATCH 2/2] t6402: " Đoàn Trần Công Danh
2021-04-21 16:55                 ` Eric Sunshine
2021-04-21 17:32                   ` Eric Sunshine
2021-04-21 23:32                     ` Junio C Hamano
2021-04-22 13:49                       ` Đoàn Trần Công Danh
2021-04-22 15:04                         ` Ævar Arnfjörð Bjarmason
2021-04-22 15:30                           ` Eric Sunshine
2021-04-22 15:07                         ` Đoàn Trần Công Danh
2021-04-22 12:45                   ` Ævar Arnfjörð Bjarmason
2021-04-21 14:18             ` [PATCH v3 01/12] check-non-portable-shell: check for "test <cond> -a/-o <cond>" Ævar Arnfjörð Bjarmason
2021-04-21 16:32               ` Junio C Hamano [this message]
2021-04-21 18:56           ` Junio C Hamano
2021-04-20 12:21     ` [PATCH v3 02/12] test-lib: bring $remove_trash out of retirement Ævar Arnfjörð Bjarmason
2021-04-20 22:28       ` Junio C Hamano
2021-04-20 12:21     ` [PATCH v3 03/12] test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable Ævar Arnfjörð Bjarmason
2021-04-20 12:21     ` [PATCH v3 04/12] test-lib-functions: reword "test_commit --append" docs Ævar Arnfjörð Bjarmason
2021-04-20 12:21     ` [PATCH v3 05/12] test-lib-functions: document test_commit --no-tag Ævar Arnfjörð Bjarmason
2021-04-20 12:21     ` [PATCH v3 06/12] test-lib functions: add an --annotated option to "test_commit" Ævar Arnfjörð Bjarmason
2021-04-20 12:21     ` [PATCH v3 07/12] describe tests: convert setup to use test_commit Ævar Arnfjörð Bjarmason
2021-04-20 12:21     ` [PATCH v3 08/12] test-lib functions: add --printf option to test_commit Ævar Arnfjörð Bjarmason
2021-04-20 12:22     ` [PATCH v3 09/12] submodule tests: use symbolic-ref --short to discover branch name Ævar Arnfjörð Bjarmason
2021-04-20 12:22     ` [PATCH v3 10/12] test-lib: reformat argument list in test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-20 12:22     ` [PATCH v3 11/12] test-lib: do not show advice about init.defaultBranch under --verbose Ævar Arnfjörð Bjarmason
2021-04-20 12:22     ` [PATCH v3 12/12] test-lib: split up and deprecate test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-21 10:15     ` [PATCH v4 00/11] test-lib.sh: new test_commit args, simplification & fixes Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 01/11] test-lib: bring $remove_trash out of retirement Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 02/11] test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 03/11] test-lib-functions: reword "test_commit --append" docs Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 04/11] test-lib-functions: document test_commit --no-tag Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 05/11] test-lib functions: add an --annotated option to "test_commit" Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 06/11] describe tests: convert setup to use test_commit Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 07/11] test-lib functions: add --printf option to test_commit Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 08/11] submodule tests: use symbolic-ref --short to discover branch name Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 09/11] test-lib: reformat argument list in test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 10/11] test-lib: do not show advice about init.defaultBranch under --verbose Ævar Arnfjörð Bjarmason
2021-04-21 10:15       ` [PATCH v4 11/11] test-lib: split up and deprecate test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-21 16:43         ` SZEDER Gábor
2021-04-22 12:39           ` Ævar Arnfjörð Bjarmason
2021-04-23  7:21       ` [PATCH v5 00/11] test-lib.sh: new test_commit args, simplification & fixes Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 01/11] test-lib: bring $remove_trash out of retirement Ævar Arnfjörð Bjarmason
2021-05-06 15:46           ` Đoàn Trần Công Danh
2021-04-23  7:21         ` [PATCH v5 02/11] test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 03/11] test-lib-functions: reword "test_commit --append" docs Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 04/11] test-lib-functions: document test_commit --no-tag Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 05/11] test-lib functions: add an --annotated option to "test_commit" Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 06/11] describe tests: convert setup to use test_commit Ævar Arnfjörð Bjarmason
2021-05-06 15:58           ` Đoàn Trần Công Danh
2021-04-23  7:21         ` [PATCH v5 07/11] test-lib functions: add --printf option to test_commit Ævar Arnfjörð Bjarmason
2021-05-06 16:08           ` Đoàn Trần Công Danh
2021-04-23  7:21         ` [PATCH v5 08/11] submodule tests: use symbolic-ref --short to discover branch name Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 09/11] test-lib: reformat argument list in test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 10/11] test-lib: do not show advice about init.defaultBranch under --verbose Ævar Arnfjörð Bjarmason
2021-04-23  7:21         ` [PATCH v5 11/11] test-lib: split up and deprecate test_create_repo() Ævar Arnfjörð Bjarmason
2021-04-29  7:23         ` [PATCH v5 00/11] test-lib.sh: new test_commit args, simplification & fixes Junio C Hamano
2021-05-06 15:32         ` Ævar Arnfjörð Bjarmason
2021-05-06 16:21           ` Đoàn Trần Công Danh
2021-05-10 14:18         ` [PATCH v6 " Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 01/11] test-lib: bring $remove_trash out of retirement Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 02/11] test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 03/11] test-lib-functions: reword "test_commit --append" docs Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 04/11] test-lib-functions: document test_commit --no-tag Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 05/11] test-lib functions: add an --annotated option to "test_commit" Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 06/11] describe tests: convert setup to use test_commit Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 07/11] test-lib functions: add --printf option to test_commit Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 08/11] submodule tests: use symbolic-ref --short to discover branch name Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 09/11] test-lib: reformat argument list in test_create_repo() Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 10/11] test-lib: do not show advice about init.defaultBranch under --verbose Ævar Arnfjörð Bjarmason
2021-05-10 14:19           ` [PATCH v6 11/11] test-lib: split up and deprecate test_create_repo() Ævar Arnfjörð Bjarmason
2021-05-13  6:45             ` Felipe Contreras
2021-05-13  7:45               ` Ævar Arnfjörð Bjarmason
2021-05-13  8:23                 ` Felipe Contreras
2021-05-13 12:05                   ` Ævar Arnfjörð Bjarmason
2021-05-13 20:11                     ` Felipe Contreras
2021-05-12 12:19           ` [PATCH v6 00/11] test-lib.sh: new test_commit args, simplification & fixes Đoàn Trần Công Danh
2021-05-12 23:24             ` Junio C Hamano
2021-04-20 12:29 ` [PATCH v2 0/3] test-lib-functions.sh: trickery to make -x less verbose Ævar Arnfjörð Bjarmason
2021-04-20 12:29   ` [PATCH v2 1/3] test-lib-functions: normalize test_path_is_missing() debugging Ævar Arnfjörð Bjarmason
2021-04-20 12:29   ` [PATCH v2 2/3] Revert and amend "test-lib-functions: assert correct parameter count" Ævar Arnfjörð Bjarmason
2021-04-20 15:07     ` Eric Sunshine
2021-04-21  8:22       ` Ævar Arnfjörð Bjarmason
2021-04-20 12:29   ` [PATCH v2 3/3] test-lib-functions: remove last two parameter count assertions Ævar Arnfjörð Bjarmason
2021-04-20 21:15     ` Junio C Hamano
2021-04-21 14:58   ` [PATCH v2 0/5] test-lib-functions.sh: trickery to make -x less verbose Ævar Arnfjörð Bjarmason
2021-04-21 14:58     ` [PATCH v2 1/5] test-lib-functions: normalize test_path_is_missing() debugging Ævar Arnfjörð Bjarmason
2021-04-21 14:58     ` [PATCH v2 2/5] Revert and amend "test-lib-functions: assert correct parameter count" Ævar Arnfjörð Bjarmason
2021-04-21 14:58     ` [PATCH v2 3/5] test helpers: remove unused test-tool path-utils slice-tests Ævar Arnfjörð Bjarmason
2021-04-21 18:02       ` Ævar Arnfjörð Bjarmason
2021-04-21 14:58     ` [PATCH v2 4/5] test-helpers: rename "path-utils is_valid_path" to "is-valid-paths" Ævar Arnfjörð Bjarmason
2021-04-21 14:58     ` [PATCH v2 5/5] test-helpers: split "file-size" into "file-size(s)" Ævar Arnfjörð Bjarmason
2021-04-23  7:29     ` [PATCH v3 0/4] test-lib-functions.sh: trickery to make -x less verbose Ævar Arnfjörð Bjarmason
2021-04-23  7:29       ` [PATCH v3 1/4] test-lib-functions: normalize test_path_is_missing() debugging Ævar Arnfjörð Bjarmason
2021-04-29  3:49         ` Junio C Hamano
2021-04-23  7:29       ` [PATCH v3 2/4] Revert and amend "test-lib-functions: assert correct parameter count" Ævar Arnfjörð Bjarmason
2021-04-29  3:59         ` Junio C Hamano
2021-04-29  4:02         ` Felipe Contreras
2021-04-23  7:29       ` [PATCH v3 3/4] test-helpers: rename "path-utils is_valid_path" to "is-valid-paths" Ævar Arnfjörð Bjarmason
2021-04-23  7:29       ` [PATCH v3 4/4] test-helpers: split "file-size" into "file-size(s)" Ævar Arnfjörð Bjarmason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqmttrzjhw.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=avarab@gmail.com \
    --cc=congdanhqx@gmail.com \
    --cc=git@matthieu-moy.fr \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=sunshine@sunshineco.com \
    --cc=szeder.dev@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.