aboutsummaryrefslogtreecommitdiff
path: root/src/test/DUtilUnitTest/CondUtilTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/DUtilUnitTest/CondUtilTest.cpp')
-rw-r--r--src/test/DUtilUnitTest/CondUtilTest.cpp190
1 files changed, 0 insertions, 190 deletions
diff --git a/src/test/DUtilUnitTest/CondUtilTest.cpp b/src/test/DUtilUnitTest/CondUtilTest.cpp
deleted file mode 100644
index c808363d..00000000
--- a/src/test/DUtilUnitTest/CondUtilTest.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3#include "precomp.h"
4
5namespace DutilTests
6{
7 using namespace System;
8 using namespace Xunit;
9 using namespace WixTest;
10
11 public ref class CondUtil
12 {
13 public:
14 [NamedFact(Skip = "condutil Not Implemented Yet.")]
15 void CondEvaluateTest()
16 {
17 HRESULT hr = S_OK;
18 VARIABLES_HANDLE pVariables = NULL;
19
20 try
21 {
22 hr = VarCreate(&pVariables);
23 NativeAssert::Succeeded(hr, "Failed to initialize variables.");
24
25 // set variables
26 VarSetStringHelper(pVariables, L"PROP1", L"VAL1");
27 VarSetStringHelper(pVariables, L"PROP2", L"VAL2");
28 VarSetStringHelper(pVariables, L"PROP3", L"VAL3");
29 VarSetStringHelper(pVariables, L"PROP4", L"BEGIN MID END");
30 VarSetNumericHelper(pVariables, L"PROP5", 5);
31 VarSetNumericHelper(pVariables, L"PROP6", 6);
32 VarSetStringHelper(pVariables, L"PROP7", L"");
33 VarSetNumericHelper(pVariables, L"PROP8", 0);
34 VarSetStringHelper(pVariables, L"_PROP9", L"VAL9");
35 VarSetNumericHelper(pVariables, L"PROP10", -10);
36 VarSetNumericHelper(pVariables, L"PROP11", 9223372036854775807ll);
37 VarSetNumericHelper(pVariables, L"PROP12", -9223372036854775808ll);
38 VarSetNumericHelper(pVariables, L"PROP13", 0x00010000);
39 VarSetNumericHelper(pVariables, L"PROP14", 0x00000001);
40 VarSetNumericHelper(pVariables, L"PROP15", 0x00010001);
41 VarSetVersionHelper(pVariables, L"PROP16", MAKEQWORDVERSION(0, 0, 0, 0));
42 VarSetVersionHelper(pVariables, L"PROP17", MAKEQWORDVERSION(1, 0, 0, 0));
43 VarSetVersionHelper(pVariables, L"PROP18", MAKEQWORDVERSION(1, 1, 0, 0));
44 VarSetVersionHelper(pVariables, L"PROP19", MAKEQWORDVERSION(1, 1, 1, 0));
45 VarSetVersionHelper(pVariables, L"PROP20", MAKEQWORDVERSION(1, 1, 1, 1));
46 VarSetNumericHelper(pVariables, L"vPROP21", 1);
47 VarSetVersionHelper(pVariables, L"PROP22", MAKEQWORDVERSION(65535, 65535, 65535, 65535));
48 VarSetStringHelper(pVariables, L"PROP23", L"1.1.1");
49
50 // test conditions
51 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1"));
52 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5"));
53 Assert::False(EvaluateConditionHelper(pVariables, L"PROP7"));
54 Assert::False(EvaluateConditionHelper(pVariables, L"PROP8"));
55 Assert::True(EvaluateConditionHelper(pVariables, L"_PROP9"));
56 Assert::False(EvaluateConditionHelper(pVariables, L"PROP16"));
57 Assert::True(EvaluateConditionHelper(pVariables, L"PROP17"));
58
59 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\""));
60 Assert::False(EvaluateConditionHelper(pVariables, L"NONE = \"NOT\""));
61 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 <> \"VAL1\""));
62 Assert::True(EvaluateConditionHelper(pVariables, L"NONE <> \"NOT\""));
63
64 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 ~= \"val1\""));
65 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 = \"val1\""));
66 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 ~<> \"val1\""));
67 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 <> \"val1\""));
68
69 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 = 5"));
70 Assert::False(EvaluateConditionHelper(pVariables, L"PROP5 = 0"));
71 Assert::False(EvaluateConditionHelper(pVariables, L"PROP5 <> 5"));
72 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 <> 0"));
73
74 Assert::True(EvaluateConditionHelper(pVariables, L"PROP10 = -10"));
75 Assert::False(EvaluateConditionHelper(pVariables, L"PROP10 <> -10"));
76
77 Assert::True(EvaluateConditionHelper(pVariables, L"PROP17 = v1"));
78 Assert::False(EvaluateConditionHelper(pVariables, L"PROP17 = v0"));
79 Assert::False(EvaluateConditionHelper(pVariables, L"PROP17 <> v1"));
80 Assert::True(EvaluateConditionHelper(pVariables, L"PROP17 <> v0"));
81
82 Assert::True(EvaluateConditionHelper(pVariables, L"PROP16 = v0"));
83 Assert::True(EvaluateConditionHelper(pVariables, L"PROP17 = v1"));
84 Assert::True(EvaluateConditionHelper(pVariables, L"PROP18 = v1.1"));
85 Assert::True(EvaluateConditionHelper(pVariables, L"PROP19 = v1.1.1"));
86 Assert::True(EvaluateConditionHelper(pVariables, L"PROP20 = v1.1.1.1"));
87 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP20 = v1.1.1.1.0"));
88 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP20 = v1.1.1.1.1"));
89 Assert::True(EvaluateConditionHelper(pVariables, L"vPROP21 = 1"));
90 Assert::True(EvaluateConditionHelper(pVariables, L"PROP23 = v1.1.1"));
91 Assert::True(EvaluateConditionHelper(pVariables, L"v1.1.1 = PROP23"));
92 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 <> v1.1.1"));
93 Assert::True(EvaluateConditionHelper(pVariables, L"v1.1.1 <> PROP1"));
94
95 Assert::False(EvaluateConditionHelper(pVariables, L"PROP11 = 9223372036854775806"));
96 Assert::True(EvaluateConditionHelper(pVariables, L"PROP11 = 9223372036854775807"));
97 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP11 = 9223372036854775808"));
98 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP11 = 92233720368547758070000"));
99
100 Assert::False(EvaluateConditionHelper(pVariables, L"PROP12 = -9223372036854775807"));
101 Assert::True(EvaluateConditionHelper(pVariables, L"PROP12 = -9223372036854775808"));
102 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP12 = -9223372036854775809"));
103 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP12 = -92233720368547758080000"));
104
105 Assert::True(EvaluateConditionHelper(pVariables, L"PROP22 = v65535.65535.65535.65535"));
106 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP22 = v65536.65535.65535.65535"));
107 Assert::True(EvaluateFailureConditionHelper(pVariables, L"PROP22 = v65535.655350000.65535.65535"));
108
109 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 < 6"));
110 Assert::False(EvaluateConditionHelper(pVariables, L"PROP5 < 5"));
111 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 > 4"));
112 Assert::False(EvaluateConditionHelper(pVariables, L"PROP5 > 5"));
113 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 <= 6"));
114 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 <= 5"));
115 Assert::False(EvaluateConditionHelper(pVariables, L"PROP5 <= 4"));
116 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 >= 4"));
117 Assert::True(EvaluateConditionHelper(pVariables, L"PROP5 >= 5"));
118 Assert::False(EvaluateConditionHelper(pVariables, L"PROP5 >= 6"));
119
120 Assert::True(EvaluateConditionHelper(pVariables, L"PROP4 << \"BEGIN\""));
121 Assert::False(EvaluateConditionHelper(pVariables, L"PROP4 << \"END\""));
122 Assert::True(EvaluateConditionHelper(pVariables, L"PROP4 >> \"END\""));
123 Assert::False(EvaluateConditionHelper(pVariables, L"PROP4 >> \"BEGIN\""));
124 Assert::True(EvaluateConditionHelper(pVariables, L"PROP4 >< \"MID\""));
125 Assert::False(EvaluateConditionHelper(pVariables, L"PROP4 >< \"NONE\""));
126
127 Assert::True(EvaluateConditionHelper(pVariables, L"PROP16 < v1.1"));
128 Assert::False(EvaluateConditionHelper(pVariables, L"PROP16 < v0"));
129 Assert::True(EvaluateConditionHelper(pVariables, L"PROP17 > v0.12"));
130 Assert::False(EvaluateConditionHelper(pVariables, L"PROP17 > v1"));
131 Assert::True(EvaluateConditionHelper(pVariables, L"PROP18 >= v1.0"));
132 Assert::True(EvaluateConditionHelper(pVariables, L"PROP18 >= v1.1"));
133 Assert::False(EvaluateConditionHelper(pVariables, L"PROP18 >= v2.1"));
134 Assert::True(EvaluateConditionHelper(pVariables, L"PROP19 <= v1.1234.1"));
135 Assert::True(EvaluateConditionHelper(pVariables, L"PROP19 <= v1.1.1"));
136 Assert::False(EvaluateConditionHelper(pVariables, L"PROP19 <= v1.0.123"));
137
138 Assert::True(EvaluateConditionHelper(pVariables, L"PROP6 = \"6\""));
139 Assert::True(EvaluateConditionHelper(pVariables, L"\"6\" = PROP6"));
140 Assert::False(EvaluateConditionHelper(pVariables, L"PROP6 = \"ABC\""));
141 Assert::False(EvaluateConditionHelper(pVariables, L"\"ABC\" = PROP6"));
142 Assert::False(EvaluateConditionHelper(pVariables, L"\"ABC\" = PROP6"));
143
144 Assert::True(EvaluateConditionHelper(pVariables, L"PROP13 << 1"));
145 Assert::False(EvaluateConditionHelper(pVariables, L"PROP13 << 0"));
146 Assert::True(EvaluateConditionHelper(pVariables, L"PROP14 >> 1"));
147 Assert::False(EvaluateConditionHelper(pVariables, L"PROP14 >> 0"));
148 Assert::True(EvaluateConditionHelper(pVariables, L"PROP15 >< 65537"));
149 Assert::False(EvaluateConditionHelper(pVariables, L"PROP15 >< 0"));
150
151 Assert::False(EvaluateConditionHelper(pVariables, L"NOT PROP1"));
152 Assert::True(EvaluateConditionHelper(pVariables, L"NOT (PROP1 <> \"VAL1\")"));
153
154 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" AND PROP2 = \"VAL2\""));
155 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" AND PROP2 = \"NOT\""));
156 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 = \"NOT\" AND PROP2 = \"VAL2\""));
157 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 = \"NOT\" AND PROP2 = \"NOT\""));
158
159 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" OR PROP2 = \"VAL2\""));
160 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" OR PROP2 = \"NOT\""));
161 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"NOT\" OR PROP2 = \"VAL2\""));
162 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 = \"NOT\" OR PROP2 = \"NOT\""));
163
164 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" AND PROP2 = \"VAL2\" OR PROP3 = \"NOT\""));
165 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" AND PROP2 = \"NOT\" OR PROP3 = \"VAL3\""));
166 Assert::False(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" AND PROP2 = \"NOT\" OR PROP3 = \"NOT\""));
167 Assert::True(EvaluateConditionHelper(pVariables, L"PROP1 = \"VAL1\" AND (PROP2 = \"NOT\" OR PROP3 = \"VAL3\")"));
168 Assert::True(EvaluateConditionHelper(pVariables, L"(PROP1 = \"VAL1\" AND PROP2 = \"VAL2\") OR PROP3 = \"NOT\""));
169
170 Assert::True(EvaluateConditionHelper(pVariables, L"PROP3 = \"NOT\" OR PROP1 = \"VAL1\" AND PROP2 = \"VAL2\""));
171 Assert::True(EvaluateConditionHelper(pVariables, L"PROP3 = \"VAL3\" OR PROP1 = \"VAL1\" AND PROP2 = \"NOT\""));
172 Assert::False(EvaluateConditionHelper(pVariables, L"PROP3 = \"NOT\" OR PROP1 = \"VAL1\" AND PROP2 = \"NOT\""));
173 Assert::True(EvaluateConditionHelper(pVariables, L"(PROP3 = \"NOT\" OR PROP1 = \"VAL1\") AND PROP2 = \"VAL2\""));
174 Assert::True(EvaluateConditionHelper(pVariables, L"PROP3 = \"NOT\" OR (PROP1 = \"VAL1\" AND PROP2 = \"VAL2\")"));
175
176 Assert::True(EvaluateFailureConditionHelper(pVariables, L"="));
177 Assert::True(EvaluateFailureConditionHelper(pVariables, L"(PROP1"));
178 Assert::True(EvaluateFailureConditionHelper(pVariables, L"(PROP1 = \""));
179 Assert::True(EvaluateFailureConditionHelper(pVariables, L"1A"));
180 Assert::True(EvaluateFailureConditionHelper(pVariables, L"*"));
181
182 Assert::True(EvaluateFailureConditionHelper(pVariables, L"1 == 1"));
183 }
184 finally
185 {
186 ReleaseVariables(pVariables);
187 }
188 }
189 };
190}