2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-30 09:36:41 +00:00

Fix bug: failed to handle multiple cases with the same case name

This commit is contained in:
hu-weihua 2017-05-22 04:06:14 -04:00
parent 5aa88835d7
commit a290657965

View File

@ -819,6 +819,7 @@ sub load_case {
my $fd = undef;
my %invalidcases;
my %case_name_index_map_bak;
foreach my $file (@files) {
if (!open($fd, "<$file")) {
$$error_ref = "Can't open $file: $!";
@ -839,6 +840,9 @@ sub load_case {
$case_ref->[$i] = {};
$case_ref->[$i]->{name} = $name;
$case_ref->[$i]->{filename} = $file;
if(exists($$case_name_index_map_ref{"$name"})){
$case_name_index_map_bak{"$name"}=$$case_name_index_map_ref{"$name"};
}
$$case_name_index_map_ref{"$name"} = $i;
$newcmdstart = 0;
} else {
@ -856,6 +860,9 @@ sub load_case {
$case_ref->[$i] = {};
$case_ref->[$i]->{name} = $name;
$case_ref->[$i]->{filename} = $file;
if(exists($$case_name_index_map_ref{"$name"})){
$case_name_index_map_bak{"$name"}=$$case_name_index_map_ref{"$name"};
}
$$case_name_index_map_ref{"$name"} = $i;
$newcmdstart = 0;
} else {
@ -890,7 +897,12 @@ sub load_case {
}
}
unless ($valid) {
$skip = 1;
#$skip = 1;
if(exists($case_name_index_map_bak{$case_ref->[$i]->{name}})){
$$case_name_index_map_ref{$case_ref->[$i]->{name}}=$case_name_index_map_bak{$case_ref->[$i]->{name}};
}else{
delete $$case_name_index_map_ref{$case_ref->[$i]->{name}};
}
push @{ $invalidcases{"noruncases"} }, $case_ref->[$i]->{name};
}
}
@ -1099,8 +1111,8 @@ sub run_case {
my $case_start_time = timelocal(localtime());
my $case_start_time_str = scalar(localtime());
log_this($running_log_fd, "------START:$cases_ref->[$case_name_index_map_ref->{$case}]->{name}::Time:$case_start_time_str------\n");
push @caselog, "------START:$cases_ref->[$case_name_index_map_ref->{$case}]->{name}::Time:$case_start_time_str------\n";
log_this($running_log_fd, "------START::$cases_ref->[$case_name_index_map_ref->{$case}]->{name}::Time:$case_start_time_str------\n");
push @caselog, "------START::$cases_ref->[$case_name_index_map_ref->{$case}]->{name}::Time:$case_start_time_str------\n";
push @caselog, "FILENAME:$cases_ref->[$case_name_index_map_ref->{$case}]->{filename}\n";
foreach my $cmd (@{ $cases_ref->[ $case_name_index_map_ref->{$case} ]->{cmd} }) {