Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] Trapping exit in tests, using return for errors

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:03

Pavel Roskin [off-list ref] writes:
This patch does following:

All instances of "exit", "exit 1" and "(exit 1)" in tests have been
replaced with "return 1".  In fact, "(exit 1)" had no effect.
Are you sure about all of the above?

You are right about "... || exit" in the expect_success tests;
they are broken.  But '(exit 1)' or just saying 'false' at the
end should have done the right thing.  Worse yet, return does
not seem to really work as expected, except if all you want to
do was to tell the test driver "I failed", in which case
"bloopl" would work just as well.

prompt$ cat k.sh
what="$1"
eval '
        echo foo
        case '$what' in
        false)
                (exit 1) ;;
        exit)
                exit 1 ;;
        return)
                return 1 ;;
        esac
'
echo "status $?"
prompt$ bash k.sh exit
foo
prompt$ bash k.sh false
foo
status 1
prompt$ bash k.sh return
foo
k.sh: line 20: return: can only `return' from a function or sourced script
status 1
prompt$ 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help