|
1 # This Source Code Form is subject to the terms of the Mozilla Public |
|
2 # License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
|
4 |
|
5 OUTPARAMS_WARNING_TESTCASES = \ |
|
6 e1.cpp \ |
|
7 e4.cpp \ |
|
8 e6.cpp \ |
|
9 e7.cpp \ |
|
10 e8.cpp \ |
|
11 e9.cpp \ |
|
12 e10.cpp \ |
|
13 e11.cpp \ |
|
14 e12.cpp \ |
|
15 e13.cpp \ |
|
16 $(NULL) |
|
17 |
|
18 OUTPARAMS_NS_FAILED_TESTCASES = \ |
|
19 e2.cpp \ |
|
20 e5.cpp \ |
|
21 $(NULL) |
|
22 |
|
23 OUTPARAMS_PASS_TESTCASES = \ |
|
24 o1.cpp \ |
|
25 o2.cpp \ |
|
26 o3.cpp \ |
|
27 o4.cpp \ |
|
28 o5.cpp \ |
|
29 o6.cpp \ |
|
30 o7.cpp \ |
|
31 o8.cpp \ |
|
32 o9.cpp \ |
|
33 o10.cpp \ |
|
34 o11.cpp \ |
|
35 o12.cpp \ |
|
36 o13.cpp \ |
|
37 o14.cpp \ |
|
38 o15.cpp \ |
|
39 o16.cpp \ |
|
40 onull.cpp \ |
|
41 onull2.cpp \ |
|
42 opmember.cpp \ |
|
43 $(NULL) |
|
44 |
|
45 FLOW_PASS_TESTCASES = \ |
|
46 flow_through_pass.cpp |
|
47 |
|
48 FLOW_FAILURE_TESTCASES = \ |
|
49 flow_through_fail.cpp |
|
50 |
|
51 MUST_OVERRIDE_PASS_TESTCASES = \ |
|
52 OverrideOK1.cpp \ |
|
53 OverrideOK2.cpp \ |
|
54 OverrideOK3-NamespaceTypedef.cpp \ |
|
55 $(NULL) |
|
56 |
|
57 MUST_OVERRIDE_FAILURE_TESTCASES = \ |
|
58 OverrideFail1.cpp \ |
|
59 OverrideFail2.cpp \ |
|
60 OverrideFail3.cpp \ |
|
61 OverrideFail4.cpp \ |
|
62 $(NULL) |
|
63 |
|
64 OVERRIDE_PASS_TESTCASES = \ |
|
65 override-pass.cpp \ |
|
66 override-namespace-typedef.cpp \ |
|
67 $(NULL) |
|
68 |
|
69 OVERRIDE_FAILURE_TESTCASES = \ |
|
70 override-global.cpp \ |
|
71 override-signature.cpp \ |
|
72 override-static.cpp \ |
|
73 override-virtual.cpp \ |
|
74 $(NULL) |
|
75 |
|
76 STATIC_INIT_PASS_TESTCASES = \ |
|
77 TestStaticInitStructOK.cpp \ |
|
78 $(NULL) |
|
79 |
|
80 STATIC_INIT_WARNING_TESTCASES = \ |
|
81 TestStaticInitAttr.cpp \ |
|
82 TestStaticInitConstructor.cpp \ |
|
83 TestStaticInitGlobal.cpp \ |
|
84 TestStaticInitGlobalConst.cpp \ |
|
85 $(NULL) |
|
86 |
|
87 STATIC_FAILURE_TESTCASES = \ |
|
88 $(FLOW_FAILURE_TESTCASES) \ |
|
89 $(MUST_OVERRIDE_FAILURE_TESTCASES) \ |
|
90 $(OVERRIDE_FAILURE_TESTCASES) \ |
|
91 $(NULL) |
|
92 |
|
93 STATIC_WARNING_TESTCASES = \ |
|
94 $(OUTPARAMS_WARNING_TESTCASES) \ |
|
95 $(STATIC_INIT_WARNING_TESTCASES) \ |
|
96 $(NULL) |
|
97 |
|
98 STATIC_PASS_TESTCASES = \ |
|
99 $(OUTPARAMS_NS_FAILED_TESTCASES) \ |
|
100 $(OUTPARAMS_PASS_TESTCASES) \ |
|
101 $(FLOW_PASS_TESTCASES) \ |
|
102 $(MUST_OVERRIDE_PASS_TESTCASES) \ |
|
103 $(OVERRIDE_PASS_TESTCASES) \ |
|
104 $(STATIC_INIT_PASS_TESTCASES) \ |
|
105 $(NULL) |
|
106 |
|
107 |
|
108 include $(topsrcdir)/config/rules.mk |
|
109 |
|
110 # We want to compile each file and invert the result to ensure that |
|
111 # compilation failed. |
|
112 check:: \ |
|
113 $(STATIC_FAILURE_TESTCASES:.cpp=.s-fail) \ |
|
114 $(STATIC_WARNING_TESTCASES:.cpp=.s-warn) \ |
|
115 $(STATIC_PASS_TESTCASES:.cpp=.s-pass) |
|
116 |
|
117 %.s-fail: %.cpp $(GLOBAL_DEPS) $(DEHYDRA_SCRIPTS) $(call mkdir_deps,$(MDDEPDIR)) |
|
118 @printf 'Compiling $(<F) to check that the static-analysis script is checking properly...' |
|
119 @if $(CCC) $(OUTOPTION)/dev/null -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) >$(*F).errlog 2>&1; then \ |
|
120 printf 'fail:\nerror: compilation of $(<F) succeeded. It shouldn't have!\n'; \ |
|
121 exit 1; \ |
|
122 else \ |
|
123 printf 'ok.\n'; \ |
|
124 fi |
|
125 |
|
126 %.s-warn: %.cpp $(GLOBAL_DEPS) $(DEHYDRA_SCRIPTS) $(call mkdir_deps,$(MDDEPDIR)) |
|
127 @printf 'Compiling $(<F) to check that the static-analysis script is checking properly...' |
|
128 @if $(CCC) -Werror $(OUTOPTION)/dev/null -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) >$(*F).errlog 2>&1; then \ |
|
129 printf 'fail:\nerror: compilation of $(<F) succeeded with -Werror. It shouldn't have!\n'; \ |
|
130 exit 1; \ |
|
131 fi |
|
132 @if $(CCC) $(OUTOPTION)/dev/null -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) >$(*F).werrlog 2>&1; then \ |
|
133 printf 'ok.\n'; \ |
|
134 else \ |
|
135 printf 'fail:\nerror: compilation of $(<F) without -Werror failed. A warning should have been issued.\n'; \ |
|
136 exit 1; \ |
|
137 fi |
|
138 |
|
139 %.s-pass: %.cpp $(GLOBAL_DEPS) $(DEHYDRA_SCRIPTS) $(call mkdir_deps,$(MDDEPDIR)) |
|
140 @printf 'Compiling $(<F) to check that the static-analysis script is checking properly...' |
|
141 @if $(CCC) -Werror $(OUTOPTION)/dev/null -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) >$(*F).errlog 2>&1; then \ |
|
142 printf 'ok.\n'; \ |
|
143 else \ |
|
144 printf 'fail:\nerror: compilation of $(<F) failed. It shouldn't have!\n'; \ |
|
145 exit 1; \ |
|
146 fi |