[rtems commit] libtest: Add T_push_plan() and T_pop_plan()

Sebastian Huber sebh at rtems.org
Tue Aug 18 05:15:14 UTC 2020


Module:    rtems
Branch:    master
Commit:    c7289484348fc33f77dc99e74a8d0a298144514d
Changeset: http://git.rtems.org/rtems/commit/?id=c7289484348fc33f77dc99e74a8d0a298144514d

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug 14 09:56:51 2020 +0200

libtest: Add T_push_plan() and T_pop_plan()

Update #3199.

---

 cpukit/include/rtems/test.h             |  6 ++++++
 cpukit/libtest/t-test.c                 | 15 +++++++++++++++
 testsuites/libtests/ttest01/init.c      |  4 ++--
 testsuites/libtests/ttest01/test-plan.c | 21 +++++++++++++++++++++
 4 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/cpukit/include/rtems/test.h b/cpukit/include/rtems/test.h
index ccab6c4..935e796 100644
--- a/cpukit/include/rtems/test.h
+++ b/cpukit/include/rtems/test.h
@@ -2168,6 +2168,12 @@ void T_check_rsc_success(const T_check_context *, uint32_t);
 
 void T_plan(unsigned int);
 
+extern const T_fixture T_empty_fixture;
+
+void T_push_plan(T_fixture_node *, unsigned int);
+
+void T_pop_plan(void);
+
 void T_check_step(const T_check_context *, unsigned int);
 
 #define T_flags_step(a, flags)						\
diff --git a/cpukit/libtest/t-test.c b/cpukit/libtest/t-test.c
index 3f9046a..11f1cf7 100644
--- a/cpukit/libtest/t-test.c
+++ b/cpukit/libtest/t-test.c
@@ -550,6 +550,21 @@ void T_plan(unsigned int planned_steps)
 	    expected);
 }
 
+const T_fixture T_empty_fixture;
+
+void
+T_push_plan(T_fixture_node *node, unsigned int planned_steps)
+{
+	T_push_fixture(node, &T_empty_fixture);
+	T_plan(planned_steps);
+}
+
+void
+T_pop_plan(void)
+{
+	T_pop_fixture();
+}
+
 void
 T_check_step(const T_check_context *t, unsigned int expected)
 {
diff --git a/testsuites/libtests/ttest01/init.c b/testsuites/libtests/ttest01/init.c
index 8636cda..c0ccee9 100644
--- a/testsuites/libtests/ttest01/init.c
+++ b/testsuites/libtests/ttest01/init.c
@@ -182,8 +182,8 @@ run_initialize(void)
 	T_set_putchar(censor_putchar, ctx, &ctx->putchar, &ctx->putchar_arg);
 }
 
-static const char expected_final[] = "Z:ttest01:C:343:N:1335:F:795:D:0.689999\n"
-"Y:ReportHash:SHA256:525591019364543d5694dd09fef3bf2f0b7db69694f959e4298f22f4f9803fef\n";
+static const char expected_final[] = "Z:ttest01:C:344:N:1339:F:795:D:0.691999\n"
+"Y:ReportHash:SHA256:23dd328162c564ada3c4de97446801018ade051aaec3308bb9a7ef8f98041d67\n";
 
 static void
 run_finalize(void)
diff --git a/testsuites/libtests/ttest01/test-plan.c b/testsuites/libtests/ttest01/test-plan.c
index 4a550f3..d7632b8 100644
--- a/testsuites/libtests/ttest01/test-plan.c
+++ b/testsuites/libtests/ttest01/test-plan.c
@@ -34,6 +34,19 @@ T_TEST_CASE(steps)
 	T_step(2);
 }
 
+static T_fixture_node nested_plan_node;
+
+T_TEST_CASE(nested_plan)
+{
+	T_plan(2);
+	T_step(0);
+	T_push_plan(&nested_plan_node, 2);
+	T_step(0);
+	T_step(1);
+	T_pop_plan();
+	T_step(1);
+}
+
 #include "t-self-test.h"
 
 T_TEST_OUTPUT(wrong_step,
@@ -65,6 +78,14 @@ T_TEST_OUTPUT(steps,
 "P:2:0:UI1:test-plan.c:34\n"
 "E:steps:N:3:F:0:D:0.001000\n");
 
+T_TEST_OUTPUT(nested_plan,
+"B:nested_plan\n"
+"P:0:0:UI1:test-plan.c:42\n"
+"P:1.0:0:UI1:test-plan.c:44\n"
+"P:1.1:0:UI1:test-plan.c:45\n"
+"P:1:0:UI1:test-plan.c:47\n"
+"E:nested_plan:N:4:F:0:D:0.001000\n");
+
 /*
  * The license is at the end of the file to be able to use the test code and
  * output in examples in the documentation.  This is also the reason for the



More information about the vc mailing list