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
16 define TEST_PROG
17 PROGS += $(1)
18 $(subst -,_,$(1))_SRC = $(1).c
19 endef
20
21 $(foreach prog,$(TESTS),$(eval $(call TEST_PROG,$(prog))))
22 DISKS = $(patsubst %,%.dsk,$(PROGS))
23
24 disks: $(DISKS)
25
26 # Other programs needed by some of the main test programs. 
27 PROGS += child-simple child-arg child-bad
28 child_simple_SRC = child-simple.c
29 child_arg_SRC = child-arg.c
30 child_bad_SRC = child-bad.c
31 exec-once.dsk exec-multiple.dsk join-simple.dsk join-twice.dsk: child-simple
32 exec-arg.dsk: child-arg
33 join-killed.dsk: child-bad
34
35 %.dsk: %
36         ./prep-disk $<
37
38 clean::
39         rm -f $(DISKS)
40
41 include $(SRCDIR)/Makefile.userprog
42
43 CFLAGS += -Werror