On 06/11/17 07:29, Chris Johns wrote:
+#if RTEMS_PROFILING
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_PROFILING "profiling "
+#else
+ #define TEST_BUILD_PROFILING
+#endif
These defines are only used in one source file. I would move this to the source
file.
Do all tests call the begin function in libmisc?
Yes, I hope that this is the case. Some tests use rtems_test_begin()
directly. These tests should be changed to use TEST_BEGIN() (or vice versa).
testsuites/samples/pppd/init.c: rtems_test_begin();
testsuites/samples/pppd/init.c: rtems_test_end();
testsuites/samples/loopback/init.c: rtems_test_begin();
testsuites/samples/loopback/init.c: rtems_test_end();
testsuites/samples/paranoia/init.c: rtems_test_begin();
testsuites/samples/paranoia/init.c: rtems_test_end();
testsuites/samples/hello/init.c: rtems_test_begin();
testsuites/samples/hello/init.c: rtems_test_end();
testsuites/samples/capture/init.c: rtems_test_begin();
testsuites/samples/capture/init.c: rtems_test_end();
testsuites/libtests/mathl/init.c: rtems_test_begin();
testsuites/libtests/mathl/init.c: rtems_test_end();
testsuites/libtests/mathf/init.c: rtems_test_begin();
testsuites/libtests/mathf/init.c: rtems_test_end();
testsuites/libtests/complex/init.c: rtems_test_begin();
testsuites/libtests/complex/init.c: rtems_test_end();
testsuites/libtests/capture01/init.c: rtems_test_begin();
testsuites/libtests/capture01/init.c: rtems_test_end();
testsuites/libtests/math/init.c: rtems_test_begin();
testsuites/libtests/math/init.c: rtems_test_end();
testsuites/smptests/smp07/init.c: rtems_test_end( );
testsuites/smptests/smp07/init.c: rtems_test_begin();
testsuites/smptests/smp05/init.c: rtems_test_end();
testsuites/smptests/smp05/init.c: rtems_test_begin();
Happy to see that happen if the
begin macro goes away. Maybe that can happen after this change?
+
+#define TEST_BUILD_STRING \
+ "*** TEST BUILD: " TEST_BUILD_DEFAULT \
+ TEST_BUILD_POSIX \
+ TEST_BUILD_SMP \
+ TEST_BUILD_MP \
+ TEST_BUILD_PARAVIRT \
+ TEST_BUILD_NETWORKING \
+ TEST_BUILD_DEBUG \
+ TEST_BUILD_PROFILING \
+ "\n"
+
+/**
+ * @brief Tools being used to build the kernel and tests.
+ */
+#define TEST_TOOLS_STRING "*** TEST TOOLS: " __VERSION__ "\n"
+
+/**
+ * @brief Test states.
+ */
+#if (TEST_STATE_EXPECTED_FAIL && TEST_STATE_USER_INPUT) || \
+ (TEST_STATE_EXPECTED_FAIL && TEST_STATE_INDETERMINATE) || \
+ (TEST_STATE_EXPECTED_FAIL && TEST_STATE_BENCHMARK) || \
+ (TEST_STATE_USER_INPUT && TEST_STATE_INDETERMINATE) || \
+ (TEST_STATE_USER_INPUT && TEST_STATE_BENCHMARK) || \
+ (TEST_STATE_INDETERMINATE && TEST_STATE_BENCHMARK)
+ #error Test states must be unique
+#endif
Maybe we should separate the test classification from the actual output and use
an enum:
typedef enum {
RTEMS_TEST_TYPE_USER_INPUT,
RTEMS_TEST_TYPE_BENCHMARK,
...
} rtems_test_type;
How would the state be passed in as an enum? The test's state is passed on a per
test bases from the .tcfg files structure which is global, and per bsp as
command line defines.
You can do a "#define TEST_TYPE XXX", instead of the "#define
TEST_STATE_XXX".
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel