Implement a proper block layer with partition support.
[pintos-anon] / src / tests / Make.tests
index b98a75d33e65d460a565373d7682865551c7b448..358e69724b156b15dc98c76301367015ee3b6a59 100644 (file)
@@ -4,10 +4,11 @@ include $(patsubst %,$(SRCDIR)/%/Make.tests,$(TEST_SUBDIRS))
 
 PROGS = $(foreach subdir,$(TEST_SUBDIRS),$($(subdir)_PROGS))
 TESTS = $(foreach subdir,$(TEST_SUBDIRS),$($(subdir)_TESTS))
+EXTRA_GRADES = $(foreach subdir,$(TEST_SUBDIRS),$($(subdir)_EXTRA_GRADES))
 
-OUTPUTS = $(addsuffix .output,$(TESTS))
-ERRORS = $(addsuffix .errors,$(TESTS))
-RESULTS = $(addsuffix .result,$(TESTS))
+OUTPUTS = $(addsuffix .output,$(TESTS) $(EXTRA_GRADES))
+ERRORS = $(addsuffix .errors,$(TESTS) $(EXTRA_GRADES))
+RESULTS = $(addsuffix .result,$(TESTS) $(EXTRA_GRADES))
 
 ifdef PROGS
 include ../../Makefile.userprog
@@ -33,7 +34,7 @@ check:: results
        fi
 
 results: $(RESULTS)
-       @for d in $(TESTS); do                                  \
+       @for d in $(TESTS) $(EXTRA_GRADES); do                  \
                if echo PASS | cmp -s $$d.result -; then        \
                        echo "pass $$d";                        \
                else                                            \
@@ -47,24 +48,28 @@ $(foreach prog,$(PROGS),$(eval $(prog).output: $(prog)))
 $(foreach test,$(TESTS),$(eval $(test).output: $($(test)_PUTFILES)))
 $(foreach test,$(TESTS),$(eval $(test).output: TEST = $(test)))
 
-TESTCMD = pintos -v -T $(TIMEOUT)
+# Prevent an environment variable VERBOSE from surprising us.
+VERBOSE =
+
+TESTCMD = pintos -v -k -T $(TIMEOUT)
 TESTCMD += $(SIMULATOR)
 TESTCMD += $(PINTOSOPTS)
 ifeq ($(filter userprog, $(KERNEL_SUBDIRS)), userprog)
-TESTCMD += --fs-disk=$(FSDISK)
+TESTCMD += $(FILESYSSOURCE)
 TESTCMD += $(foreach file,$(PUTFILES),-p $(file) -a $(notdir $(file)))
 endif
 ifeq ($(filter vm, $(KERNEL_SUBDIRS)), vm)
-TESTCMD += --swap-disk=4
+TESTCMD += --swap-size=4
 endif
-TESTCMD += -- -q 
+TESTCMD += -- -q
 TESTCMD += $(KERNELFLAGS)
 ifeq ($(filter userprog, $(KERNEL_SUBDIRS)), userprog)
 TESTCMD += -f
 endif
 TESTCMD += $(if $($(TEST)_ARGS),run '$(*F) $($(TEST)_ARGS)',run $(*F))
+TESTCMD += < /dev/null
 TESTCMD += 2> $(TEST).errors $(if $(VERBOSE),|tee,>) $(TEST).output
-%.output: os.dsk
+%.output: kernel.bin loader.bin
        $(TESTCMD)
 
 %.result: %.ck %.output