Jean Privat [off-list ref] writes:
+test_expect_success 'describe --dirty HEAD' '
+ git describe --dirty HEAD
+ test $? != 0
+'
We tend to write this as
test_expect_success '...' '
test_must_fail git describe --dirty HEAD
'
The difference is when the tested command segfaults or dies in an
uncontrolled fashion; test_must_fail diagnoses it as a failure,
while "test $? != 0" at the end will say "ok, the command correctly
failed".