Author: oshogbo
Date: Sat May  2 18:07:47 2015
New Revision: 282348
URL: https://svnweb.freebsd.org/changeset/base/282348

Log:
  Add test case for unpack with diffrent flags.
  
  Approved by:  pjd (mentor)

Modified:
  head/lib/libnv/tests/nv_tests.cc

Modified: head/lib/libnv/tests/nv_tests.cc
==============================================================================
--- head/lib/libnv/tests/nv_tests.cc    Sat May  2 18:03:47 2015        
(r282347)
+++ head/lib/libnv/tests/nv_tests.cc    Sat May  2 18:07:47 2015        
(r282348)
@@ -450,6 +450,40 @@ ATF_TEST_CASE_BODY(nvlist_pack__empty_nv
        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);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to