change log for rtems (2010-07-06)
rtems-vc at rtems.org
rtems-vc at rtems.org
Tue Jul 6 23:13:39 UTC 2010
*joel*:
2010-07-06 Joel Sherrill <joel.sherrilL at OARcorp.com>
* sp21/Makefile.am, sp21/init.c, sp21/sp21.scn: Add
rtems_io_lookup_name() and simplify test.
* sp21/system.h, sp21/task1.c: Removed.
M 1.394 testsuites/sptests/ChangeLog
M 1.25 testsuites/sptests/sp21/Makefile.am
M 1.11 testsuites/sptests/sp21/init.c
M 1.3 testsuites/sptests/sp21/sp21.scn
R 1.15 testsuites/sptests/sp21/system.h
R 1.17 testsuites/sptests/sp21/task1.c
diff -u rtems/testsuites/sptests/ChangeLog:1.393 rtems/testsuites/sptests/ChangeLog:1.394
--- rtems/testsuites/sptests/ChangeLog:1.393 Mon Jul 5 20:53:08 2010
+++ rtems/testsuites/sptests/ChangeLog Tue Jul 6 17:27:22 2010
@@ -1,3 +1,9 @@
+2010-07-06 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * sp21/Makefile.am, sp21/init.c, sp21/sp21.scn: Add
+ rtems_io_lookup_name() and simplify test.
+ * sp21/system.h, sp21/task1.c: Removed.
+
2010-07-05 Joel Sherrill <joel.sherrill at oarcorp.com>
* Makefile.am, configure.ac: Add new fatal error test for termios
diff -u rtems/testsuites/sptests/sp21/Makefile.am:1.24 rtems/testsuites/sptests/sp21/Makefile.am:1.25
--- rtems/testsuites/sptests/sp21/Makefile.am:1.24 Fri Apr 3 07:48:12 2009
+++ rtems/testsuites/sptests/sp21/Makefile.am Tue Jul 6 17:27:23 2010
@@ -2,10 +2,8 @@
## $Id$
##
-MANAGERS = io semaphore clock
-
rtems_tests_PROGRAMS = sp21
-sp21_SOURCES = init.c task1.c system.h
+sp21_SOURCES = init.c
dist_rtems_tests_DATA = sp21.scn
dist_rtems_tests_DATA += sp21.doc
@@ -14,8 +12,6 @@
include $(top_srcdir)/../automake/compile.am
include $(top_srcdir)/../automake/leaf.am
-sp21_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
-
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
LINK_OBJS = $(sp21_OBJECTS) $(sp21_LDADD)
diff -u rtems/testsuites/sptests/sp21/init.c:1.10 rtems/testsuites/sptests/sp21/init.c:1.11
--- rtems/testsuites/sptests/sp21/init.c:1.10 Thu Jan 31 18:45:11 2008
+++ rtems/testsuites/sptests/sp21/init.c Tue Jul 6 17:27:23 2010
@@ -1,17 +1,5 @@
-/* Init
- *
- * This routine is the initialization task for this test program.
- * It is a user initialization task 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:
- * argument - task argument
- *
- * Output parameters: NONE
- *
- * COPYRIGHT (c) 1989-1999.
+/*
+ * COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -21,32 +9,217 @@
* $Id$
*/
-#define CONFIGURE_INIT
-#include "system.h"
+#include <tmacros.h>
+#include <rtems/devnull.h>
+
+
+#define PRIurtems_device_major_number PRIu32
+
+#define STUB_DRIVER_MAJOR 0x2
+#define NO_DRIVER_MAJOR 0x3
+#define INVALID_DRIVER_MAJOR \
+ (rtems_configuration_get_number_of_device_drivers() + 1)
+
+/* driver entries to use with io_register */
+rtems_driver_address_table GoodDriver = DEVNULL_DRIVER_TABLE_ENTRY;
+rtems_driver_address_table BadDriver_Nothing = {
+ NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+void do_test_io_manager(void)
+{
+ rtems_status_code status;
+ rtems_device_major_number registered;
+ rtems_device_major_number registered_worked;
+
+ puts( "----- TESTING THE NULL DRIVER CHECKS -----" );
+
+ status = rtems_io_initialize( NO_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_initialize" );
+ puts( "rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_open( NO_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_open" );
+ puts( "rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_close( NO_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_close" );
+ puts( "rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_read( NO_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_read" );
+ puts( "rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_write( NO_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_write" );
+ puts( "rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_control( NO_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_control" );
+ puts( "rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+ puts( "----- TESTING THE I/O MANAGER DIRECTIVES -----" );
+
+ status = rtems_io_initialize( STUB_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_initialize" );
+ puts( "rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_open( STUB_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_open" );
+ puts( "rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_close( STUB_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_close" );
+ puts( "rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_read( STUB_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_read" );
+ puts( "rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_write( STUB_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_write" );
+ puts( "rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+ status = rtems_io_control( STUB_DRIVER_MAJOR, 0, NULL );
+ directive_failed( status, "rtems_io_control" );
+ puts( "rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+ /*
+ * Invalid major number
+ */
+ puts( "----- RETURNING INVALID MAJOR NUMBER -----" );
+
+ status = rtems_io_initialize( INVALID_DRIVER_MAJOR, 0, NULL );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_NUMBER,
+ "rtems_io_initialize"
+ );
+ puts( "rtems_io_initialize - RTEMS_INVALID_NUMBER" );
+
+ status = rtems_io_open( INVALID_DRIVER_MAJOR, 0, NULL );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_NUMBER,
+ "rtems_io_open"
+ );
+ puts( "rtems_io_open - RTEMS_INVALID_NUMBER" );
+
+ /*
+ * Exercise the io register driver directive
+ */
+ puts( "----- EXERCISE DRIVER REGISTER -----" );
+
+ status = rtems_io_register_driver( 0, &GoodDriver, NULL );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_ADDRESS,
+ "rtems_io_register_driver"
+ );
+ puts(
+ "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered"
+ );
+
+ status = rtems_io_register_driver( 0, NULL, ®istered );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_ADDRESS,
+ "rtems_io_register_driver"
+ );
+ puts(
+ "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device"
+ );
+
+ status = rtems_io_register_driver( 0, &BadDriver_Nothing, ®istered );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_ADDRESS,
+ "rtems_io_register_driver"
+ );
+ puts(
+ "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts"
+ );
+
+ status = rtems_io_register_driver(
+ INVALID_DRIVER_MAJOR, &GoodDriver, ®istered );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_NUMBER,
+ "rtems_io_register_driver"
+ );
+ puts( "rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major" );
+
+ /* this has to succeed to overwrite NULL driver entry required above. */
+ status = rtems_io_register_driver( 0, &GoodDriver, ®istered_worked );
+ directive_failed( status, "rtems_io_register_driver" );
+ puts( "rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL" );
+
+ status = rtems_io_register_driver( 0, &GoodDriver, ®istered );
+ if ( status == RTEMS_SUCCESSFUL )
+ printf(
+ "registered major = %" PRIurtems_device_major_number "\n", registered );
+ fatal_directive_status(
+ status,
+ RTEMS_TOO_MANY,
+ "rtems_io_register_driver"
+ );
+ puts( "rtems_io_register_driver - RTEMS_TOO_MANY - no slots" );
+
+ /* there should be a driver at major 1 -- clock, console, or stub */
+ status = rtems_io_register_driver( 1, &GoodDriver, ®istered );
+ fatal_directive_status(
+ status,
+ RTEMS_RESOURCE_IN_USE,
+ "rtems_io_register_driver"
+ );
+ puts(
+ "rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use"
+ );
+
+ /* this should unregister the device driver we registered above */
+ status = rtems_io_unregister_driver( registered_worked );
+ directive_failed( status, "rtems_io_unregister_driver" );
+ puts( "rtems_io_unregister_driver - RTEMS_SUCCESSFUL" );
+}
+
+void do_test_io_lookup_name(void)
+{
+ rtems_status_code sc;
+ rtems_driver_name_t info;
+
+ puts( "rtems_io_lookup_name( \"\", &info )" );
+ sc = rtems_io_lookup_name( "", &info );
+ fatal_directive_status( sc, RTEMS_UNSATISFIED, "lookup empty string" );
+
+ puts( "rtems_io_lookup_name( \"/dev/null\", &info )" );
+ sc = rtems_io_lookup_name( "/dev/null", &info );
+ directive_failed( sc, "lookup /dev/null" );
+}
rtems_task Init(
rtems_task_argument argument
)
{
- rtems_status_code status;
-
puts( "\n\n*** TEST 21 ***" );
- Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
-
- status = rtems_task_create(
- Task_name[ 1 ],
- 1,
- RTEMS_MINIMUM_STACK_SIZE,
- RTEMS_DEFAULT_MODES,
- RTEMS_DEFAULT_ATTRIBUTES,
- &Task_id[ 1 ]
- );
- directive_failed( status, "rtems_task_create of TA1" );
+ do_test_io_manager();
- status = rtems_task_start( Task_id[ 1 ], Task_1, 0 );
- directive_failed( status, "rtems_task_start of TA1" );
+ do_test_io_lookup_name();
- status = rtems_task_delete( RTEMS_SELF );
- directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
+ puts( "*** END OF TEST 21 ***" );
+ rtems_test_exit( 0 );
}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+/* end of file */
diff -u rtems/testsuites/sptests/sp21/sp21.scn:1.2 rtems/testsuites/sptests/sp21/sp21.scn:1.3
--- rtems/testsuites/sptests/sp21/sp21.scn:1.2 Tue May 29 13:37:45 2007
+++ rtems/testsuites/sptests/sp21/sp21.scn Tue Jul 6 17:27:23 2010
@@ -1,28 +1,30 @@
*** TEST 21 ***
----- TESTING THE NULL DRIVER CHECKS -----
-TA1 - rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_initialize - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_open - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_close - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_read - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_write - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_control - NULL DRIVER RTEMS_SUCCESSFUL
----- TESTING THE I/O MANAGER DIRECTIVES -----
-TA1 - rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_initialize - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_open - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_close - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_read - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_write - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_control - STUB DRIVER RTEMS_SUCCESSFUL
----- RETURNING INVALID MAJOR NUMBER -----
-TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER
-TA1 - rtems_io_open - RTEMS_INVALID_NUMBER
+rtems_io_initialize - RTEMS_INVALID_NUMBER
+rtems_io_open - RTEMS_INVALID_NUMBER
----- EXERCISE DRIVER REGISTER -----
-TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered
-TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device
-TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts
-TA1 - rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major
-TA1 - rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL
-TA1 - rtems_io_register_driver - RTEMS_TOO_MANY - no slots
-TA1 - rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use
-TA1 - rtems_io_unregister_driver - RTEMS_SUCCESSFUL
+rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered
+rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device
+rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts
+rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major
+rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL
+rtems_io_register_driver - RTEMS_TOO_MANY - no slots
+rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use
+rtems_io_unregister_driver - RTEMS_SUCCESSFUL
+rtems_io_lookup_name( "", &info )
+rtems_io_lookup_name( "/dev/null", &info )
*** END OF TEST 21 ***
*joel*:
2010-07-06 Joel Sherrill <joel.sherrilL at OARcorp.com>
* libfs/src/imfs/ioman.c: Remove unneeded operation check.
M 1.2492 cpukit/ChangeLog
M 1.20 cpukit/libfs/src/imfs/ioman.c
diff -u rtems/cpukit/ChangeLog:1.2491 rtems/cpukit/ChangeLog:1.2492
--- rtems/cpukit/ChangeLog:1.2491 Tue Jul 6 02:56:13 2010
+++ rtems/cpukit/ChangeLog Tue Jul 6 17:32:23 2010
@@ -1,3 +1,7 @@
+2010-07-06 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * libfs/src/imfs/ioman.c: Remove unneeded operation check.
+
2010-07-06 Sebastian Huber <sebastian.huber at embedded-brains.de>
* score/src/isrthreaddispatch.c: Removed file.
diff -u rtems/cpukit/libfs/src/imfs/ioman.c:1.19 rtems/cpukit/libfs/src/imfs/ioman.c:1.20
--- rtems/cpukit/libfs/src/imfs/ioman.c:1.19 Thu Jun 24 16:31:22 2010
+++ rtems/cpukit/libfs/src/imfs/ioman.c Tue Jul 6 17:32:23 2010
@@ -71,14 +71,10 @@
int result;
rtems_filesystem_node_types_t node_type;
- result = rtems_filesystem_evaluate_path( name, strlen( name ), 0x00, &loc, true );
+ result = rtems_filesystem_evaluate_path(
+ name, strlen( name ), 0x00, &loc, true );
the_jnode = loc.node_access;
- if ( !loc.ops->node_type_h ) {
- rtems_filesystem_freenode( &loc );
- rtems_set_errno_and_return_minus_one( ENOTSUP );
- }
-
node_type = (*loc.ops->node_type_h)( &loc );
if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {
*joel*:
2010-07-06 Joel Sherrill <joel.sherrilL at OARcorp.com>
* sp21/init.c, sp21/sp21.scn: Tidy up with one last case to get 100%
coverage of rtems_io_lookup_name().
M 1.395 testsuites/sptests/ChangeLog
M 1.12 testsuites/sptests/sp21/init.c
M 1.4 testsuites/sptests/sp21/sp21.scn
diff -u rtems/testsuites/sptests/ChangeLog:1.394 rtems/testsuites/sptests/ChangeLog:1.395
--- rtems/testsuites/sptests/ChangeLog:1.394 Tue Jul 6 17:27:22 2010
+++ rtems/testsuites/sptests/ChangeLog Tue Jul 6 17:56:48 2010
@@ -1,5 +1,10 @@
2010-07-06 Joel Sherrill <joel.sherrilL at OARcorp.com>
+ * sp21/init.c, sp21/sp21.scn: Tidy up with one last case to get 100%
+ coverage of rtems_io_lookup_name().
+
+2010-07-06 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
* sp21/Makefile.am, sp21/init.c, sp21/sp21.scn: Add
rtems_io_lookup_name() and simplify test.
* sp21/system.h, sp21/task1.c: Removed.
diff -u rtems/testsuites/sptests/sp21/init.c:1.11 rtems/testsuites/sptests/sp21/init.c:1.12
--- rtems/testsuites/sptests/sp21/init.c:1.11 Tue Jul 6 17:27:23 2010
+++ rtems/testsuites/sptests/sp21/init.c Tue Jul 6 17:56:48 2010
@@ -187,11 +187,15 @@
rtems_status_code sc;
rtems_driver_name_t info;
- puts( "rtems_io_lookup_name( \"\", &info )" );
+ puts( "rtems_io_lookup_name( \"\", &info ) - RTEMS_UNSATISFIED" );
sc = rtems_io_lookup_name( "", &info );
fatal_directive_status( sc, RTEMS_UNSATISFIED, "lookup empty string" );
- puts( "rtems_io_lookup_name( \"/dev/null\", &info )" );
+ puts( "rtems_io_lookup_name( \"/dev\", &info ) - RTEMS_UNSATISFIED" );
+ sc = rtems_io_lookup_name( "/dev", &info );
+ fatal_directive_status( sc, RTEMS_UNSATISFIED, "lookup empty string" );
+
+ puts( "rtems_io_lookup_name( \"/dev/null\", &info ) - RTEMS_SUCCESSFUL" );
sc = rtems_io_lookup_name( "/dev/null", &info );
directive_failed( sc, "lookup /dev/null" );
}
diff -u rtems/testsuites/sptests/sp21/sp21.scn:1.3 rtems/testsuites/sptests/sp21/sp21.scn:1.4
--- rtems/testsuites/sptests/sp21/sp21.scn:1.3 Tue Jul 6 17:27:23 2010
+++ rtems/testsuites/sptests/sp21/sp21.scn Tue Jul 6 17:56:48 2010
@@ -25,6 +25,7 @@
rtems_io_register_driver - RTEMS_TOO_MANY - no slots
rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use
rtems_io_unregister_driver - RTEMS_SUCCESSFUL
-rtems_io_lookup_name( "", &info )
-rtems_io_lookup_name( "/dev/null", &info )
+rtems_io_lookup_name( "", &info ) - RTEMS_UNSATISFIED
+rtems_io_lookup_name( "/dev", &info ) - RTEMS_UNSATISFIED
+rtems_io_lookup_name( "/dev/null", &info ) - RTEMS_SUCCESSFUL
*** END OF TEST 21 ***
--
Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100706/b63e79b4/attachment.html>
More information about the vc
mailing list