Use qemu where appropriate and available.
[pintos-anon] / tests / Makefile
index be8b0d552648438dae7e86818fd05e3122003ea0..feb01f5039c5081099561b2f265294211a775c2d 100644 (file)
@@ -21,11 +21,15 @@ cd $@/src && $(MAKE) clean $(SUBMAKEFLAGS)
 endef
 
 define run-tests
-cd $@/src/$(PROJECT) && make check
+cd $@/src/$(PROJECT) && $(MAKE) check
+endef
+
+define run-tests-grade
+cd $@/src/$(PROJECT) && $(MAKE) check && make grade
 endef
 
 define compile
-cd $@/src/$(PROJECT) && make
+cd $@/src/$(PROJECT) && $(MAKE)
 endef
 
 define clean
@@ -49,30 +53,36 @@ userprog vm filesys::
        $(compile)
        $(clean)
 
+FAST_SIM := $(if $(shell which qemu),--qemu)
+export PINTOSOPTS
+
 p1: PROJECT = threads
 p1::
        $(mk-sandbox)
        $(apply-patch) < ../solutions/p1.patch
-       $(run-tests)
+       $(run-tests-grade)
        $(clean)
 
 p2: PROJECT = userprog
+p2: PINTOSOPTS = $(FAST_SIM)
 p2::
        $(mk-sandbox)
        $(apply-patch) < ../solutions/p2.patch
-       $(run-tests)
+       $(run-tests-grade)
        $(clean)
 
 p3: PROJECT = vm
+p3: PINTOSOPTS = $(FAST_SIM)
 p3::
        $(mk-sandbox)
        $(apply-patch) < ../solutions/p3.patch
-       $(run-tests)
+       $(run-tests-grade)
        $(clean)
 
 p4: PROJECT = filesys
+p4: PINTOSOPTS = $(FAST_SIM)
 p4::
        $(mk-sandbox)
        $(apply-patch) < ../solutions/p4.patch
-       $(run-tests)
+       $(run-tests-grade)
        $(clean)