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

Reply via email to