#!/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"); }