1# -*- perl -*- 2# 3 4require 5.004; 5use strict; 6 7require "t/lib.pl"; 8 9 10my $numTests = 11; 11my $numTest = 0; 12 13 14my $cfg = <<"EOF"; 15 16{ 17 clients => [ { 18 'mask' => '^127\.0\.0\.1\$', 19 'accept' => 1, 20 'methods' => { 21 'CalcServer' => { 22 'NewHandle' => 1, 23 'CallMethod' => 1 24 }, 25 'Calculator' => { 26 'new' => 1, 27 'add' => 1, 28 'multiply' => 1, 29 'divide' => 1, 30 'subtract' => 1 31 } 32 } } 33 ] 34} 35EOF 36if (!open(FILE, ">t/methods.cfg") || !(print FILE ($cfg)) || !close(FILE)) { 37 die "Error while creating config file t/methods.cfg: $!"; 38} 39 40 41my($handle, $port); 42($handle, $port) = Net::Daemon::Test->Child($numTests, 43 $^X, '-Iblib/lib', 44 '-Iblib/arch', 45 't/server', '--mode=single', 46 '--debug', '--timeout', 60, 47 '--configfile', 't/methods.cfg'); 48 49 50my @opts = ('peeraddr' => '127.0.0.1', 'peerport' => $port, 'debug' => 1, 51 'application' => 'CalcServer', 'version' => 0.01, 52 'timeout' => 20); 53 54 55my($client, $calculator) = RunTests(@opts); 56Test(!eval { $calculator->not_permitted() }); 57Test($@ =~ /permitted/); 58 59END { $handle->Terminate() if $handle }; 60