Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: sandbox/win/src/policy_low_level_unittest.cc

Issue 1538283002: Switch to standard integer types in sandbox/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: macros Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sandbox/win/src/policy_low_level.cc ('k') | sandbox/win/src/policy_opcodes_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h>
6 #include <stdint.h>
7
5 #include "sandbox/win/src/policy_engine_params.h" 8 #include "sandbox/win/src/policy_engine_params.h"
6 #include "sandbox/win/src/policy_engine_processor.h" 9 #include "sandbox/win/src/policy_engine_processor.h"
7 #include "sandbox/win/src/policy_low_level.h" 10 #include "sandbox/win/src/policy_low_level.h"
8 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
9 12
10 #define POLPARAMS_BEGIN(x) sandbox::ParameterSet x[] = { 13 #define POLPARAMS_BEGIN(x) sandbox::ParameterSet x[] = {
11 #define POLPARAM(p) sandbox::ParamPickerMake(p), 14 #define POLPARAM(p) sandbox::ParamPickerMake(p),
12 #define POLPARAMS_END } 15 #define POLPARAMS_END }
13 16
14 namespace sandbox { 17 namespace sandbox {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 52
50 // The simplest test using LowLevelPolicy it should test a single opcode which 53 // The simplest test using LowLevelPolicy it should test a single opcode which
51 // does a exact string comparison. 54 // does a exact string comparison.
52 TEST(PolicyEngineTest, SimpleStrMatch) { 55 TEST(PolicyEngineTest, SimpleStrMatch) {
53 SetupNtdllImports(); 56 SetupNtdllImports();
54 PolicyRule pr(ASK_BROKER); 57 PolicyRule pr(ASK_BROKER);
55 EXPECT_TRUE(pr.AddStringMatch(IF, 0, L"z:\\Directory\\domo.txt", 58 EXPECT_TRUE(pr.AddStringMatch(IF, 0, L"z:\\Directory\\domo.txt",
56 CASE_INSENSITIVE)); 59 CASE_INSENSITIVE));
57 60
58 PolicyGlobal* policy = MakePolicyMemory(); 61 PolicyGlobal* policy = MakePolicyMemory();
59 const uint32 kFakeService = 2; 62 const uint32_t kFakeService = 2;
60 63
61 LowLevelPolicy policyGen(policy); 64 LowLevelPolicy policyGen(policy);
62 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr)); 65 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr));
63 EXPECT_TRUE(policyGen.Done()); 66 EXPECT_TRUE(policyGen.Done());
64 67
65 const wchar_t* filename = L"Z:\\Directory\\domo.txt"; 68 const wchar_t* filename = L"Z:\\Directory\\domo.txt";
66 69
67 POLPARAMS_BEGIN(eval_params) 70 POLPARAMS_BEGIN(eval_params)
68 POLPARAM(filename) // Argument 0 71 POLPARAM(filename) // Argument 0
69 POLPARAMS_END; 72 POLPARAMS_END;
(...skipping 12 matching lines...) Expand all
82 delete [] reinterpret_cast<char*>(policy); 85 delete [] reinterpret_cast<char*>(policy);
83 } 86 }
84 87
85 TEST(PolicyEngineTest, SimpleIfNotStrMatch) { 88 TEST(PolicyEngineTest, SimpleIfNotStrMatch) {
86 SetupNtdllImports(); 89 SetupNtdllImports();
87 PolicyRule pr(ASK_BROKER); 90 PolicyRule pr(ASK_BROKER);
88 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\", 91 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\",
89 CASE_SENSITIVE)); 92 CASE_SENSITIVE));
90 93
91 PolicyGlobal* policy = MakePolicyMemory(); 94 PolicyGlobal* policy = MakePolicyMemory();
92 const uint32 kFakeService = 2; 95 const uint32_t kFakeService = 2;
93 LowLevelPolicy policyGen(policy); 96 LowLevelPolicy policyGen(policy);
94 97
95 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr)); 98 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr));
96 EXPECT_TRUE(policyGen.Done()); 99 EXPECT_TRUE(policyGen.Done());
97 100
98 const wchar_t* filename = NULL; 101 const wchar_t* filename = NULL;
99 POLPARAMS_BEGIN(eval_params) 102 POLPARAMS_BEGIN(eval_params)
100 POLPARAM(filename) // Argument 0 103 POLPARAM(filename) // Argument 0
101 POLPARAMS_END; 104 POLPARAMS_END;
102 105
(...skipping 17 matching lines...) Expand all
120 delete [] reinterpret_cast<char*>(policy); 123 delete [] reinterpret_cast<char*>(policy);
121 } 124 }
122 125
123 TEST(PolicyEngineTest, SimpleIfNotStrMatchWild1) { 126 TEST(PolicyEngineTest, SimpleIfNotStrMatchWild1) {
124 SetupNtdllImports(); 127 SetupNtdllImports();
125 PolicyRule pr(ASK_BROKER); 128 PolicyRule pr(ASK_BROKER);
126 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\*", 129 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\*",
127 CASE_SENSITIVE)); 130 CASE_SENSITIVE));
128 131
129 PolicyGlobal* policy = MakePolicyMemory(); 132 PolicyGlobal* policy = MakePolicyMemory();
130 const uint32 kFakeService = 3; 133 const uint32_t kFakeService = 3;
131 LowLevelPolicy policyGen(policy); 134 LowLevelPolicy policyGen(policy);
132 135
133 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr)); 136 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr));
134 EXPECT_TRUE(policyGen.Done()); 137 EXPECT_TRUE(policyGen.Done());
135 138
136 const wchar_t* filename = NULL; 139 const wchar_t* filename = NULL;
137 POLPARAMS_BEGIN(eval_params) 140 POLPARAMS_BEGIN(eval_params)
138 POLPARAM(filename) // Argument 0 141 POLPARAM(filename) // Argument 0
139 POLPARAMS_END; 142 POLPARAMS_END;
140 143
(...skipping 12 matching lines...) Expand all
153 delete [] reinterpret_cast<char*>(policy); 156 delete [] reinterpret_cast<char*>(policy);
154 } 157 }
155 158
156 TEST(PolicyEngineTest, SimpleIfNotStrMatchWild2) { 159 TEST(PolicyEngineTest, SimpleIfNotStrMatchWild2) {
157 SetupNtdllImports(); 160 SetupNtdllImports();
158 PolicyRule pr(ASK_BROKER); 161 PolicyRule pr(ASK_BROKER);
159 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\*.txt", 162 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\*.txt",
160 CASE_SENSITIVE)); 163 CASE_SENSITIVE));
161 164
162 PolicyGlobal* policy = MakePolicyMemory(); 165 PolicyGlobal* policy = MakePolicyMemory();
163 const uint32 kFakeService = 3; 166 const uint32_t kFakeService = 3;
164 LowLevelPolicy policyGen(policy); 167 LowLevelPolicy policyGen(policy);
165 168
166 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr)); 169 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr));
167 EXPECT_TRUE(policyGen.Done()); 170 EXPECT_TRUE(policyGen.Done());
168 171
169 const wchar_t* filename = NULL; 172 const wchar_t* filename = NULL;
170 POLPARAMS_BEGIN(eval_params) 173 POLPARAMS_BEGIN(eval_params)
171 POLPARAM(filename) // Argument 0 174 POLPARAM(filename) // Argument 0
172 POLPARAMS_END; 175 POLPARAMS_END;
173 176
(...skipping 18 matching lines...) Expand all
192 } 195 }
193 196
194 TEST(PolicyEngineTest, IfNotStrMatchTwoRulesWild1) { 197 TEST(PolicyEngineTest, IfNotStrMatchTwoRulesWild1) {
195 SetupNtdllImports(); 198 SetupNtdllImports();
196 PolicyRule pr(ASK_BROKER); 199 PolicyRule pr(ASK_BROKER);
197 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\*", 200 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\Microsoft\\*",
198 CASE_SENSITIVE)); 201 CASE_SENSITIVE));
199 EXPECT_TRUE(pr.AddNumberMatch(IF, 1, 24, EQUAL)); 202 EXPECT_TRUE(pr.AddNumberMatch(IF, 1, 24, EQUAL));
200 203
201 PolicyGlobal* policy = MakePolicyMemory(); 204 PolicyGlobal* policy = MakePolicyMemory();
202 const uint32 kFakeService = 3; 205 const uint32_t kFakeService = 3;
203 LowLevelPolicy policyGen(policy); 206 LowLevelPolicy policyGen(policy);
204 207
205 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr)); 208 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr));
206 EXPECT_TRUE(policyGen.Done()); 209 EXPECT_TRUE(policyGen.Done());
207 210
208 const wchar_t* filename = NULL; 211 const wchar_t* filename = NULL;
209 uint32 access = 0; 212 uint32_t access = 0;
210 POLPARAMS_BEGIN(eval_params) 213 POLPARAMS_BEGIN(eval_params)
211 POLPARAM(filename) // Argument 0 214 POLPARAM(filename) // Argument 0
212 POLPARAM(access) // Argument 1 215 POLPARAM(access) // Argument 1
213 POLPARAMS_END; 216 POLPARAMS_END;
214 217
215 PolicyResult result; 218 PolicyResult result;
216 PolicyProcessor pol_ev(policy->entry[kFakeService]); 219 PolicyProcessor pol_ev(policy->entry[kFakeService]);
217 220
218 filename = L"c:\\Microsoft\\domo.txt"; 221 filename = L"c:\\Microsoft\\domo.txt";
219 access = 24; 222 access = 24;
(...skipping 21 matching lines...) Expand all
241 244
242 TEST(PolicyEngineTest, IfNotStrMatchTwoRulesWild2) { 245 TEST(PolicyEngineTest, IfNotStrMatchTwoRulesWild2) {
243 SetupNtdllImports(); 246 SetupNtdllImports();
244 PolicyRule pr(ASK_BROKER); 247 PolicyRule pr(ASK_BROKER);
245 EXPECT_TRUE(pr.AddNumberMatch(IF, 1, 24, EQUAL)); 248 EXPECT_TRUE(pr.AddNumberMatch(IF, 1, 24, EQUAL));
246 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\GoogleV?\\*.txt", 249 EXPECT_TRUE(pr.AddStringMatch(IF_NOT, 0, L"c:\\GoogleV?\\*.txt",
247 CASE_SENSITIVE)); 250 CASE_SENSITIVE));
248 EXPECT_TRUE(pr.AddNumberMatch(IF, 2, 66, EQUAL)); 251 EXPECT_TRUE(pr.AddNumberMatch(IF, 2, 66, EQUAL));
249 252
250 PolicyGlobal* policy = MakePolicyMemory(); 253 PolicyGlobal* policy = MakePolicyMemory();
251 const uint32 kFakeService = 3; 254 const uint32_t kFakeService = 3;
252 LowLevelPolicy policyGen(policy); 255 LowLevelPolicy policyGen(policy);
253 256
254 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr)); 257 EXPECT_TRUE(policyGen.AddRule(kFakeService, &pr));
255 EXPECT_TRUE(policyGen.Done()); 258 EXPECT_TRUE(policyGen.Done());
256 259
257 const wchar_t* filename = NULL; 260 const wchar_t* filename = NULL;
258 uint32 access = 0; 261 uint32_t access = 0;
259 uint32 sharing = 66; 262 uint32_t sharing = 66;
260 263
261 POLPARAMS_BEGIN(eval_params) 264 POLPARAMS_BEGIN(eval_params)
262 POLPARAM(filename) // Argument 0 265 POLPARAM(filename) // Argument 0
263 POLPARAM(access) // Argument 1 266 POLPARAM(access) // Argument 1
264 POLPARAM(sharing) // Argument 2 267 POLPARAM(sharing) // Argument 2
265 POLPARAMS_END; 268 POLPARAMS_END;
266 269
267 PolicyResult result; 270 PolicyResult result;
268 PolicyProcessor pol_ev(policy->entry[kFakeService]); 271 PolicyProcessor pol_ev(policy->entry[kFakeService]);
269 272
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 TEST(PolicyEngineTest, OneRuleTest) { 318 TEST(PolicyEngineTest, OneRuleTest) {
316 SetupNtdllImports(); 319 SetupNtdllImports();
317 PolicyRule pr(ASK_BROKER); 320 PolicyRule pr(ASK_BROKER);
318 EXPECT_TRUE(pr.AddStringMatch(IF, 0, L"c:\\*Microsoft*\\*.txt", 321 EXPECT_TRUE(pr.AddStringMatch(IF, 0, L"c:\\*Microsoft*\\*.txt",
319 CASE_SENSITIVE)); 322 CASE_SENSITIVE));
320 EXPECT_TRUE(pr.AddNumberMatch(IF_NOT, 1, CREATE_ALWAYS, EQUAL)); 323 EXPECT_TRUE(pr.AddNumberMatch(IF_NOT, 1, CREATE_ALWAYS, EQUAL));
321 EXPECT_TRUE(pr.AddNumberMatch(IF, 2, FILE_ATTRIBUTE_NORMAL, EQUAL)); 324 EXPECT_TRUE(pr.AddNumberMatch(IF, 2, FILE_ATTRIBUTE_NORMAL, EQUAL));
322 325
323 PolicyGlobal* policy = MakePolicyMemory(); 326 PolicyGlobal* policy = MakePolicyMemory();
324 327
325 const uint32 kNtFakeCreateFile = 7; 328 const uint32_t kNtFakeCreateFile = 7;
326 329
327 LowLevelPolicy policyGen(policy); 330 LowLevelPolicy policyGen(policy);
328 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr)); 331 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr));
329 EXPECT_TRUE(policyGen.Done()); 332 EXPECT_TRUE(policyGen.Done());
330 333
331 const wchar_t* filename = L"c:\\Documents and Settings\\Microsoft\\BLAH.txt"; 334 const wchar_t* filename = L"c:\\Documents and Settings\\Microsoft\\BLAH.txt";
332 uint32 creation_mode = OPEN_EXISTING; 335 uint32_t creation_mode = OPEN_EXISTING;
333 uint32 flags = FILE_ATTRIBUTE_NORMAL; 336 uint32_t flags = FILE_ATTRIBUTE_NORMAL;
334 void* security_descriptor = NULL; 337 void* security_descriptor = NULL;
335 338
336 POLPARAMS_BEGIN(eval_params) 339 POLPARAMS_BEGIN(eval_params)
337 POLPARAM(filename) // Argument 0 340 POLPARAM(filename) // Argument 0
338 POLPARAM(creation_mode) // Argument 1 341 POLPARAM(creation_mode) // Argument 1
339 POLPARAM(flags) // Argument 2 342 POLPARAM(flags) // Argument 2
340 POLPARAM(security_descriptor) 343 POLPARAM(security_descriptor)
341 POLPARAMS_END; 344 POLPARAMS_END;
342 345
343 PolicyResult result; 346 PolicyResult result;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 424
422 PolicyRule pr_none(GIVE_FIRST); 425 PolicyRule pr_none(GIVE_FIRST);
423 EXPECT_TRUE(pr_none.AddNumberMatch(IF, 2, FILE_ATTRIBUTE_READONLY, AND)); 426 EXPECT_TRUE(pr_none.AddNumberMatch(IF, 2, FILE_ATTRIBUTE_READONLY, AND));
424 EXPECT_TRUE(pr_none.AddNumberMatch(IF, 2, FILE_ATTRIBUTE_SYSTEM, AND)); 427 EXPECT_TRUE(pr_none.AddNumberMatch(IF, 2, FILE_ATTRIBUTE_SYSTEM, AND));
425 428
426 size_t opc5 = pr_none.GetOpcodeCount(); 429 size_t opc5 = pr_none.GetOpcodeCount();
427 EXPECT_EQ(2u, opc5); 430 EXPECT_EQ(2u, opc5);
428 431
429 PolicyGlobal* policy = MakePolicyMemory(); 432 PolicyGlobal* policy = MakePolicyMemory();
430 433
431 const uint32 kNtFakeNone = 4; 434 const uint32_t kNtFakeNone = 4;
432 const uint32 kNtFakeCreateFile = 5; 435 const uint32_t kNtFakeCreateFile = 5;
433 const uint32 kNtFakeOpenFile = 6; 436 const uint32_t kNtFakeOpenFile = 6;
434 437
435 LowLevelPolicy policyGen(policy); 438 LowLevelPolicy policyGen(policy);
436 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr_pipe)); 439 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr_pipe));
437 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr_dump)); 440 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr_dump));
438 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr_winexe)); 441 EXPECT_TRUE(policyGen.AddRule(kNtFakeCreateFile, &pr_winexe));
439 442
440 EXPECT_TRUE(policyGen.AddRule(kNtFakeOpenFile, &pr_adobe)); 443 EXPECT_TRUE(policyGen.AddRule(kNtFakeOpenFile, &pr_adobe));
441 EXPECT_TRUE(policyGen.AddRule(kNtFakeOpenFile, &pr_pipe)); 444 EXPECT_TRUE(policyGen.AddRule(kNtFakeOpenFile, &pr_pipe));
442 445
443 EXPECT_TRUE(policyGen.AddRule(kNtFakeNone, &pr_none)); 446 EXPECT_TRUE(policyGen.AddRule(kNtFakeNone, &pr_none));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 policy->entry[kNtFakeCreateFile]->opcodes[0].GetID()); 482 policy->entry[kNtFakeCreateFile]->opcodes[0].GetID());
480 EXPECT_EQ(OP_ACTION, 483 EXPECT_EQ(OP_ACTION,
481 policy->entry[kNtFakeCreateFile]->opcodes[tc2-1].GetID()); 484 policy->entry[kNtFakeCreateFile]->opcodes[tc2-1].GetID());
482 EXPECT_EQ(OP_WSTRING_MATCH, 485 EXPECT_EQ(OP_WSTRING_MATCH,
483 policy->entry[kNtFakeOpenFile]->opcodes[0].GetID()); 486 policy->entry[kNtFakeOpenFile]->opcodes[0].GetID());
484 EXPECT_EQ(OP_ACTION, policy->entry[kNtFakeOpenFile]->opcodes[tc3-1].GetID()); 487 EXPECT_EQ(OP_ACTION, policy->entry[kNtFakeOpenFile]->opcodes[tc3-1].GetID());
485 488
486 // Test the policy evaluation. 489 // Test the policy evaluation.
487 490
488 const wchar_t* filename = L""; 491 const wchar_t* filename = L"";
489 uint32 creation_mode = OPEN_EXISTING; 492 uint32_t creation_mode = OPEN_EXISTING;
490 uint32 flags = FILE_ATTRIBUTE_NORMAL; 493 uint32_t flags = FILE_ATTRIBUTE_NORMAL;
491 void* security_descriptor = NULL; 494 void* security_descriptor = NULL;
492 495
493 POLPARAMS_BEGIN(params) 496 POLPARAMS_BEGIN(params)
494 POLPARAM(filename) // Argument 0 497 POLPARAM(filename) // Argument 0
495 POLPARAM(creation_mode) // Argument 1 498 POLPARAM(creation_mode) // Argument 1
496 POLPARAM(flags) // Argument 2 499 POLPARAM(flags) // Argument 2
497 POLPARAM(security_descriptor) 500 POLPARAM(security_descriptor)
498 POLPARAMS_END; 501 POLPARAMS_END;
499 502
500 PolicyResult result; 503 PolicyResult result;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 name = L"domo.txt"; 612 name = L"domo.txt";
610 result = pol_ev_copy.Evaluate(kShortEval, eval_params, _countof(eval_params)); 613 result = pol_ev_copy.Evaluate(kShortEval, eval_params, _countof(eval_params));
611 EXPECT_EQ(NO_POLICY_MATCH, result); 614 EXPECT_EQ(NO_POLICY_MATCH, result);
612 615
613 name = L"hello.bmp"; 616 name = L"hello.bmp";
614 result = pol_ev_copy.Evaluate(kShortEval, eval_params, _countof(eval_params)); 617 result = pol_ev_copy.Evaluate(kShortEval, eval_params, _countof(eval_params));
615 EXPECT_EQ(POLICY_MATCH, result); 618 EXPECT_EQ(POLICY_MATCH, result);
616 EXPECT_EQ(ASK_BROKER, pol_ev_copy.GetAction()); 619 EXPECT_EQ(ASK_BROKER, pol_ev_copy.GetAction());
617 } 620 }
618 } // namespace sandbox 621 } // namespace sandbox
OLDNEW
« no previous file with comments | « sandbox/win/src/policy_low_level.cc ('k') | sandbox/win/src/policy_opcodes_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698