34 lines
		
	
	
	
		
			658 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			658 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/perl
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| 
 | |
| use Test::More 'no_plan';
 | |
| 
 | |
| BEGIN {
 | |
| 	# Override exit at BEGIN time before Git::SVN::Utils is loaded
 | |
| 	# so it will see our local exit later.
 | |
| 	*CORE::GLOBAL::exit = sub(;$) {
 | |
| 	return @_ ? CORE::exit($_[0]) : CORE::exit();
 | |
| 	};
 | |
| }
 | |
| 
 | |
| use Git::SVN::Utils qw(fatal);
 | |
| 
 | |
| # fatal()
 | |
| {
 | |
| 	# Capture the exit code and prevent exit.
 | |
| 	my $exit_status;
 | |
| 	no warnings 'redefine';
 | |
| 	local *CORE::GLOBAL::exit = sub { $exit_status = $_[0] || 0 };
 | |
| 
 | |
| 	# Trap fatal's message to STDERR
 | |
| 	my $stderr;
 | |
| 	close STDERR;
 | |
| 	ok open STDERR, ">", \$stderr;
 | |
| 
 | |
| 	fatal "Some", "Stuff", "Happened";
 | |
| 
 | |
| 	is $stderr, "Some Stuff Happened\n";
 | |
| 	is $exit_status, 1;
 | |
| }
 |