blob: 31db9aec219bafc816307c6d2044d51aa360a91a [file] [log] [blame]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "libhwsec/middleware/function_name.h"
#include <type_traits>
#include <base/base64.h>
#include <crypto/sha2.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <libhwsec-foundation/error/testing_helper.h>
#include "libhwsec/backend/key_management.h"
#include "libhwsec/backend/state.h"
namespace {
int AnonymousFunction(int x) {
return x;
}
} // namespace
namespace hwsec {
using ::hwsec_foundation::error::testing::IsOk;
using ::hwsec_foundation::error::testing::NotOk;
using ::hwsec_foundation::status::MakeStatus;
using ::hwsec_foundation::status::StatusChain;
using FunctionNameTest = ::testing::Test;
namespace {
int AnonymousFunction2(int x) {
return x;
}
} // namespace
static void TestFunction() {}
static auto MagicTestLambda = []() {};
TEST_F(FunctionNameTest, HwsecFunctionName) {
EXPECT_EQ(GetFuncName<&KeyManagement::LoadKey>(),
"hwsec::KeyManagement::LoadKey");
EXPECT_EQ(GetFuncName<&KeyManagement::Flush>(),
"hwsec::KeyManagement::Flush");
EXPECT_EQ(GetFuncName<&State::IsReady>(), "hwsec::State::IsReady");
EXPECT_EQ(GetFuncName<&State::IsEnabled>(), "hwsec::State::IsEnabled");
EXPECT_EQ(GetFuncName<&TestFunction>(), "hwsec::TestFunction");
}
TEST_F(FunctionNameTest, AnonymousFunctionName) {
EXPECT_EQ(GetFuncName<&AnonymousFunction>(),
"(anonymous namespace)::AnonymousFunction");
EXPECT_EQ(GetFuncName<&AnonymousFunction2>(),
"hwsec::(anonymous namespace)::AnonymousFunction2");
}
TEST_F(FunctionNameTest, LambdaFunctionName) {
EXPECT_EQ(GetFuncName<&MagicTestLambda>(), "hwsec::MagicTestLambda");
}
TEST_F(FunctionNameTest, SimplifyFuncName) {
EXPECT_EQ(SimplifyFuncName(GetFuncName<&MagicTestLambda>()),
"MagicTestLambda");
EXPECT_EQ(SimplifyFuncName(GetFuncName<&State::IsReady>()), "State.IsReady");
EXPECT_EQ(SimplifyFuncName(GetFuncName<&State::IsEnabled>()),
"State.IsEnabled");
EXPECT_EQ(SimplifyFuncName(GetFuncName<&TestFunction>()), "TestFunction");
}
} // namespace hwsec