Add SUBMAKEFLAGS.
[pintos-anon] / tests / Makefile
index af04b414c667e9520a6d1943b5e32a69cd1a4105..456e083c81b17623978c9b9e15d94994d7479643 100644 (file)
@@ -1,9 +1,9 @@
-TESTS = threads p1-1 p1-2 p1-3 list stdlib userprog p2 vm filesys
+TESTS = threads p1-1 p1-2 list stdlib stdio userprog p2 vm filesys
 
 PATH := $(shell pwd)/../src/utils:$(PATH)
 
 all:
-       @echo This Makefile has only `check' targets.
+       @echo "This Makefile has only \`check' targets."
 
 check:
        $(MAKE) -C .. distclean
@@ -13,21 +13,23 @@ check:
 clean:
        rm -rf $(TESTS)
 
+SUBMAKEFLAGS = -s
+
 define prep-threads-grading
 endef
 
 define prep-userprog-grading
-$(MAKE) -C ../src/userprog -s
-$(MAKE) -C ../grading/userprog -s
+$(MAKE) -C ../src/userprog $(SUBMAKEFLAGS)
+$(MAKE) -C ../grading/userprog $(SUBMAKEFLAGS)
 endef
 
 define prep-vm-grading
-$(MAKE) -C ../src/userprog -s
-$(MAKE) -C ../grading/vm -s
+$(MAKE) -C ../src/userprog $(SUBMAKEFLAGS)
+$(MAKE) -C ../grading/vm $(SUBMAKEFLAGS)
 endef
 
 define prep-filesys-grading
-$(MAKE) -C ../grading/filesys -s
+$(MAKE) -C ../grading/filesys $(SUBMAKEFLAGS)
 endef
 
 define prep-grading
@@ -36,6 +38,7 @@ endef
 
 define mk-sandbox
 rm -rf $@ && mkdir -p $@/pintos && cp -R ../src $@/pintos
+cd $@/pintos/src && $(MAKE) clean $(SUBMAKEFLAGS)
 endef
 
 define run-tests
@@ -47,7 +50,7 @@ rm -rf $@/pintos
 endef
 
 define apply-patch
-(cd $@/pintos && patch -p0 -s) <
+(cd $@/pintos && patch -p0)
 endef
 
 threads: PROJECT = threads
@@ -59,39 +62,31 @@ threads::
 p1-1: PROJECT = threads
 p1-1::
        $(mk-sandbox)
-       $(apply-patch) ../solutions/p1-1.patch
+       $(apply-patch) ../solutions/p1-1.patch
        $(run-tests) -d alarm.*
        $(clean)
 
 p1-2: PROJECT = threads
 p1-2::
        $(mk-sandbox)
-       $(apply-patch) ../solutions/p1-2.patch
-       $(run-tests) -d join.*
-       $(clean)
-
-p1-3: PROJECT = threads
-p1-3::
-       $(mk-sandbox)
-       $(apply-patch) ../solutions/p1-3.patch
+       $(apply-patch) < ../solutions/p1-2.patch
        $(run-tests) -d priority.*
        $(clean)
 
 list: PROJECT = threads
-list stdlib::
+list stdlib stdio::
        $(mk-sandbox)
        cp ../src/tests/threads/$@.c $@/pintos/src/threads/test.c
-       $(MAKE) -C $@/pintos/src/threads -s
+       $(MAKE) -C $@/pintos/src/threads $(SUBMAKEFLAGS)
        -(cd $@/pintos/src/threads/build && pintos -v run -q) | tee $@/output
        grep -q '$@: PASS' $@/output
        $(clean)
 
 userprog: PROJECT = userprog
 userprog::
-       $(prep-grading)
+       $(prep-grading) null.dsk
        $(mk-sandbox)
-       $(apply-patch) ../solutions/p1-2.patch
-       echo '#define THREAD_JOIN_IMPLEMENTED 1' > $@/pintos/src/constants.h
+       $(apply-patch) < ../solutions/p2-null.patch
        $(run-tests) null
        $(clean)
 
@@ -99,7 +94,7 @@ p2: PROJECT = userprog
 p2::
        $(prep-grading)
        $(mk-sandbox)
-       $(apply-patch) ../solutions/p2.patch
+       $(apply-patch) ../solutions/p2.patch
        $(run-tests)
        $(clean)
 
@@ -107,12 +102,12 @@ vm: PROJECT = vm
 vm::
        $(prep-grading)
        $(mk-sandbox)
-       $(MAKE) -C $@/pintos/src/vm -s
+       $(MAKE) -C $@/pintos/src/vm $(SUBMAKEFLAGS)
        $(clean)
 
 filesys: PROJECT = filesys
 filesys::
        $(prep-grading)
        $(mk-sandbox)
-       $(MAKE) -C $@/pintos/src/filesys -s
+       $(MAKE) -C $@/pintos/src/filesys $(SUBMAKEFLAGS)
        $(clean)