| // |
| // 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 <android-base/unique_fd.h> |
| #include <android/hardware/weaver/1.0/IWeaver.h> |
| #include <ext4_utils/ext4_utils.h> |
| #include <fstab/fstab.h> |
| #include <gtest/gtest.h> |
| |
| using namespace android::fs_mgr; |
| |
| using android::base::unique_fd; |
| using android::hardware::weaver::V1_0::IWeaver; |
| using android::hardware::weaver::V1_0::WeaverConfig; |
| using android::hardware::weaver::V1_0::WeaverStatus; |
| |
| TEST(MetadataPartition, FirstStageMount) { |
| Fstab fstab; |
| ASSERT_TRUE(ReadDefaultFstab(&fstab)); |
| |
| auto entry = GetEntryForMountPoint(&fstab, "/metadata"); |
| ASSERT_NE(entry, nullptr); |
| EXPECT_TRUE(entry->fs_mgr_flags.first_stage_mount); |
| } |
| |
| TEST(MetadataPartition, MinimumSize) { |
| unique_fd fd(open("/dev/block/by-name/metadata", O_RDONLY | O_CLOEXEC)); |
| ASSERT_GE(fd, 0); |
| |
| uint64_t size = get_block_device_size(fd); |
| EXPECT_GE(size, 16777216); |
| } |
| |
| TEST(Weaver, MinimumSlots) { |
| auto weaver = IWeaver::getService(); |
| if (!weaver) { |
| return; |
| } |
| |
| WeaverStatus hw_status; |
| WeaverConfig hw_config; |
| |
| auto res = weaver->getConfig([&](WeaverStatus status, const WeaverConfig& config) { |
| hw_status = status; |
| hw_config = config; |
| }); |
| ASSERT_TRUE(res.isOk()); |
| ASSERT_EQ(hw_status, WeaverStatus::OK); |
| EXPECT_GE(hw_config.slots, 16); |
| } |