openafs/tests/rx/perf-t
Simon Wilkinson 3a1e129b76 tests: Add a RX functionality test
Use the rxperf performance testing tools to add a couple of simple
RX tests. The first moves 1Mbyte of data backwards and forwards 30
times. The second starts 30 threads, which each move 1MByte of data
once.

This is by no means an exhaustive test of RX, but the single and
multi-threaded invocations should provide a useful smoke test if
things get very broken.

Change-Id: I11267be067cf6c05a20aeb90a18ed4031502a1b1
Reviewed-on: http://gerrit.openafs.org/7244
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
2012-04-19 05:07:19 -07:00

49 lines
1.2 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests=>4;
use POSIX "sys_wait_h";
my $port = 4000;
my $build = $ENV{BUILD};
$build = ".." if (!defined($build));
my $rxperf = $build."/../src/tools/rxperf/rxperf";
# Start up an rxperf server
my $pid = fork();
if ($pid == -1) {
fail("Failed to fork rxperf server");
exit(1);
} elsif ($pid == 0) {
exec({$rxperf}
"rxperf", "server", "-p", $port, "-u", "1024", "-H", "-N");
die("Kabooom ?");
}
pass("Started rxperf server");
# Start up an rxperf client, and run a test
is(0,
system("$rxperf client -c rpc -p $port -S 1048576 -R 1048576 -T 30 -u 1024 -H -N"),
"single threaded client ran successfully");
is (0,
system("$rxperf client -c rpc -p $port -S 1048576 -R 1048576 -T 1 -t 30 -u 1024 -H -N"),
"multi threaded client ran succesfully");
# Kill the server, and check its exit code
kill("TERM", $pid);
waitpid($pid, 0);
if (WIFSIGNALED($?) && WTERMSIG($?) != POSIX::SIGTERM) {
fail("Server died with signal ".WTERMSIG($?));
} elsif (WIFEXITED($?) && WEXITSTATUS($?) != 0) {
fail("Server exited with code". WEXITSTATUS($?));
} else {
pass("Server exited succesfully");
}