From 79103d25fd416b6a0f05eecd651f425e31f98066 Mon Sep 17 00:00:00 2001 From: Amir Cohen Date: Thu, 13 Dec 2018 11:47:25 +0200 Subject: [PATCH] Improve tests by reducing kvstore reset occurrences --- .../kvstore/general_tests_phase_1/main.cpp | 142 ++++++++++-------- .../kvstore/general_tests_phase_2/main.cpp | 52 +++---- .../TESTS/kvstore/static_tests/main.cpp | 137 +++++++++-------- 3 files changed, 182 insertions(+), 149 deletions(-) diff --git a/features/storage/TESTS/kvstore/general_tests_phase_1/main.cpp b/features/storage/TESTS/kvstore/general_tests_phase_1/main.cpp index 5c299765ff..2dab435e7b 100644 --- a/features/storage/TESTS/kvstore/general_tests_phase_1/main.cpp +++ b/features/storage/TESTS/kvstore/general_tests_phase_1/main.cpp @@ -207,7 +207,7 @@ static void set_buffer_size_is_zero() int res = kvstore->set(key, data, 0, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -225,7 +225,7 @@ static void set_same_key_several_time() res = kvstore->set(key, data, data_size, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -239,7 +239,7 @@ static void test_thread_set(char *th_key) static void set_several_keys_multithreaded() { TEST_SKIP_UNLESS(kvstore != NULL); - + int i = 0, res = 0; rtos::Thread kvstore_thread[num_of_threads]; osStatus threadStatus; @@ -248,23 +248,25 @@ static void set_several_keys_multithreaded() kvstore_thread[2].start(callback(test_thread_set, (char *)keys[2])); - for (int i = 0; i < num_of_threads; i++) { + for (i = 0; i < num_of_threads; i++) { threadStatus = kvstore_thread[i].join(); if (threadStatus != 0) { utest_printf("\nthread %d join failed!", i + 1); } } - for (int i = 0; i < num_of_threads; i++) { - int res = kvstore->get(keys[i], buffer, buffer_size, &actual_size, 0); + for (i = 0; i < num_of_threads; i++) { + res = kvstore->get(keys[i], buffer, buffer_size, &actual_size, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); TEST_ASSERT_EQUAL_STRING_LEN(buffer, data, data_size); } - int res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + for (i = 0; i < num_of_threads; i++) { + res = kvstore->remove(keys[i]); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + } } //set key "write once" and try to set it again @@ -313,7 +315,7 @@ static void set_key_value_one_byte_size() TEST_ASSERT_EQUAL_ERROR_CODE(0, res); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -330,7 +332,7 @@ static void set_key_value_two_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_two, 1); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -347,7 +349,7 @@ static void set_key_value_five_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_five, 4); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -364,7 +366,7 @@ static void set_key_value_fifteen_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_fif, 14); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -381,36 +383,78 @@ static void set_key_value_seventeen_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_fif, 16); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } -//set several different key value byte size +//set several different keys and retrieve them static void set_several_key_value_sizes() { TEST_SKIP_UNLESS(kvstore != NULL); char name[7] = "name_"; - char c[2] = {0}; + char c = 0; int i = 0, res = 0; - for (i = 0; i < 30; i++) { - c[0] = i + '0'; - name[6] = c[0]; + name[6] = 0; + + for (i = 0; i < 26; i++) { + c = i + 'a'; + name[5] = c; res = kvstore->set(name, name, sizeof(name), 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } - for (i = 0; i < 30; i++) { - c[0] = i + '0'; - name[6] = c[0]; + for (i = 0; i < 26; i++) { + c = i + 'a'; + name[5] = c; res = kvstore->get(name, buffer, sizeof(buffer), &actual_size, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); TEST_ASSERT_EQUAL_STRING_LEN(name, buffer, sizeof(name)); memset(buffer, 0, sizeof(buffer)); - } - res = kvstore->reset(); + res = kvstore->remove(name); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + } +} + +//try to set several different unvalid key names +static void set_several_unvalid_key_names() +{ + TEST_SKIP_UNLESS(kvstore != NULL); + + char name[7] = "name_"; + char unvalid[] = {'*', '?', ':', ';', '"', '|', ' ', '<', '>', '\\', '/'}; + int i = 0, res = 0; + + name[6] = 0; + + for (i = 0; i < 11; i++) { + name[5] = unvalid[i]; + res = kvstore->set(name, name, sizeof(name), 0); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_INVALID_ARGUMENT, res); + } +} + +//set key initialize kvstore and retrieve it +static void set_key_init_deinit() +{ + TEST_SKIP_UNLESS(kvstore != NULL); + + int res = kvstore->set(key, data, data_size, 0); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + + res = kvstore->deinit(); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + + res = kvstore->init(); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + + res = kvstore->get(key, buffer, buffer_size, &actual_size, 0); + TEST_ASSERT_EQUAL_STRING(buffer, data); + memset(buffer, 0, buffer_size); + + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -453,29 +497,13 @@ static void Sec_set_key_encrypt() res = kvstore->get(key, buffer, sizeof(buffer), &actual_size, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); TEST_ASSERT_EQUAL_STRING_LEN(data, buffer, sizeof(data)); + + res = kvstore->get_info(key, &info); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + TEST_ASSERT_EQUAL_ERROR_CODE(KVStore::REQUIRE_CONFIDENTIALITY_FLAG, info.flags); memset(buffer, 0, sizeof(buffer)); - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); -} - -//set key with AUTH flag and retrieve it -static void Sec_set_key_auth() -{ - TEST_SKIP_UNLESS(kvstore != NULL); - if (kv_setup != SecStoreSet) { - return; - } - - int res = kvstore->set(key, data, data_size, 0); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - - res = kvstore->get(key, buffer, sizeof(buffer), &actual_size, 0); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - TEST_ASSERT_EQUAL_STRING_LEN(data, buffer, sizeof(data)); - memset(buffer, 0, sizeof(buffer)); - - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -537,7 +565,7 @@ static void get_buffer_size_smaller_than_data_real_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, big_data, &actual_size); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -555,7 +583,7 @@ static void get_buffer_size_bigger_than_data_real_size() TEST_ASSERT_EQUAL_STRING_LEN(big_buffer, data, &actual_size); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -570,7 +598,7 @@ static void get_offset_bigger_than_data_size() res = kvstore->get(key, buffer, buffer_size, &actual_size, data_size + 1); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_INVALID_SIZE, res); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -596,9 +624,6 @@ static void get_removed_key() res = kvstore->get(key, buffer, buffer_size, &actual_size, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); - - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //set the same key twice and get latest data @@ -618,7 +643,7 @@ static void get_key_that_was_set_twice() TEST_ASSERT_EQUAL_STRING_LEN(buffer, new_data, &actual_size); memset(buffer, 0, buffer_size); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -652,8 +677,10 @@ static void get_several_keys_multithreaded() } } - int res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + for (int i = 0; i < num_of_threads; i++) { + int res = kvstore->remove(keys[i]); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + } } @@ -702,9 +729,6 @@ static void remove_removed_key() res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); - - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //key exist - valid flow @@ -717,9 +741,6 @@ static void remove_existed_key() res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } /*----------------setup------------------*/ @@ -755,10 +776,11 @@ template_case_t template_cases[] = { {"set_key_value_fifteen_byte_size", set_key_value_fifteen_byte_size, greentea_failure_handler}, {"set_key_value_seventeen_byte_size", set_key_value_seventeen_byte_size, greentea_failure_handler}, {"set_several_key_value_sizes", set_several_key_value_sizes, greentea_failure_handler}, + {"set_several_unvalid_key_names", set_several_unvalid_key_names, greentea_failure_handler}, + {"set_key_init_deinit", set_key_init_deinit, greentea_failure_handler}, {"Sec_set_key_rollback_set_again_no_rollback", Sec_set_key_rollback_set_again_no_rollback, greentea_failure_handler}, {"Sec_set_key_encrypt", Sec_set_key_encrypt, greentea_failure_handler}, - {"Sec_set_key_auth", Sec_set_key_auth, greentea_failure_handler}, {"get_key_null", get_key_null, greentea_failure_handler}, {"get_key_length_exceeds_max", get_key_length_exceeds_max, greentea_failure_handler}, diff --git a/features/storage/TESTS/kvstore/general_tests_phase_2/main.cpp b/features/storage/TESTS/kvstore/general_tests_phase_2/main.cpp index 6b0db131bc..ebce63a19a 100644 --- a/features/storage/TESTS/kvstore/general_tests_phase_2/main.cpp +++ b/features/storage/TESTS/kvstore/general_tests_phase_2/main.cpp @@ -204,9 +204,6 @@ static void get_info_removed_key() res = kvstore->get_info(key, &info); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); - - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //get_info of existing key - valid flow @@ -236,8 +233,7 @@ static void get_info_overwritten_key() { TEST_SKIP_UNLESS(kvstore != NULL); - char new_key[] = "get_info_key"; - int res = kvstore->set(new_key, data, data_size, 0); + int res = kvstore->set(key, data, data_size, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); char new_data[] = "new_data"; @@ -248,7 +244,7 @@ static void get_info_overwritten_key() TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); TEST_ASSERT_EQUAL_ERROR_CODE(info.size, sizeof(new_data)); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -310,15 +306,15 @@ static void iterator_next_one_key_list() res = kvstore->iterator_open(&kvstore_it, NULL); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - char key[KVStore::MAX_KEY_SIZE]; + char key_buf[KVStore::MAX_KEY_SIZE]; - res = kvstore->iterator_next(kvstore_it, key, sizeof(key)); + res = kvstore->iterator_next(kvstore_it, key_buf, sizeof(key_buf)); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); res = kvstore->iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -344,16 +340,13 @@ static void iterator_next_empty_list_keys_removed() res = kvstore->iterator_open(&kvstore_it, NULL); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - char key[KVStore::MAX_KEY_SIZE]; + char key_buf[KVStore::MAX_KEY_SIZE]; - res = kvstore->iterator_next(kvstore_it, key, sizeof(key)); + res = kvstore->iterator_next(kvstore_it, key_buf, sizeof(key_buf)); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); res = kvstore->iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //iteartor_next with non matching prefix (empty list) @@ -372,15 +365,18 @@ static void iterator_next_empty_list_non_matching_prefix() res = kvstore->iterator_open(&kvstore_it, "Key*"); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - char key[KVStore::MAX_KEY_SIZE]; + char key_buf[KVStore::MAX_KEY_SIZE]; - res = kvstore->iterator_next(kvstore_it, key, sizeof(key)); + res = kvstore->iterator_next(kvstore_it, key_buf, sizeof(key_buf)); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); res = kvstore->iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kvstore->reset(); + res = kvstore->remove(new_key_1); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + + res = kvstore->remove(new_key_2); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -408,7 +404,7 @@ static void iterator_next_several_overwritten_keys() res = kvstore->iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -449,8 +445,10 @@ static void iterator_next_full_list() res = kvstore->iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + for (i = 0; i < num_of_keys; i++) { + int res = kvstore->remove(keys[i]); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + } } //iteartor_next remove while iterating @@ -483,7 +481,6 @@ static void iterator_next_remove_while_iterating() if (res != MBED_SUCCESS) { break; } - res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -496,15 +493,14 @@ static void iterator_next_remove_while_iterating() if (res != MBED_SUCCESS) { break; } - TEST_ASSERT_EQUAL_STRING_LEN("new", key, 3); + + res = kvstore->remove(key); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } res = kvstore->iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - - res = kvstore->reset(); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } /*----------------iterator_close()------------------*/ @@ -628,7 +624,7 @@ static void set_add_data_data_size_is_zero() res = kvstore->set_finalize(handle); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -683,7 +679,7 @@ static void set_add_data_set_different_data_size_in_same_transaction() TEST_ASSERT_EQUAL_STRING(new_data, buffer); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -715,7 +711,7 @@ static void set_add_data_set_key_value_five_Kbytes() TEST_ASSERT_EQUAL_STRING_LEN(temp_buf, read_temp_buf, sizeof(temp_buf)); - res = kvstore->reset(); + res = kvstore->remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } diff --git a/features/storage/TESTS/kvstore/static_tests/main.cpp b/features/storage/TESTS/kvstore/static_tests/main.cpp index 11f39ffa29..f7b5a909e8 100644 --- a/features/storage/TESTS/kvstore/static_tests/main.cpp +++ b/features/storage/TESTS/kvstore/static_tests/main.cpp @@ -116,7 +116,7 @@ static void set_buffer_size_is_zero() int res = kv_set(key, data, 0, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -133,7 +133,7 @@ static void set_same_key_several_time() res = kv_set(key, data, data_size, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -169,24 +169,22 @@ static void set_several_keys_multithreaded() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data, data_size); + res = kv_remove(keys[i]); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } - - int res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //set key "write once" and try to set it again static void set_write_once_flag_try_set_twice() { TEST_SKIP_UNLESS(!init_res); - int res = kv_set(key, data, data_size, KV_WRITE_ONCE_FLAG); + char write_once_key[] = "write_once_key"; + + int res = kv_set(write_once_key, data, data_size, KV_WRITE_ONCE_FLAG); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_set(key, data, data_size, KV_WRITE_ONCE_FLAG); + res = kv_set(write_once_key, data, data_size, KV_WRITE_ONCE_FLAG); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_WRITE_PROTECTED, res); - - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //set key "write once" and try to remove it @@ -218,7 +216,7 @@ static void set_key_value_one_byte_size() TEST_ASSERT_EQUAL_ERROR_CODE(0, res); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -234,7 +232,7 @@ static void set_key_value_two_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_two, 1); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -250,7 +248,7 @@ static void set_key_value_five_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_five, 4); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -266,7 +264,7 @@ static void set_key_value_fifteen_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_fif, 14); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -282,36 +280,60 @@ static void set_key_value_seventeen_byte_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, data_fif, 16); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } -//set several different key value byte size +//set several different keys and retrieve them static void set_several_key_value_sizes() { TEST_SKIP_UNLESS(!init_res); char name[7] = "name_"; - char c[2] = {0}; + char c = 0; int i = 0, res = 0; - for (i = 0; i < 30; i++) { - c[0] = i + '0'; - name[6] = c[0]; + name[6] = 0; + + for (i = 0; i < 26; i++) { + c = i + 'a'; + name[5] = c; res = kv_set(name, name, sizeof(name), 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } - for (i = 0; i < 30; i++) { - c[0] = i + '0'; - name[6] = c[0]; + for (i = 0; i < 26; i++) { + c = i + 'a'; + name[5] = c; res = kv_get(name, buffer, sizeof(buffer), &actual_size); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); TEST_ASSERT_EQUAL_STRING_LEN(name, buffer, sizeof(name)); memset(buffer, 0, sizeof(buffer)); - } - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + res = kv_remove(name); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + } +} + +//try to set several different unvalid key names +static void set_several_unvalid_key_names() +{ + TEST_SKIP_UNLESS(!init_res); + char name[7] = "name_"; + char unvalid[] = {'*', '?', ':', ';', '"', '|', ' ', '<', '>', '\\', '/'}; + int i = 0, res = 0; + + name[6] = 0; + + for (i = 0; i < 11; i++) { + name[5] = unvalid[i]; + res = kv_set(name, name, sizeof(name), 0); + //if (i != 10) { + if (unvalid[i] != '/') { + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_INVALID_ARGUMENT, res); + } else { + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); + } + } } /*----------------get()------------------*/ @@ -352,7 +374,7 @@ static void get_buffer_size_is_zero() res = kv_get(key, buffer, 0, &actual_size); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -370,7 +392,7 @@ static void get_buffer_size_smaller_than_data_real_size() TEST_ASSERT_EQUAL_STRING_LEN(buffer, big_data, &actual_size); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -387,7 +409,7 @@ static void get_buffer_size_bigger_than_data_real_size() TEST_ASSERT_EQUAL_STRING_LEN(big_buffer, data, &actual_size); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -411,9 +433,6 @@ static void get_removed_key() res = kv_get(key, buffer, buffer_size, &actual_size); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); - - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //set the same key twice and get latest data @@ -432,7 +451,7 @@ static void get_key_that_was_set_twice() TEST_ASSERT_EQUAL_STRING_LEN(buffer, new_data, &actual_size); memset(buffer, 0, buffer_size); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -450,11 +469,12 @@ static void test_thread_get(const void *th_key) static void get_several_keys_multithreaded() { TEST_SKIP_UNLESS(!init_res); + int i = 0, res = 0; rtos::Thread kvstore_thread[num_of_threads]; osStatus threadStatus; - for (int i = 0; i < num_of_threads; i++) { - int res = kv_set(keys[i], keys[i], strlen(keys[i]) + 1, 0); + for (i = 0; i < num_of_threads; i++) { + res = kv_set(keys[i], keys[i], strlen(keys[i]) + 1, 0); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -462,15 +482,17 @@ static void get_several_keys_multithreaded() kvstore_thread[1].start(callback(test_thread_get, "key2")); kvstore_thread[2].start(callback(test_thread_get, "key3")); - for (int i = 0; i < num_of_threads; i++) { + for (i = 0; i < num_of_threads; i++) { threadStatus = kvstore_thread[i].join(); if (threadStatus != 0) { utest_printf("\nthread %d join failed!", i + 1); } } - int res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + for (i = 0; i < num_of_threads; i++) { + res = kv_remove(keys[i]); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + } } /*----------------remove()------------------*/ @@ -514,9 +536,6 @@ static void remove_removed_key() res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); - - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //key exist - valid flow @@ -528,9 +547,6 @@ static void remove_existed_key() res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } /*----------------get_info()------------------*/ @@ -582,9 +598,6 @@ static void get_info_removed_key() res = kv_get_info(key, &info); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_ERROR_ITEM_NOT_FOUND, res); - - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //get_info of existing key - valid flow @@ -617,7 +630,7 @@ static void get_info_overwritten_key() TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); TEST_ASSERT_EQUAL_ERROR_CODE(info.size, sizeof(new_data)); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -677,7 +690,7 @@ static void iterator_next_one_key_list() res = kv_iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -707,9 +720,6 @@ static void iterator_next_empty_list_keys_removed() res = kv_iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } //iteartor_next with non matching prefix (empty list) @@ -733,7 +743,10 @@ static void iterator_next_empty_list_non_matching_prefix() res = kv_iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); + res = kv_remove(new_key_1); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + + res = kv_remove(new_key_2); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -758,7 +771,7 @@ static void iterator_next_several_overwritten_keys() res = kv_iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -799,8 +812,10 @@ static void iterator_next_full_list() res = kv_iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + for (i = 0; i < num_of_threads; i++) { + res = kv_remove(keys[i]); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); + } delete[] key_found; } @@ -819,13 +834,12 @@ static void iterator_next_path_check() res = kv_iterator_next(kvstore_it, temp_key, sizeof(temp_key)); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - TEST_ASSERT_EQUAL_STRING(key, temp_key); res = kv_iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - res = kv_reset(def_kv); + res = kv_remove(key); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } @@ -874,13 +888,13 @@ static void iterator_next_remove_while_iterating() } TEST_ASSERT_EQUAL_STRING_LEN("new", key, 3); + + res = kv_remove(key); + TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } res = kv_iterator_close(kvstore_it); TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); - - res = kv_reset(def_kv); - TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res); } /*----------------iterator_close()------------------*/ @@ -922,6 +936,7 @@ Case cases[] = { Case("set_key_value_fifteen_byte_size", set_key_value_fifteen_byte_size, greentea_failure_handler), Case("set_key_value_seventeen_byte_size", set_key_value_seventeen_byte_size, greentea_failure_handler), Case("set_several_key_value_sizes", set_several_key_value_sizes, greentea_failure_handler), + Case("set_several_unvalid_key_names", set_several_unvalid_key_names, greentea_failure_handler), Case("get_key_null", get_key_null, greentea_failure_handler), Case("get_key_length_exceeds_max", get_key_length_exceeds_max, greentea_failure_handler),