projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Updates.
[pintos-anon]
/
grading
/
userprog
/
prep-disk
diff --git
a/grading/userprog/prep-disk
b/grading/userprog/prep-disk
index 611fdcce55767142179d6a67dfc5fb728320e00d..f37a68297b11d2502190f71a51305dc41f5510a2 100755
(executable)
--- a/
grading/userprog/prep-disk
+++ b/
grading/userprog/prep-disk
@@
-2,6
+2,7
@@
use strict;
use Getopt::Long;
use strict;
use Getopt::Long;
+use POSIX;
my ($pintos) = "pintos";
my ($os_disk) = "../../src/userprog/build/os.dsk";
my ($pintos) = "pintos";
my ($os_disk) = "../../src/userprog/build/os.dsk";
@@
-33,7
+34,7
@@
if (! -e $os_disk) {
our ($formatted) = 0;
unlink $fs_disk;
our ($formatted) = 0;
unlink $fs_disk;
-xsystem ("$pintos make-disk '$fs_disk' 2");
+xsystem (
0,
"$pintos make-disk '$fs_disk' 2");
put_file ("$test");
put_file ("sample.txt")
if grep ($_ eq $test,
put_file ("$test");
put_file ("sample.txt")
if grep ($_ eq $test,
@@
-42,20
+43,26
@@
put_file ("sample.txt")
read-normal read-bad-ptr read-boundary read-zero
write-normal write-bad-ptr write-boundary write-zero
multi-child-fd));
read-normal read-bad-ptr read-boundary read-zero
write-normal write-bad-ptr write-boundary write-zero
multi-child-fd));
-put_file ("child-simple") if $test eq 'exec-once' or $test eq 'exec-multiple';
+put_file ("child-simple")
+ if grep ($_ eq $test,
+ qw (exec-once exec-multiple
+ join-simple join-twice));
put_file ("child-arg") if $test eq 'exec-arg';
put_file ("child-close") if $test eq 'multi-child-fd';
put_file ("child-arg") if $test eq 'exec-arg';
put_file ("child-close") if $test eq 'multi-child-fd';
+put_file ("child-bad") if $test eq 'join-killed';
sub put_file {
my ($fn) = @_;
my ($cmd) = "$pintos -v --os-disk='$os_disk' --fs-disk='$fs_disk' put";
$cmd .= " -f", $formatted = 1 if !$formatted;
$cmd .= " '$fn'";
sub put_file {
my ($fn) = @_;
my ($cmd) = "$pintos -v --os-disk='$os_disk' --fs-disk='$fs_disk' put";
$cmd .= " -f", $formatted = 1 if !$formatted;
$cmd .= " '$fn'";
- xsystem ($cmd);
+ xsystem (
1,
$cmd);
}
sub xsystem {
}
sub xsystem {
- my ($cmd) = @_;
+ my ($
expect, $
cmd) = @_;
print "$cmd\n";
print "$cmd\n";
- system ($cmd) == 0 || die "command failed\n";
+ my ($code) = system ($cmd);
+ WIFEXITED ($code) && WEXITSTATUS ($code) == $expect
+ or die "command failed\n";
}
}