aboutsummaryrefslogtreecommitdiffstats
path: root/libnvxx
diff options
context:
space:
mode:
authorLexi Winter <lexi@hemlock.eden.le-fay.org>2025-03-29 08:14:48 +0000
committerLexi Winter <lexi@hemlock.eden.le-fay.org>2025-03-29 08:14:48 +0000
commite7d114c3aad744276e6f6bdb91bf840d1b193f32 (patch)
treeaa28b63b491a9c5cadf8a7298b10924f85eafa3f /libnvxx
parent7eb396734ebbdcb4ecef90d21a89201e0d89c709 (diff)
downloadlibnvxx-e7d114c3aad744276e6f6bdb91bf840d1b193f32.tar.gz
libnvxx-e7d114c3aad744276e6f6bdb91bf840d1b193f32.tar.bz2
add some missing bool testsmain
Diffstat (limited to 'libnvxx')
-rw-r--r--libnvxx/tests/nvxx_basic.cc145
1 files changed, 139 insertions, 6 deletions
diff --git a/libnvxx/tests/nvxx_basic.cc b/libnvxx/tests/nvxx_basic.cc
index ca70fec..150daaa 100644
--- a/libnvxx/tests/nvxx_basic.cc
+++ b/libnvxx/tests/nvxx_basic.cc
@@ -775,6 +775,17 @@ TEST_CASE(nvxx_add_null_error)
ATF_REQUIRE_THROW(bsd::nv_error_state, nvl.add_null(key));
}
+TEST_CASE(nvxx_add_null_empty)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_null"sv;
+
+ auto nvl = bsd::nv_list();
+ auto nvl2 = std::move(nvl);
+
+ ATF_REQUIRE_THROW(std::logic_error, nvl.add_null(key));
+}
+
TEST_CASE(nvxx_add_null_nul_key)
{
using namespace std::literals;
@@ -784,7 +795,7 @@ TEST_CASE(nvxx_add_null_nul_key)
ATF_REQUIRE_THROW(std::runtime_error, nvl.add_null(key));
}
-TEST_CASE(nvxx_add_duplicate_null)
+TEST_CASE(nvxx_add_null_duplicate)
{
using namespace std::literals;
auto constexpr key = "test_null"sv;
@@ -829,6 +840,27 @@ TEST_CASE(nvxx_free_null_nonexistent)
ATF_REQUIRE_THROW(bsd::nv_key_not_found, nvl.free_null(key));
}
+TEST_CASE(nvxx_free_null_error)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_null"sv;
+
+ auto nvl = bsd::nv_list();
+ nvl.set_error(std::errc::invalid_argument);
+ ATF_REQUIRE_THROW(bsd::nv_error_state, nvl.free_null(key));
+}
+
+TEST_CASE(nvxx_free_null_empty)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_null"sv;
+
+ auto nvl = bsd::nv_list();
+ auto nvl2 = std::move(nvl);
+
+ ATF_REQUIRE_THROW(std::logic_error, nvl.free_null(key));
+}
+
/*
* bool tests
*/
@@ -868,7 +900,18 @@ TEST_CASE(nvxx_add_bool_error)
ATF_REQUIRE_THROW(bsd::nv_error_state, nvl.add_bool(key, value));
}
-TEST_CASE(nvxx_add_duplicate_bool)
+TEST_CASE(nvxx_add_bool_empty)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_bool"sv;
+ auto constexpr value = true;
+
+ auto nvl = bsd::nv_list();
+ auto nvl2 = std::move(nvl);
+ ATF_REQUIRE_THROW(std::logic_error, nvl.add_bool(key, value));
+}
+
+TEST_CASE(nvxx_add_bool_duplicate)
{
using namespace std::literals;
auto constexpr key = "test_bool"sv;
@@ -882,7 +925,7 @@ TEST_CASE(nvxx_add_duplicate_bool)
nvl.add_bool(key, value));
}
-TEST_CASE(nvxx_get_nonexistent_bool)
+TEST_CASE(nvxx_get_bool_nonexistent)
{
auto nvl = bsd::nv_list();
@@ -891,6 +934,39 @@ TEST_CASE(nvxx_get_nonexistent_bool)
(void)nvl.get_bool("nonesuch"));
}
+TEST_CASE(nvxx_get_bool_error)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_bool"sv;
+ auto constexpr value = true;
+
+ auto nvl = bsd::nv_list();
+ nvl.add_bool(key, value);
+ nvl.set_error(std::errc::invalid_argument);
+
+ ATF_REQUIRE_THROW(bsd::nv_error_state, (void)nvl.get_bool(key));
+}
+
+TEST_CASE(nvxx_get_bool_empty)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_bool"sv;
+
+ auto nvl = bsd::nv_list();
+ auto nvl2 = std::move(nvl);
+
+ ATF_REQUIRE_THROW(std::logic_error, (void)nvl.get_bool(key));
+}
+
+TEST_CASE(nvxx_get_bool_nul_key)
+{
+ using namespace std::literals;
+ auto constexpr key = "test\0bool"sv;
+
+ auto nvl = bsd::nv_list();
+ ATF_REQUIRE_THROW(std::runtime_error, (void)nvl.get_bool(key));
+}
+
TEST_CASE(nvxx_take_bool)
{
using namespace std::literals;
@@ -916,6 +992,27 @@ TEST_CASE(nvxx_take_bool_nul_key)
ATF_REQUIRE_THROW(std::runtime_error, (void)nvl.take_bool(key));
}
+TEST_CASE(nvxx_take_bool_error)
+{
+ using namespace std::literals;
+ auto constexpr key = "test"sv;
+
+ auto nvl = bsd::nv_list();
+ nvl.set_error(std::errc::invalid_argument);
+ ATF_REQUIRE_THROW(bsd::nv_error_state, (void)nvl.take_bool(key));
+}
+
+TEST_CASE(nvxx_take_bool_empty)
+{
+ using namespace std::literals;
+ auto constexpr key = "test"sv;
+
+ auto nvl = bsd::nv_list();
+ auto nvl2 = std::move(nvl);
+
+ ATF_REQUIRE_THROW(std::logic_error, (void)nvl.take_bool(key));
+}
+
TEST_CASE(nvxx_free_bool)
{
using namespace std::literals;
@@ -946,6 +1043,27 @@ TEST_CASE(nvxx_free_bool_nonexistent)
ATF_REQUIRE_THROW(bsd::nv_key_not_found, nvl.free_bool(key));
}
+TEST_CASE(nvxx_free_bool_error)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_null"sv;
+
+ auto nvl = bsd::nv_list();
+ nvl.set_error(std::errc::invalid_argument);
+ ATF_REQUIRE_THROW(bsd::nv_error_state, nvl.free_bool(key));
+}
+
+TEST_CASE(nvxx_free_bool_empty)
+{
+ using namespace std::literals;
+ auto constexpr key = "test_null"sv;
+
+ auto nvl = bsd::nv_list();
+ auto nvl2 = std::move(nvl);
+
+ ATF_REQUIRE_THROW(std::logic_error, nvl.free_bool(key));
+}
+
TEST_CASE(nvxx_add_bool_array)
{
using namespace std::literals;
@@ -2200,21 +2318,36 @@ ATF_INIT_TEST_CASES(tcs)
ATF_ADD_TEST_CASE(tcs, nvxx_free_type_nonexistent);
ATF_ADD_TEST_CASE(tcs, nvxx_add_null);
+ ATF_ADD_TEST_CASE(tcs, nvxx_add_null_empty);
ATF_ADD_TEST_CASE(tcs, nvxx_add_null_error);
- ATF_ADD_TEST_CASE(tcs, nvxx_add_duplicate_null);
+ ATF_ADD_TEST_CASE(tcs, nvxx_add_null_duplicate);
ATF_ADD_TEST_CASE(tcs, nvxx_add_null_nul_key);
+
ATF_ADD_TEST_CASE(tcs, nvxx_free_null);
+ ATF_ADD_TEST_CASE(tcs, nvxx_free_null_empty);
+ ATF_ADD_TEST_CASE(tcs, nvxx_free_null_error);
ATF_ADD_TEST_CASE(tcs, nvxx_free_null_nul_key);
ATF_ADD_TEST_CASE(tcs, nvxx_free_null_nonexistent);
ATF_ADD_TEST_CASE(tcs, nvxx_add_bool);
+ ATF_ADD_TEST_CASE(tcs, nvxx_add_bool_empty);
ATF_ADD_TEST_CASE(tcs, nvxx_add_bool_error);
ATF_ADD_TEST_CASE(tcs, nvxx_add_bool_nul_key);
- ATF_ADD_TEST_CASE(tcs, nvxx_add_duplicate_bool);
- ATF_ADD_TEST_CASE(tcs, nvxx_get_nonexistent_bool);
+ ATF_ADD_TEST_CASE(tcs, nvxx_add_bool_duplicate);
+
+ ATF_ADD_TEST_CASE(tcs, nvxx_get_bool_nonexistent);
+ ATF_ADD_TEST_CASE(tcs, nvxx_get_bool_error);
+ ATF_ADD_TEST_CASE(tcs, nvxx_get_bool_empty);
+ ATF_ADD_TEST_CASE(tcs, nvxx_get_bool_nul_key);
+
ATF_ADD_TEST_CASE(tcs, nvxx_take_bool);
+ ATF_ADD_TEST_CASE(tcs, nvxx_take_bool_empty);
+ ATF_ADD_TEST_CASE(tcs, nvxx_take_bool_error);
ATF_ADD_TEST_CASE(tcs, nvxx_take_bool_nul_key);
+
ATF_ADD_TEST_CASE(tcs, nvxx_free_bool);
+ ATF_ADD_TEST_CASE(tcs, nvxx_free_bool_empty);
+ ATF_ADD_TEST_CASE(tcs, nvxx_free_bool_error);
ATF_ADD_TEST_CASE(tcs, nvxx_free_bool_nul_key);
ATF_ADD_TEST_CASE(tcs, nvxx_free_bool_nonexistent);