6ed61f3e8067849a57dea2bd6ef23a0672d5b989
[mono.git] / mono / tests / metadata-verifier / Makefile
1 GLIB_CFLAGS=`pkg-config --cflags glib-2.0`
2 GLIB_LINK_FLAGS=`pkg-config --libs glib-2.0`
3
4 %.exe: %.il
5         ilasm2 -out:$@ $<
6
7 assembly-with-resource.exe: assembly-with-resource.cs
8         gmcs assembly-with-resource.cs -linkresource:Makefile -resource:simple-assembly.il
9
10 assembly-with-complex-type.exe: assembly-with-complex-type.cs
11         gmcs assembly-with-complex-type.cs
12
13 assembly-with-methods.exe: assembly-with-methods.cs
14         gmcs assembly-with-methods.cs
15
16 gen-md-tests: gen-md-tests.c
17         gcc $(GLIB_CFLAGS) $(GLIB_LINK_FLAGS) -I../../../ gen-md-tests.c ../../mini/.libs/libmono.a -g -Wall -lpthread -lm -ldl -lrt -o gen-md-tests
18
19 header-tests.ok: gen-md-tests header-tests.md simple-assembly.exe
20         ./gen-md-tests header-tests.md
21         touch header-tests.ok
22
23 section-table-tests.ok: gen-md-tests section-table-tests.md simple-assembly.exe
24         ./gen-md-tests section-table-tests.md
25         touch section-table-tests.ok
26
27 data-directory-tests.ok: gen-md-tests data-directory-tests.md simple-assembly.exe
28         ./gen-md-tests data-directory-tests.md
29         touch data-directory-tests.ok
30
31 resources-tests.ok: gen-md-tests resources-tests.md assembly-with-resource.exe
32         ./gen-md-tests resources-tests.md
33         touch resources-tests.ok
34
35 cli-header-tests.ok: gen-md-tests cli-header-tests.md simple-assembly.exe
36         ./gen-md-tests cli-header-tests.md
37         touch cli-header-tests.ok
38
39 cli-metadata-tests.ok: gen-md-tests cli-metadata-tests.md simple-assembly.exe
40         ./gen-md-tests cli-metadata-tests.md
41         touch cli-metadata-tests.ok
42
43 cli-tables-tests.ok: gen-md-tests cli-tables-tests.md simple-assembly.exe assembly-with-complex-type.exe assembly-with-methods.exe assembly-with-global-method.exe
44         ./gen-md-tests cli-tables-tests.md
45         touch cli-tables-tests.ok
46
47 generate-stamp: header-tests.ok section-table-tests.ok data-directory-tests.ok resources-tests.ok cli-header-tests.ok cli-metadata-tests.ok cli-tables-tests.ok
48         touch generate-stamp
49
50 clean-stamps:
51         rm -f *.ok
52         rm -f generate-stamp
53
54 run-test: generate-stamp
55         @for i in *.exe; do \
56                 RES=99; \
57                 FIRST=`echo $$i | cut -d '-' -f 1`; \
58                 if [ "$$FIRST" == "invalid" ];  then \
59                         RES=1; \
60                 fi; \
61                 if [ "$$FIRST" == "valid" ]; then \
62                         RES=0; \
63                 fi; \
64                 if [ $$RES != 99 ]; then \
65                         ../../metadata/pedump --verify metadata $$i >/dev/null 2>/dev/null; \
66                         R=$$?; \
67                         if [ $$R != $$RES ]; then \
68                                 echo "$$i failed expected $$RES but got $$R"; \
69                         fi; \
70                 fi; \
71         done
72
73
74
75 check_with_peverify: generate-stamp
76         @for i in *.exe; do \
77                 RES=99; \
78                 FIRST=`echo $$i | cut -d '-' -f 1`; \
79                 if [ "$$FIRST" == "invalid" ];  then \
80                         RES=1; \
81                 fi; \
82                 if [ "$$FIRST" == "valid" ]; then \
83                         RES=0; \
84                 fi; \
85                 if [ $$RES != 99 ]; then \
86                         peverify $$i >/dev/null 2>/dev/null; \
87                         R=$$?; \
88                         if [ $$R != $$RES ]; then \
89                                 echo "$$i failed expected $$RES but got $$R"; \
90                         fi; \
91                 fi; \
92         done