New tests.
[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 assembly-with-params.exe: assembly-with-params.cs
17         gmcs assembly-with-params.cs
18         
19 assembly-with-constants.exe: assembly-with-constants.cs
20         gmcs assembly-with-constants.cs
21
22 assembly-with-cattr.exe: assembly-with-cattr.cs
23         gmcs assembly-with-cattr.cs
24
25 assembly-with-cattr-enc.exe: assembly-with-cattr-enc.cs
26         gmcs assembly-with-cattr-enc.cs
27
28 assembly-with-cas.exe: assembly-with-cas.cs
29         gmcs assembly-with-cas.cs
30
31 assembly-with-events.exe: assembly-with-events.cs
32         gmcs assembly-with-events.cs
33
34 assembly-with-properties.exe: assembly-with-properties.cs
35         gmcs assembly-with-properties.cs
36
37 assembly-with-fields.exe: assembly-with-fields.cs
38         gmcs assembly-with-fields.cs
39
40 module.netmodule: module.il
41         ilasm2 /dll /output:module.netmodule module.il
42
43 assembly-with-module.exe: assembly-with-module.cs module.netmodule
44         gmcs assembly-with-module.cs -addmodule:module.netmodule
45
46 assembly-with-generics.exe: assembly-with-generics.cs
47         gmcs assembly-with-generics.cs
48
49 assembly-with-signatures.exe: assembly-with-signatures.cs
50         gmcs assembly-with-signatures.cs
51
52 TEST_BINARIES = assembly-with-resource.exe \
53         assembly-with-complex-type.exe \
54         assembly-with-methods.exe \
55         assembly-with-params.exe \
56         assembly-with-constants.exe \
57         assembly-with-cattr.exe \
58         assembly-with-cattr-enc.exe \
59         assembly-with-cas.exe \
60         assembly-with-events.exe \
61         assembly-with-properties.exe \
62         assembly-with-module.exe \
63         assembly-with-resource.exe \
64         assembly-with-generics.exe \
65         assembly-with-custommod.exe \
66         assembly-with-signatures.exe \
67         assembly-with-locals.exe \
68         assembly-with-types.exe \
69         assembly-with-typespec.exe \
70         assembly-with-global-method.exe \
71         assembly-with-calli.exe \
72         assembly-with-fields.exe \
73         simple-assembly.exe
74
75
76 gen-md-tests: gen-md-tests.c
77         gcc $(GLIB_CFLAGS) $(GLIB_LINK_FLAGS) -I../../../ gen-md-tests.c ../../mini/.libs/libmono-2.0.a -g -Wall -lpthread -lm -ldl -lrt -o gen-md-tests
78
79 header-tests.ok: gen-md-tests header-tests.md simple-assembly.exe
80         ./gen-md-tests header-tests.md
81         touch header-tests.ok
82
83 section-table-tests.ok: gen-md-tests section-table-tests.md simple-assembly.exe
84         ./gen-md-tests section-table-tests.md
85         touch section-table-tests.ok
86
87 data-directory-tests.ok: gen-md-tests data-directory-tests.md simple-assembly.exe
88         ./gen-md-tests data-directory-tests.md
89         touch data-directory-tests.ok
90
91 resources-tests.ok: gen-md-tests resources-tests.md assembly-with-resource.exe
92         ./gen-md-tests resources-tests.md
93         touch resources-tests.ok
94
95 cli-header-tests.ok: gen-md-tests cli-header-tests.md simple-assembly.exe
96         ./gen-md-tests cli-header-tests.md
97         touch cli-header-tests.ok
98
99 cli-metadata-tests.ok: gen-md-tests cli-metadata-tests.md simple-assembly.exe
100         ./gen-md-tests cli-metadata-tests.md
101         touch cli-metadata-tests.ok
102
103 cli-tables-tests.ok: gen-md-tests cli-tables-tests.md $(TEST_BINARIES)
104         ./gen-md-tests cli-tables-tests.md
105         touch cli-tables-tests.ok
106
107 cli-blob-tests.ok: gen-md-tests cli-blob-tests.md $(TEST_BINARIES)
108         ./gen-md-tests cli-blob-tests.md
109         touch cli-blob-tests.ok
110
111 cli-cattr-tests.ok: gen-md-tests cli-cattr-tests.md $(TEST_BINARIES)
112         ./gen-md-tests cli-cattr-tests.md
113         touch cli-cattr-tests.ok
114
115 cli-global-props-tests.ok: gen-md-tests cli-global-props-tests.md $(TEST_BINARIES)
116         ./gen-md-tests cli-global-props-tests.md
117         touch cli-global-props-tests.ok
118
119 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 cli-blob-tests.ok  cli-cattr-tests.ok cli-global-props-tests.ok
120         touch generate-stamp
121
122 clean-stamps:
123         rm -f *.ok
124         rm -f generate-stamp
125
126 run-test: generate-stamp
127         @for i in *.exe; do \
128                 RES=99; \
129                 PEDUMP_ARG="metadata" \
130                 FIRST=`echo $$i | cut -d '-' -f 1`; \
131                 if [ "$$FIRST" == "invalid" ];  then \
132                         RES=1; \
133                 fi; \
134                 if [ "$$FIRST" == "badrt" ];    then \
135                         PEDUMP_ARG="metadata,code" \
136                         RES=1; \
137                 fi; \
138                 if [ "$$FIRST" == "valid" ]; then \
139                         RES=0; \
140                 fi; \
141                 if [ $$RES != 99 ]; then \
142                         ../../metadata/pedump --verify $$PEDUMP_ARG $$i >/dev/null 2>/dev/null; \
143                         R=$$?; \
144                         if [ $$R != $$RES ]; then \
145                                 echo "$$i failed expected $$RES but got $$R"; \
146                         fi; \
147                 fi; \
148         done
149
150
151
152 check_with_peverify: generate-stamp
153         @for i in *.exe; do \
154                 RES=99; \
155                 FIRST=`echo $$i | cut -d '-' -f 1`; \
156                 if [ "$$FIRST" == "invalid" ];  then \
157                         RES=1; \
158                 fi; \
159                 if [ "$$FIRST" == "badrt" ];    then \
160                         RES=1; \
161                 fi; \
162                 if [ "$$FIRST" == "valid" ]; then \
163                         RES=0; \
164                 fi; \
165                 if [ $$RES != 99 ]; then \
166                         peverify $$i >/dev/null 2>/dev/null; \
167                         R=$$?; \
168                         if [ $$R != $$RES ]; then \
169                                 echo "$$i failed expected $$RES but got $$R"; \
170                         fi; \
171                 fi; \
172         done