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

Side by Side Diff: sandbox/linux/seccomp-bpf/errorcode_unittest.cc

Issue 12223109: SECCOMP-BPF: Refactor the BPF sandbox API to use fewer "static" fields and methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 10 months 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 | Annotate | Revision Log
« no previous file with comments | « sandbox/linux/seccomp-bpf/errorcode.cc ('k') | sandbox/linux/seccomp-bpf/linux_seccomp.h » ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "sandbox/linux/seccomp-bpf/sandbox_bpf.h" 5 #include "sandbox/linux/seccomp-bpf/sandbox_bpf.h"
6 #include "sandbox/linux/tests/unit_tests.h" 6 #include "sandbox/linux/tests/unit_tests.h"
7 7
8 using namespace playground2; 8 using namespace playground2;
9 9
10 namespace { 10 namespace {
11 11
12 SANDBOX_TEST(ErrorCode, ErrnoConstructor) { 12 SANDBOX_TEST(ErrorCode, ErrnoConstructor) {
13 ErrorCode e0; 13 ErrorCode e0;
14 SANDBOX_ASSERT(e0.err() == SECCOMP_RET_INVALID); 14 SANDBOX_ASSERT(e0.err() == SECCOMP_RET_INVALID);
15 15
16 ErrorCode e1(ErrorCode::ERR_ALLOWED); 16 ErrorCode e1(ErrorCode::ERR_ALLOWED);
17 SANDBOX_ASSERT(e1.err() == SECCOMP_RET_ALLOW); 17 SANDBOX_ASSERT(e1.err() == SECCOMP_RET_ALLOW);
18 18
19 ErrorCode e2(EPERM); 19 ErrorCode e2(EPERM);
20 SANDBOX_ASSERT(e2.err() == SECCOMP_RET_ERRNO + EPERM); 20 SANDBOX_ASSERT(e2.err() == SECCOMP_RET_ERRNO + EPERM);
21 21
22 ErrorCode e3 = Sandbox::Trap(NULL, NULL); 22 Sandbox sandbox;
23 ErrorCode e3 = sandbox.Trap(NULL, NULL);
23 SANDBOX_ASSERT((e3.err() & SECCOMP_RET_ACTION) == SECCOMP_RET_TRAP); 24 SANDBOX_ASSERT((e3.err() & SECCOMP_RET_ACTION) == SECCOMP_RET_TRAP);
24 } 25 }
25 26
26 SANDBOX_TEST(ErrorCode, Trap) { 27 SANDBOX_TEST(ErrorCode, Trap) {
27 ErrorCode e0 = Sandbox::Trap(NULL, "a"); 28 Sandbox sandbox;
28 ErrorCode e1 = Sandbox::Trap(NULL, "b"); 29 ErrorCode e0 = sandbox.Trap(NULL, "a");
30 ErrorCode e1 = sandbox.Trap(NULL, "b");
29 SANDBOX_ASSERT((e0.err() & SECCOMP_RET_DATA) + 1 == 31 SANDBOX_ASSERT((e0.err() & SECCOMP_RET_DATA) + 1 ==
30 (e1.err() & SECCOMP_RET_DATA)); 32 (e1.err() & SECCOMP_RET_DATA));
31 33
32 ErrorCode e2 = Sandbox::Trap(NULL, "a"); 34 ErrorCode e2 = sandbox.Trap(NULL, "a");
33 SANDBOX_ASSERT((e0.err() & SECCOMP_RET_DATA) == 35 SANDBOX_ASSERT((e0.err() & SECCOMP_RET_DATA) ==
34 (e2.err() & SECCOMP_RET_DATA)); 36 (e2.err() & SECCOMP_RET_DATA));
35 } 37 }
36 38
37 SANDBOX_TEST(ErrorCode, Equals) { 39 SANDBOX_TEST(ErrorCode, Equals) {
38 ErrorCode e1(ErrorCode::ERR_ALLOWED); 40 ErrorCode e1(ErrorCode::ERR_ALLOWED);
39 ErrorCode e2(ErrorCode::ERR_ALLOWED); 41 ErrorCode e2(ErrorCode::ERR_ALLOWED);
40 SANDBOX_ASSERT(e1.Equals(e1)); 42 SANDBOX_ASSERT(e1.Equals(e1));
41 SANDBOX_ASSERT(e1.Equals(e2)); 43 SANDBOX_ASSERT(e1.Equals(e2));
42 SANDBOX_ASSERT(e2.Equals(e1)); 44 SANDBOX_ASSERT(e2.Equals(e1));
43 45
44 ErrorCode e3(EPERM); 46 ErrorCode e3(EPERM);
45 SANDBOX_ASSERT(!e1.Equals(e3)); 47 SANDBOX_ASSERT(!e1.Equals(e3));
46 48
47 ErrorCode e4 = Sandbox::Trap(NULL, "a"); 49 Sandbox sandbox;
48 ErrorCode e5 = Sandbox::Trap(NULL, "b"); 50 ErrorCode e4 = sandbox.Trap(NULL, "a");
49 ErrorCode e6 = Sandbox::Trap(NULL, "a"); 51 ErrorCode e5 = sandbox.Trap(NULL, "b");
52 ErrorCode e6 = sandbox.Trap(NULL, "a");
50 SANDBOX_ASSERT(!e1.Equals(e4)); 53 SANDBOX_ASSERT(!e1.Equals(e4));
51 SANDBOX_ASSERT(!e3.Equals(e4)); 54 SANDBOX_ASSERT(!e3.Equals(e4));
52 SANDBOX_ASSERT(!e5.Equals(e4)); 55 SANDBOX_ASSERT(!e5.Equals(e4));
53 SANDBOX_ASSERT( e6.Equals(e4)); 56 SANDBOX_ASSERT( e6.Equals(e4));
54 } 57 }
55 58
56 SANDBOX_TEST(ErrorCode, LessThan) { 59 SANDBOX_TEST(ErrorCode, LessThan) {
57 ErrorCode e1(ErrorCode::ERR_ALLOWED); 60 ErrorCode e1(ErrorCode::ERR_ALLOWED);
58 ErrorCode e2(ErrorCode::ERR_ALLOWED); 61 ErrorCode e2(ErrorCode::ERR_ALLOWED);
59 SANDBOX_ASSERT(!e1.LessThan(e1)); 62 SANDBOX_ASSERT(!e1.LessThan(e1));
60 SANDBOX_ASSERT(!e1.LessThan(e2)); 63 SANDBOX_ASSERT(!e1.LessThan(e2));
61 SANDBOX_ASSERT(!e2.LessThan(e1)); 64 SANDBOX_ASSERT(!e2.LessThan(e1));
62 65
63 ErrorCode e3(EPERM); 66 ErrorCode e3(EPERM);
64 SANDBOX_ASSERT(!e1.LessThan(e3)); 67 SANDBOX_ASSERT(!e1.LessThan(e3));
65 SANDBOX_ASSERT( e3.LessThan(e1)); 68 SANDBOX_ASSERT( e3.LessThan(e1));
66 69
67 ErrorCode e4 = Sandbox::Trap(NULL, "a"); 70 Sandbox sandbox;
68 ErrorCode e5 = Sandbox::Trap(NULL, "b"); 71 ErrorCode e4 = sandbox.Trap(NULL, "a");
69 ErrorCode e6 = Sandbox::Trap(NULL, "a"); 72 ErrorCode e5 = sandbox.Trap(NULL, "b");
73 ErrorCode e6 = sandbox.Trap(NULL, "a");
70 SANDBOX_ASSERT(e1.LessThan(e4)); 74 SANDBOX_ASSERT(e1.LessThan(e4));
71 SANDBOX_ASSERT(e3.LessThan(e4)); 75 SANDBOX_ASSERT(e3.LessThan(e4));
72 SANDBOX_ASSERT(e4.LessThan(e5)); 76 SANDBOX_ASSERT(e4.LessThan(e5));
73 SANDBOX_ASSERT(!e4.LessThan(e6)); 77 SANDBOX_ASSERT(!e4.LessThan(e6));
74 SANDBOX_ASSERT(!e6.LessThan(e4)); 78 SANDBOX_ASSERT(!e6.LessThan(e4));
75 } 79 }
76 80
77 } // namespace 81 } // namespace
OLDNEW
« no previous file with comments | « sandbox/linux/seccomp-bpf/errorcode.cc ('k') | sandbox/linux/seccomp-bpf/linux_seccomp.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698