}
write_grades ();
write_details ();
-exit if $action eq 'test';
+exit success () if $action eq 'test';
assemble_final_grade ();
-exit if $action eq 'assemble';
+exit success () if $action eq 'assemble';
die "Don't know how to '$action'";
sub run_test {
# Change constants.h if necessary.
my ($defines) = $test ne 'mlfqs-on' ? "" : "#define MLFQS 1\n";
+ $defines .= "#define THREAD_JOIN_IMPLEMENTED 1\n";
if ($defines ne snarf ("pintos/src/constants.h")) {
open (CONSTANTS, ">pintos/src/constants.h");
print CONSTANTS $defines;
xsystem ("cp pintos/src/threads/build/os.dsk output/$test");
# Run.
- my ($timeout) = $test !~ /^mlfqs/ ? 10 : 600;
- return run_pintos ("cd pintos/src/threads/build && pintos -v run -q",
+ my ($timeout) = $test !~ /^mlfqs/ ? 15 : 600;
+ return run_pintos (["-v", "run", "-q"],
+ CHDIR => "pintos/src/threads/build",
LOG => "$test/run",
TIMEOUT => $timeout);
}