Start factoring out common pieces of run-tests scripts.
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 6 Dec 2004 20:03:56 +0000 (20:03 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 6 Dec 2004 20:03:56 +0000 (20:03 +0000)
grading/lib/Pintos/Grading.pm [new file with mode: 0644]
grading/threads/run-tests
grading/userprog/run-tests
grading/vm/run-tests

diff --git a/grading/lib/Pintos/Grading.pm b/grading/lib/Pintos/Grading.pm
new file mode 100644 (file)
index 0000000..91b0ab4
--- /dev/null
@@ -0,0 +1,12 @@
+package Pintos::Grading;
+use Exporter 'import';
+
+@EXPORT = qw($verbose $action);
+
+use warnings;
+use strict;
+use Getopt::Long;
+
+
+
+1;
index d5f58706ec01c2b2d3ba01e4ff70acf2e395600d..1a869fa1f1ab081426d14dccdf6f00ba9f86be4d 100755 (executable)
@@ -1,5 +1,15 @@
 #! /usr/bin/perl
 
+# Find the directory that contains the grading files.
+our ($GRADES_DIR);
+
+# Add our Perl library directory to the include path. 
+BEGIN {
+    ($GRADES_DIR = $0) =~ s#/[^/]+$##;
+    -d $GRADES_DIR or die "$GRADES_DIR: stat: $!\n";
+    unshift @INC, "$GRADES_DIR/../lib";
+}
+
 use warnings;
 use strict;
 use POSIX;
@@ -24,7 +34,7 @@ sub usage {
     my ($exitcode) = @_;
     print "run-tests, for grading Pintos thread projects.\n\n";
     print "Invoke from a directory containing a student tarball named by\n";
-    print "the submit script, e.g. username.Oct.12.04.20.04.09.tar.gz.\n";
+    print "the submit script, e.g. username.MMM.DD.YY.hh.mm.ss.tar.gz.\n";
     print "In normal usage, no options are needed.\n\n";
     print "Output is produced in tests.out and details.out.\n\n";
     print "Options:\n";
@@ -98,11 +108,6 @@ if ($grade) {
     exit 0;
 }
 
-# Find the directory that contains the grading files.
-our ($GRADES_DIR);
-($GRADES_DIR = $0) =~ s#/[^/]+$##;
--d $GRADES_DIR or die "$GRADES_DIR: stat: $!\n";
-
 if ($clean) {
     # Verify that we're roughly in the correct directory
     # before we go blasting away files.
index 4f4bb100a55ae74d2788242bef6d753e9addb7a4..8104a7f307988b8d0ad193a8e597618b1f5b8d21 100755 (executable)
@@ -1,5 +1,15 @@
 #! /usr/bin/perl
 
+# Find the directory that contains the grading files.
+our ($GRADES_DIR);
+
+# Add our Perl library directory to the include path. 
+BEGIN {
+    ($GRADES_DIR = $0) =~ s#/[^/]+$##;
+    -d $GRADES_DIR or die "$GRADES_DIR: stat: $!\n";
+    unshift @INC, "$GRADES_DIR/../lib";
+}
+
 use warnings;
 use strict;
 use POSIX;
@@ -116,11 +126,6 @@ if ($grade) {
     exit 0;
 }
 
-# Find the directory that contains the grading files.
-our ($GRADES_DIR);
-($GRADES_DIR = $0) =~ s#/[^/]+$##;
--d $GRADES_DIR or die "$GRADES_DIR: stat: $!\n";
-
 if ($clean) {
     # Verify that we're roughly in the correct directory
     # before we go blasting away files.
index 11fe3e2009abddbd2ca14d0b260678f930c24a3e..108821ff631dfca27e23911b534109bf07e7c53a 100755 (executable)
@@ -3,6 +3,7 @@
 # Find the directory that contains the grading files.
 our ($GRADES_DIR);
 
+# Add our Perl library directory to the include path. 
 BEGIN {
     ($GRADES_DIR = $0) =~ s#/[^/]+$##;
     -d $GRADES_DIR or die "$GRADES_DIR: stat: $!\n";
@@ -15,12 +16,12 @@ use POSIX;
 use Algorithm::Diff;
 use Getopt::Long;
 
-our ($VERBOSE) = 0;    # Verbosity of output
+our ($verbose) = 0;    # Verbosity of output
 our (@TESTS);          # Tests to run.
 my ($clean) = 0;
 my ($grade) = 0;
 
-GetOptions ("v|verbose+" => \$VERBOSE,
+GetOptions ("v|verbose+" => \$verbose,
            "h|help" => sub { usage (0) },
            "t|test=s" => \@TESTS,
            "c|clean" => \$clean,
@@ -620,7 +621,7 @@ sub write_details {
 \f
 sub xsystem {
     my ($command, %options) = @_;
-    print "$command\n" if $VERBOSE || $options{VERBOSE};
+    print "$command\n" if $verbose || $options{VERBOSE};
 
     my ($log) = $options{LOG};