19ec85afcd4f359f0f06e47defb192de67efb17e
[openafs.git] / tests / rx / perf-t
1 #!/usr/bin/env perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests=>4;
7 use POSIX qw(:sys_wait_h :signal_h);
8
9 my $port = 4000;
10 my $build = $ENV{BUILD};
11 $build = ".." if (!defined($build));
12 my $rxperf = $build."/../src/tools/rxperf/rxperf";
13
14 # Start up an rxperf server
15
16 my $pid = fork();
17 if ($pid == -1) {
18     fail("Failed to fork rxperf server");
19     exit(1);
20 } elsif ($pid == 0) { 
21     exec({$rxperf}
22          "rxperf", "server", "-p", $port, "-u", "1024", "-H", "-N");
23     die("Kabooom ?");
24 }
25 pass("Started rxperf server");
26
27 # Start up an rxperf client, and run a test
28 is(0, 
29    system("$rxperf client -c rpc -p $port -S 1048576 -R 1048576 -T 30 -u 1024 -H -N"),
30    "single threaded client ran successfully");
31
32 is (0,
33     system("$rxperf client -c rpc -p $port -S 1048576 -R 1048576 -T 1 -t 30 -u 1024 -H -N"),
34     "multi threaded client ran succesfully");
35
36 # Kill the server, and check its exit code
37
38 kill("TERM", $pid);
39 waitpid($pid, 0);
40 if (WIFSIGNALED($?) && WTERMSIG($?) != SIGTERM) {
41     fail("Server died with signal ".WTERMSIG($?));
42 } elsif (WIFEXITED($?) && WEXITSTATUS($?) != 0) {
43     fail("Server exited with code". WEXITSTATUS($?));
44 } else {
45     pass("Server exited succesfully");
46 }
47
48