The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;

use Test::More tests => 5;
use Test::Fatal;

use IPC::PerlSSH;

my $ips = IPC::PerlSSH->new( Command => "$^X" );

use lib ".";
$ips->use_library( "t::Math", qw( sum ) );

my $total = $ips->call( "sum", 10, 20, 30 );

is( $total, 60, '$total is 60' );

ok( !exception { $ips->use_library( "t::Math" ) },
    'Loading t::Math a second time succeeds' );

like( exception { $ips->use_library( "t::Math", qw( missingfunc ) ) },
      qr/^t::Math does not define a library function called missingfunc /,
      'Loading a missing library fails' );

like( exception { $ips->use_library( "a::library::that::doesn't::exist" ) },
      qr/^Cannot find an IPC::PerlSSH library called a::library::that::doesn't::exist /,
      'Loading a missing library fails' );

ok( exception { $ips->use_library( "t::Error" ) },
    'Loading t::Error fails' );