blob: 7ac860f9fddaad59f8b0a5957c73edf036c263a9 [file] [log] [blame]
// Copyright 2017 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "imageloader/verity_mounter_impl.h"
namespace imageloader {
TEST(VerityMounterTest, MapperParametersToLoop) {
// Test valid case.
int32_t loop = -1;
EXPECT_TRUE(
MapperParametersToLoop("0 7:6 7:6 4096 4096 3089 3089 sha256 "
"eef4aa5dc50d181b7f6...",
&loop));
EXPECT_EQ(loop, 6);
// Make sure notable edge cases are handled correctly.
EXPECT_FALSE(MapperParametersToLoop("", &loop));
EXPECT_FALSE(MapperParametersToLoop("0 7 6 7:6", &loop));
EXPECT_FALSE(MapperParametersToLoop("0 7:a 7:6", &loop));
}
TEST(VerityMounterTest, IsAncestor) {
// Test valid case.
const base::FilePath ancestor("/dev/mapper/");
const base::FilePath descendant("/dev/mapper/0123456789ABCDEF");
EXPECT_TRUE(IsAncestor(ancestor, descendant));
// Test reverse case.
EXPECT_FALSE(IsAncestor(descendant, ancestor));
// Test same path case.
EXPECT_FALSE(IsAncestor(ancestor, ancestor));
}
} // namespace imageloader