1 TESTS = threads p1-1 p1-2 p1-3 list stdlib userprog p2 vm filesys
3 PATH := $(shell pwd)/../src/utils:$(PATH)
6 $(MAKE) -C .. distclean
7 for d in $(TESTS); do $(MAKE) $$d || exit 1; done
8 @echo All tests passed.
13 define prep-threads-grading
16 define prep-userprog-grading
17 $(MAKE) -C ../src/userprog -s
18 $(MAKE) -C ../grading/userprog -s
21 define prep-vm-grading
22 $(MAKE) -C ../src/userprog -s
23 $(MAKE) -C ../grading/vm -s
26 define prep-filesys-grading
27 $(MAKE) -C ../grading/filesys -s
31 $(prep-$(PROJECT)-grading)
35 rm -rf $@ && mkdir -p $@/pintos && cp -R ../src $@/pintos
39 cd $@ && ../../grading/$(PROJECT)/run-tests
47 (cd $@/pintos && patch -p0 -s) <
50 threads: PROJECT = threads
53 $(run-tests) -d alarm-single
56 p1-1: PROJECT = threads
59 $(apply-patch) ../solutions/p1-1.patch
60 $(run-tests) -d alarm.*
63 p1-2: PROJECT = threads
66 $(apply-patch) ../solutions/p1-2.patch
67 $(run-tests) -d join.*
70 p1-3: PROJECT = threads
73 $(apply-patch) ../solutions/p1-3.patch
74 $(run-tests) -d priority.*
77 list: PROJECT = threads
80 cp ../src/tests/threads/$@.c $@/pintos/src/threads/test.c
81 $(MAKE) -C $@/pintos/src/threads -s
82 -(cd $@/pintos/src/threads/build && pintos -v run -q) | tee $@/output
83 grep -q '$@: PASS' $@/output
86 userprog: PROJECT = userprog
90 $(apply-patch) ../solutions/p1-2.patch
91 echo '#define THREAD_JOIN_IMPLEMENTED 1' > $@/pintos/src/constants.h
95 p2: PROJECT = userprog
99 $(apply-patch) ../solutions/p2.patch
107 $(MAKE) -C $@/pintos/src/vm -s
110 filesys: PROJECT = filesys
114 $(MAKE) -C $@/pintos/src/filesys -s