1 TESTS = threads p1-1 p1-2 p1-3 list stdlib userprog p2 vm filesys
4 $(MAKE) -C .. distclean
5 for d in $(TESTS); do $(MAKE) $$d || exit 1; done
6 @echo All tests passed.
11 define prep-threads-grading
14 define prep-userprog-grading
15 $(MAKE) -C ../src/userprog -s
16 $(MAKE) -C ../grading/userprog -s
19 define prep-vm-grading
20 $(MAKE) -C ../src/userprog -s
21 $(MAKE) -C ../grading/vm -s
24 define prep-filesys-grading
25 $(MAKE) -C ../grading/filesys -s
29 $(prep-$(PROJECT)-grading)
33 rm -rf $@ && mkdir -p $@/pintos && cp -R ../src $@/pintos
37 cd $@ && ../../grading/$(PROJECT)/run-tests
45 (cd $@/pintos && patch -p0 -s) <
48 threads: PROJECT = threads
51 $(run-tests) -d alarm-single
54 p1-1: PROJECT = threads
57 $(apply-patch) ../solutions/p1-1.patch
58 $(run-tests) -d alarm.*
61 p1-2: PROJECT = threads
64 $(apply-patch) ../solutions/p1-2.patch
65 $(run-tests) -d join.*
68 p1-3: PROJECT = threads
71 $(apply-patch) ../solutions/p1-3.patch
72 $(run-tests) -d priority.*
75 list: PROJECT = threads
78 cp ../src/tests/threads/$@.c $@/pintos/src/threads/test.c
79 $(MAKE) -C $@/pintos/src/threads -s
80 -(cd $@/pintos/src/threads/build && pintos -v run -q) | tee $@/output
81 grep -q '$@: PASS' $@/output
84 userprog: PROJECT = userprog
88 $(apply-patch) ../solutions/p1-2.patch
89 echo '#define THREAD_JOIN_IMPLEMENTED 1' > $@/pintos/src/constants.h
93 p2: PROJECT = userprog
97 $(apply-patch) ../solutions/p2.patch
105 $(MAKE) -C $@/pintos/src/vm -s
108 filesys: PROJECT = filesys
112 $(MAKE) -C $@/pintos/src/filesys -s