Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 275173
b: refs/heads/master
c: 2ed3b16
h: refs/heads/master
i:
  275171: 9b5bf48
v: v3
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Oct 17, 2011
1 parent 0d5bc18 commit f822311
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ab7a3f52cef5ff1c784de7adfbda3421b10754a4
refs/heads/master: 2ed3b16128e93309758e62937e7f137ac9844227
55 changes: 48 additions & 7 deletions trunk/tools/testing/ktest/ktest.pl
Original file line number Diff line number Diff line change
Expand Up @@ -412,15 +412,16 @@ sub process_if {
return 1;
}

sub read_config {
my ($config) = @_;
sub __read_config {
my ($config, $current_test_num) = @_;

open(IN, $config) || die "can't read file $config";
my $in;
open($in, $config) || die "can't read file $config";

my $name = $config;
$name =~ s,.*/(.*),$1,;

my $test_num = 0;
my $test_num = $$current_test_num;
my $default = 1;
my $repeat = 1;
my $num_tests_set = 0;
Expand All @@ -430,7 +431,7 @@ sub read_config {
my $if = 0;
my $if_set = 0;

while (<IN>) {
while (<$in>) {

# ignore blank lines and comments
next if (/^\s*$/ || /\s*\#/);
Expand Down Expand Up @@ -539,6 +540,33 @@ sub read_config {
die "$name: $.: Gargbage found after DEFAULTS\n$_";
}

} elsif (/^\s*INCLUDE\s+(\S+)/) {

next if ($skip);

if (!$default) {
die "$name: $.: INCLUDE can only be done in default sections\n$_";
}

my $file = process_variables($1);

if ($file !~ m,^/,) {
# check the path of the config file first
if ($config =~ m,(.*)/,) {
if (-f "$1/$file") {
$file = "$1/$file";
}
}
}

if ( ! -r $file ) {
die "$name: $.: Can't read file $file\n$_";
}

if (__read_config($file, \$test_num)) {
$test_case = 1;
}

} elsif (/^\s*([A-Z_\[\]\d]+)\s*=\s*(.*?)\s*$/) {

next if ($skip);
Expand Down Expand Up @@ -594,13 +622,26 @@ sub read_config {
}
}

close(IN);

if ($test_num) {
$test_num += $repeat - 1;
$opt{"NUM_TESTS"} = $test_num;
}

close($in);

$$current_test_num = $test_num;

return $test_case;
}

sub read_config {
my ($config) = @_;

my $test_case;
my $test_num = 0;

$test_case = __read_config $config, \$test_num;

# make sure we have all mandatory configs
get_ktest_configs;

Expand Down
32 changes: 30 additions & 2 deletions trunk/tools/testing/ktest/sample.conf
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,36 @@
# ELSE
# BUILD_TYPE = useconfig:${CONFIG_DIR}/config-64
#


#
# INCLUDE file
#
# The INCLUDE keyword may be used in DEFAULT sections. This will
# read another config file and process that file as well. The included
# file can include other files, add new test cases or default
# statements. Config variables will be passed to these files and changes
# to config variables will be seen by top level config files. Including
# a file is processed just like the contents of the file was cut and pasted
# into the top level file, except, that include files that end with
# TEST_START sections will have that section ended at the end of
# the include file. That is, an included file is included followed
# by another DEFAULT keyword.
#
# Unlike other files referenced in this config, the file path does not need
# to be absolute. If the file does not start with '/', then the directory
# that the current config file was located in is used. If no config by the
# given name is found there, then the current directory is searched.
#
# INCLUDE myfile
# DEFAULT
#
# is the same as:
#
# INCLUDE myfile
#
# Note, if the include file does not contain a full path, the file is
# searched first by the location of the original include file, and then
# by the location that ktest.pl was executed in.
#

#### Config variables ####
#
Expand Down

0 comments on commit f822311

Please sign in to comment.