The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Mojo::Base -strict;
use Test::More;

plan skip_all => 'Cannot run as root' if $< == 0 or $> == 0;

$ENV{TOADFARM_NO_EXIT} = 1;
no warnings qw(once redefine);
my ($exit, $sleep, @system);
*CORE::GLOBAL::system = sub { @system = @_; };

require Toadfarm::Command::reload;
my $cmd = Toadfarm::Command::reload->new;

plan skip_all => $@ unless eval { $cmd->_hypnotoad };

*Toadfarm::Command::start::_printf = sub {
  my ($self, $format) = (shift, shift);
  note(sprintf $format, @_);
};

{
  use Toadfarm -init;
  start;
  $cmd->app(app);
}

$? = 256;    # mock system() return value
is $cmd->run, 1, 'failed to reload. (1)';
like "@system", qr{hypnotoad \S*command-reload\.t$}, 'system';

$? = 0;      # mock system() return value
is $cmd->run, 0, 'reloaded';

done_testing;