run all available queries automatically
This commit is contained in:
@ -49,9 +49,7 @@ sub find_subdirs {
|
||||
}
|
||||
|
||||
sub execute_query {
|
||||
my ( $experiment, $queryname, $db_conf, $builds_dir ) = @_;
|
||||
|
||||
say "Running query $queryname";
|
||||
my ( $experiment, $queryname, $db_conf, $builds_dir, $do_notify_file ) = @_;
|
||||
|
||||
my $module = "Queries::$queryname";
|
||||
my $file = "$module.pm";
|
||||
@ -80,7 +78,9 @@ sub execute_query {
|
||||
print $results_handle $result;
|
||||
close($results_handle) or die "failed to close file: $!";
|
||||
|
||||
if ( defined $do_notify_file and $do_notify_file == 1 ) {
|
||||
notify_file("$builds_dir/$experiment/$filenamestring");
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@ -67,13 +67,6 @@ sub cpu_count {
|
||||
return $count;
|
||||
}
|
||||
|
||||
# Find new experiments
|
||||
# opendir( my $dhandle, $remote_builds_dir )
|
||||
# or die "opendir($remote_builds_dir): $!";
|
||||
# my @experiments = grep { $_ ne '.' && $_ ne '..' && -d "$remote_builds_dir/$_" }
|
||||
# readdir($dhandle);
|
||||
# closedir($dhandle);
|
||||
|
||||
my @experiments = Util::find_subdirs($remote_builds_dir);
|
||||
|
||||
sub trace {
|
||||
@ -100,8 +93,6 @@ sub trace {
|
||||
"-Wf,--elf-file=$remote_builds_dir/$experiment/system.elf"
|
||||
)
|
||||
);
|
||||
|
||||
# notify("Tracing $experiment complete.");
|
||||
}
|
||||
|
||||
sub import_trace {
|
||||
@ -198,8 +189,6 @@ sub import_trace {
|
||||
"-b %%", "--overwrite"
|
||||
)
|
||||
);
|
||||
|
||||
# notify("Importing $experiment trace complete.");
|
||||
}
|
||||
|
||||
sub inject {
|
||||
@ -268,67 +257,22 @@ sub inject {
|
||||
say "Killing server with pid $pid...";
|
||||
kill 'TERM', $pid;
|
||||
waitpid( $pid, 0 );
|
||||
|
||||
# notify("Injecting $experiment complete.");
|
||||
}
|
||||
|
||||
# sub query {
|
||||
# my ( $experiment, $query, $args, $file, $postprocess ) = @_;
|
||||
#
|
||||
# say "Running query $query";
|
||||
#
|
||||
# my $result = qx{mariadb --defaults-file=$remote_db_conf $args -e "$query"};
|
||||
# die "Query failed: $?" if $? != 0;
|
||||
#
|
||||
# if ( defined $postprocess ) {
|
||||
# $postprocess->($result);
|
||||
# }
|
||||
#
|
||||
# open( my $results_handle, '>', "$remote_builds_dir/$experiment/$file" )
|
||||
# or die "failed to open file: $!";
|
||||
# print $results_handle $result;
|
||||
# close($results_handle) or die "failed to close file: $!";
|
||||
#
|
||||
# notify_file("$remote_builds_dir/$experiment/$file");
|
||||
# }
|
||||
|
||||
sub results {
|
||||
my ($experiment) = @_;
|
||||
|
||||
Util::notify("Querying $experiment...");
|
||||
my @queries = Util::find_files("$remote_root/scripts/Queries");
|
||||
|
||||
Util::execute_query( $experiment, "Results", $remote_db_conf,
|
||||
$remote_builds_dir );
|
||||
Util::execute_query( $experiment, "FaultsFailed", $remote_db_conf,
|
||||
$remote_builds_dir );
|
||||
foreach (@queries) {
|
||||
my $query = $_;
|
||||
$query =~ s/\.pm//g;
|
||||
|
||||
# my $results_overview_query = "SELECT
|
||||
# variant, benchmark, resulttype, sum(t.time2 - t.time1 + 1) AS faults
|
||||
# FROM variant v
|
||||
# JOIN trace t ON v.id = t.variant_id
|
||||
# JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
|
||||
# JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
|
||||
# JOIN fsppilot p ON r.pilot_id = p.id
|
||||
# WHERE v.variant = '$experiment'
|
||||
# GROUP BY v.id, resulttype
|
||||
# ORDER BY variant, benchmark, resulttype;";
|
||||
#
|
||||
# query( $experiment, $results_overview_query, "-t", "results.txt" );
|
||||
#
|
||||
# my $fail_markers_query = "SELECT
|
||||
# CONCAT('0x', HEX(p.injection_instr_absolute)) AS fault_address,
|
||||
# SUM(t.time2 - t.time1 + 1) AS total_fail_markers
|
||||
# FROM trace t
|
||||
# JOIN variant v ON v.id = t.variant_id
|
||||
# JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
|
||||
# JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
|
||||
# JOIN fsppilot p ON p.id = r.pilot_id
|
||||
# WHERE v.variant = '$experiment' AND r.resulttype = 'FAIL_MARKER'
|
||||
# GROUP BY p.injection_instr_absolute
|
||||
# ORDER BY SUM(t.time2 - t.time1 + 1) DESC;";
|
||||
#
|
||||
# query( $experiment, $fail_markers_query, "--batch --raw",
|
||||
# "markers.csv", sub { $_[0] =~ s/\t/,/g } );
|
||||
Util::notify("Running query $query for $experiment...");
|
||||
|
||||
Util::execute_query( $experiment, $query,
|
||||
$remote_db_conf, $remote_builds_dir, 1 );
|
||||
}
|
||||
}
|
||||
|
||||
# Run experiments
|
||||
|
||||
Reference in New Issue
Block a user