Junio C Hamano <[email protected]> writes:
> SZEDER Gábor <[email protected]> writes:
>
>> See two of the previous patches for the only such cases we had in our
>> test suite. However, reliably preventing this antipattern is arguably
>> more important than supporting these cases, which can be worked around
>> by only minor inconveniences.
>
> I am not sure if that inconveniences will be minor. Is this too
> contrived an example, for example?
>
> check () {
> pattern=$1 file=$2 script=./runme
>
> test_i18ngrep "$pattern" "$file" &&
> write_script "$script" &&
> test_expect_success "check $pattern" '
> "$script"
> '
> }
>
> check foo file <<-EOF
> ... test script comes here ...
> EOF
Is there a case where test_i18ngrep (after your clean-ups in this
series up to 06/10) needs to read from more than one file?
I actually think that the kind of inconveniences we *can* work with,
without risking breakage to legitimate test, would be to allow and
require test_i18ngrep to name and read only from one file that
appears at the end of its command line. IOW, instead of doing a
probing "read" that you cannot undo and break legitimate test, I
think it is OK to see if the last token names a file that is on the
filesystem, e.g.
test_i18ngrep () {
eval test -f \"\${$#}\" ||
error "bug in the test sript: test_i18ngrep must" \
"name a file to read as the last token on the command
line"
...