From f7c6d0133cccf736420f9eca787718f2d4743b27 Mon Sep 17 00:00:00 2001 From: Nathan Miller Date: Wed, 8 May 2024 12:23:19 -0700 Subject: [PATCH] add test case to test whether CrossPlatform::getenv_safe can find a known existing env var --- OdbDesignTests/CrossPlatformTests.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/OdbDesignTests/CrossPlatformTests.cpp b/OdbDesignTests/CrossPlatformTests.cpp index 23caf560..eb76ffef 100644 --- a/OdbDesignTests/CrossPlatformTests.cpp +++ b/OdbDesignTests/CrossPlatformTests.cpp @@ -4,6 +4,8 @@ #include "Fixtures/TestDataFixture.h" #include #include +#include +#include using namespace std::filesystem; using namespace Odb::Test::Fixtures; @@ -14,15 +16,34 @@ namespace Odb::Test { TEST_F(TestDataFixture, Test_CrossPlatform_GetEnvSafe_VariableExists) { + auto szTestEnvValue = std::getenv(ODB_TEST_ENV_NAME); + EXPECT_THAT(szTestEnvValue, NotNull()); + std::string value; ASSERT_EQ(value.size(), 0U); - ASSERT_TRUE(CrossPlatform::getenv_safe(ODB_TEST_ENV_NAME, value)); + auto bResult = CrossPlatform::getenv_safe(ODB_TEST_ENV_NAME, value); ASSERT_STRNE(value.c_str(), ""); ASSERT_STREQ(value.c_str(), ODB_TEST_ENV_VALUE); + ASSERT_TRUE(bResult); + } + + TEST_F(TestDataFixture, Test_CrossPlatform_GetEnvSafe_KnownVariableExists) + { + auto szTestEnvValue = std::getenv(ODB_TEST_DATA_DIR_ENV_NAME); + EXPECT_THAT(szTestEnvValue, NotNull()); + + std::string value; + ASSERT_EQ(value.size(), 0U); + auto bResult = CrossPlatform::getenv_safe(ODB_TEST_DATA_DIR_ENV_NAME, value); + ASSERT_STRNE(value.c_str(), ""); + ASSERT_TRUE(bResult); } TEST_F(TestDataFixture, Test_CrossPlatform_GetEnvSafe_VariableDoesntExist) { + auto szDoesntExistVal = std::getenv(ODB_TEST_NONEXISTENT_ENV_NAME); + EXPECT_THAT(szDoesntExistVal, IsNull()); + std::string value; ASSERT_EQ(value.size(), 0U); ASSERT_FALSE(CrossPlatform::getenv_safe(ODB_TEST_NONEXISTENT_ENV_NAME, value));