2009-05-26 Atsushi Enomoto <atsushi@ximian.com>
[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-cas.exe: assembly-with-cas.cs
26         gmcs assembly-with-cas.cs
27
28 assembly-with-events.exe: assembly-with-events.cs
29         gmcs assembly-with-events.cs
30
31 assembly-with-properties.exe: assembly-with-properties.cs
32         gmcs assembly-with-properties.cs
33
34 module.netmodule: module.il
35         ilasm2 /dll /output:module.netmodule module.il
36
37 assembly-with-module.exe: assembly-with-module.cs module.netmodule
38         gmcs assembly-with-module.cs -addmodule:module.netmodule
39
40 assembly-with-generics.exe: assembly-with-generics.cs
41         gmcs assembly-with-generics.cs
42
43 TEST_BINARIES = assembly-with-resource.exe \
44         assembly-with-complex-type.exe \
45         assembly-with-methods.exe \
46         assembly-with-params.exe \
47         assembly-with-constants.exe \
48         assembly-with-cattr.exe \
49         assembly-with-cas.exe \
50         assembly-with-events.exe \
51         assembly-with-properties.exe \
52         assembly-with-module.exe \
53         assembly-with-resource.exe \
54         assembly-with-generics.exe \
55         simple-assembly.exe
56
57
58 gen-md-tests: gen-md-tests.c
59         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
60
61 header-tests.ok: gen-md-tests header-tests.md simple-assembly.exe
62         ./gen-md-tests header-tests.md
63         touch header-tests.ok
64
65 section-table-tests.ok: gen-md-tests section-table-tests.md simple-assembly.exe
66         ./gen-md-tests section-table-tests.md
67         touch section-table-tests.ok
68
69 data-directory-tests.ok: gen-md-tests data-directory-tests.md simple-assembly.exe
70         ./gen-md-tests data-directory-tests.md
71         touch data-directory-tests.ok
72
73 resources-tests.ok: gen-md-tests resources-tests.md assembly-with-resource.exe
74         ./gen-md-tests resources-tests.md
75         touch resources-tests.ok
76
77 cli-header-tests.ok: gen-md-tests cli-header-tests.md simple-assembly.exe
78         ./gen-md-tests cli-header-tests.md
79         touch cli-header-tests.ok
80
81 cli-metadata-tests.ok: gen-md-tests cli-metadata-tests.md simple-assembly.exe
82         ./gen-md-tests cli-metadata-tests.md
83         touch cli-metadata-tests.ok
84
85 cli-tables-tests.ok: gen-md-tests cli-tables-tests.md $(TEST_BINARIES)
86         ./gen-md-tests cli-tables-tests.md
87         touch cli-tables-tests.ok
88
89 cli-blob-tests.ok: gen-md-tests cli-blob-tests.md $(TEST_BINARIES)
90         ./gen-md-tests cli-blob-tests.md
91         touch cli-blob-tests.ok
92
93 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
94         touch generate-stamp
95
96 clean-stamps:
97         rm -f *.ok
98         rm -f generate-stamp
99
100 run-test: generate-stamp
101         @for i in *.exe; do \
102                 RES=99; \
103                 FIRST=`echo $$i | cut -d '-' -f 1`; \
104                 if [ "$$FIRST" == "invalid" ];  then \
105                         RES=1; \
106                 fi; \
107                 if [ "$$FIRST" == "valid" ]; then \
108                         RES=0; \
109                 fi; \
110                 if [ $$RES != 99 ]; then \
111                         ../../metadata/pedump --verify metadata $$i >/dev/null 2>/dev/null; \
112                         R=$$?; \
113                         if [ $$R != $$RES ]; then \
114                                 echo "$$i failed expected $$RES but got $$R"; \
115                         fi; \
116                 fi; \
117         done
118
119
120
121 check_with_peverify: generate-stamp
122         @for i in *.exe; do \
123                 RES=99; \
124                 FIRST=`echo $$i | cut -d '-' -f 1`; \
125                 if [ "$$FIRST" == "invalid" ];  then \
126                         RES=1; \
127                 fi; \
128                 if [ "$$FIRST" == "valid" ]; then \
129                         RES=0; \
130                 fi; \
131                 if [ $$RES != 99 ]; then \
132                         peverify $$i >/dev/null 2>/dev/null; \
133                         R=$$?; \
134                         if [ $$R != $$RES ]; then \
135                                 echo "$$i failed expected $$RES but got $$R"; \
136                         fi; \
137                 fi; \
138         done