Add more tests.
[pintos-anon] / grading / userprog / Makefile
1 SRCDIR = ../../src
2
3 # Main test programs.
4 TESTS = \
5         $(addprefix args-, argc argv0 argvn single multiple dbl-space) \
6         $(addprefix sc-, bad-sp bad-arg boundary) \
7         halt exit \
8         $(addprefix create-, normal empty null bad-ptr long exists bound) \
9         $(addprefix open-, normal missing boundary empty null bad-ptr twice) \
10         $(addprefix close-, normal twice stdin stdout bad-fd) \
11         $(addprefix read-, normal bad-ptr boundary zero stdout bad-fd) \
12         $(addprefix write-, normal bad-ptr boundary zero stdin bad-fd) \
13         $(addprefix exec-, once arg multiple missing bad-ptr) \
14         $(addprefix join-, simple twice killed bad-pid) \
15         $(addprefix multi-, recurse oom)
16
17 define TEST_PROG
18 PROGS += $(1)
19 $(subst -,_,$(1))_SRC = $(1).c
20 endef
21
22 $(foreach prog,$(TESTS),$(eval $(call TEST_PROG,$(prog))))
23 DISKS = $(patsubst %,%.dsk,$(PROGS))
24
25 disks: $(DISKS)
26
27 # Other programs needed by some of the main test programs. 
28 PROGS += child-simple child-arg child-bad
29 child_simple_SRC = child-simple.c
30 child_arg_SRC = child-arg.c
31 child_bad_SRC = child-bad.c
32 exec-once.dsk exec-multiple.dsk join-simple.dsk join-twice.dsk: child-simple
33 exec-arg.dsk: child-arg
34 join-killed.dsk: child-bad
35
36 %.dsk: %
37         ./prep-disk $<
38
39 clean::
40         rm -f $(DISKS)
41
42 include $(SRCDIR)/Makefile.userprog
43
44 CFLAGS += -Werror