summaryrefslogtreecommitdiff
path: root/t/Git-SVN/Utils/fatal.t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-07-28 04:18:09 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-07-28 04:18:09 (GMT)
commit646e41753568683c3ffde6b7f614f880311cc984 (patch)
tree55cdab17cc1f34729bfd156fd3e7dab231935fe3 /t/Git-SVN/Utils/fatal.t
parent12688bbacf8a5b221748a1dfa31eb3cef9f9162d (diff)
parent5c71028fced46d03bf81b8625680d9ac87c8f4f0 (diff)
downloadgit-646e41753568683c3ffde6b7f614f880311cc984.zip
git-646e41753568683c3ffde6b7f614f880311cc984.tar.gz
git-646e41753568683c3ffde6b7f614f880311cc984.tar.bz2
Merge git://git.bogomips.org/git-svn
* git://git.bogomips.org/git-svn: Move initialization of Git::SVN variables into Git::SVN. Extract Git::SVN from git-svn into its own .pm file. Prepare Git::SVN for extraction into its own file. Extract some utilities from git-svn to allow extracting Git::SVN. perl: detect new files in MakeMaker builds The Makefile.PL will now find .pm files itself. Don't lose Error.pm if $@ gets clobbered. Quiet warning if Makefile.PL is run with -w and no --localedir
Diffstat (limited to 't/Git-SVN/Utils/fatal.t')
-rw-r--r--t/Git-SVN/Utils/fatal.t34
1 files changed, 34 insertions, 0 deletions
diff --git a/t/Git-SVN/Utils/fatal.t b/t/Git-SVN/Utils/fatal.t
new file mode 100644
index 0000000..49e1438
--- /dev/null
+++ b/t/Git-SVN/Utils/fatal.t
@@ -0,0 +1,34 @@
+#!/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;
+}