Or you could play with it a bit more and do something like this:use strict; use warnings; use Test::More (tests => 1); my $exit_callback = sub {}; BEGIN { *CORE::GLOBAL::exit = sub { $exit_callback->(@_) }; } my $exit_called = 0; $exit_callback = sub { $exit_called = 1}; exit; is($exit_called, 1, "exit was called");
use strict; use warnings; use Test::More (tests => 2); my $exit_callback = sub {}; BEGIN { *CORE::GLOBAL::exit = sub { $exit_callback->(@_) }; } sub exit_ok(&$) { my ($code, $message) = @_; my $exit_called = 0; $exit_callback = sub { $exit_called = 1}; $code->(); is($exit_called, 1, $message); } sub noexit_ok(&$) { my ($code, $message) = @_; my $exit_called = 0; $exit_callback = sub { $exit_called = 1}; $code->(); is($exit_called, 0, $message); } exit_ok { exit } "exit called"; noexit_ok { } "exit not called";
In reply to Re: How to test exit? - override CORE::GLOBAL::exit
by imp
in thread How to test exit?
by andreas1234567
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |