diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2014-02-10 15:37:51 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2014-02-10 15:37:51 +0000 |
commit | be1b2cbd33b1a8e1522bdb727de1c2845295fabf (patch) | |
tree | e5797d64d779ff0921fa5cbc1efb3a007c29cb59 | |
parent | 4fc90c99b72c00ab803a018bf55dd4ad75960224 (diff) | |
download | ChibiOS-be1b2cbd33b1a8e1522bdb727de1c2845295fabf.tar.gz ChibiOS-be1b2cbd33b1a8e1522bdb727de1c2845295fabf.tar.bz2 ChibiOS-be1b2cbd33b1a8e1522bdb727de1c2845295fabf.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6697 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r-- | test/nil/test_sequence_000.c | 183 | ||||
-rw-r--r-- | test/nil/test_sequence_001.c | 165 | ||||
-rw-r--r-- | test/nil/test_sequence_001.h | 8 | ||||
-rw-r--r-- | test/nil/test_sequence_002.c | 182 | ||||
-rw-r--r-- | test/nil/test_sequence_002.h (renamed from test/nil/test_sequence_000.h) | 8 |
5 files changed, 273 insertions, 273 deletions
diff --git a/test/nil/test_sequence_000.c b/test/nil/test_sequence_000.c deleted file mode 100644 index 6d1dede6c..000000000 --- a/test/nil/test_sequence_000.c +++ /dev/null @@ -1,183 +0,0 @@ -/*
- ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-#include "ch_test.h"
-#include "test_root.h"
-
-/**
- * @page test_sequence_000 Threads Functionality
- *
- * File: @ref test_sequence_000.c
- *
- * <h2>Description</h2>
- * This sequence tests the ChibiOS/NIL functionalities related to threading.
- *
- * <h2>Test Cases</h2>
- * - @subpage test_000_000
- * - @subpage test_000_001
- * .
- */
-
-/****************************************************************************
- * Shared code.
- ****************************************************************************/
-
-
-/****************************************************************************
- * Test cases.
- ****************************************************************************/
-
-#if TRUE || defined(__DOXYGEN__)
-/**
- * @page test_000_000 System Tick Counter functionality
- *
- * <h2>Description</h2>
- * The functionality of the API @p chVTGetSystemTimeX() is tested.
- *
- * <h2>Conditions</h2>
- * None.
- *
- * <h2>Test Steps</h2>
- * - A System Tick Counter increment is expected, the test simply hangs if
- * it does not happen.
- * .
- */
-
-static void test_000_000_execute(void) {
- systime_t time;
-
- /* A System Tick Counter increment is expected, the test simply hangs if
- it does not happen.*/
- test_set_step(1);
- {
- time = chVTGetSystemTimeX();
- while (time == chVTGetSystemTimeX()) {
- }
- }
-}
-
-static const testcase_t test_000_000 = {
- "System Tick Counter functionality",
- NULL,
- NULL,
- test_000_000_execute
-};
-#endif /* TRUE */
-
-#if TRUE || defined(__DOXYGEN__)
-/**
- * @page test_000_001 Thread Sleep functionality
- *
- * <h2>Description</h2>
- * The functionality of the API @p chThdSleep() and derivatives is tested.
- *
- * <h2>Conditions</h2>
- * None.
- *
- * <h2>Test Steps</h2>
- * - The current system time is read then a sleep is performed for 100 system
- * ticks and on exit the system time is verified again.
- * - The current system time is read then a sleep is performed for 100000
- * microseconds and on exit the system time is verified again.
- * - The current system time is read then a sleep is performed for 100
- * milliseconds and on exit the system time is verified again.
- * - The current system time is read then a sleep is performed for 1
- * second and on exit the system time is verified again.
- * .
- */
-
-static void test_000_001_execute(void) {
- systime_t time;
-
- /* The current system time is read then a sleep is performed for 100 system
- ticks and on exit the system time is verified again.*/
- test_set_step(1);
- {
- time = chVTGetSystemTimeX();
- chThdSleep(100);
- test_assert_time_window(time + 100,
- time + 100 + 1,
- "out of time window");
- }
-
- /* The current system time is read then a sleep is performed for 100000
- microseconds and on exit the system time is verified again.*/
- test_set_step(2);
- {
- time = chVTGetSystemTimeX();
- chThdSleepMicroseconds(100);
- test_assert_time_window(time + US2ST(100),
- time + US2ST(100) + 1,
- "out of time window");
- }
-
- /* The current system time is read then a sleep is performed for 100
- milliseconds and on exit the system time is verified again.*/
- test_set_step(3);
- {
- time = chVTGetSystemTimeX();
- chThdSleepMilliseconds(100);
- test_assert_time_window(time + MS2ST(100),
- time + MS2ST(100) + 1,
- "out of time window");
- }
-
- /* The current system time is read then a sleep is performed for 1
- second and on exit the system time is verified again.*/
- test_set_step(4);
- {
- time = chVTGetSystemTimeX();
- chThdSleepSeconds(1);
- test_assert_time_window(time + S2ST(1),
- time + S2ST(1) + 1,
- "out of time window");
- }
-
- test_set_step(5);
- {
- time = chVTGetSystemTimeX();
- chThdSleepUntil(time + 100);
- test_assert_time_window(time + 100,
- time + 100 + 1,
- "out of time window");
- }
-}
-
-static const testcase_t test_000_001 = {
- "Thread Sleep functionality",
- NULL,
- NULL,
- test_000_001_execute
-};
-#endif /* TRUE */
-
- /****************************************************************************
- * Exported data.
- ****************************************************************************/
-
-/**
- * @brief Sequence brief description.
- */
-const testcase_t * const test_sequence_000[] = {
-#if TRUE || defined(__DOXYGEN__)
- &test_000_000,
-#endif
-#if TRUE || defined(__DOXYGEN__)
- &test_000_001,
-#endif
- NULL
-};
diff --git a/test/nil/test_sequence_001.c b/test/nil/test_sequence_001.c index 0157541d5..6d1dede6c 100644 --- a/test/nil/test_sequence_001.c +++ b/test/nil/test_sequence_001.c @@ -19,15 +19,16 @@ #include "test_root.h"
/**
- * @page test_sequence_001 Semaphores functionality
+ * @page test_sequence_000 Threads Functionality
*
- * File: @ref test_sequence_001.c
+ * File: @ref test_sequence_000.c
*
* <h2>Description</h2>
- * This sequence tests the ChibiOS/NIL functionalities related to semaphores.
+ * This sequence tests the ChibiOS/NIL functionalities related to threading.
*
* <h2>Test Cases</h2>
- * - @subpage test_001_000
+ * - @subpage test_000_000
+ * - @subpage test_000_001
* .
*/
@@ -35,7 +36,6 @@ * Shared code.
****************************************************************************/
-static semaphore_t sem1;
/****************************************************************************
* Test cases.
@@ -43,124 +43,125 @@ static semaphore_t sem1; #if TRUE || defined(__DOXYGEN__)
/**
- * @page test_001_000 Semaphores primitives, no state change
+ * @page test_000_000 System Tick Counter functionality
*
* <h2>Description</h2>
- * Wait, Signal and Reset primitives are tested. The testing thread does not
- * trigger a state change.
+ * The functionality of the API @p chVTGetSystemTimeX() is tested.
*
* <h2>Conditions</h2>
* None.
*
* <h2>Test Steps</h2>
- * - The function chSemWait() is invoked, the Semaphore counter is tested
- * for correct value after the call.
- * - The function chSemSignal() is invoked, the Semaphore counter is tested
- * for correct value after the call.
- * - The function chSemReset() is invoked, the Semaphore counter is tested
- * for correct value after the call.
+ * - A System Tick Counter increment is expected, the test simply hangs if
+ * it does not happen.
* .
*/
-static void test_001_000_setup(void) {
-
- chSemObjectInit(&sem1, 1);
-}
-
-static void test_001_000_teardown(void) {
-
- chSemReset(&sem1, 0);
-}
-
-static void test_001_000_execute(void) {
+static void test_000_000_execute(void) {
+ systime_t time;
- /* The function chSemWait() is invoked, the Semaphore counter is tested
- for correct value after the call.*/
+ /* A System Tick Counter increment is expected, the test simply hangs if
+ it does not happen.*/
test_set_step(1);
{
- chSemWait(&sem1);
- test_assert_lock(chSemGetCounterI(&sem1) == 0,
- "wrong counter value");
- }
-
- /* The function chSemSignal() is invoked, the Semaphore counter is tested
- for correct value after the call.*/
- test_set_step(2);
- {
- chSemSignal(&sem1);
- test_assert_lock(chSemGetCounterI(&sem1) == 1,
- "wrong counter value");
- }
-
- /* The function chSemReset() is invoked, the Semaphore counter is tested
- for correct value after the call.*/
- test_set_step(3);
- {
- chSemReset(&sem1, 2);
- test_assert_lock(chSemGetCounterI(&sem1) == 2,
- "wrong counter value");
+ time = chVTGetSystemTimeX();
+ while (time == chVTGetSystemTimeX()) {
+ }
}
}
-static const testcase_t test_001_000 = {
- "Brief description",
- test_001_000_setup,
- test_001_000_teardown,
- test_001_000_execute
+static const testcase_t test_000_000 = {
+ "System Tick Counter functionality",
+ NULL,
+ NULL,
+ test_000_000_execute
};
#endif /* TRUE */
#if TRUE || defined(__DOXYGEN__)
/**
- * @page test_001_000 Semaphores timeout
+ * @page test_000_001 Thread Sleep functionality
*
* <h2>Description</h2>
- * Timeouts on semaphores are tested.
+ * The functionality of the API @p chThdSleep() and derivatives is tested.
*
* <h2>Conditions</h2>
* None.
*
* <h2>Test Steps</h2>
- * - The function chSemWaitTimeout() is invoked, after return the system
- * time, the counter and the returned message are tested.
+ * - The current system time is read then a sleep is performed for 100 system
+ * ticks and on exit the system time is verified again.
+ * - The current system time is read then a sleep is performed for 100000
+ * microseconds and on exit the system time is verified again.
+ * - The current system time is read then a sleep is performed for 100
+ * milliseconds and on exit the system time is verified again.
+ * - The current system time is read then a sleep is performed for 1
+ * second and on exit the system time is verified again.
* .
*/
-static void test_001_001_setup(void) {
+static void test_000_001_execute(void) {
+ systime_t time;
- chSemObjectInit(&sem1, 0);
-}
+ /* The current system time is read then a sleep is performed for 100 system
+ ticks and on exit the system time is verified again.*/
+ test_set_step(1);
+ {
+ time = chVTGetSystemTimeX();
+ chThdSleep(100);
+ test_assert_time_window(time + 100,
+ time + 100 + 1,
+ "out of time window");
+ }
-static void test_001_001_teardown(void) {
+ /* The current system time is read then a sleep is performed for 100000
+ microseconds and on exit the system time is verified again.*/
+ test_set_step(2);
+ {
+ time = chVTGetSystemTimeX();
+ chThdSleepMicroseconds(100);
+ test_assert_time_window(time + US2ST(100),
+ time + US2ST(100) + 1,
+ "out of time window");
+ }
- chSemReset(&sem1, 0);
-}
+ /* The current system time is read then a sleep is performed for 100
+ milliseconds and on exit the system time is verified again.*/
+ test_set_step(3);
+ {
+ time = chVTGetSystemTimeX();
+ chThdSleepMilliseconds(100);
+ test_assert_time_window(time + MS2ST(100),
+ time + MS2ST(100) + 1,
+ "out of time window");
+ }
-static void test_001_001_execute(void) {
- systime_t time;
- msg_t msg;
+ /* The current system time is read then a sleep is performed for 1
+ second and on exit the system time is verified again.*/
+ test_set_step(4);
+ {
+ time = chVTGetSystemTimeX();
+ chThdSleepSeconds(1);
+ test_assert_time_window(time + S2ST(1),
+ time + S2ST(1) + 1,
+ "out of time window");
+ }
- /* The function chSemWaitTimeout() is invoked, after return the system
- time, the counter and the returned message are tested.*/
- test_set_step(1);
+ test_set_step(5);
{
time = chVTGetSystemTimeX();
- msg = chSemWaitTimeout(&sem1, 100);
+ chThdSleepUntil(time + 100);
test_assert_time_window(time + 100,
time + 100 + 1,
"out of time window");
- test_assert_lock(chSemGetCounterI(&sem1) == 0,
- "wrong counter value");
- test_assert(MSG_TIMEOUT == msg,
- "wrong timeout message");
}
}
-static const testcase_t test_001_001 = {
- "Brief description",
- test_001_001_setup,
- test_001_001_teardown,
- test_001_001_execute
+static const testcase_t test_000_001 = {
+ "Thread Sleep functionality",
+ NULL,
+ NULL,
+ test_000_001_execute
};
#endif /* TRUE */
@@ -171,12 +172,12 @@ static const testcase_t test_001_001 = { /**
* @brief Sequence brief description.
*/
-const testcase_t * const test_sequence_001[] = {
+const testcase_t * const test_sequence_000[] = {
#if TRUE || defined(__DOXYGEN__)
- &test_001_000,
+ &test_000_000,
#endif
#if TRUE || defined(__DOXYGEN__)
- &test_001_001,
+ &test_000_001,
#endif
NULL
};
diff --git a/test/nil/test_sequence_001.h b/test/nil/test_sequence_001.h index 47ae8315b..72aaaf374 100644 --- a/test/nil/test_sequence_001.h +++ b/test/nil/test_sequence_001.h @@ -14,9 +14,9 @@ limitations under the License.
*/
-#ifndef _TEST_SEQUENCE_001_H_
-#define _TEST_SEQUENCE_001_H_
+#ifndef _TEST_SEQUENCE_000_H_
+#define _TEST_SEQUENCE_000_H_
-extern const testcase_t * const test_sequence_001[];
+extern const testcase_t * const test_sequence_000[];
-#endif /* _TEST_SEQUENCE_001_H_ */
+#endif /* _TEST_SEQUENCE_000_H_ */
diff --git a/test/nil/test_sequence_002.c b/test/nil/test_sequence_002.c new file mode 100644 index 000000000..0157541d5 --- /dev/null +++ b/test/nil/test_sequence_002.c @@ -0,0 +1,182 @@ +/*
+ ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#include "hal.h"
+#include "ch_test.h"
+#include "test_root.h"
+
+/**
+ * @page test_sequence_001 Semaphores functionality
+ *
+ * File: @ref test_sequence_001.c
+ *
+ * <h2>Description</h2>
+ * This sequence tests the ChibiOS/NIL functionalities related to semaphores.
+ *
+ * <h2>Test Cases</h2>
+ * - @subpage test_001_000
+ * .
+ */
+
+/****************************************************************************
+ * Shared code.
+ ****************************************************************************/
+
+static semaphore_t sem1;
+
+/****************************************************************************
+ * Test cases.
+ ****************************************************************************/
+
+#if TRUE || defined(__DOXYGEN__)
+/**
+ * @page test_001_000 Semaphores primitives, no state change
+ *
+ * <h2>Description</h2>
+ * Wait, Signal and Reset primitives are tested. The testing thread does not
+ * trigger a state change.
+ *
+ * <h2>Conditions</h2>
+ * None.
+ *
+ * <h2>Test Steps</h2>
+ * - The function chSemWait() is invoked, the Semaphore counter is tested
+ * for correct value after the call.
+ * - The function chSemSignal() is invoked, the Semaphore counter is tested
+ * for correct value after the call.
+ * - The function chSemReset() is invoked, the Semaphore counter is tested
+ * for correct value after the call.
+ * .
+ */
+
+static void test_001_000_setup(void) {
+
+ chSemObjectInit(&sem1, 1);
+}
+
+static void test_001_000_teardown(void) {
+
+ chSemReset(&sem1, 0);
+}
+
+static void test_001_000_execute(void) {
+
+ /* The function chSemWait() is invoked, the Semaphore counter is tested
+ for correct value after the call.*/
+ test_set_step(1);
+ {
+ chSemWait(&sem1);
+ test_assert_lock(chSemGetCounterI(&sem1) == 0,
+ "wrong counter value");
+ }
+
+ /* The function chSemSignal() is invoked, the Semaphore counter is tested
+ for correct value after the call.*/
+ test_set_step(2);
+ {
+ chSemSignal(&sem1);
+ test_assert_lock(chSemGetCounterI(&sem1) == 1,
+ "wrong counter value");
+ }
+
+ /* The function chSemReset() is invoked, the Semaphore counter is tested
+ for correct value after the call.*/
+ test_set_step(3);
+ {
+ chSemReset(&sem1, 2);
+ test_assert_lock(chSemGetCounterI(&sem1) == 2,
+ "wrong counter value");
+ }
+}
+
+static const testcase_t test_001_000 = {
+ "Brief description",
+ test_001_000_setup,
+ test_001_000_teardown,
+ test_001_000_execute
+};
+#endif /* TRUE */
+
+#if TRUE || defined(__DOXYGEN__)
+/**
+ * @page test_001_000 Semaphores timeout
+ *
+ * <h2>Description</h2>
+ * Timeouts on semaphores are tested.
+ *
+ * <h2>Conditions</h2>
+ * None.
+ *
+ * <h2>Test Steps</h2>
+ * - The function chSemWaitTimeout() is invoked, after return the system
+ * time, the counter and the returned message are tested.
+ * .
+ */
+
+static void test_001_001_setup(void) {
+
+ chSemObjectInit(&sem1, 0);
+}
+
+static void test_001_001_teardown(void) {
+
+ chSemReset(&sem1, 0);
+}
+
+static void test_001_001_execute(void) {
+ systime_t time;
+ msg_t msg;
+
+ /* The function chSemWaitTimeout() is invoked, after return the system
+ time, the counter and the returned message are tested.*/
+ test_set_step(1);
+ {
+ time = chVTGetSystemTimeX();
+ msg = chSemWaitTimeout(&sem1, 100);
+ test_assert_time_window(time + 100,
+ time + 100 + 1,
+ "out of time window");
+ test_assert_lock(chSemGetCounterI(&sem1) == 0,
+ "wrong counter value");
+ test_assert(MSG_TIMEOUT == msg,
+ "wrong timeout message");
+ }
+}
+
+static const testcase_t test_001_001 = {
+ "Brief description",
+ test_001_001_setup,
+ test_001_001_teardown,
+ test_001_001_execute
+};
+#endif /* TRUE */
+
+ /****************************************************************************
+ * Exported data.
+ ****************************************************************************/
+
+/**
+ * @brief Sequence brief description.
+ */
+const testcase_t * const test_sequence_001[] = {
+#if TRUE || defined(__DOXYGEN__)
+ &test_001_000,
+#endif
+#if TRUE || defined(__DOXYGEN__)
+ &test_001_001,
+#endif
+ NULL
+};
diff --git a/test/nil/test_sequence_000.h b/test/nil/test_sequence_002.h index 72aaaf374..47ae8315b 100644 --- a/test/nil/test_sequence_000.h +++ b/test/nil/test_sequence_002.h @@ -14,9 +14,9 @@ limitations under the License.
*/
-#ifndef _TEST_SEQUENCE_000_H_
-#define _TEST_SEQUENCE_000_H_
+#ifndef _TEST_SEQUENCE_001_H_
+#define _TEST_SEQUENCE_001_H_
-extern const testcase_t * const test_sequence_000[];
+extern const testcase_t * const test_sequence_001[];
-#endif /* _TEST_SEQUENCE_000_H_ */
+#endif /* _TEST_SEQUENCE_001_H_ */
|