On Fri, Feb 07, 2020 at 10:51:29AM -0800, Junio C Hamano wrote: > SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: > > > On Wed, Feb 05, 2020 at 04:40:56PM -0800, Emily Shaffer wrote: > >> diff --git a/t/t0091-bugreport.sh b/t/t0091-bugreport.sh > >> new file mode 100755 > >> index 0000000000..451badff0c > >> --- /dev/null > >> +++ b/t/t0091-bugreport.sh > >> @@ -0,0 +1,49 @@ > >> +#!/bin/sh > >> + > >> +test_description='git bugreport' > >> + > >> +. ./test-lib.sh > >> + > >> +# Headers "[System Info]" will be followed by a non-empty line if we put some > >> +# information there; we can make sure all our headers were followed by some > >> +# information to check if the command was successful. > >> +HEADER_PATTERN="^\[.*\]$" > >> +check_all_headers_populated() { > >> + while read -r line; do > >> + if test "$(grep "$HEADER_PATTERN" "$line")"; then > >> + echo "$line" > >> + read -r nextline > >> + if test -z "$nextline"; then > >> + return 1; > >> + fi > >> + fi > >> + done > >> +} > >> + > >> +test_expect_success 'creates a report with content in the right places' ' > >> + git bugreport && > >> + REPORT="$(ls git-bugreport-*)" && > > > > What if the globbing were to match more than one file? > > An often-useful pattern is to make the command report the output > filename, i.e. > > REPORT=$(git butreport) && > > if the design insists that "git bugreport" should allocate a > filename in order to make it easy to guarantee uniqueness. > > Of course, we can make the invoker supply filename, e.g. > > REPORT=$(generate-output-filename) && > git bugreport -o "$REPORT" ;# or git bugreport >"$REPORT" Yeah, this is an option and I've changed the offending test - which captures a variable based on globbing - to use --suffix and force a filename.