Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 19 additions & 20 deletions cpp/tests/test_defaults.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,24 +92,24 @@ TEST(DefaultsTest, alias_for_getenv_or)

// Non-string env var has an empty value
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", ""}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", ""}};
EXPECT_THAT(
[=] { kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, 123); },
ThrowsMessage<std::invalid_argument>(HasSubstr("unknown config value KVIKIO_TEST_ALIAS=")));
}

// Non-string env var and alias have an empty value
{
kvikio::test::EnvVarContext env_var_ctx{
{{"KVIKIO_TEST_ALIAS_1", ""}, {"KVIKIO_TEST_ALIAS_2", ""}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS_1", ""},
{"KVIKIO_TEST_ALIAS_2", ""}};
EXPECT_THAT(
[=] { kvikio::getenv_or({"KVIKIO_TEST_ALIAS_1", "KVIKIO_TEST_ALIAS_2"}, 123); },
ThrowsMessage<std::invalid_argument>(HasSubstr("unknown config value KVIKIO_TEST_ALIAS_2=")));
}

// String env var has an empty value
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", ""}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", ""}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, std::string{"abc"});
EXPECT_EQ(env_var_name, "KVIKIO_TEST_ALIAS");
Expand All @@ -119,8 +119,8 @@ TEST(DefaultsTest, alias_for_getenv_or)

// String env var and alias have an empty value
{
kvikio::test::EnvVarContext env_var_ctx{
{{"KVIKIO_TEST_ALIAS_1", ""}, {"KVIKIO_TEST_ALIAS_2", ""}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS_1", ""},
{"KVIKIO_TEST_ALIAS_2", ""}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS_1", "KVIKIO_TEST_ALIAS_2"}, std::string{"abc"});
EXPECT_EQ(env_var_name, "KVIKIO_TEST_ALIAS_2");
Expand All @@ -130,9 +130,8 @@ TEST(DefaultsTest, alias_for_getenv_or)

// Env var has already been set by its alias with the same value
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS_1", "10"},
{"KVIKIO_TEST_ALIAS_2", "10"},
{"KVIKIO_TEST_ALIAS_3", "10"}}};
kvikio::test::EnvVarContext env_var_ctx{
{"KVIKIO_TEST_ALIAS_1", "10"}, {"KVIKIO_TEST_ALIAS_2", "10"}, {"KVIKIO_TEST_ALIAS_3", "10"}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS_1", "KVIKIO_TEST_ALIAS_2", "KVIKIO_TEST_ALIAS_3"}, 123);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS_3"});
Expand All @@ -142,8 +141,8 @@ TEST(DefaultsTest, alias_for_getenv_or)

// Env var has already been set by its alias with a different value
{
kvikio::test::EnvVarContext env_var_ctx{
{{"KVIKIO_TEST_ALIAS_1", "10"}, {"KVIKIO_TEST_ALIAS_2", "20"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS_1", "10"},
{"KVIKIO_TEST_ALIAS_2", "20"}};
EXPECT_THAT([=] { kvikio::getenv_or({"KVIKIO_TEST_ALIAS_1", "KVIKIO_TEST_ALIAS_2"}, 123); },
ThrowsMessage<std::invalid_argument>(HasSubstr(
"Environment variable KVIKIO_TEST_ALIAS_2 (20) has already been set by its alias "
Expand All @@ -152,15 +151,15 @@ TEST(DefaultsTest, alias_for_getenv_or)

// Env var has invalid value
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", "abc"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", "abc"}};
EXPECT_THAT([=] { kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, 123); },
ThrowsMessage<std::invalid_argument>(
HasSubstr("unknown config value KVIKIO_TEST_ALIAS=abc")));
}

// 1st alias has a set value
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS_1", "654.321"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS_1", "654.321"}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS_1", "KVIKIO_TEST_ALIAS_2"}, 123.456);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS_1"});
Expand All @@ -170,7 +169,7 @@ TEST(DefaultsTest, alias_for_getenv_or)

// 2nd alias has a set value
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS_2", "654.321"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS_2", "654.321"}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS_1", "KVIKIO_TEST_ALIAS_2"}, 123.456);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS_2"});
Expand All @@ -189,14 +188,14 @@ TEST(DefaultsTest, alias_for_getenv_or)

// Special type: bool
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", "yes"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", "yes"}};
auto const [env_var_name, result, has_found] = kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, false);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS"});
EXPECT_TRUE(result);
EXPECT_TRUE(has_found);
}
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", "OFF"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", "OFF"}};
auto const [env_var_name, result, has_found] = kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, false);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS"});
EXPECT_FALSE(result);
Expand All @@ -205,23 +204,23 @@ TEST(DefaultsTest, alias_for_getenv_or)

// Special type: CompatMode
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", "yes"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", "yes"}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, kvikio::CompatMode::AUTO);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS"});
EXPECT_EQ(result, kvikio::CompatMode::ON);
EXPECT_TRUE(has_found);
}
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", "FALSE"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", "FALSE"}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, kvikio::CompatMode::AUTO);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS"});
EXPECT_EQ(result, kvikio::CompatMode::OFF);
EXPECT_TRUE(has_found);
}
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", "aUtO"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", "aUtO"}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, kvikio::CompatMode::ON);
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS"});
Expand All @@ -231,7 +230,7 @@ TEST(DefaultsTest, alias_for_getenv_or)

// Special type: std::vector<int>
{
kvikio::test::EnvVarContext env_var_ctx{{{"KVIKIO_TEST_ALIAS", "109, 108, 107"}}};
kvikio::test::EnvVarContext env_var_ctx{{"KVIKIO_TEST_ALIAS", "109, 108, 107"}};
auto const [env_var_name, result, has_found] =
kvikio::getenv_or({"KVIKIO_TEST_ALIAS"}, std::vector<int>{111, 112, 113});
EXPECT_EQ(env_var_name, std::string_view{"KVIKIO_TEST_ALIAS"});
Expand Down
9 changes: 4 additions & 5 deletions cpp/tests/test_remote_handle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,14 @@
#include <gtest/gtest.h>
#include <kvikio/remote_handle.hpp>

#include <unordered_map>
#include "utils/env.hpp"

TEST(RemoteHandleTest, s3_endpoint_constructor)
{
kvikio::test::EnvVarContext env_var_ctx{{{"AWS_DEFAULT_REGION", "my_aws_default_region"},
{"AWS_ACCESS_KEY_ID", "my_aws_access_key_id"},
{"AWS_SECRET_ACCESS_KEY", "my_aws_secrete_access_key"},
{"AWS_ENDPOINT_URL", "https://my_aws_endpoint_url"}}};
kvikio::test::EnvVarContext env_var_ctx{{"AWS_DEFAULT_REGION", "my_aws_default_region"},
{"AWS_ACCESS_KEY_ID", "my_aws_access_key_id"},
{"AWS_SECRET_ACCESS_KEY", "my_aws_secrete_access_key"},
{"AWS_ENDPOINT_URL", "https://my_aws_endpoint_url"}};
std::string url = "https://my_aws_endpoint_url/bucket_name/object_name";
std::string aws_region = "my_aws_region";
// Use the overload where the full url and the optional aws_region are specified.
Expand Down