projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Clean tests/vm/zeros.
[pintos-anon]
/
tests
/
Makefile
diff --git
a/tests/Makefile
b/tests/Makefile
index 38751cd1f4e7484a92a72de3968e8b06d9fe7f56..f8cd3579f69aad5289f9d69fa9ec96e3076c0f29 100644
(file)
--- a/
tests/Makefile
+++ b/
tests/Makefile
@@
-1,4
+1,4
@@
-TESTS = threads p1 userprog p2 vm p3 filesys p4
+TESTS =
examples
threads p1 userprog p2 vm p3 filesys p4
PATH := $(shell pwd)/../src/utils:$(PATH)
PATH := $(shell pwd)/../src/utils:$(PATH)
@@
-13,19
+13,23
@@
check:
clean:
rm -rf $(TESTS)
clean:
rm -rf $(TESTS)
-SUBMAKEFLAGS = -s
-
define mk-sandbox
rm -rf $@ && mkdir $@ && cp -R ../src $@/src
define mk-sandbox
rm -rf $@ && mkdir $@ && cp -R ../src $@/src
-cd $@/src && $(MAKE)
clean $(SUBMAKEFLAGS)
+cd $@/src && $(MAKE)
-s clean
endef
define run-tests
endef
define run-tests
-cd $@/src/$(PROJECT) && make check && make grade
+cd $@/src/$(PROJECT) && time $(MAKE) check
+endef
+
+define grade-tests
+cd $@/src/$(PROJECT) && $(MAKE) grade
+cd $@/src/$(PROJECT) && grep -q PERFECT build/grade
+cd $@/src/$(PROJECT) && grep -qv warning build/grade
endef
define compile
endef
define compile
-cd $@/src/$(PROJECT) &&
make
+cd $@/src/$(PROJECT) &&
$(MAKE)
endef
define clean
endef
define clean
@@
-33,46
+37,30
@@
rm -rf $@
endef
define apply-patch
endef
define apply-patch
-(cd $@ && patch -p0)
+(cd $@ && patch -p0)
< ../solutions/$@.patch
endef
PROJECT = $@
endef
PROJECT = $@
+p1: PROJECT = threads
+p2: PROJECT = userprog
+p3: PROJECT = vm
+p4: PROJECT = filesys
+# Tests that just compile the provided code.
threads::
$(mk-sandbox)
$(compile)
$(run-tests) TESTS=tests/threads/alarm-single
$(clean)
threads::
$(mk-sandbox)
$(compile)
$(run-tests) TESTS=tests/threads/alarm-single
$(clean)
-
-userprog vm filesys::
+examples userprog vm filesys::
$(mk-sandbox)
$(compile)
$(clean)
$(mk-sandbox)
$(compile)
$(clean)
-p1: PROJECT = threads
-p1::
- $(mk-sandbox)
- $(apply-patch) < ../solutions/p1.patch
- $(run-tests)
- $(clean)
-
-p2: PROJECT = userprog
-p2::
- $(mk-sandbox)
- $(apply-patch) < ../solutions/p2.patch
- $(run-tests)
- $(clean)
-
-p3: PROJECT = vm
-p3::
- $(mk-sandbox)
- $(apply-patch) < ../solutions/p3.patch
- $(run-tests)
- $(clean)
-
-p4: PROJECT = filesys
-p4::
+# Tests for the reference solutions.
+p1 p2 p3 p4::
$(mk-sandbox)
$(mk-sandbox)
- $(apply-patch)
< ../solutions/p4.patch
+ $(apply-patch)
$(run-tests)
$(run-tests)
+ $(grade-tests)
$(clean)
$(clean)