1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#! /usr/bin/env perl
#
# Copyright 1999-2006 University of Chicago
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
use strict;
use POSIX;
use Test::More;
use File::Basename;
use lib dirname($0);
require "test-common.pl";
my $type = 0;
if(@ARGV == 1)
{
$type = 1;
}
my @tests;
my @todo;
my $test_exec="./framework_test";
my $test_name="read_barrier";
my $inline_finish;
my $buffer_size=2048;
my $c;
# setup different chunk sizes
my @chunk_sizes;
push(@chunk_sizes, "1024");
push(@chunk_sizes, "1924");
push(@chunk_sizes, "2048");
#setup different driver combinations
my @drivers;
push(@drivers, "");
push(@drivers, "-D debug");
push(@drivers, "-D bounce");
push(@drivers, "-D debug -D bounce");
push(@drivers, "-D bounce -D debug");
push(@drivers, "-D debug -D bounce -D debug");
push(@drivers, "-D bounce -D debug -D bounce");
sub read_barrier
{
# print out read barrier tests
my $inline_finish="-i";
for(my $i = 0; $i < 2; $i++)
{
foreach(@chunk_sizes)
{
$c = $_;
foreach(@drivers)
{
for(my $read_count = 1; $read_count <= 8; $read_count *= 2)
{
push(@tests, "$test_name -r $read_count -c $c -b $buffer_size $inline_finish $_");
}
}
}
$inline_finish="";
}
}
&read_barrier();
if($type == 1)
{
foreach(@tests)
{
print "$_\n";
}
}
else
{
plan tests => scalar(@tests), todo => \@todo;
my $cnt=0;
foreach(@tests)
{
my $test_str="$test_name.$cnt";
&run_test("$test_exec $_", $test_str);
$cnt++;
}
}
|