summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testsuites/libtests/rtems++/Task1.cc150
-rw-r--r--testsuites/libtests/rtems++/rtems++.scn55
2 files changed, 104 insertions, 101 deletions
diff --git a/testsuites/libtests/rtems++/Task1.cc b/testsuites/libtests/rtems++/Task1.cc
index 67cbf6ebb0..e26b0d5d60 100644
--- a/testsuites/libtests/rtems++/Task1.cc
+++ b/testsuites/libtests/rtems++/Task1.cc
@@ -48,42 +48,42 @@
void Task1::body(rtems_task_argument argument)
{
rtems_test_pause_and_screen_number(1);
-
- printf(" * START Task Class test *\n");
-
+
+ printf(" START Task Class test\n");
+
printf("%s - test argument - ", name_string());
if (argument != 0xDEADDEAD)
printf("argument is not 0xDEADDEAD\n");
else
printf("argument matched\n");
-
+
screen1();
rtems_test_pause_and_screen_number(2);
screen2();
rtems_test_pause_and_screen_number(3);
-
+
screen3();
rtems_test_pause_and_screen_number(4);
-
+
screen4();
rtems_test_pause_and_screen_number(5);
-
+
screen5();
rtems_test_pause_and_screen_number(6);
-
+
screen6();
// do not call exit(0) from this thread as this object is static
// the static destructor call delete the task which is calling exit
// so exit never completes
-
+
EndTask end_task("ENDT", (rtems_task_priority) 1, RTEMS_MINIMUM_STACK_SIZE * 6);
end_task.start(0);
rtemsEvent block_me;
rtems_event_set out;
-
+
block_me.receive(RTEMS_SIGNAL_0, out);
printf("**** TASK 1 did not block ????\n");
@@ -96,7 +96,7 @@ void Task1::screen1(void)
rtemsTask local_task_2;
local_task_2 = *this;
-
+
// check the copy constructor works
printf("%s - copy constructor - ", name_string());
if (local_task_1.id_is() == id_is())
@@ -121,27 +121,27 @@ void Task1::screen1(void)
printf("local and this name's match\n");
else
printf("local and this name's do not match\n");
-
+
// check that the owner of the id cannot delete this task
printf("%s - not owner destroy's task - ", local_task_1.name_string());
local_task_1.destroy();
printf("%s\n", local_task_1.last_status_string());
-
+
// connect to a valid task
printf("%s - connect to a local valid task name - ", local_task_2.name_string());
local_task_2.connect("TA1 ", RTEMS_SEARCH_ALL_NODES);
printf("%s\n", local_task_2.last_status_string());
-
+
// connect to an invalid task
printf("%s - connect to an invalid task name - ", local_task_2.name_string());
local_task_2.connect("BADT", RTEMS_SEARCH_ALL_NODES);
printf("%s\n", local_task_2.last_status_string());
-
+
// connect to a task an invalid node
printf("%s - connect to a task on an invalid node - ", local_task_2.name_string());
local_task_2.connect("BADT", 10);
printf("%s\n", local_task_2.last_status_string());
-
+
// restart this task
printf("%s - restart from a non-owner - ", name_string());
local_task_1.restart(0);
@@ -151,15 +151,15 @@ void Task1::screen1(void)
void Task1::screen2(void)
{
// wake after using this object
-
+
printf("%s - wake after 0 secs - ", name_string());
wake_after(0);
printf("%s\n", last_status_string());
-
+
printf("%s - wake after 500 msecs - ", name_string());
wake_after(500000);
printf("%s\n", last_status_string());
-
+
printf("%s - wake after 5 secs - ", name_string());
wake_after(5000000);
printf("%s\n", last_status_string());
@@ -167,17 +167,17 @@ void Task1::screen2(void)
printf("%s - wake when - to do\n", name_string());
rtemsTask task_1 = *this;
-
+
// wake after using a connected object
-
+
printf("%s - connected object wake after 0 secs - ", task_1.name_string());
task_1.wake_after(0);
printf("%s\n", task_1.last_status_string());
-
+
printf("%s - connected object wake after 500 msecs - ", task_1.name_string());
task_1.wake_after(500000);
printf("%s\n", task_1.last_status_string());
-
+
printf("%s - connected object wake after 5 secs - ", task_1.name_string());
task_1.wake_after(5000000);
printf("%s\n", task_1.last_status_string());
@@ -185,17 +185,17 @@ void Task1::screen2(void)
printf("%s - connected object wake when - to do\n", task_1.name_string());
rtemsTask task_2;
-
+
// wake after using a self object
-
+
printf("%s - self object wake after 0 secs - ", task_2.name_string());
task_2.wake_after(0);
printf("%s\n", task_2.last_status_string());
-
+
printf("%s - self object wake after 500 msecs - ", task_2.name_string());
task_2.wake_after(500000);
printf("%s\n", task_2.last_status_string());
-
+
printf("%s - self object wake after 5 secs - ", task_2.name_string());
task_2.wake_after(5000000);
printf("%s\n", task_2.last_status_string());
@@ -206,7 +206,7 @@ void Task1::screen2(void)
rtems_task_priority priority;
// priorities with this object
-
+
printf("%s - get priority - ", name_string());
get_priority(current_priority);
printf("%s, priority is %" PRIirtems_task_priority "\n", last_status_string(), current_priority);
@@ -224,7 +224,7 @@ void Task1::screen2(void)
printf("%s, priority was %" PRIirtems_task_priority "\n", last_status_string(), priority);
// priorities with connected object
-
+
printf("%s - connected object get priority - ", task_1.name_string());
task_1.get_priority(current_priority);
printf("%s, priority is %" PRIirtems_task_priority "\n", task_1.last_status_string(), current_priority);
@@ -239,10 +239,10 @@ void Task1::screen2(void)
printf("%s - connected object set priority to original - ", task_1.name_string());
task_1.set_priority(current_priority, priority);
- printf("%s, priority was %" PRIirtems_task_priority "\n", task_1.last_status_string(), priority);
+ printf("%s, priority was %" PRIirtems_task_priority "\n", task_1.last_status_string(), priority);
// priorities with self object
-
+
printf("%s - self object get priority - ", task_2.name_string());
task_2.get_priority(current_priority);
printf("%s, priority is %" PRIirtems_task_priority "\n", task_2.last_status_string(), current_priority);
@@ -261,7 +261,7 @@ void Task1::screen2(void)
uint32_t current_note;
uint32_t note;
-
+
// notepad registers for this object
printf("%s - get note - ", name_string());
@@ -328,7 +328,7 @@ void Task1::screen2(void)
task_2.set_note(0, current_note);
printf("%s\n", task_2.last_status_string());
- printf(" * END Task Class test *\n");
+ printf(" END Task Class test\n");
}
#define RTEMS_ALL_MODES (RTEMS_PREEMPT_MASK | \
@@ -338,7 +338,7 @@ void Task1::screen2(void)
void Task1::screen3(void)
{
- printf(" * START TaskMode Class test *\n");
+ printf(" START TaskMode Class test\n");
rtemsTask self;
rtemsTaskMode task_mode;
@@ -352,20 +352,20 @@ void Task1::screen3(void)
printf("\n");
// PREEMPTION mode control
-
+
printf("%s - get preemption state - ", self.name_string());
task_mode.get_preemption_state(mode);
printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
print_mode(mode, RTEMS_PREEMPT_MASK);
printf("\n");
-
+
printf("%s - set preemption state to RTEMS_PREEMPT - ", self.name_string());
task_mode.set_preemption_state(RTEMS_PREEMPT);
task_mode.get_mode(mode);
printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
print_mode(mode, RTEMS_ALL_MODES);
printf("\n");
-
+
printf("%s - set preemption state to RTEMS_NO_PREEMPT - ", self.name_string());
task_mode.set_preemption_state(RTEMS_NO_PREEMPT);
task_mode.get_mode(mode);
@@ -374,20 +374,20 @@ void Task1::screen3(void)
printf("\n");
// TIMESLICE mode control
-
+
printf("%s - get timeslice state - ", self.name_string());
task_mode.get_timeslice_state(mode);
printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
print_mode(mode, RTEMS_TIMESLICE_MASK);
printf("\n");
-
+
printf("%s - set timeslice state to RTEMS_TIMESLICE - ", self.name_string());
task_mode.set_timeslice_state(RTEMS_TIMESLICE);
task_mode.get_mode(mode);
printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
print_mode(mode, RTEMS_ALL_MODES);
printf("\n");
-
+
printf("%s - set timeslice state to RTEMS_NO_TIMESLICE - ", self.name_string());
task_mode.set_timeslice_state(RTEMS_NO_TIMESLICE);
task_mode.get_mode(mode);
@@ -396,20 +396,20 @@ void Task1::screen3(void)
printf("\n");
// ASR mode control
-
+
printf("%s - get asr state - ", self.name_string());
task_mode.get_asr_state(mode);
printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
print_mode(mode, RTEMS_ASR_MASK);
printf("\n");
-
+
printf("%s - set asr state to RTEMS_ASR - ", self.name_string());
task_mode.set_asr_state(RTEMS_ASR);
task_mode.get_mode(mode);
printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
print_mode(mode, RTEMS_ALL_MODES);
printf("\n");
-
+
printf("%s - set asr state to RTEMS_NO_ASR - ", self.name_string());
task_mode.set_asr_state(RTEMS_NO_ASR);
task_mode.get_mode(mode);
@@ -418,7 +418,7 @@ void Task1::screen3(void)
printf("\n");
// interrupt level control
-
+
rtems_interrupt_level current_level;
rtems_interrupt_level level;
@@ -429,7 +429,7 @@ void Task1::screen3(void)
printf("%s - set interrupt level to 102 - ", self.name_string());
task_mode.set_interrupt_level(102);
printf("%s\n", task_mode.last_status_string());
-
+
printf("%s - set interrupt level to original level - ", self.name_string());
task_mode.set_interrupt_level(current_level, level);
printf("%s, level was %" PRIirtems_interrupt_level "\n", task_mode.last_status_string(), level);
@@ -442,13 +442,13 @@ void Task1::screen3(void)
printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
print_mode(mode, RTEMS_ALL_MODES);
printf("\n");
-
- printf(" * END TaskMode Class test *\n");
+
+ printf(" END TaskMode Class test\n");
}
void Task1::screen4(void)
{
- printf(" * START Event Class test *\n");
+ printf(" START Event Class test\n");
printf("%s - create task 2 - ", name_string());
Task2 task_2("TA2", (rtems_task_priority) 9, RTEMS_MINIMUM_STACK_SIZE * 6);
@@ -457,7 +457,7 @@ void Task1::screen4(void)
printf("%s - start task 2 - ", name_string());
task_2.start(0);
printf("%s\n", task_2.last_status_string());
-
+
printf("%s - construct event connecting to task 2 - ", name_string());
rtemsEvent event_2("TA2 ");
printf("%s\n", event_2.last_status_string());
@@ -468,47 +468,47 @@ void Task1::screen4(void)
printf("%s - send event signal 0 using the task id - ", name_string());
event_2.send(task_2.id_is(), RTEMS_SIGNAL_0);
printf("%s\n", event_2.last_status_string());
-
+
wake_after(1000000);
printf("%s - send event signal 0 using the task object reference - ", name_string());
event_2.send(task_2, RTEMS_SIGNAL_0);
printf("%s\n", event_2.last_status_string());
-
+
wake_after(1000000);
printf("%s - send event signal 31 using connected id - ", name_string());
event_2.send(RTEMS_SIGNAL_31);
printf("%s\n", event_2.last_status_string());
-
+
wake_after(1000000);
rtemsEvent event_2_2;
event_2_2.connect("TA2");
-
+
printf("%s - send event signal 0 and 31 - ", name_string());
event_2_2.send(task_2, RTEMS_SIGNAL_0 | RTEMS_SIGNAL_31);
printf("%s\n", event_2_2.last_status_string());
-
+
printf("%s - waiting 5 secs for TA2 to finish\n", name_string());
wake_after(500000);
-
- printf(" * END Event Class test *\n");
+
+ printf(" END Event Class test\n");
}
void Task1::screen5(void)
{
- printf(" * START Interrupt Class test *\n");
+ printf(" START Interrupt Class test\n");
printf(" do not know a portable BSP type interrupt test\n");
- printf(" * END Interrupt Class test *\n");
+ printf(" END Interrupt Class test\n");
}
void Task1::screen6(void)
{
- printf(" * START MessageQueue Class test *\n");
+ printf(" START MessageQueue Class test\n");
printf("%s - construct message queue 1 with no memory error - ", name_string());
rtemsMessageQueue mq_1("MQ1", 1000000, 1000);
@@ -523,15 +523,15 @@ void Task1::screen6(void)
char in[100];
size_t size;
uint32_t count;
-
+
printf("%s - send u1 to mq_2 - ", name_string());
mq_2.send(u1, strlen(u1) + 1);
printf("%s\n", mq_2.last_status_string());
-
+
printf("%s - urgent send u2 to mq_2 - ", name_string());
mq_2.urgent(u2, strlen(u2) + 1);
printf("%s\n", mq_2.last_status_string());
-
+
printf("%s - create task 3_1 - ", name_string());
Task3 task_3_1("TA31", 9, RTEMS_MINIMUM_STACK_SIZE * 6);
printf("%s\n", task_3_1.last_status_string());
@@ -539,7 +539,7 @@ void Task1::screen6(void)
printf("%s - start task 3_1 - ", name_string());
task_3_1.start(0);
printf("%s\n", task_3_1.last_status_string());
-
+
printf("%s - create task 3_2 - ", name_string());
Task3 task_3_2("TA32", 9, RTEMS_MINIMUM_STACK_SIZE * 6);
printf("%s\n", task_3_2.last_status_string());
@@ -547,9 +547,9 @@ void Task1::screen6(void)
printf("%s - start task 3_2 - ", name_string());
task_3_2.start(0);
printf("%s\n", task_3_1.last_status_string());
-
+
wake_after(1000000);
-
+
printf("%s - receive u2 on mq_2 ...\n", name_string()); fflush(stdout);
mq_2.receive(in, size, 5000000);
printf("%s - %s\n", name_string(), mq_2.last_status_string());
@@ -591,16 +591,16 @@ void Task1::screen6(void)
printf("%s - message u1 size incorrect, size=%zu\n", name_string(), size);
wake_after(3000000);
-
+
const char *b1 = "broadcast message";
-
+
printf("%s - broadcast send b1 ...\n", name_string());
mq_2.broadcast(b1, strlen(b1) + 1, count);
printf("%s - mq_2 broadcast send - %s, count=%" PRIi32 "\n",
name_string(), mq_2.last_status_string(), count);
wake_after(1000000);
-
+
printf("%s - receive message b1 on mq_2 from %s...\n",
name_string(), task_3_1.name_string()); fflush(stdout);
mq_2.receive(in, size, 5000000);
@@ -645,18 +645,18 @@ void Task1::screen6(void)
// wait for task 3_1, and 3_2 to complete their timeout tests, will
// start these after getting the broadcast message
- wake_after(7000000);
+ wake_after(7000000);
const char *f1 = "flush message";
-
+
printf("%s - send f1 to mq_2 - ", name_string());
mq_2.send(f1, strlen(f1) + 1);
printf("%s\n", mq_2.last_status_string());
-
+
printf("%s - send f1 to mq_2 - ", name_string());
mq_2.send(f1, strlen(f1) + 1);
printf("%s\n", mq_2.last_status_string());
-
+
printf("%s - send f1 to mq_2 - ", name_string());
mq_2.send(f1, strlen(f1) + 1);
printf("%s\n", mq_2.last_status_string());
@@ -664,8 +664,8 @@ void Task1::screen6(void)
printf("%s - flush mq_2 - ", name_string());
mq_2.flush(count);
printf("%s, flushed=%" PRIi32 "\n", mq_2.last_status_string(), count);
-
- printf(" * END MessageQueue Class test *\n");
+
+ printf(" END MessageQueue Class test\n");
}
void Task1::print_mode(rtems_mode mode, rtems_mode mask)
@@ -691,7 +691,7 @@ EndTask::EndTask(const char* name,
: rtemsTask(name, initial_priority, stack_size, RTEMS_NO_PREEMPT)
{
}
-
+
void EndTask::body(rtems_task_argument)
{
printf("*** END OF RTEMS++ TEST ***\n");
diff --git a/testsuites/libtests/rtems++/rtems++.scn b/testsuites/libtests/rtems++/rtems++.scn
index 2b3682d6b6..f87d0e2906 100644
--- a/testsuites/libtests/rtems++/rtems++.scn
+++ b/testsuites/libtests/rtems++/rtems++.scn
@@ -1,11 +1,14 @@
+
+
*** RTEMS++ TEST ***
INIT - Task.create() - RTEMS[19] invalid thread priority
INIT - Task.create() - RTEMS[00] successful completion
INIT - Task.create() - RTEMS[16] illegal on calling thread
INIT - Task.restart() - RTEMS[14] thread is in wrong state
INIT - Task.start(0xDEADDEAD) - RTEMS[00] successful completion
+INIT - Destroy it's self
<pause - screen 1>
- * START Task Class test *
+ START Task Class test
TA1 - test argument - argument matched
TA1 - copy constructor - local and this id's match
TA1 - copy constructor - local and this name's match
@@ -14,7 +17,7 @@ TA1 - copy operator - local and this name's match
TA1 - not owner destroy's task - RTEMS[23] not owner of resource
TA1 - connect to a local valid task name - RTEMS[00] successful completion
TA1 - connect to an invalid task name - RTEMS[03] invalid object name
-SELF - connect to a task on an invalid node - RTEMS[21] invalid node id
+SELF - connect to a task on an invalid node - RTEMS[03] invalid object name
TA1 - restart from a non-owner - RTEMS[23] not owner of resource
<pause - screen 2>
TA1 - wake after 0 secs - RTEMS[00] successful completion
@@ -56,37 +59,37 @@ SELF - self object get with bad notepad number - RTEMS[10] number was invalid, n
SELF - self object set note to 0xDEADBEEF - RTEMS[00] successful completion
SELF - self object get note - RTEMS[00] successful completion, notepad is 0xDEADBEEF
SELF - self object set note to original value - RTEMS[00] successful completion
- * END Task Class test *
+ END Task Class test
<pause - screen 3>
- * START TaskMode Class test *
+ START TaskMode Class test
SELF - get mode - RTEMS[00] successful completion,
- mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0
+ mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
SELF - get preemption state - RTEMS[00] successful completion,
- mode is 0x00000100, RTEMS_NO_PREEMPT
+ mode is 0x00000100, RTEMS_NO_PREEMPT
SELF - set preemption state to RTEMS_PREEMPT - RTEMS[00] successful completion,
- mode is 0x00000000, RTEMS_PREEMPT RTEMS_TIMESLICE RTEMS_NO_ASR INTMASK=0
+ mode is 0x00000400, RTEMS_PREEMPT RTEMS_TIMESLICE RTEMS_ASR INTMASK=0
SELF - set preemption state to RTEMS_NO_PREEMPT - RTEMS[00] successful completion,
- mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0
+ mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
SELF - get timeslice state - RTEMS[00] successful completion,
- mode is 0x00000000, RTEMS_TIMESLICE
+ mode is 0x00000000, RTEMS_TIMESLICE
SELF - set timeslice state to RTEMS_TIMESLICE - RTEMS[00] successful completion,
- mode is 0x00000300, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0
+ mode is 0x00000700, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
SELF - set timeslice state to RTEMS_NO_TIMESLICE - RTEMS[00] successful completion,
- mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0
+ mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
SELF - get asr state - RTEMS[00] successful completion,
- mode is 0x00000000, RTEMS_NO_ASR
+ mode is 0x00000400, RTEMS_ASR
SELF - set asr state to RTEMS_ASR - RTEMS[00] successful completion,
mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0
SELF - set asr state to RTEMS_NO_ASR - RTEMS[00] successful completion,
mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
SELF - get current interrupt level - RTEMS[00] successful completion, level is 0
SELF - set interrupt level to 102 - RTEMS[00] successful completion
-SELF - set interrupt level to original level - RTEMS[00] successful completion, level was 0
+SELF - set interrupt level to original level - RTEMS[00] successful completion, level was 6
SELF - set mode to original mode - RTEMS[00] successful completion,
- mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0
- * END TaskMode Class test *
+ mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
+ END TaskMode Class test
<pause - screen 4>
- * START Event Class test *
+ START Event Class test
TA1 - create task 2 - RTEMS[00] successful completion
TA1 - start task 2 - RTEMS[00] successful completion
TA1 - construct event connecting to task 2 - RTEMS[00] successful completion
@@ -107,15 +110,15 @@ TA1 - waiting 5 secs for TA2 to finish
TA2 - RTEMS[00] successful completion, signals out are 0x80000001
TA2 - send event signal 1 - RTEMS[00] successful completion
TA2 - event wait forever for signal 1 from TA2 - RTEMS[00] successful completion, signals out are 0x00000002
-TA2 - destory itself
- * END Event Class test *
+TA2 - destroy itself
+ END Event Class test
<pause - screen 5>
- * START Interrupt Class test *
+ START Interrupt Class test
do not know a portable BSP type interrupt test
- * END Interrupt Class test *
+ END Interrupt Class test
<pause - screen 6>
- * START MessageQueue Class test *
-TA1 - construct message queue 1 with no memory error - RTEMS[05] too many
+ START MessageQueue Class test
+TA1 - construct message queue 1 with no memory error - RTEMS[13] request not satisfied
TA1 - construct/create message queue 2 - RTEMS[00] successful completion
TA1 - send u1 to mq_2 - RTEMS[00] successful completion
TA1 - urgent send u2 to mq_2 - RTEMS[00] successful completion
@@ -143,10 +146,10 @@ TA1 - broadcast send b1 ...
TA1 - mq_2 broadcast send - RTEMS[00] successful completion, count=2
TA31 - mq_2 receive - RTEMS[00] successful completion, size=18, message string size=17
TA31 - loopback to mq_2 - RTEMS[00] successful completion
-TA31 - destory itself
+TA31 - destroy itself
TA32 - mq_2 receive - RTEMS[00] successful completion, size=18, message string size=17
TA32 - loopback to mq_2 - RTEMS[00] successful completion
-TA32 - destory itself
+TA32 - destroy itself
TA1 - receive message b1 on mq_2 from TA31...
TA1 - RTEMS[00] successful completion
TA1 - message b1 received correctly
@@ -157,5 +160,5 @@ TA1 - send f1 to mq_2 - RTEMS[00] successful completion
TA1 - send f1 to mq_2 - RTEMS[00] successful completion
TA1 - send f1 to mq_2 - RTEMS[00] successful completion
TA1 - flush mq_2 - RTEMS[00] successful completion, flushed=3
- * END MessageQueue Class test *
-<pause - screen 7>
+ END MessageQueue Class test
+*** END OF RTEMS++ TEST ***