On Sun, May 28, 2017 at 6:56 PM, Joel Teichroeb <joel@xxxxxxxxxxxxx> wrote: > Ensure the command gives the correct return code > > Signed-off-by: Joel Teichroeb <joel@xxxxxxxxxxxxx> > --- > t/t3903-stash.sh | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh > index 3b4bed5c9a..aaae221304 100755 > --- a/t/t3903-stash.sh > +++ b/t/t3903-stash.sh > @@ -444,6 +444,14 @@ test_expect_failure 'stash file to directory' ' > test foo = "$(cat file/file)" > ' > > +test_expect_success 'stash create - no changes' ' > + git stash clear && > + test_when_finished "git reset --hard HEAD" && > + git reset --hard && > + git stash create > actual && > + test $(cat actual | wc -l) -eq 0 Looks fine like this, I don't think there's any actual portability concern (as with some wrappers), but FWIW you can do this more briefly with the test framework as: test_line_count = 0 actual Although I wonder in this case whether you don't actually mean: [...]>actual && ! test -s actual I.e. isn't the test that there should be no output, not that there shouldn't be a \n there? Or alternatively: test $(cat actual | wc -c) -eq 0 > +' > + > test_expect_success 'stash branch - no stashes on stack, stash-like argument' ' > git stash clear && > test_when_finished "git reset --hard HEAD" && > -- > 2.13.0 >