2007-08-17 Chris Johns <chrisj@rtems.org>

* Makefile.am, README, configure.ac, capture/.cvsignore,
	capture/Makefile.am, capture/capture.doc, capture/capture.scn,
	capture/init.c, capture/system.h, capture/test1.c: Add a sample
	test for the capture engine.
This commit is contained in:
Chris Johns committed 2007-08-17 01:07:10 +00:00
1 parent 1374fd3f07
commit 8db468ffde
11 files changed
+1128 -1

No files matched your search

+7
View File
@@ -1,3 +1,10 @@
2007-08-17 Chris Johns <chrisj@rtems.org>
* Makefile.am, README, configure.ac, capture/.cvsignore,
capture/Makefile.am, capture/capture.doc, capture/capture.scn,
capture/init.c, capture/system.h, capture/test1.c: Add a sample
test for the capture engine.
2007-07-24 Joel Sherrill <joel.sherrill@OARcorp.com>
* nsecs/init.c: Add include of unistd.h for sleep() prototype.
+1 -1
View File
@@ -4,7 +4,7 @@
ACLOCAL_AMFLAGS = -I ../aclocal
SUBDIRS = hello ticker base_sp unlimited minimum fileio
SUBDIRS = hello capture ticker base_sp unlimited minimum fileio
if MPTESTS
## base_mp is a sample multiprocessing test
+11
View File
@@ -42,6 +42,12 @@ The following describes each of the sample applications:
This is intended as a starting point for custom developed single
processor applications.
capture
This simple application starts the monitor and allows you access
to the capture engine. The capture engine provides a trace of
RTEMS activity and is used to debug your application.
cdtest
A very simple C++ application which demonstrates that it is
@@ -70,3 +76,8 @@ The following describes each of the sample applications:
This test has an initialization task create three application
tasks which sleep and periodically wake up and print the time.
unlimited
This is a test for the umlimited object feature of RTEMS. Here
you can configure RTEMS to give as many objects as memory
in the Workspace.
+2
View File
@@ -0,0 +1,2 @@
Makefile
Makefile.in
+26
View File
@@ -0,0 +1,26 @@
##
## $Id$
##
MANAGERS = io event
rtems_tests_PROGRAMS = capture.exe
capture_exe_SOURCES = init.c test1.c system.h
dist_rtems_tests_DATA = capture.scn
dist_rtems_tests_DATA += capture.doc
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../automake/compile.am
include $(top_srcdir)/../automake/leaf.am
unlimited_exe_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
LINK_OBJS = $(capture_exe_OBJECTS) $(capture_exe_LDADD)
LINK_LIBS = $(capture_exe_LDLIBS)
capture.exe$(EXEEXT): $(capture_exe_OBJECTS) $(capture_exe_DEPENDENCIES)
@rm -f capture.exe$(EXEEXT)
$(make-exe)
include $(top_srcdir)/../automake/local.am
File diff suppressed because it is too large. Load diff
+137
View File
@@ -0,0 +1,137 @@
*** CAPTURE ENGING TEST ***
Monitor ready, press enter to login.
rtems $
rtems $ copen 5000
capture engine open
rtems $ cwceil 100
watch ceiling 100.
rtems $ cwfloor 102
watch floor is 102.
rtems $ cwglob on
global watch enabled.
rtems $ ctset RMON
trigger set.
rtems $ cwlist
watch priority ceiling is 100
watch priority floor is 102
global watch is enabled
total 1
00000000 RMON g- T:S------ F:-----
rtems $ cenable
capture engine enabled.
rtems $ ctrace
rtems $ test1
rtems $ ctrace
91.980000 0a010002 RMON 1 1 CREATED_BY
91.980000 0a010003 CT1a 102 102 CREATED
91.980000 0a010002 RMON 1 1 STARTED_BY
91.980000 0a010003 CT1a 102 102 STARTED
91.980000 0a010003 CT1a 102 102 SWITCHED_IN
91.980000 0a010003 CT1a 102 102 BEGIN
91.980000 0a010003 CT1a 102 102 SWITCHED_OUT
92.980000 0a010002 RMON 1 1 CREATED_BY
92.980000 0a010004 CT1b 101 101 CREATED
92.980000 0a010002 RMON 1 1 STARTED_BY
92.980000 0a010004 CT1b 101 101 STARTED
92.980000 0a010004 CT1b 101 101 SWITCHED_IN
92.980000 0a010004 CT1b 101 101 BEGIN
93.980000 0a010004 CT1b 101 101 SWITCHED_OUT
93.980000 0a010002 RMON 1 1 CREATED_BY
93.980000 0a010004 CT1c 100 100 CREATED
93.980000 0a010002 RMON 1 1 STARTED_BY
93.980000 0a010005 CT1c 100 100 STARTED
93.980000 0a010005 CT1c 100 100 SWITCHED_IN
93.980000 0a010005 CT1c 100 100 BEGIN
93.980000 0a010005 CT1c 100 100 SWITCHED_OUT
93.980000 0a010004 CT1b 101 101 SWITCHED_IN
rtems $ ctrace
94.480000 0a010004 CT1b 101 101 SWITCHED_OUT
94.480000 0a010003 CT1a 102 100 SWITCHED_IN
94.480000 0a010003 CT1a 102 102 SWITCHED_OUT
94.480000 0a010005 CT1c 100 100 SWITCHED_IN
94.480000 0a010005 CT1c 100 100 SWITCHED_OUT
94.480000 0a010004 CT1b 101 101 SWITCHED_IN
94.980000 0a010004 CT1b 101 101 SWITCHED_OUT
94.980000 0a010005 CT1c 100 100 SWITCHED_IN
94.980000 0a010005 CT1c 100 100 DETELED_BY
94.980000 0a010005 CT1c 100 100 DETELED
94.980000 0a010004 CT1b 101 101 SWITCHED_IN
94.980000 0a010004 CT1b 101 101 DELETED_BY
94.980000 0a010004 CT1b 101 101 DELETED
94.980000 0a010003 CT1a 102 100 SWITCHED_IN
94.980000 0a010003 CT1a 102 100 DELETED_BY
94.980000 0a010003 CT1a 102 100 DELETED
*** CAPTURE ENGING TEST ***
Monitor ready, press enter to login.
rtems $ copen 5000
capture engine open
rtems $ cenable
capture engine enabled.
rtems $ cwadd CT1c
watch added.
rtems $ cwctl CT1c on
watch enabled.
rtems $ ctset switch CT1c from CT1a
trigger set.
rtems $ cwlist
watch priority ceiling is 0
watch priority floor is 0
global watch is disabled
total 1
00000000 CT1c -w T:------- F:-----
0:CT1a/00000000:S----
rtems $ test1
rtems $ ctrace
61.150000 0a010005 CT1c 100 100 SWITCHED_IN
61.150000 0a010005 CT1c 100 100 SWITCHED_OUT
61.650000 0a010005 CT1c 100 100 SWITCHED_IN
61.650000 0a010005 CT1c 100 100 DELETED_BY
61.650000 0a010005 CT1c 100 100 DELETED
*** CAPTURE ENGING TEST ***
Monitor ready, press enter to login.
rtems $ copen 5000
capture engine open
rtems $ cenable
capture engine enabled.
rtems $ cwadd CT1b
watch added.
rtems $ cwctl CT1b on
watch enabled.
rtems $ ctset switch CT1c from CT1a
trigger set.
rtems $ cwlist
watch priority ceiling is 0
watch priority floor is 0
global watch is disabled
total 2
00000000 CT1c -- T:------- F:-----
0:CT1a/00000000:S----
00000000 CT1b -w T:------- F:-----
rtems $ ctlist
total 2
09010001 IDLE 255 255 255 READY a--- 0% 0% (10682)
0a010002 RMON 1 1 1 READY a--- 0% 0% (826)
rtems $ test1
rtems $ ctlist
total 3
0a010004 CT1b 101 0 0 READY dtw- 100% 0% (200)
09010001 IDLE 255 255 255 READY a--- 0% 0% (10682)
0a010002 RMON 1 1 1 READY a--- 0% 0% (826)
rtems $ ctrace
551.630000 0a010004 CT1b 101 101 SWITCHED_IN
552.130000 0a010004 CT1b 101 101 SWITCHED_OUT
552.130000 0a010004 CT1b 101 101 SWITCHED_IN
552.130000 0a010004 CT1b 101 101 DELETED_BY
552.130000 0a010004 CT1b 101 101 DELETED
rtems $ ctlist
total 2
09010001 IDLE 255 255 255 READY a--- 0% 0% (10682)
0a010002 RMON 1 1 1 READY a--- 0% 0% (826)
+73
View File
@@ -0,0 +1,73 @@
/* Init
*
* This routine is the initialization task for this test program.
* It is called from init_exec and has the responsibility for creating
* and starting the tasks that make up the test. If the time of day
* clock is required for the test, it should also be set to a known
* value by this function.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may in
* the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#define CONFIGURE_INIT
#include "system.h"
#include <stdio.h>
#include <stdlib.h>
#include <rtems.h>
#include <rtems/capture-cli.h>
#include <rtems/monitor.h>
void setup_tasks_to_watch ();
volatile int can_proceed = 1;
rtems_task Init(
rtems_task_argument ignored
)
{
rtems_task_priority old_priority;
rtems_mode old_mode;
rtems_event_set out;
/* lower the task priority to allow created tasks to execute */
rtems_task_set_priority(RTEMS_SELF, 20, &old_priority);
rtems_task_mode(RTEMS_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode);
printf( "\n*** CAPTURE ENGINE TEST ***\n" );
while (!can_proceed)
{
printf ("Sleeping\n");
usleep (1000000);
}
rtems_monitor_init (0);
rtems_capture_cli_init (0);
setup_tasks_to_watch ();
rtems_task_delete (RTEMS_SELF);
printf( "\nblocking main\n" );
rtems_event_receive (RTEMS_EVENT_1, RTEMS_WAIT | RTEMS_EVENT_ANY,
0, &out);
printf( "\n*** END OF UNLIMITED TASK TEST ***\n" );
exit( 0 );
}
+92
View File
@@ -0,0 +1,92 @@
/* system.h
*
* This include file contains information that is included in every
* function in the test set.
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may in
* the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
/* functions */
rtems_task Init(
rtems_task_argument argument
);
rtems_task test_task(
rtems_task_argument my_number
);
void
destory_all_tasks(
const char *who
);
boolean status_code_bad(
rtems_status_code status_code
);
void test1();
void test2();
void test3();
/* configuration information */
#include <bsp.h> /* for device driver prototypes */
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#define TASK_ALLOCATION_SIZE (5)
#define CONFIGURE_MAXIMUM_TASKS rtems_resource_unlimited(TASK_ALLOCATION_SIZE)
#define CONFIGURE_EXTRA_TASK_STACKS (75 * RTEMS_MINIMUM_STACK_SIZE)
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS (5)
#include <rtems/confdefs.h>
/*
* Keep track of the task id's created, use a large array.
*/
#define MAX_TASKS (1000)
#define TASK_INDEX_OFFSET (1)
extern rtems_id task_id[MAX_TASKS];
/*
* Increment the task name.
*/
#define NEXT_TASK_NAME(c1, c2, c3, c4) \
if (c4 == '9') { \
if (c3 == '9') { \
if (c2 == 'z') { \
if (c1 == 'z') { \
printf("not enough task letters for names !!!\n"); \
exit( 1 ); \
} else \
c1++; \
c2 = 'a'; \
} else \
c2++; \
c3 = '0'; \
} else \
c3++; \
c4 = '0'; \
} \
else \
c4++ \
/* end of include file */
File diff suppressed because it is too large. Load diff
+1
View File
@@ -75,5 +75,6 @@ base_mp/node2/Makefile
iostream/Makefile
cdtest/Makefile
pppd/Makefile
capture/Makefile
])
AC_OUTPUT