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 child-fd)
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 child-close
29 child_simple_SRC = child-simple.c
30 child_arg_SRC = child-arg.c
31 child_bad_SRC = child-bad.c
32 child_close_SRC = child-close.c
33 exec-once.dsk exec-multiple.dsk join-simple.dsk join-twice.dsk: child-simple
34 exec-arg.dsk: child-arg
35 join-killed.dsk: child-bad
36 multi-child-fd.dsk: child-close
37
38 %.dsk: %
39         ./prep-disk $<
40
41 clean::
42         rm -f $(DISKS)
43
44 include $(SRCDIR)/Makefile.userprog
45
46 CFLAGS += -Werror