diff options
author | oshogbo <oshogbo@FreeBSD.org> | 2015-05-02 18:07:47 +0000 |
---|---|---|
committer | oshogbo <oshogbo@FreeBSD.org> | 2015-05-02 18:07:47 +0000 |
commit | d04625185d1c7db2c2b13a174fc578db514d6ef0 (patch) | |
tree | 6b5bb5bc4cf473e03c5836280fcff2d4b531ac45 /lib/libnv/tests/nv_tests.cc | |
parent | d3c00f4352cb5caa06852f6b87f4eaa1bfca18b6 (diff) | |
download | FreeBSD-src-d04625185d1c7db2c2b13a174fc578db514d6ef0.zip FreeBSD-src-d04625185d1c7db2c2b13a174fc578db514d6ef0.tar.gz |
Add test case for unpack with diffrent flags.
Approved by: pjd (mentor)
Diffstat (limited to 'lib/libnv/tests/nv_tests.cc')
-rw-r--r-- | lib/libnv/tests/nv_tests.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/libnv/tests/nv_tests.cc b/lib/libnv/tests/nv_tests.cc index 1fee182..d779190 100644 --- a/lib/libnv/tests/nv_tests.cc +++ b/lib/libnv/tests/nv_tests.cc @@ -450,6 +450,40 @@ ATF_TEST_CASE_BODY(nvlist_pack__empty_nvlist) free(packed); } +ATF_TEST_CASE_WITHOUT_HEAD(nvlist_unpack__flags_nvlist); +ATF_TEST_CASE_BODY(nvlist_unpack__flags_nvlist) +{ + nvlist_t *nvl, *unpacked; + void *packed; + size_t packed_size; + + nvl = nvlist_create(NV_FLAG_NO_UNIQUE); + ATF_REQUIRE(nvl != NULL); + + nvlist_add_bool(nvl, "name", true); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists_bool(nvl, "name")); + + packed = nvlist_pack(nvl, &packed_size); + ATF_REQUIRE(packed != NULL); + + unpacked = nvlist_unpack(packed, packed_size, 0); + ATF_REQUIRE(unpacked == NULL); + + unpacked = nvlist_unpack(packed, packed_size, NV_FLAG_IGNORE_CASE); + ATF_REQUIRE(unpacked == NULL); + + unpacked = nvlist_unpack(packed, packed_size, NV_FLAG_NO_UNIQUE); + ATF_REQUIRE(unpacked != NULL); + ATF_REQUIRE(unpacked != nvl); + ATF_REQUIRE(!nvlist_empty(unpacked)); + ATF_REQUIRE(nvlist_exists_bool(unpacked, "name")); + + nvlist_destroy(unpacked); + nvlist_destroy(nvl); + free(packed); +} + static void verify_null(const nvlist_t *nvl, int type) { @@ -1206,6 +1240,7 @@ ATF_INIT_TEST_CASES(tp) ATF_ADD_TEST_CASE(tp, nvlist_pack__multiple_values); ATF_ADD_TEST_CASE(tp, nvlist_pack__error_nvlist); ATF_ADD_TEST_CASE(tp, nvlist_unpack__duplicate_key); + ATF_ADD_TEST_CASE(tp, nvlist_unpack__flags_nvlist); ATF_ADD_TEST_CASE(tp, nvlist_move_string__single_insert); ATF_ADD_TEST_CASE(tp, nvlist_move_nvlist__single_insert); |