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, &registered );
+  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, &registered );
+  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, &registered );
+  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, &registered_worked );
+  directive_failed( status, "rtems_io_register_driver" );
+  puts( "rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL" );
+
+  status = rtems_io_register_driver( 0, &GoodDriver, &registered );
+  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, &registered );
+  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