git-svn: exit with status 1 for test failures
authorEric Wong <normalperson@yhbt.net>
Sat, 25 Nov 2006 06:38:18 +0000 (22:38 -0800)
committerJunio C Hamano <junkio@cox.net>
Sat, 25 Nov 2006 07:17:00 +0000 (23:17 -0800)
Some versions of the SVN libraries cause die() to exit with 255,
and 40cf043389ef4cdf3e56e7c4268d6f302e387fa0 tightened up
test_expect_failure to reject return values >128.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-svn.perl
index 5d67771c2cffefe3b99f8fc78e81d0b4a4a892d7..0a47b1f9fd4bfcbfabb41433049ab7a1361dd449 100755 (executable)
@@ -21,6 +21,7 @@
 $ENV{LC_ALL} = 'C';
 $| = 1; # unbuffer STDOUT
 
 $ENV{LC_ALL} = 'C';
 $| = 1; # unbuffer STDOUT
 
+sub fatal (@) { print STDERR $@; exit 1 }
 # If SVN:: library support is added, please make the dependencies
 # optional and preserve the capability to use the command-line client.
 # use eval { require SVN::... } to make it lazy load
 # If SVN:: library support is added, please make the dependencies
 # optional and preserve the capability to use the command-line client.
 # use eval { require SVN::... } to make it lazy load
@@ -569,7 +570,7 @@ sub commit_lib {
                                $no = 1;
                        }
                }
                                $no = 1;
                        }
                }
-               close $fh or croak $?;
+               close $fh or exit 1;
                if (! defined $r_new && ! defined $cmt_new) {
                        unless ($no) {
                                die "Failed to parse revision information\n";
                if (! defined $r_new && ! defined $cmt_new) {
                        unless ($no) {
                                die "Failed to parse revision information\n";
@@ -868,13 +869,16 @@ sub commit_diff {
                                                print "Committed $_[0]\n";
                                        }, @lock)
                                );
                                                print "Committed $_[0]\n";
                                        }, @lock)
                                );
-       my $mods = libsvn_checkout_tree($ta, $tb, $ed);
-       if (@$mods == 0) {
-               print "No changes\n$ta == $tb\n";
-               $ed->abort_edit;
-       } else {
-               $ed->close_edit;
-       }
+       eval {
+               my $mods = libsvn_checkout_tree($ta, $tb, $ed);
+               if (@$mods == 0) {
+                       print "No changes\n$ta == $tb\n";
+                       $ed->abort_edit;
+               } else {
+                       $ed->close_edit;
+               }
+       };
+       fatal "$@\n" if $@;
        $_message = $_file = undef;
        return $rev_committed;
 }
        $_message = $_file = undef;
        return $rev_committed;
 }