[UTC][bundle][Non-ACR] Fix wrong implementation 03/276803/1
authorHwankyu Jhun <h.jhun@samsung.com>
Mon, 27 Jun 2022 00:00:59 +0000 (09:00 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Mon, 27 Jun 2022 00:00:59 +0000 (09:00 +0900)
This patch fixes the 'utc_ApplicationFW_bundle_foreach_p' test case,
The key/value information is not stored sequentially.

Change-Id: Ie6fcfbb90f280045898e10eae93a21ca24642e0d
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/utc/bundle/utc-ApplicationFW-bundle-foreach-func.c

index 781fa5a14d319c586811a82739a21bdab72f884e..62a91a3e69bc2615ffdf8a6a3178e9c151cd4cb8 100755 (executable)
 static int cb_counter;
 static char *keys[2] = {"aa", "bb"};
 static char *vals[2] = {"123", "456"};
-static bool valid_key = true;
-static bool valid_type = true;
-static bool valid_kv = true;
-static bool valid_val = true;
+static bool valid_key;
+static bool valid_type;
+static bool valid_kv;
+static bool valid_val;
 
 static void _foreach_cb(const char *key, const int type, const bundle_keyval_t *kv, void *data)
 {
        void *basic_val = NULL;
        size_t basic_size = 0;
+       unsigned int i;
 
-       if (key && keys[cb_counter] && !strcmp(key, keys[cb_counter]))
-               valid_key = false;
-       if (type != BUNDLE_TYPE_STR)
+       valid_key = false;
+       if (key != NULL) {
+               for (i = 0; i < 2; ++i) {
+                       if (strcmp(key, keys[i]) == 0)
+                               valid_key = true;
+               }
+       }
+
+       if (type == BUNDLE_TYPE_STR)
+               valid_type = true;
+       else
                valid_type = false;
-       if (kv == NULL) {
-               valid_kv = false;
-       } else {
-               bundle_keyval_get_basic_val((bundle_keyval_t *)kv, &basic_val, &basic_size);
-               if (basic_val && vals[cb_counter] && strcmp(basic_val, vals[cb_counter]))
-                       valid_val = false;
+
+       valid_kv = false;
+       valid_val = false;
+       if (kv != NULL) {
+               valid_kv = true;
+               bundle_keyval_get_basic_val((bundle_keyval_t *)kv, &basic_val,
+                               &basic_size);
+               for (i = 0; i < 2; ++i) {
+                       if (strcmp(basic_val, vals[i]) == 0)
+                               valid_val = true;
+               }
+
        }
 
        cb_counter++;
@@ -61,9 +76,9 @@ int utc_ApplicationFW_bundle_foreach_p(void)
        bundle *b = bundle_create();
        assert_neq(b, NULL);
 
-       r = bundle_add_str(b, "a", "123");
+       r = bundle_add_str(b, "aa", "123");
        assert_eq(r, BUNDLE_ERROR_NONE);
-       r = bundle_add_str(b, "b", "456");
+       r = bundle_add_str(b, "bb", "456");
        assert_eq(r, BUNDLE_ERROR_NONE);
 
        bundle_foreach(b, _foreach_cb, NULL);