]> git.ipfire.org Git - thirdparty/git.git/commit - t/test-lib.sh
test-lib: allow short options to be bundled
authorMatheus Tavares <matheus.bernardino@usp.br>
Sun, 22 Mar 2020 15:58:57 +0000 (12:58 -0300)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Mar 2020 16:08:53 +0000 (09:08 -0700)
commit78dc08875cd9a92bb39815ad1420afbf3dc682de
tree8eb046577078493f4b9d1910bec8f571503e3127
parent274b9cc25322d9ee79aa8e6d4e86f0ffe5ced925
test-lib: allow short options to be bundled

When debugging a test (or a set of tests), it's common to execute it
with some combination of short options, such as:

$ ./txxx-testname.sh -d -x -i

In cases like this, CLIs usually allow the short options to be bundled
in a single argument, for convenience and agility. Let's add this
feature to test-lib, allowing the above command to be run as:

$ ./txxx-testname.sh -dxi
(or any other permutation, e.g. '-ixd')

Note: Short options that require an argument can also be used in a
bundle, in any position. So, for example, '-r 5 -x', '-xr 5' and '-rx 5'
are all valid and equivalent. A special case would be having a bundle
with more than one of such options. To keep things simple, this case is
not allowed for now. This shouldn't be a major limitation, though, as
the only short option that requires an argument today is '-r'. And
concatenating '-r's as in '-rr 5 6' would probably not be very
practical: its unbundled format would be '-r 5 -r 6', for which test-lib
currently considers only the last argument. Therefore, if '-rr 5 6' were
to be allowed, it would have the same effect as just typing '-r 6'.

Note: the test-lib currently doesn't support '-r5', as an alternative
for '-r 5', so the former is not supported in bundles as well.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/README
t/test-lib.sh