Skip to content

Commit

Permalink
Merge pull request #11825 from rajkan01/feature-baremetal-greentea-st…
Browse files Browse the repository at this point in the history
…orage

Bare metal green tea test for storage component
  • Loading branch information
0xc0170 authored Nov 12, 2019
2 parents 09d9287 + d8e2dd5 commit dd753ab
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] filesystem test cases require a RTOS to run
#else

#include "mbed.h"
#include "greentea-client/test_env.h"
Expand Down Expand Up @@ -207,3 +210,4 @@ int main()
{
return !Harness::run(specification);
}
#endif // !defined(MBED_CONF_RTOS_PRESENT)
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ void test_random_program_read_erase()
delete[] write_block;
}

#if defined(MBED_CONF_RTOS_PRESENT)
static void test_thread_job()
{
static int thread_num = 0;
Expand Down Expand Up @@ -392,8 +393,8 @@ void test_multi_threads()

delete[] bd_thread;
}

}
#endif

void test_erase_functionality()
{
Expand Down Expand Up @@ -727,7 +728,9 @@ typedef struct {
template_case_t template_cases[] = {
{"Testing Init block device", test_init_bd, greentea_failure_handler},
{"Testing read write random blocks", test_random_program_read_erase, greentea_failure_handler},
#if defined(MBED_CONF_RTOS_PRESENT)
{"Testing multi threads erase program read", test_multi_threads, greentea_failure_handler},
#endif
{"Testing contiguous erase, write and read", test_contiguous_erase_write_read, greentea_failure_handler},
{"Testing BlockDevice erase functionality", test_erase_functionality, greentea_failure_handler},
{"Testing program read small data sizes", test_program_read_small_data_sizes, greentea_failure_handler},
Expand Down
4 changes: 4 additions & 0 deletions features/storage/TESTS/kvstore/filesystemstore_tests/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] Kvstore API test cases require a RTOS to run
#else

#include "rtos/Thread.h"
#include "mbed_trace.h"
Expand Down Expand Up @@ -522,3 +525,4 @@ int main()
}

#endif // !defined(TARGET_K64F) && !defined(TARGET_ARM_FM)
#endif // !defined(MBED_CONF_RTOS_PRESENT)
4 changes: 4 additions & 0 deletions features/storage/TESTS/kvstore/general_tests_phase_1/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] Kvstore API test cases require a RTOS to run
#else

#include "SecureStore.h"
#include "TDBStore.h"
Expand Down Expand Up @@ -857,3 +860,4 @@ int main()
}

#endif // !defined(TARGET_K64F) && !defined(TARGET_ARM_FM)
#endif // !defined(MBED_CONF_RTOS_PRESENT)
4 changes: 4 additions & 0 deletions features/storage/TESTS/kvstore/general_tests_phase_2/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] Kvstore API test cases require a RTOS to run
#else

#include "SecureStore.h"
#include "TDBStore.h"
Expand Down Expand Up @@ -860,3 +863,4 @@ int main()
}

#endif // !defined(TARGET_K64F) && !defined(TARGET_ARM_FM)
#endif // !defined(MBED_CONF_RTOS_PRESENT)
18 changes: 15 additions & 3 deletions features/storage/TESTS/kvstore/static_tests/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@
* limitations under the License.
*/

#if defined(MBED_CONF_RTOS_PRESENT)
#include "Thread.h"
#endif
#include "mbed_error.h"
#include "greentea-client/test_env.h"
#include "unity/unity.h"
Expand All @@ -33,10 +35,13 @@ static size_t actual_size = 0;
static const size_t buffer_size = 20;
static const int num_of_threads = 3;
static const char num_of_keys = 3;

#if defined(MBED_CONF_RTOS_PRESENT)
/* Forked 3 threads plus misc, so minimum (4 * OS_STACK_SIZE) heap are required. */
static const int heap_alloc_threshold_size = 4 * OS_STACK_SIZE;

#else
/* Bare metal does not require memory for threads, so use just minimum for test */
static const int heap_alloc_threshold_size = MBED_CONF_TARGET_BOOT_STACK_SIZE;
#endif
static const char *keys[] = {"key1", "key2", "key3"};

static int init_res = MBED_ERROR_NOT_READY;
Expand Down Expand Up @@ -144,6 +149,7 @@ static void test_thread_set(char *th_key)
//get several keys multithreaded
static void set_several_keys_multithreaded()
{
#if defined(MBED_CONF_RTOS_PRESENT)
TEST_SKIP_UNLESS(!init_res);
rtos::Thread kvstore_thread[num_of_threads];
osStatus threadStatus;
Expand All @@ -169,6 +175,7 @@ static void set_several_keys_multithreaded()
res = kv_remove(keys[i]);
TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res);
}
#endif
}

