proxy dies() when a method is invoked and the handle is not valid; add 2 more exclusi...
[scpubgit/Object-Remote.git] / t / perl_execute.t
1 use strictures 1;
2 use Test::More;
3
4 use Data::Dumper; 
5
6 require 't/logsetup.pl';
7
8 use Object::Remote::Connector::Local; 
9 use Object::Remote::Connector::SSH; 
10
11 my $defaults = Object::Remote::Connector::Local->new;
12
13 my $normal = $defaults->final_perl_command;
14 my $ulimit = Object::Remote::Connector::Local->new(ulimit => "-v 536")->final_perl_command;
15 my $nice = Object::Remote::Connector::Local->new(nice => 834)->final_perl_command;
16 my $both = Object::Remote::Connector::Local->new(nice => 612, ulimit => "-v 913")->final_perl_command;
17 my $ssh = Object::Remote::Connector::SSH->new(nice => 494, ulimit => "-v 782", ssh_to => 'testhost')->final_perl_command;
18
19 is($defaults->timeout, 10, 'Default connection timeout value is correct');
20 is($defaults->watchdog_timeout, undef, 'Watchdog is not enabled by default');
21 is($defaults->nice, undef, 'Nice is not enabled by default');
22 is($defaults->ulimit, undef, 'Ulimit is not enabled by default');
23 is($defaults->stderr, undef, 'Child process STDERR is clone of parent process STDERR by default');
24
25 is_deeply($normal, ['bash', '-c', 'perl -'], 'Default Perl interpreter arguments correct');
26 is_deeply($ulimit, ['bash', '-c', 'ulimit -v 536 || exit 1; perl -'], 'Arguments for ulimit are correct');
27 is_deeply($nice, ['bash', '-c', 'nice -n 834 perl -'], 'Arguments for nice are correct');
28 is_deeply($both, ['bash', '-c', 'ulimit -v 913 || exit 1; nice -n 612 perl -'], 'Arguments for nice and ulimit are correct');
29 is_deeply($ssh, [qw(ssh -A testhost), "bash -c 'ulimit -v 782 || exit 1; nice -n 494 perl -'"], "Arguments using ssh are correct");
30
31 done_testing; 
32