From ade53fbc15fcf754ccb29e90f19cb2f921a90288 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Thu, 10 Mar 2016 14:57:26 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9065 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- test/nasa_osal/source/test/test_sequence_002.c | 134 ++++++++++++------------- test/nasa_osal/source/test/test_sequence_003.c | 84 +++++++++++++++- 2 files changed, 150 insertions(+), 68 deletions(-) (limited to 'test/nasa_osal/source') diff --git a/test/nasa_osal/source/test/test_sequence_002.c b/test/nasa_osal/source/test/test_sequence_002.c index 7600c5f99..1b10a193a 100644 --- a/test/nasa_osal/source/test/test_sequence_002.c +++ b/test/nasa_osal/source/test/test_sequence_002.c @@ -167,7 +167,63 @@ static const testcase_t test_002_001 = { }; /** - * @page test_002_002 OS_QueuePut() and OS_QueueGet() functionality + * @page test_002_002 OS_QueueGetIdByName() errors + * + *

Description

+ * Parameters checking in OS_QueueGetIdByName() is tested. + * + *

Test Steps

+ * - OS_QueueGetIdByName() is invoked with queue_id set to NULL, an + * error is expected. + * - OS_QueueGetIdByName() is invoked with queue_name set to NULL, an + * error is expected. + * - OS_QueueGetIdByName() is invoked with a very long task name, an + * error is expected. + * . + */ + +static void test_002_002_execute(void) { + + /* OS_QueueGetIdByName() is invoked with queue_id set to NULL, an + error is expected.*/ + test_set_step(1); + { + int32 err; + + err = OS_QueueGetIdByName(NULL, "queue"); + test_assert(err == OS_INVALID_POINTER, "NULL not detected"); + } + + /* OS_QueueGetIdByName() is invoked with queue_name set to NULL, an + error is expected.*/ + test_set_step(2); + { + int32 err; + + err = OS_QueueGetIdByName(&qid, NULL); + test_assert(err == OS_INVALID_POINTER, "NULL not detected"); + } + + /* OS_QueueGetIdByName() is invoked with a very long task name, an + error is expected.*/ + test_set_step(3); + { + int32 err; + + err = OS_QueueGetIdByName(&qid, "very very long queue name"); + test_assert(err == OS_ERR_NAME_TOO_LONG, "name limit not detected"); + } +} + +static const testcase_t test_002_002 = { + "OS_QueueGetIdByName() errors", + NULL, + NULL, + test_002_002_execute +}; + +/** + * @page test_002_003 OS_QueuePut() and OS_QueueGet() functionality * *

Description

* A task writes on a queue, the messages are retrieved on the other @@ -181,12 +237,12 @@ static const testcase_t test_002_001 = { * . */ -static void test_002_002_setup(void) { +static void test_002_003_setup(void) { qid = 0; tid = 0; } -static void test_002_002_teardown(void) { +static void test_002_003_teardown(void) { if (qid != 0) { (void) OS_QueueDelete(qid); } @@ -196,7 +252,7 @@ static void test_002_002_teardown(void) { } } -static void test_002_002_execute(void) { +static void test_002_003_execute(void) { uint32 tid; unsigned i; @@ -248,77 +304,21 @@ static void test_002_002_execute(void) { } } -static const testcase_t test_002_002 = { - "OS_QueuePut() and OS_QueueGet() functionality", - test_002_002_setup, - test_002_002_teardown, - test_002_002_execute -}; - -/** - * @page test_002_003 OS_QueueGetIdByName() errors - * - *

Description

- * Parameters checking in OS_QueueGetIdByName() is tested. - * - *

Test Steps

- * - OS_QueueGetIdByName() is invoked with queue_id set to NULL, an - * error is expected. - * - OS_QueueGetIdByName() is invoked with queue_name set to NULL, an - * error is expected. - * - OS_QueueGetIdByName() is invoked with a very long task name, an - * error is expected. - * . - */ - -static void test_002_003_execute(void) { - - /* OS_QueueGetIdByName() is invoked with queue_id set to NULL, an - error is expected.*/ - test_set_step(1); - { - int32 err; - - err = OS_QueueGetIdByName(NULL, "queue"); - test_assert(err == OS_INVALID_POINTER, "NULL not detected"); - } - - /* OS_QueueGetIdByName() is invoked with queue_name set to NULL, an - error is expected.*/ - test_set_step(2); - { - int32 err; - - err = OS_QueueGetIdByName(&qid, NULL); - test_assert(err == OS_INVALID_POINTER, "NULL not detected"); - } - - /* OS_QueueGetIdByName() is invoked with a very long task name, an - error is expected.*/ - test_set_step(3); - { - int32 err; - - err = OS_QueueGetIdByName(&qid, "very very long queue name"); - test_assert(err == OS_ERR_NAME_TOO_LONG, "name limit not detected"); - } -} - static const testcase_t test_002_003 = { - "OS_QueueGetIdByName() errors", - NULL, - NULL, + "OS_QueuePut() and OS_QueueGet() functionality", + test_002_003_setup, + test_002_003_teardown, test_002_003_execute }; /** - * @page test_002_004 OS_QueueGet() with timeout + * @page test_002_004 OS_QueueGet() with timeout functionality * *

Description

* OS_QueueGetIdByName is tested. * *

Test Steps

- * - Retrieving the queue name. + * - Retrieving the queue by name. * - Get operation with a one second timeout, an error is expected. * - Get operation in non-blocking mode, an error is expected. * . @@ -340,7 +340,7 @@ static void test_002_004_execute(void) { uint32 copied; char data[MESSAGE_SIZE]; - /* Retrieving the queue name.*/ + /* Retrieving the queue by name.*/ test_set_step(1); { int32 err; @@ -369,7 +369,7 @@ static void test_002_004_execute(void) { } static const testcase_t test_002_004 = { - "OS_QueueGet() with timeout", + "OS_QueueGet() with timeout functionality", test_002_004_setup, test_002_004_teardown, test_002_004_execute diff --git a/test/nasa_osal/source/test/test_sequence_003.c b/test/nasa_osal/source/test/test_sequence_003.c index 87338fc05..2d2fc0a69 100644 --- a/test/nasa_osal/source/test/test_sequence_003.c +++ b/test/nasa_osal/source/test/test_sequence_003.c @@ -45,10 +45,13 @@ #include "osapi.h" uint32 tmid; +uint32 cnt; static void tmr_callback(uint32 timer_id) { (void)timer_id; + + cnt++; } /**************************************************************************** @@ -137,7 +140,7 @@ static void test_003_001_execute(void) { "failing timer", &accuracy, NULL); /* Error.*/ - test_assert(err == OS_INVALID_POINTER, "NULL not detected"); + test_assert(err == OS_TIMER_ERR_INVALID_ARGS, "NULL not detected"); } /* OS_TimerCreate() is invoked with a very long timer name, an error @@ -285,10 +288,18 @@ static const testcase_t test_003_003 = { * A timer is tested in one-shot mode. * *

Test Steps

+ * - Retrieving the timer by name. + * - Setting up the timer for a 70mS one-shot tick. + * - Waiting one second then counting the occurred ticks. + * . */ static void test_003_004_setup(void) { + uint32 accuracy; + + cnt = 0; tmid = 0; + (void) OS_TimerCreate(&tmid, "test timer", &accuracy, tmr_callback); } static void test_003_004_teardown(void) { @@ -298,6 +309,32 @@ static void test_003_004_teardown(void) { } static void test_003_004_execute(void) { + uint32 local_tmid; + + /* Retrieving the timer by name.*/ + test_set_step(1); + { + int32 err; + + err = OS_TimerGetIdByName(&local_tmid, "test timer"); + test_assert(err == OS_SUCCESS, "timer not found"); + } + + /* Setting up the timer for a 70mS one-shot tick.*/ + test_set_step(2); + { + uint32 err; + + err = OS_TimerSet(local_tmid, 70000, 0); + test_assert(err == OS_SUCCESS, "timer setup failed"); + } + + /* Waiting one second then counting the occurred ticks.*/ + test_set_step(3); + { + (void) OS_TaskDelay(1000); + test_assert(cnt == 1, "wrong ticks"); + } } static const testcase_t test_003_004 = { @@ -314,19 +351,64 @@ static const testcase_t test_003_004 = { * A timer is tested in periodic mode. * *

Test Steps

+ * - Retrieving the timer by name. + * - Setting up the timer for a 70mS periodic tick. + * - Waiting one second then counting the occurred ticks. + * - Stopping the timer. + * . */ static void test_003_005_setup(void) { + uint32 accuracy; + + cnt = 0; tmid = 0; + (void) OS_TimerCreate(&tmid, "test timer", &accuracy, tmr_callback); } static void test_003_005_teardown(void) { if (tmid != 0) { + (void) OS_TimerSet(tmid, 0, 0); (void) OS_TimerDelete(tmid); } } static void test_003_005_execute(void) { + uint32 local_tmid; + + /* Retrieving the timer by name.*/ + test_set_step(1); + { + int32 err; + + err = OS_TimerGetIdByName(&local_tmid, "test timer"); + test_assert(err == OS_SUCCESS, "timer not found"); + } + + /* Setting up the timer for a 70mS periodic tick.*/ + test_set_step(2); + { + uint32 err; + + err = OS_TimerSet(local_tmid, 70000, 70000); + test_assert(err == OS_SUCCESS, "timer setup failed"); + } + + /* Waiting one second then counting the occurred ticks.*/ + test_set_step(3); + { + (void) OS_TaskDelay(1000); + test_assert(cnt == 14, "wrong ticks"); + } + + /* Stopping the timer.*/ + test_set_step(4); + { + uint32 err; + + err = OS_TimerSet(local_tmid, 0, 0); + test_assert(err == OS_SUCCESS, "timer stop failed"); + } } static const testcase_t test_003_005 = { -- cgit v1.2.3