projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
When a Pintos run times out, report the load average.
[pintos-anon]
/
grading
/
lib
/
Pintos
/
Grading.pm
diff --git
a/grading/lib/Pintos/Grading.pm
b/grading/lib/Pintos/Grading.pm
index c2072a4f1c4714eb85a5f00e168f259c9698f4b5..bf6099f74e9540eb8fe468ae2c44a099085b8ac2 100644
(file)
--- a/
grading/lib/Pintos/Grading.pm
+++ b/
grading/lib/Pintos/Grading.pm
@@
-345,12
+345,9
@@
sub xsystem {
print "Child terminated with signal $signal\n";
}
print "Child terminated with signal $signal\n";
}
- my ($exp_status) = !defined ($options{EXPECT}) ? 0 : $options{EXPECT};
- $result = WIFEXITED ($status) && WEXITSTATUS ($status) == $exp_status
- ? "ok" : "error";
+ $result = $status == 0 ? "ok" : "error";
}
}
-
if ($result eq 'error' && defined $options{DIE}) {
my ($msg) = $options{DIE};
if (defined ($log)) {
if ($result eq 'error' && defined $options{DIE}) {
my ($msg) = $options{DIE};
if (defined ($log)) {
@@
-402,10
+399,14
@@
sub get_test_result {
sub run_pintos {
my ($cmd_line, %args) = @_;
sub run_pintos {
my ($cmd_line, %args) = @_;
- $args{EXPECT} = 1 unless defined $args{EXPECT};
my ($retval) = xsystem ($cmd_line, %args);
return 'ok' if $retval eq 'ok';
my ($retval) = xsystem ($cmd_line, %args);
return 'ok' if $retval eq 'ok';
- return "Timed out after $args{TIMEOUT} seconds" if $retval eq 'timeout';
+ if ($retval eq 'timeout') {
+ my ($msg) = "Timed out after $args{TIMEOUT} seconds";
+ my ($load_avg) = `uptime` =~ /(load average:.*)$/i;
+ $msg .= " - $load_avg" if defined $load_avg;
+ return $msg;
+ }
return 'Error running Bochs' if $retval eq 'error';
die;
}
return 'Error running Bochs' if $retval eq 'error';
die;
}
@@
-832,5
+833,12
@@
sub file_contains {
close (FILE);
return $equal;
}
close (FILE);
return $equal;
}
+
\f
+sub success {
+ for my $test (@TESTS) {
+ return 1 if !defined ($result{$test}) || $result{$test} ne 'ok';
+ }
+ return 0;
+}
1;
1;