2009-04-29 Rodrigo Kumpera <rkumpera@novell.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 TEST_BINARIES = assembly-with-resource.exe \
23         assembly-with-complex-type.exe \
24         assembly-with-methods.exe \
25         assembly-with-params.exe \
26         assembly-with-constants.exe \
27         simple-assembly.exe
28
29
30 gen-md-tests: gen-md-tests.c
31         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
32
33 header-tests.ok: gen-md-tests header-tests.md simple-assembly.exe
34         ./gen-md-tests header-tests.md
35         touch header-tests.ok
36
37 section-table-tests.ok: gen-md-tests section-table-tests.md simple-assembly.exe
38         ./gen-md-tests section-table-tests.md
39         touch section-table-tests.ok
40
41 data-directory-tests.ok: gen-md-tests data-directory-tests.md simple-assembly.exe
42         ./gen-md-tests data-directory-tests.md
43         touch data-directory-tests.ok
44
45 resources-tests.ok: gen-md-tests resources-tests.md assembly-with-resource.exe
46         ./gen-md-tests resources-tests.md
47         touch resources-tests.ok
48
49 cli-header-tests.ok: gen-md-tests cli-header-tests.md simple-assembly.exe
50         ./gen-md-tests cli-header-tests.md
51         touch cli-header-tests.ok
52
53 cli-metadata-tests.ok: gen-md-tests cli-metadata-tests.md simple-assembly.exe
54         ./gen-md-tests cli-metadata-tests.md
55         touch cli-metadata-tests.ok
56
57 cli-tables-tests.ok: gen-md-tests cli-tables-tests.md $(TEST_BINARIES)
58         ./gen-md-tests cli-tables-tests.md
59         touch cli-tables-tests.ok
60
61 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
62         touch generate-stamp
63
64 clean-stamps:
65         rm -f *.ok
66         rm -f generate-stamp
67
68 run-test: generate-stamp
69         @for i in *.exe; do \
70                 RES=99; \
71                 FIRST=`echo $$i | cut -d '-' -f 1`; \
72                 if [ "$$FIRST" == "invalid" ];  then \
73                         RES=1; \
74                 fi; \
75                 if [ "$$FIRST" == "valid" ]; then \
76                         RES=0; \
77                 fi; \
78                 if [ $$RES != 99 ]; then \
79                         ../../metadata/pedump --verify metadata $$i >/dev/null 2>/dev/null; \
80                         R=$$?; \
81                         if [ $$R != $$RES ]; then \
82                                 echo "$$i failed expected $$RES but got $$R"; \
83                         fi; \
84                 fi; \
85         done
86
87
88
89 check_with_peverify: generate-stamp
90         @for i in *.exe; do \
91                 RES=99; \
92                 FIRST=`echo $$i | cut -d '-' -f 1`; \
93                 if [ "$$FIRST" == "invalid" ];  then \
94                         RES=1; \
95                 fi; \
96                 if [ "$$FIRST" == "valid" ]; then \
97                         RES=0; \
98                 fi; \
99                 if [ $$RES != 99 ]; then \
100                         peverify $$i >/dev/null 2>/dev/null; \
101                         R=$$?; \
102                         if [ $$R != $$RES ]; then \
103                                 echo "$$i failed expected $$RES but got $$R"; \
104                         fi; \
105                 fi; \
106         done