//set key "write once" and try to set it again
Expand Down Expand Up @@ -464,6 +471,7 @@ static void test_thread_get(const void *th_key)
//get several keys multithreaded
static void get_several_keys_multithreaded()
{
#if defined(MBED_CONF_RTOS_PRESENT)
TEST_SKIP_UNLESS(!init_res);
int i = 0, res = 0;
rtos::Thread kvstore_thread[num_of_threads];
Expand All @@ -489,6 +497,7 @@ static void get_several_keys_multithreaded()
res = kv_remove(keys[i]);
TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res);
}
#endif
}

/*----------------remove()------------------*/
Expand Down Expand Up @@ -924,7 +933,9 @@ Case cases[] = {
Case("set_buffer_null_size_not_zero", set_buffer_null_size_not_zero, greentea_failure_handler),
Case("set_buffer_size_is_zero", set_buffer_size_is_zero, greentea_failure_handler),
Case("set_same_key_several_time", set_same_key_several_time, greentea_failure_handler),
#if defined(MBED_CONF_RTOS_PRESENT)
Case("set_several_keys_multithreaded", set_several_keys_multithreaded, greentea_failure_handler),
#endif
Case("set_write_once_flag_try_set_twice", set_write_once_flag_try_set_twice, greentea_failure_handler),
Case("set_write_once_flag_try_remove", set_write_once_flag_try_remove, greentea_failure_handler),
Case("set_key_value_one_byte_size", set_key_value_one_byte_size, greentea_failure_handler),
Expand All @@ -944,8 +955,9 @@ Case cases[] = {
Case("get_non_existing_key", get_non_existing_key, greentea_failure_handler),
Case("get_removed_key", get_removed_key, greentea_failure_handler),
Case("get_key_that_was_set_twice", get_key_that_was_set_twice, greentea_failure_handler),
#if defined(MBED_CONF_RTOS_PRESENT)
Case("get_several_keys_multithreaded", get_several_keys_multithreaded, greentea_failure_handler),

#endif
Case("remove_key_null", remove_key_null, greentea_failure_handler),
Case("remove_key_length_exceeds_max", remove_key_length_exceeds_max, greentea_failure_handler),
Case("remove_non_existing_key", remove_non_existing_key, greentea_failure_handler),
Expand Down
12 changes: 5 additions & 7 deletions features/storage/nvstore/TESTS/nvstore/functionality/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
* limitations under the License.
*/


#include "nvstore.h"
#ifdef MBED_CONF_RTOS_PRESENT
#include "Thread.h"
Expand Down Expand Up @@ -396,6 +397,7 @@ static void nvstore_basic_functionality_test()
delete[] nvstore_testing_buf_get;
}

#ifdef MBED_CONF_RTOS_PRESENT
static void thread_test_check_key(uint16_t key)
{
uint8_t get_buff[thr_test_max_data_size];
Expand All @@ -422,7 +424,6 @@ static void thread_test_check_key(uint16_t key)

}

#ifdef MBED_CONF_RTOS_PRESENT
static void thread_test_worker()
{
int ret;
Expand All @@ -444,11 +445,9 @@ static void thread_test_worker()
wait_ms(1);
}
}
#endif

static void nvstore_multi_thread_test()
{
#ifdef MBED_CONF_RTOS_PRESENT
int i, result;
uint16_t size;
uint16_t key;
Expand Down Expand Up @@ -562,8 +561,6 @@ static void nvstore_multi_thread_test()
}

nvstore.reset();

#endif
}


Expand All @@ -578,7 +575,6 @@ static void race_test_worker(void *buf)

static void nvstore_race_test()
{
#ifdef MBED_CONF_RTOS_PRESENT
int i;
uint16_t initial_buf_size;
int ret;
Expand Down Expand Up @@ -668,8 +664,8 @@ static void nvstore_race_test()
delete[] buffs[i];
}
delete[] get_buff;
#endif
}
#endif



Expand All @@ -681,8 +677,10 @@ utest::v1::status_t greentea_failure_handler(const Case *const source, const fai

Case cases[] = {
Case("NVStore: Basic functionality", nvstore_basic_functionality_test, greentea_failure_handler),
#if defined(MBED_CONF_RTOS_PRESENT)
Case("NVStore: Race test", nvstore_race_test, greentea_failure_handler),
Case("NVStore: Multiple thread test", nvstore_multi_thread_test, greentea_failure_handler),
#endif
};

utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
Expand Down

0 comments on commit dd753ab

Please sign in to comment.