diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/nasa_osal/configuration.xml | 264 | ||||
| -rw-r--r-- | test/nasa_osal/source/test/test_sequence_002.c | 134 | ||||
| -rw-r--r-- | test/nasa_osal/source/test/test_sequence_003.c | 84 | 
3 files changed, 336 insertions, 146 deletions
| diff --git a/test/nasa_osal/configuration.xml b/test/nasa_osal/configuration.xml index df5342bff..eef897b28 100644 --- a/test/nasa_osal/configuration.xml +++ b/test/nasa_osal/configuration.xml @@ -757,37 +757,29 @@ test_assert(err == OS_SUCCESS, "queue deletion failed");]]></value>                </case>
                <case>
                  <brief>
 -                  <value>OS_QueuePut() and OS_QueueGet() functionality</value>
 +                  <value>OS_QueueGetIdByName() errors</value>
                  </brief>
                  <description>
 -                  <value>A task writes on a queue, the messages are retrieved on the other side in blocking mode.</value>
 +                  <value>Parameters checking in OS_QueueGetIdByName() is tested.</value>
                  </description>
                  <condition>
                    <value />
                  </condition>
                  <various_code>
                    <setup_code>
 -                    <value><![CDATA[qid = 0; -tid = 0;]]></value>
 +                    <value />
                    </setup_code>
                    <teardown_code>
 -                    <value><![CDATA[if (qid != 0) { -  (void) OS_QueueDelete(qid); -} - -if (tid != 0) { -  (void) OS_TaskWait(tid); -}]]></value>
 +                    <value />
                    </teardown_code>
                    <local_variables>
 -                    <value><![CDATA[uint32 tid; -unsigned i;]]></value>
 +                    <value />
                    </local_variables>
                  </various_code>
                  <steps>
                    <step>
                      <description>
 -                      <value>Creataing a queue with depth 4 and message size 20</value>
 +                      <value>OS_QueueGetIdByName() is invoked with queue_id set to NULL, an error is expected.</value>
                      </description>
                      <tags>
                        <value />
 @@ -795,13 +787,13 @@ unsigned i;]]></value>                      <code>
                        <value><![CDATA[int32 err; -err = OS_QueueCreate(&qid, "test queue", 4, MESSAGE_SIZE, 0); -test_assert(err == OS_SUCCESS, "queue creation failed");]]></value>
 +err = OS_QueueGetIdByName(NULL, "queue"); +test_assert(err == OS_INVALID_POINTER, "NULL not detected");]]></value>
                      </code>
                    </step>
                    <step>
                      <description>
 -                      <value>Creating the writer task.</value>
 +                      <value>OS_QueueGetIdByName() is invoked with queue_name set to NULL, an error is expected.</value>
                      </description>
                      <tags>
                        <value />
 @@ -809,76 +801,59 @@ test_assert(err == OS_SUCCESS, "queue creation failed");]]></value>                      <code>
                        <value><![CDATA[int32 err; -err = OS_TaskCreate(&tid, -                    "writer task", -                    test_task_writer, -                    (uint32 *)wa_test1, -                    sizeof wa_test1, -                    TASKS_BASE_PRIORITY, -                    0); -test_assert(err == OS_SUCCESS, "writer task creation failed");]]></value>
 +err = OS_QueueGetIdByName(&qid, NULL); +test_assert(err == OS_INVALID_POINTER, "NULL not detected");]]></value>
                      </code>
                    </step>
                    <step>
                      <description>
 -                      <value>Reading messages from the writer task.</value>
 +                      <value>OS_QueueGetIdByName() is invoked with a very long task name, an error is expected.</value>
                      </description>
                      <tags>
                        <value />
                      </tags>
                      <code>
 -                      <value><![CDATA[for (i = 0; i < WRITER_NUM_MESSAGES; i++) { -  int32 err; -  char data[MESSAGE_SIZE]; -  uint32 copied; +                      <value><![CDATA[int32 err; -  err = OS_QueueGet(qid, data, MESSAGE_SIZE, &copied, OS_Milli2Ticks(200)); -  test_assert(err == OS_SUCCESS, "timed out"); -  test_assert(strncmp(data, "Hello World", sizeof (data)) == 0, -              "wrong message"); -}]]></value>
 -                    </code>
 -                  </step>
 -                  <step>
 -                    <description>
 -                      <value>Waiting for task termination then checking for errors.</value>
 -                    </description>
 -                    <tags>
 -                      <value />
 -                    </tags>
 -                    <code>
 -                      <value><![CDATA[(void) OS_TaskWait(tid); -tid = 0; -test_assert_sequence("", "queue write errors occurred");]]></value>
 +err = OS_QueueGetIdByName(&qid, "very very long queue name"); +test_assert(err == OS_ERR_NAME_TOO_LONG, "name limit not detected");]]></value>
                      </code>
                    </step>
                  </steps>
                </case>
                <case>
                  <brief>
 -                  <value>OS_QueueGetIdByName() errors</value>
 +                  <value>OS_QueuePut() and OS_QueueGet() functionality</value>
                  </brief>
                  <description>
 -                  <value>Parameters checking in OS_QueueGetIdByName() is tested.</value>
 +                  <value>A task writes on a queue, the messages are retrieved on the other side in blocking mode.</value>
                  </description>
                  <condition>
                    <value />
                  </condition>
                  <various_code>
                    <setup_code>
 -                    <value />
 +                    <value><![CDATA[qid = 0; +tid = 0;]]></value>
                    </setup_code>
                    <teardown_code>
 -                    <value />
 +                    <value><![CDATA[if (qid != 0) { +  (void) OS_QueueDelete(qid); +} + +if (tid != 0) { +  (void) OS_TaskWait(tid); +}]]></value>
                    </teardown_code>
                    <local_variables>
 -                    <value />
 +                    <value><![CDATA[uint32 tid; +unsigned i;]]></value>
                    </local_variables>
                  </various_code>
                  <steps>
                    <step>
                      <description>
 -                      <value>OS_QueueGetIdByName() is invoked with queue_id set to NULL, an error is expected.</value>
 +                      <value>Creataing a queue with depth 4 and message size 20</value>
                      </description>
                      <tags>
                        <value />
 @@ -886,13 +861,13 @@ test_assert_sequence("", "queue write errors occurred");]]></value>                      <code>
                        <value><![CDATA[int32 err; -err = OS_QueueGetIdByName(NULL, "queue"); -test_assert(err == OS_INVALID_POINTER, "NULL not detected");]]></value>
 +err = OS_QueueCreate(&qid, "test queue", 4, MESSAGE_SIZE, 0); +test_assert(err == OS_SUCCESS, "queue creation failed");]]></value>
                      </code>
                    </step>
                    <step>
                      <description>
 -                      <value>OS_QueueGetIdByName() is invoked with queue_name set to NULL, an error is expected.</value>
 +                      <value>Creating the writer task.</value>
                      </description>
                      <tags>
                        <value />
 @@ -900,29 +875,54 @@ test_assert(err == OS_INVALID_POINTER, "NULL not detected");]]></value>                      <code>
                        <value><![CDATA[int32 err; -err = OS_QueueGetIdByName(&qid, NULL); -test_assert(err == OS_INVALID_POINTER, "NULL not detected");]]></value>
 +err = OS_TaskCreate(&tid, +                    "writer task", +                    test_task_writer, +                    (uint32 *)wa_test1, +                    sizeof wa_test1, +                    TASKS_BASE_PRIORITY, +                    0); +test_assert(err == OS_SUCCESS, "writer task creation failed");]]></value>
                      </code>
                    </step>
                    <step>
                      <description>
 -                      <value>OS_QueueGetIdByName() is invoked with a very long task name, an error is expected.</value>
 +                      <value>Reading messages from the writer task.</value>
                      </description>
                      <tags>
                        <value />
                      </tags>
                      <code>
 -                      <value><![CDATA[int32 err; +                      <value><![CDATA[for (i = 0; i < WRITER_NUM_MESSAGES; i++) { +  int32 err; +  char data[MESSAGE_SIZE]; +  uint32 copied; -err = OS_QueueGetIdByName(&qid, "very very long queue name"); -test_assert(err == OS_ERR_NAME_TOO_LONG, "name limit not detected");]]></value>
 +  err = OS_QueueGet(qid, data, MESSAGE_SIZE, &copied, OS_Milli2Ticks(200)); +  test_assert(err == OS_SUCCESS, "timed out"); +  test_assert(strncmp(data, "Hello World", sizeof (data)) == 0, +              "wrong message"); +}]]></value>
 +                    </code>
 +                  </step>
 +                  <step>
 +                    <description>
 +                      <value>Waiting for task termination then checking for errors.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[(void) OS_TaskWait(tid); +tid = 0; +test_assert_sequence("", "queue write errors occurred");]]></value>
                      </code>
                    </step>
                  </steps>
                </case>
                <case>
                  <brief>
 -                  <value>OS_QueueGet() with timeout</value>
 +                  <value>OS_QueueGet() with timeout functionality</value>
                  </brief>
                  <description>
                    <value>OS_QueueGetIdByName is tested.</value>
 @@ -949,7 +949,7 @@ char data[MESSAGE_SIZE];]]></value>                  <steps>
                    <step>
                      <description>
 -                      <value>Retrieving the queue name.</value>
 +                      <value>Retrieving the queue by name.</value>
                      </description>
                      <tags>
                        <value />
 @@ -1006,13 +1006,16 @@ test_assert(err == OS_QUEUE_EMPTY, "unexpected error code");]]></value>              <shared_code>
                <value><![CDATA[#include <string.h> -#include "osapi.h"
 -
 +#include "osapi.h" +  uint32 tmid;
 -
 -static void tmr_callback(uint32 timer_id) {
 -
 +uint32 cnt; + +static void tmr_callback(uint32 timer_id) { +    (void)timer_id;
 +
 +  cnt++;  }]]></value>
              </shared_code>
              <cases>
 @@ -1109,7 +1112,7 @@ err = OS_TimerCreate(&tmid,                       "failing timer",                       &accuracy,                       NULL);                     /* Error.*/ -test_assert(err == OS_INVALID_POINTER, "NULL not detected");]]></value>
 +test_assert(err == OS_TIMER_ERR_INVALID_ARGS, "NULL not detected");]]></value>
                      </code>
                    </step>
                    <step>
 @@ -1284,7 +1287,11 @@ test_assert(err == OS_ERR_NAME_TOO_LONG, "name limit not detected");]]></value>                  </condition>
                  <various_code>
                    <setup_code>
 -                    <value><![CDATA[tmid = 0;]]></value>
 +                    <value><![CDATA[uint32 accuracy; +
 +cnt = 0; +tmid = 0; +(void) OS_TimerCreate(&tmid, "test timer", &accuracy, tmr_callback);]]></value>
                    </setup_code>
                    <teardown_code>
                      <value><![CDATA[if (tmid != 0) { @@ -1292,10 +1299,51 @@ test_assert(err == OS_ERR_NAME_TOO_LONG, "name limit not detected");]]></value>  }]]></value>
                    </teardown_code>
                    <local_variables>
 -                    <value />
 +                    <value><![CDATA[uint32 local_tmid;]]></value>
                    </local_variables>
                  </various_code>
 -                <steps />
 +                <steps>
 +                  <step>
 +                    <description>
 +                      <value>Retrieving the timer by name.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[int32 err; + +err = OS_TimerGetIdByName(&local_tmid, "test timer"); +test_assert(err == OS_SUCCESS, "timer not found");]]></value>
 +                    </code>
 +                  </step>
 +                  <step>
 +                    <description>
 +                      <value>Setting up the timer for a 70mS one-shot tick.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[uint32 err;
 +
 +err = OS_TimerSet(local_tmid, 70000, 0);
 +test_assert(err == OS_SUCCESS, "timer setup failed");]]></value>
 +                    </code>
 +                  </step>
 +                  <step>
 +                    <description>
 +                      <value>Waiting one second then counting the occurred ticks.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[(void) OS_TaskDelay(1000);
 +test_assert(cnt == 1, "wrong ticks");]]></value>
 +                    </code>
 +                  </step>
 +                </steps>
                </case>
                <case>
                  <brief>
 @@ -1309,18 +1357,78 @@ test_assert(err == OS_ERR_NAME_TOO_LONG, "name limit not detected");]]></value>                  </condition>
                  <various_code>
                    <setup_code>
 -                    <value><![CDATA[tmid = 0;]]></value>
 +                    <value><![CDATA[uint32 accuracy;
 +
 +cnt = 0;
 +tmid = 0;
 +(void) OS_TimerCreate(&tmid, "test timer", &accuracy, tmr_callback);]]></value>
                    </setup_code>
                    <teardown_code>
 -                    <value><![CDATA[if (tmid != 0) { +                    <value><![CDATA[if (tmid != 0) {
 +  (void) OS_TimerSet(tmid, 0, 0);    (void) OS_TimerDelete(tmid);  }]]></value>
                    </teardown_code>
                    <local_variables>
 -                    <value />
 +                    <value><![CDATA[uint32 local_tmid;]]></value>
                    </local_variables>
                  </various_code>
 -                <steps />
 +                <steps>
 +                  <step>
 +                    <description>
 +                      <value>Retrieving the timer by name.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[int32 err;
 +
 +err = OS_TimerGetIdByName(&local_tmid, "test timer");
 +test_assert(err == OS_SUCCESS, "timer not found");]]></value>
 +                    </code>
 +                  </step>
 +                  <step>
 +                    <description>
 +                      <value>Setting up the timer for a 70mS periodic tick.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[uint32 err;
 +
 +err = OS_TimerSet(local_tmid, 70000, 70000);
 +test_assert(err == OS_SUCCESS, "timer setup failed");]]></value>
 +                    </code>
 +                  </step>
 +                  <step>
 +                    <description>
 +                      <value>Waiting one second then counting the occurred ticks.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[(void) OS_TaskDelay(1000);
 +test_assert(cnt == 14, "wrong ticks");]]></value>
 +                    </code>
 +                  </step>
 +                  <step>
 +                    <description>
 +                      <value>Stopping the timer.</value>
 +                    </description>
 +                    <tags>
 +                      <value />
 +                    </tags>
 +                    <code>
 +                      <value><![CDATA[uint32 err;
 +
 +err = OS_TimerSet(local_tmid, 0, 0);
 +test_assert(err == OS_SUCCESS, "timer stop failed");]]></value>
 +                    </code>
 +                  </step>
 +                </steps>
                </case>
              </cases>
            </sequence>
 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
 + *
 + * <h2>Description</h2>
 + * Parameters checking in OS_QueueGetIdByName() is tested.
 + *
 + * <h2>Test Steps</h2>
 + * - 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
   *
   * <h2>Description</h2>
   * 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
 - *
 - * <h2>Description</h2>
 - * Parameters checking in OS_QueueGetIdByName() is tested.
 - *
 - * <h2>Test Steps</h2>
 - * - 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
   *
   * <h2>Description</h2>
   * OS_QueueGetIdByName is tested.
   *
   * <h2>Test Steps</h2>
 - * - 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.
   *
   * <h2>Test Steps</h2>
 + * - 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.
   *
   * <h2>Test Steps</h2>
 + * - 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 = {
 | 
