blob: ab567adc6f19db38d775ca540d4314f432eaeb63 [file] [log] [blame]
MÃ¥rten Kongstadd10d06d2019-01-07 17:26:25 -08001/*
2 * Copyright (C) 2019 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include <string>
18
19#include "gtest/gtest.h"
20
21#include "TestHelpers.h"
22#include "idmap2/Policies.h"
23
24using android::idmap2::PolicyBitmask;
25using android::idmap2::PolicyFlags;
26
27namespace android::idmap2 {
28
29TEST(PoliciesTests, PoliciesToBitmasks) {
30 const Result<PolicyBitmask> bitmask1 = PoliciesToBitmask({"system"}, std::cerr);
31 ASSERT_NE(bitmask1, kResultError);
32 ASSERT_EQ(bitmask1, PolicyFlags::POLICY_SYSTEM_PARTITION);
33
34 const Result<PolicyBitmask> bitmask2 = PoliciesToBitmask({"system", "vendor"}, std::cerr);
35 ASSERT_NE(bitmask2, kResultError);
36 ASSERT_EQ(bitmask2, PolicyFlags::POLICY_SYSTEM_PARTITION | PolicyFlags::POLICY_VENDOR_PARTITION);
37
38 const Result<PolicyBitmask> bitmask3 = PoliciesToBitmask({"vendor", "system"}, std::cerr);
39 ASSERT_NE(bitmask3, kResultError);
40 ASSERT_EQ(bitmask3, PolicyFlags::POLICY_SYSTEM_PARTITION | PolicyFlags::POLICY_VENDOR_PARTITION);
41
42 const Result<PolicyBitmask> bitmask4 =
43 PoliciesToBitmask({"public", "product", "system", "vendor"}, std::cerr);
44 ASSERT_NE(bitmask4, kResultError);
45 ASSERT_EQ(bitmask4, PolicyFlags::POLICY_PUBLIC | PolicyFlags::POLICY_PRODUCT_PARTITION |
46 PolicyFlags::POLICY_SYSTEM_PARTITION |
47 PolicyFlags::POLICY_VENDOR_PARTITION);
48
49 const Result<PolicyBitmask> bitmask5 =
50 PoliciesToBitmask({"system", "system", "system"}, std::cerr);
51 ASSERT_NE(bitmask5, kResultError);
52 ASSERT_EQ(bitmask5, PolicyFlags::POLICY_SYSTEM_PARTITION);
53
54 const Result<PolicyBitmask> bitmask6 = PoliciesToBitmask({""}, std::cerr);
55 ASSERT_EQ(bitmask6, kResultError);
56
57 const Result<PolicyBitmask> bitmask7 = PoliciesToBitmask({"foo"}, std::cerr);
58 ASSERT_EQ(bitmask7, kResultError);
59
60 const Result<PolicyBitmask> bitmask8 = PoliciesToBitmask({"system", "foo"}, std::cerr);
61 ASSERT_EQ(bitmask8, kResultError);
62
63 const Result<PolicyBitmask> bitmask9 = PoliciesToBitmask({"system", ""}, std::cerr);
64 ASSERT_EQ(bitmask9, kResultError);
65
66 const Result<PolicyBitmask> bitmask10 = PoliciesToBitmask({"system "}, std::cerr);
67 ASSERT_EQ(bitmask10, kResultError);
68}
69
70} // namespace android::idmap2