mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
1bd03c9c22
The 'perl' binary may not be /usr/bin/perl, depending on the system. For example, on modern FreeBSD it tends to be /usr/local/bin/perl instead. To avoid relying on perl to be in a specific location, just run via /usr/bin/env instead, so we pick up perl from $PATH instead. Change-Id: Ic8dc247c82342ff79dfa80426c489ccb8e3e1450 Reviewed-on: https://gerrit.openafs.org/14144 Tested-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
49 lines
1.2 KiB
Perl
Executable File
49 lines
1.2 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Test::More tests=>4;
|
|
use POSIX qw(:sys_wait_h :signal_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($?) != SIGTERM) {
|
|
fail("Server died with signal ".WTERMSIG($?));
|
|
} elsif (WIFEXITED($?) && WEXITSTATUS($?) != 0) {
|
|
fail("Server exited with code". WEXITSTATUS($?));
|
|
} else {
|
|
pass("Server exited succesfully");
|
|
}
|
|
|
|
|