blob: ab567adc6f19db38d775ca540d4314f432eaeb63 [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <string>
#include "gtest/gtest.h"
#include "TestHelpers.h"
#include "idmap2/Policies.h"
using android::idmap2::PolicyBitmask;
using android::idmap2::PolicyFlags;
namespace android::idmap2 {
TEST(PoliciesTests, PoliciesToBitmasks) {
const Result<PolicyBitmask> bitmask1 = PoliciesToBitmask({"system"}, std::cerr);
ASSERT_NE(bitmask1, kResultError);
ASSERT_EQ(bitmask1, PolicyFlags::POLICY_SYSTEM_PARTITION);
const Result<PolicyBitmask> bitmask2 = PoliciesToBitmask({"system", "vendor"}, std::cerr);
ASSERT_NE(bitmask2, kResultError);
ASSERT_EQ(bitmask2, PolicyFlags::POLICY_SYSTEM_PARTITION | PolicyFlags::POLICY_VENDOR_PARTITION);
const Result<PolicyBitmask> bitmask3 = PoliciesToBitmask({"vendor", "system"}, std::cerr);
ASSERT_NE(bitmask3, kResultError);
ASSERT_EQ(bitmask3, PolicyFlags::POLICY_SYSTEM_PARTITION | PolicyFlags::POLICY_VENDOR_PARTITION);
const Result<PolicyBitmask> bitmask4 =
PoliciesToBitmask({"public", "product", "system", "vendor"}, std::cerr);
ASSERT_NE(bitmask4, kResultError);
ASSERT_EQ(bitmask4, PolicyFlags::POLICY_PUBLIC | PolicyFlags::POLICY_PRODUCT_PARTITION |
PolicyFlags::POLICY_SYSTEM_PARTITION |
PolicyFlags::POLICY_VENDOR_PARTITION);
const Result<PolicyBitmask> bitmask5 =
PoliciesToBitmask({"system", "system", "system"}, std::cerr);
ASSERT_NE(bitmask5, kResultError);
ASSERT_EQ(bitmask5, PolicyFlags::POLICY_SYSTEM_PARTITION);
const Result<PolicyBitmask> bitmask6 = PoliciesToBitmask({""}, std::cerr);
ASSERT_EQ(bitmask6, kResultError);
const Result<PolicyBitmask> bitmask7 = PoliciesToBitmask({"foo"}, std::cerr);
ASSERT_EQ(bitmask7, kResultError);
const Result<PolicyBitmask> bitmask8 = PoliciesToBitmask({"system", "foo"}, std::cerr);
ASSERT_EQ(bitmask8, kResultError);
const Result<PolicyBitmask> bitmask9 = PoliciesToBitmask({"system", ""}, std::cerr);
ASSERT_EQ(bitmask9, kResultError);
const Result<PolicyBitmask> bitmask10 = PoliciesToBitmask({"system "}, std::cerr);
ASSERT_EQ(bitmask10, kResultError);
}
} // namespace android::idmap2