/* Copyright (c) Advanced Micro Devices, Inc. All rights reserved. * * SPDX-License-Identifier: MIT */ #include "environment.h" #include "hipfile-warnings.h" #include "msys.h" #include #include #include using namespace hipFile; using namespace testing; using namespace std; HIPFILE_WARN_NO_GLOBAL_CTOR_OFF TEST(HipFileEnvironment, GetBoolReturnsNulloptIfNotSet) { StrictMock msys; EXPECT_CALL(msys, getenv).WillOnce(Return(nullptr)); ASSERT_EQ(hipFile::Environment::get(""), nullopt); } TEST(HipFileEnvironment, GetBoolReturnsNulloptIfValueIsInvalid) { StrictMock msys; EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("blah"))); ASSERT_EQ(hipFile::Environment::get(""), nullopt); EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast(""))); ASSERT_EQ(hipFile::Environment::get(""), nullopt); } TEST(HipFileEnvironment, GetBoolReturnsOptionalTrueIfTrue) { StrictMock msys; EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("true"))); ASSERT_EQ(hipFile::Environment::get(""), make_optional<>(true)); EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("TRUE"))); ASSERT_EQ(hipFile::Environment::get(""), make_optional<>(true)); EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("TrUe"))); ASSERT_EQ(hipFile::Environment::get(""), make_optional<>(true)); } TEST(HipFileEnvironment, GetBoolReturnsOptionalFalseIfFalse) { StrictMock msys; EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("false"))); ASSERT_EQ(hipFile::Environment::get(""), make_optional<>(false)); EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("FALSE"))); ASSERT_EQ(hipFile::Environment::get(""), make_optional<>(false)); EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("FaLsE"))); ASSERT_EQ(hipFile::Environment::get(""), make_optional<>(false)); } TEST(HipFileEnvironment, GetUnsignedIntReturnsNulloptIfNotSet) { StrictMock msys; EXPECT_CALL(msys, getenv).WillOnce(Return(nullptr)); ASSERT_EQ(hipFile::Environment::get(""), nullopt); } TEST(HipFileEnvironment, GetUnsignedIntReturnsNulloptIfValueIsInvalid) { StrictMock msys; EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("blah"))); ASSERT_EQ(hipFile::Environment::get(""), nullopt); EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast(""))); ASSERT_EQ(hipFile::Environment::get(""), nullopt); EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("1abc"))); ASSERT_EQ(hipFile::Environment::get(""), nullopt); } TEST(HipFileEnvironment, GetUnsignedIntReturnsIntIfValueIsInt) { StrictMock msys; EXPECT_CALL(msys, getenv).WillOnce(Return(const_cast("0"))); ASSERT_EQ(hipFile::Environment::get(""), make_optional<>(0)); } HIPFILE_WARN_NO_GLOBAL_CTOR_ON