for n in $sample
        do
-               ( zs $n ; echo a ) >file-a$n &&
-               ( echo b; zs $n; echo ) >file-b$n &&
-               ( printf c; zs $n ) >file-c$n &&
-               ( echo d; zs $n ) >file-d$n &&
+               ( zs $n && echo a ) >file-a$n &&
+               ( echo b && zs $n && echo ) >file-b$n &&
+               ( printf c && zs $n ) >file-c$n &&
+               ( echo d && zs $n ) >file-d$n &&
 
                git add file-a$n file-b$n file-c$n file-d$n &&
 
-               ( zs $n ; echo A ) >file-a$n &&
-               ( echo B; zs $n; echo ) >file-b$n &&
-               ( printf C; zs $n ) >file-c$n &&
-               ( echo D; zs $n ) >file-d$n &&
+               ( zs $n && echo A ) >file-a$n &&
+               ( echo B && zs $n && echo ) >file-b$n &&
+               ( printf C && zs $n ) >file-c$n &&
+               ( echo D && zs $n ) >file-d$n &&
 
-               expect_pattern $n || break
+               expect_pattern $n || return 1
 
        done >expect
 '
        do
                git diff -U0 file-?$n
        done | zc >actual &&
-       diff -u expect actual
+       test_cmp expect actual
 
 '