summaryrefslogtreecommitdiff
path: root/trunk/ACE/performance-tests/Synch-Benchmarks/run_tests.pl
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/ACE/performance-tests/Synch-Benchmarks/run_tests.pl')
-rwxr-xr-xtrunk/ACE/performance-tests/Synch-Benchmarks/run_tests.pl131
1 files changed, 131 insertions, 0 deletions
diff --git a/trunk/ACE/performance-tests/Synch-Benchmarks/run_tests.pl b/trunk/ACE/performance-tests/Synch-Benchmarks/run_tests.pl
new file mode 100755
index 00000000000..1ef43e69298
--- /dev/null
+++ b/trunk/ACE/performance-tests/Synch-Benchmarks/run_tests.pl
@@ -0,0 +1,131 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+
+$EXE = "synch_driver";
+$Win32 = 0;
+if ($^O eq "MSWin32")
+{
+ $Win32 = 1;
+}
+
+$debug = 0;
+$name = "release";
+$result_dir = "results";
+$svcconf_dir = "svcconf";
+$conf_ext = ".conf";
+
+@Null_List = ();
+
+# This is called "baseline"
+@Baseline_List = ("base_acquire",
+ "base_tryacquire",
+ "base_acquire_read",
+ "base_tryacquire_read",
+ "base_acquire_write",
+ "base_tryacquire_write");
+
+# this is called "perf_thrno"
+@Perf_Thr_Number_List = ("perf_t1",
+ "perf_t2",
+ "perf_t4",
+ "perf_t8",
+ "perf_t16",
+ "perf_t32",
+ "perf_t64");
+
+@Target = @Null_List;
+
+while ( $#ARGV >= 0 && $ARGV[0] =~ /^-/ )
+{
+ if ($ARGV[0] eq '-d') # Run debug mode
+ {
+ $name = "debug";
+ }
+ elsif ($ARGV[0] eq '-p') # Debug perl script
+ {
+ $debug = 1;
+ print "debug perl scirpt\n";
+ }
+ elsif ($ARGV[0] eq '-D') # Subdir name to put the result
+ {
+ shift;
+ $result_dir = $ARGV[0];
+ }
+ elsif ($ARGV[0] eq '-S') # Subdir to svc.conf files.
+ {
+ shift;
+ $svcconf_dir = $ARGV[0];
+ }
+ elsif ($ARGV[0] eq '-N') # Specify test name.
+ {
+ shift;
+ if ($ARGV[0] eq "baseline")
+ {
+ @Target = @Baseline_List;
+ }
+ elsif ($ARGV[0] eq "perf_thrno")
+ {
+ @Target = @Perf_Thr_Number_List;
+ }
+ else
+ {
+ die "Unknown test \"$ARGV[0]\"\n";
+ }
+ }
+ else
+ {
+ warn "$0: unknown option $ARGV[0]\n";
+ die $usage;
+ }
+ shift;
+}
+
+die "You must specify a test to run\n" if (scalar (@Target) == 0);
+
+if ($Win32 != 0)
+{
+ $execname = "$name\\$EXE";
+ $DIR_SEPARATOR = '\\';
+}
+else
+{
+ $execname = "./$EXE"; # Notice that on UNIX, you much build
+ # Debug/Release program explicitly
+ # before running the script.
+ $DIR_SEPARATOR = '/';
+}
+
+for ($Cntr = 0; $Cntr < scalar (@Target); $Cntr++)
+{
+ $Redirect_Output = "$result_dir$DIR_SEPARATOR$Target[$Cntr].$name";
+ if ($debug != 0) # Only redirect output in actual run
+ {
+ print "Redirectling output to $Redirect_Output\n";
+ }
+ else
+ {
+ open STDOUT, "> $Redirect_Output";
+ open STDERR, ">&STDOUT";
+ }
+
+ @args = ("$execname",
+ "-f",
+ "$svcconf_dir$DIR_SEPARATOR$Target[$Cntr]$conf_ext");
+
+ if ($debug != 0)
+ {
+ print "Debug mode: Executing -- ";
+ for ($args_c = 0; $args_c < scalar (@args); $args_c ++)
+ {
+ print "$args[$args_c] ";
+ }
+ print "\n";
+ }
+ else
+ {
+ system (@args);
+ }
+}