change log for rtems (2010-06-07)

rtems-vc at rtems.org rtems-vc at rtems.org
Mon Jun 7 19:11:25 UTC 2010


 *jennifer*:
2010-06-07	Bharath Suri <bharath.s.jois at gmail.com>

	PR PR1542
	* Makefile.am, configure.ac: Coverage improvement: fifo_open.
	* spfifo01/spfifo01.doc, spfifo01/spfifo01.scn, spfifo01/test.c,
	spfifo02/Makefile.am, spfifo02/main.c, spfifo02/spfifo02.doc,
	spfifo02/spfifo02.scn, spfifo02/test.c, spfifo03/Makefile.am,
	spfifo03/main.c, spfifo03/spfifo03.doc, spfifo03/spfifo03.scn,
	spfifo03/test.c, spfifo04/Makefile.am, spfifo04/main.c,
	spfifo04/spfifo04.doc, spfifo04/spfifo04.scn, spfifo04/test.c: New
	files.

M  1.367  testsuites/sptests/ChangeLog
M   1.84  testsuites/sptests/Makefile.am
M   1.89  testsuites/sptests/configure.ac
A    1.1  testsuites/sptests/spfifo01/spfifo01.doc
A    1.1  testsuites/sptests/spfifo01/spfifo01.scn
A    1.1  testsuites/sptests/spfifo01/test.c
A    1.1  testsuites/sptests/spfifo02/Makefile.am
A    1.1  testsuites/sptests/spfifo02/main.c
A    1.1  testsuites/sptests/spfifo02/spfifo02.doc
A    1.1  testsuites/sptests/spfifo02/spfifo02.scn
A    1.1  testsuites/sptests/spfifo02/test.c
A    1.1  testsuites/sptests/spfifo03/Makefile.am
A    1.1  testsuites/sptests/spfifo03/main.c
A    1.1  testsuites/sptests/spfifo03/spfifo03.doc
A    1.1  testsuites/sptests/spfifo03/spfifo03.scn
A    1.1  testsuites/sptests/spfifo03/test.c
A    1.1  testsuites/sptests/spfifo04/Makefile.am
A    1.1  testsuites/sptests/spfifo04/main.c
A    1.1  testsuites/sptests/spfifo04/spfifo04.doc
A    1.1  testsuites/sptests/spfifo04/spfifo04.scn
A    1.1  testsuites/sptests/spfifo04/test.c

diff -u rtems/testsuites/sptests/ChangeLog:1.366 rtems/testsuites/sptests/ChangeLog:1.367
--- rtems/testsuites/sptests/ChangeLog:1.366	Mon Jun  7 04:33:16 2010
+++ rtems/testsuites/sptests/ChangeLog	Mon Jun  7 14:09:27 2010
@@ -1,3 +1,15 @@
+2010-06-07	Bharath Suri <bharath.s.jois at gmail.com>
+
+	PR PR1542
+	* Makefile.am, configure.ac: Coverage improvement: fifo_open.
+	* spfifo01/spfifo01.doc, spfifo01/spfifo01.scn, spfifo01/test.c,
+	spfifo02/Makefile.am, spfifo02/main.c, spfifo02/spfifo02.doc,
+	spfifo02/spfifo02.scn, spfifo02/test.c, spfifo03/Makefile.am,
+	spfifo03/main.c, spfifo03/spfifo03.doc, spfifo03/spfifo03.scn,
+	spfifo03/test.c, spfifo04/Makefile.am, spfifo04/main.c,
+	spfifo04/spfifo04.doc, spfifo04/spfifo04.scn, spfifo04/test.c: New
+	files.
+
 2010-06-07	Sebastian Huber <Sebastian.Huber at embedded-brains.de>
 
 	* sp09/screen12.c: Update for heap extend changes.

diff -u rtems/testsuites/sptests/Makefile.am:1.83 rtems/testsuites/sptests/Makefile.am:1.84
--- rtems/testsuites/sptests/Makefile.am:1.83	Wed Mar 10 12:14:43 2010
+++ rtems/testsuites/sptests/Makefile.am	Mon Jun  7 14:09:27 2010
@@ -18,6 +18,7 @@
     spstkalloc spthreadq01 spwatchdog spwkspace \
     spfatal01 spfatal02 spfatal03 spfatal04 spfatal05 spfatal06 spfatal07 \
     spfatal08 spfatal09 spfatal10 spfatal11 spfatal12 spfatal13 \
+    spfifo01 spfifo02 spfifo03 spfifo04 \
     spintrcritical01 spintrcritical02 spintrcritical03 spintrcritical04 \
     spintrcritical05 spintrcritical06 spintrcritical07 spintrcritical08 \
     spintrcritical09 spintrcritical10 spintrcritical11 spintrcritical12 \

diff -u rtems/testsuites/sptests/configure.ac:1.88 rtems/testsuites/sptests/configure.ac:1.89
--- rtems/testsuites/sptests/configure.ac:1.88	Wed Mar 10 12:14:43 2010
+++ rtems/testsuites/sptests/configure.ac	Mon Jun  7 14:09:27 2010
@@ -111,6 +111,10 @@
 spfatal11/Makefile
 spfatal12/Makefile
 spfatal13/Makefile
+spfifo01/Makefile
+spfifo02/Makefile
+spfifo03/Makefile
+spfifo04/Makefile
 spintrcritical01/Makefile
 spintrcritical02/Makefile
 spintrcritical03/Makefile

diff -u /dev/null rtems/testsuites/sptests/spfifo01/spfifo01.doc:1.1
--- /dev/null	Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo01/spfifo01.doc	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,24 @@
+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes not enabled.
+
+Expected:
+
+With pipes not enabled, the semaphore required for creation of new
+pipe will not be available (this semaphore is created at init if pipes
+are enabled)
+
+With this, fifo_open fails with EINTR

diff -u /dev/null rtems/testsuites/sptests/spfifo01/spfifo01.scn:1.1
--- /dev/null	Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo01/spfifo01.scn	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,29 @@
+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+
+
+
+*** FIFO / PIPE OPEN TEST - 1 ***
+
+
+Configuration: Pipes not enabled
+
+
+Creating directory /tmp
+
+
+Creating fifo /tmp/fifo
+
+
+Attempt to open the fifo file
+
+Must result in failure since pipes are not enabled in the configuration
+
+
+Remove the entry /tmp/fifo01
+
+
+Remove directory /tmp
+
+
+*** END OF FIFO / PIPE OPEN TEST - 1 ***

diff -u /dev/null rtems/testsuites/sptests/spfifo01/test.c:1.1
--- /dev/null	Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo01/test.c	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,73 @@
+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 1 ***");
+  puts(
+"\n\nConfiguration: Pipes not enabled"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file\n");
+  puts(
+       "Must result in failure since \
+pipes are not enabled in the configuration"
+       );
+
+  fd = open("/tmp/fifo01", O_RDONLY);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == EINTR); // Should this
+                                     // be ENOMEM?
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 1 ***");
+}
+  

diff -u /dev/null rtems/testsuites/sptests/spfifo02/Makefile.am:1.1
--- /dev/null	Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/Makefile.am	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,27 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = spfifo02
+spfifo02_SOURCES = main.c test.c
+
+dist_rtems_tests_DATA = spfifo02.scn
+dist_rtems_tests_DATA += spfifo02.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(spfifo02_OBJECTS) $(spfifo02_LDADD)
+LINK_LIBS = $(spfifo02_LDLIBS)
+
+spfifo02$(EXEEXT): $(spfifo02_OBJECTS) $(spfifo02_DEPENDENCIES)
+	@rm -f spfifo02$(EXEEXT)
+	$(make-exe)
+
+include $(top_srcdir)/../automake/local.am

diff -u /dev/null rtems/testsuites/sptests/spfifo02/main.c:1.1
--- /dev/null	Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/main.c	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,50 @@
+/*  Init
+ *
+ *  This routine is the initialization task for this test program.
+ *  It is a user initialization task and has the responsibility
+ *  of invoking the test routine
+ *
+ *  Input parameters:
+ *    not_used
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+/* Includes */
+#include <bsp.h>
+#include <tmacros.h>
+
+void test_main(void);
+
+rtems_task Init(
+  rtems_task_argument not_used
+)
+{
+  test_main();
+  rtems_test_exit(0);
+}
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_PIPES_ENABLED
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+
+/* end of file */

diff -u /dev/null rtems/testsuites/sptests/spfifo02/spfifo02.doc:1.1
--- /dev/null	Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/spfifo02.doc	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,22 @@
+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes enabled. Maximum number of barriers is not defined and hence =
+0.
+
+Expected:
+
+Pipe requires 2 barriers to be created. With max number of barriers
+set to 0, fifo_open fails with EINTR

diff -u /dev/null rtems/testsuites/sptests/spfifo02/spfifo02.scn:1.1
--- /dev/null	Mon Jun  7 14:11:22 2010
+++ rtems/testsuites/sptests/spfifo02/spfifo02.scn	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,31 @@
+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+
+
+
+*** FIFO / PIPE OPEN TEST - 2 ***
+
+
+Configuration: Pipes configured, but number of barriers configured = 0
+
+
+Creating directory /tmp
+
+
+Creating fifo /tmp/fifo
+
+
+Attempt to open the fifo file
+
+Must result in failure since 
+number of barriers = 0 => not all resources
+were acquired
+
+
+Remove the entry /tmp/fifo01
+
+
+Remove directory /tmp
+
+
+*** END OF FIFO / PIPE OPEN TEST - 2 ***

diff -u /dev/null rtems/testsuites/sptests/spfifo02/test.c:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo02/test.c	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,75 @@
+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 2 ***");
+  puts(
+"\n\nConfiguration: Pipes configured, \
+but number of barriers configured = 0"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file\n");
+  puts(
+"Must result in failure since \n\
+number of barriers = 0 => not all resources\n\
+were acquired"
+       );
+
+  fd = open("/tmp/fifo01", O_RDONLY);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == EINTR); // Should this
+                                     // be ENOMEM?
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 2 ***");
+}
+  

diff -u /dev/null rtems/testsuites/sptests/spfifo03/Makefile.am:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/Makefile.am	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,27 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = spfifo03
+spfifo03_SOURCES = main.c test.c
+
+dist_rtems_tests_DATA = spfifo03.scn
+dist_rtems_tests_DATA += spfifo03.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(spfifo03_OBJECTS) $(spfifo03_LDADD)
+LINK_LIBS = $(spfifo03_LDLIBS)
+
+spfifo03$(EXEEXT): $(spfifo03_OBJECTS) $(spfifo03_DEPENDENCIES)
+	@rm -f spfifo03$(EXEEXT)
+	$(make-exe)
+
+include $(top_srcdir)/../automake/local.am

diff -u /dev/null rtems/testsuites/sptests/spfifo03/main.c:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/main.c	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,51 @@
+/*  Init
+ *
+ *  This routine is the initialization task for this test program.
+ *  It is a user initialization task and has the responsibility
+ *  of invoking the test routine
+ *
+ *  Input parameters:
+ *    not_used
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+/* Includes */
+#include <bsp.h>
+#include <tmacros.h>
+
+void test_main(void);
+
+rtems_task Init(
+  rtems_task_argument not_used
+)
+{
+  test_main();
+  rtems_test_exit(0);
+}
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_PIPES_ENABLED
+#define CONFIGURE_INIT
+#define CONFIGURE_MAXIMUM_BARRIERS               1
+
+#include <rtems/confdefs.h>
+
+/* end of file */

diff -u /dev/null rtems/testsuites/sptests/spfifo03/spfifo03.doc:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/spfifo03.doc	Mon Jun  7 14:09:27 2010
@@ -0,0 +1,21 @@
+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes enabled. Maximum number of barriers is set to 1.
+
+Expected:
+
+Pipe requires 2 barriers to be created. With max number of barriers
+set to 1, fifo_open fails with EINTR

diff -u /dev/null rtems/testsuites/sptests/spfifo03/spfifo03.scn:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/spfifo03.scn	Mon Jun  7 14:09:28 2010
@@ -0,0 +1,32 @@
+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+
+
+
+*** FIFO / PIPE OPEN TEST - 3 ***
+
+
+Configuration: Pipes configured, but number of barriers configured = 1
+Required number of barriers = 2
+
+
+Creating directory /tmp
+
+
+Creating fifo /tmp/fifo
+
+
+Attempt to open the fifo file
+
+Must result in failure since 
+number of barriers = 1 => not all resources
+were acquired
+
+
+Remove the entry /tmp/fifo01
+
+
+Remove directory /tmp
+
+
+*** END OF FIFO / PIPE OPEN TEST - 3 ***

diff -u /dev/null rtems/testsuites/sptests/spfifo03/test.c:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo03/test.c	Mon Jun  7 14:09:28 2010
@@ -0,0 +1,76 @@
+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 3 ***");
+  puts(
+"\n\nConfiguration: Pipes configured, \
+but number of barriers configured = 1\n\
+Required number of barriers = 2"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file\n");
+  puts(
+"Must result in failure since \n\
+number of barriers = 1 => not all resources\n\
+were acquired"
+       );
+
+  fd = open("/tmp/fifo01", O_RDONLY);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == EINTR); // Should this
+                                     // be ENOMEM?
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 3 ***");
+}
+  

diff -u /dev/null rtems/testsuites/sptests/spfifo04/Makefile.am:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/Makefile.am	Mon Jun  7 14:09:28 2010
@@ -0,0 +1,26 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = spfifo04
+spfifo04_SOURCES = main.c test.c
+
+dist_rtems_tests_DATA = spfifo04.scn
+dist_rtems_tests_DATA += spfifo04.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(spfifo04_OBJECTS) $(spfifo04_LDADD)
+LINK_LIBS = $(spfifo04_LDLIBS)
+
+spfifo04$(EXEEXT): $(spfifo04_OBJECTS) $(spfifo04_DEPENDENCIES)
+	@rm -f spfifo04$(EXEEXT)
+	$(make-exe)
+
+include $(top_srcdir)/../automake/local.am

diff -u /dev/null rtems/testsuites/sptests/spfifo04/main.c:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/main.c	Mon Jun  7 14:09:28 2010
@@ -0,0 +1,51 @@
+/*  Init
+ *
+ *  This routine is the initialization task for this test program.
+ *  It is a user initialization task and has the responsibility
+ *  of invoking the test routine
+ *
+ *  Input parameters:
+ *    not_used
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+/* Includes */
+#include <bsp.h>
+#include <tmacros.h>
+
+void test_main(void);
+
+rtems_task Init(
+  rtems_task_argument not_used
+)
+{
+  test_main();
+  rtems_test_exit(0);
+}
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_PIPES_ENABLED
+#define CONFIGURE_INIT
+#define CONFIGURE_MAXIMUM_BARRIERS               2
+
+#include <rtems/confdefs.h>
+
+/* end of file */

diff -u /dev/null rtems/testsuites/sptests/spfifo04/spfifo04.doc:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/spfifo04.doc	Mon Jun  7 14:09:28 2010
@@ -0,0 +1,51 @@
+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-1999.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+Configuration:
+
+Pipes enabled.
+Maximum number of barriers is set to 2.
+
+Coverage concepts:
+
+With number of barriers set to 2, and provided there is sufficient
+memory available, fifo_open -> pipe_new must be able to create a new
+pipe_control_t successfully.
+
+This test
+
+- Creates a directory /tmp
+- Creates a fifo file /tmp/fifo01
+
+- Opens the fifo in read-write mode, covering one of the cases of the
+  switch statement (this should be successful)
+- Closes the fifo
+
+- Opens the file in read-only, non-blocing mode, covering another case
+  of the switch (this should be successful)
+- Closes the fifo
+
+- Opens the file in write-only, non-blocking mode, covering yet
+  another case in the switch. (this should not be successful, instead,
+  since we opened the fifo in a WRONLY and NONBLOCK mode, we receive
+  an ENXIO error)
+
+- fifo_open (pipe_new) maintains a static character variable, which it
+  uses to create semaphores and barriers. The value of this character
+  goes from a -> z -> a -> z... To hit the case where z is wrapped
+  back to a, fifo_open must be called a minimum total of 26
+  times. This is achieved by repeated opens on the fifo file created.
+- After every successful open, the file is closed
+
+- Remove fifo file
+- Remove tmp directory

diff -u /dev/null rtems/testsuites/sptests/spfifo04/spfifo04.scn:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/spfifo04.scn	Mon Jun  7 14:09:28 2010
@@ -0,0 +1,50 @@
+Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
+Initialized console on port COM1 9600-8-N-1
+
+
+
+*** FIFO / PIPE OPEN TEST - 4 ***
+
+
+Configuration: Pipes configured, but number of barriers configured = 2
+
+
+
+Creating directory /tmp
+
+
+Creating fifo /tmp/fifo
+
+
+Attempt to open the fifo file in RDWR mode
+
+Should be successful and non-negativefile descriptor expected
+
+
+Closing the fifo file
+
+
+Attempt to open the fifo file in RDONLY and NONBLOCK mode
+
+Should be successful and non-negativefile descriptor expected
+
+
+Closing the fifo file
+
+
+Attempt to open the fifo file in WRONLY and NONBLOCK mode
+
+Should return with an error ENXIO
+
+
+Multiple opens
+
+1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 
+
+Remove the entry /tmp/fifo01
+
+
+Remove directory /tmp
+
+
+*** END OF FIFO / PIPE OPEN TEST - 4 ***

diff -u /dev/null rtems/testsuites/sptests/spfifo04/test.c:1.1
--- /dev/null	Mon Jun  7 14:11:23 2010
+++ rtems/testsuites/sptests/spfifo04/test.c	Mon Jun  7 14:09:28 2010
@@ -0,0 +1,117 @@
+/*  test_main
+ *
+ *  This routine serves as a test routine.
+ *  Exercises the fifo_open
+ *
+ *  Input parameters:   NONE
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989-1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+/* Includes */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <tmacros.h>
+#include <rtems.h>
+#include <rtems/libio.h>
+
+#define NUM_OPEN_REQ        26
+
+void test_main(void)
+{
+
+  int status = -1;
+  int fd = 0;
+  int index = 0;
+  int num_opens = 0;
+
+  puts("\n\n*** FIFO / PIPE OPEN TEST - 4 ***");
+  puts(
+"\n\nConfiguration: Pipes configured, \
+but number of barriers configured = 2\n"
+       );
+
+  puts("\n\nCreating directory /tmp");
+  status = mkdir("/tmp", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nCreating fifo /tmp/fifo");
+  status = mkfifo("/tmp/fifo01", 0777);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file in RDWR mode\n");
+  puts("Should be successful and non-negative\
+file descriptor expected");
+
+  fd = open("/tmp/fifo01", O_RDWR);
+  rtems_test_assert(fd > 0);
+  ++num_opens;
+
+  puts("\n\nClosing the fifo file");
+  status = close(fd);
+  rtems_test_assert(status == 0);
+
+  puts("\n\nAttempt to open the fifo file in \
+RDONLY and NONBLOCK mode\n");
+  puts("Should be successful and non-negative\
+file descriptor expected");
+
+  fd = open("/tmp/fifo01", O_RDONLY | O_NONBLOCK);
+  rtems_test_assert(fd > 0);
+  ++num_opens;
+
+  puts("\n\nClosing the fifo file");
+  status = close(fd);
+  rtems_test_assert(status == 0);
+  
+  puts("\n\nAttempt to open the fifo file in \
+WRONLY and NONBLOCK mode\n");
+  puts("Should return with an error ENXIO");
+
+  fd = open("/tmp/fifo01", O_WRONLY | O_NONBLOCK);
+  rtems_test_assert(fd == -1);
+  rtems_test_assert(errno == ENXIO);
+  ++num_opens;
+
+  // Number of attempts to open fifo till now = 3
+  // Number of attempts to move the static char
+  // from 'a' -> 'z' = 26
+  // => Number of opens required = 23
+  puts("\n\nMultiple opens\n");
+  for(index = 0; index < NUM_OPEN_REQ - num_opens; ++index) {
+
+    fd = open("/tmp/fifo01", O_RDONLY | O_NONBLOCK);
+    rtems_test_assert(fd > 0);
+
+    status = close(fd);
+    rtems_test_assert(status == 0);
+
+    printf("%d... ", index+1);
+  }
+
+  puts("\n\nRemove the entry /tmp/fifo01");
+  status = unlink("/tmp/fifo01");
+  rtems_test_assert(status == 0);
+
+  puts("\n\nRemove directory /tmp");
+  status = rmdir("/tmp");
+  rtems_test_assert(status == 0);
+
+  puts("\n\n*** END OF FIFO / PIPE OPEN TEST - 4 ***");
+}
+


 *joel*:
2010-06-07	Joel Sherrill <joel.sherrill at oarcorp.com>

	* termios01/init.c, termios01/termios01.scn, termios02/init.c,
	termios02/termios02.scn: Add tests for cfigetspeed(), cfogetspeed(),
	cfisetspeed(), cfosetspeed(), ctermid(), tcflow(), tcflush(),
	tcsendbreak(), tcsetpgrp(), and tcgetpgrp(). Some of these methods
	are minimal implementations so the tests will have to grow as the
	methods grow.

M  1.178  testsuites/libtests/ChangeLog
M    1.9  testsuites/libtests/termios01/init.c
M    1.3  testsuites/libtests/termios01/termios01.scn
M    1.3  testsuites/libtests/termios02/init.c
M    1.2  testsuites/libtests/termios02/termios02.scn

diff -u rtems/testsuites/libtests/ChangeLog:1.177 rtems/testsuites/libtests/ChangeLog:1.178
--- rtems/testsuites/libtests/ChangeLog:1.177	Mon Jun  7 04:33:32 2010
+++ rtems/testsuites/libtests/ChangeLog	Mon Jun  7 13:33:09 2010
@@ -1,3 +1,12 @@
+2010-06-07	Joel Sherrill <joel.sherrill at oarcorp.com>
+
+	* termios01/init.c, termios01/termios01.scn, termios02/init.c,
+	termios02/termios02.scn: Add tests for cfigetspeed(), cfogetspeed(),
+	cfisetspeed(), cfosetspeed(), ctermid(), tcflow(), tcflush(),
+	tcsendbreak(), tcsetpgrp(), and tcgetpgrp(). Some of these methods
+	are minimal implementations so the tests will have to grow as the
+	methods grow.
+
 2010-06-07	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* heapwalk/init.c, malloctest/init.c: Update for heap extend changes.

diff -u rtems/testsuites/libtests/termios01/init.c:1.8 rtems/testsuites/libtests/termios01/init.c:1.9
--- rtems/testsuites/libtests/termios01/init.c:1.8	Thu Dec 10 20:12:57 2009
+++ rtems/testsuites/libtests/termios01/init.c	Mon Jun  7 13:33:09 2010
@@ -135,14 +135,17 @@
   rtems_test_assert( i == -1 );
 
   if ( i != -1 )
-  for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
-    printf( "termios_baud_to_index(B%" PRIdrtems_termios_baud_t ") - OK\n", baud_table[i].baud );
-    index = rtems_termios_baud_to_index( baud_table[i].constant );
-    if ( index != i ) {
-      printf( "ERROR - returned %d should be %d\n", index, i );
-      rtems_test_exit(0);
+    for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
+      printf(
+        "termios_baud_to_index(B%" PRIdrtems_termios_baud_t ") - OK\n",
+        baud_table[i].baud
+      );
+      index = rtems_termios_baud_to_index( baud_table[i].constant );
+      if ( index != i ) {
+        printf( "ERROR - returned %d should be %d\n", index, i );
+        rtems_test_exit(0);
+      }
     }
-  }
 }
 
 /*
@@ -377,6 +380,71 @@
   }
 }
 
+void test_termios_cfoutspeed(void)
+{
+  int i;
+  int sc;
+  speed_t speed;
+  struct termios term;
+  tcflag_t        bad;
+
+  bad = CBAUD << 1;
+  memset( &term, '\0', sizeof(term) );
+  puts( "cfsetospeed(BAD BAUD) - EINVAL" );
+  sc = cfsetospeed( &term, bad );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno == EINVAL );
+
+  for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
+    memset( &term, '\0', sizeof(term) );
+    printf(
+      "cfsetospeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    sc = cfsetospeed( &term, baud_table[i].constant );
+    rtems_test_assert( !sc );
+    printf(
+      "cfgetospeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    speed = cfgetospeed( &term );
+    rtems_test_assert( speed == baud_table[i].constant );
+  }
+}
+
+void test_termios_cfinspeed(void)
+{
+  int             i;
+  int             sc;
+  speed_t         speed;
+  struct termios  term;
+  tcflag_t        bad;
+
+  bad = CBAUD << 1;
+  memset( &term, '\0', sizeof(term) );
+  puts( "cfsetispeed(BAD BAUD) - EINVAL" );
+  sc = cfsetispeed( &term, bad );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno == EINVAL );
+
+  for (i=0 ; baud_table[i].constant != -1 ; i++ ) {
+    memset( &term, '\0', sizeof(term) );
+    printf(
+      "cfsetispeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    sc = cfsetispeed( &term, baud_table[i].constant );
+    rtems_test_assert( !sc );
+
+    printf(
+      "cfgetispeed(B%" PRIdrtems_termios_baud_t ") - OK\n",
+      baud_table[i].baud
+    );
+    speed = cfgetispeed( &term );
+    rtems_test_assert( speed == baud_table[i].constant );
+  }
+}
+
 rtems_task Init(
   rtems_task_argument ignored
 )
@@ -481,6 +549,10 @@
 
   test_termios_set_stop_bits(test);
 
+  test_termios_cfoutspeed();
+
+  test_termios_cfinspeed();
+
   puts( "Init - close - " TERMIOS_TEST_DRIVER_DEVICE_NAME " - OK" );
   rc = close( test );
   if ( rc != 0 ) {

diff -u rtems/testsuites/libtests/termios01/termios01.scn:1.2 rtems/testsuites/libtests/termios01/termios01.scn:1.3
--- rtems/testsuites/libtests/termios01/termios01.scn:1.2	Sat Aug 15 17:29:38 2009
+++ rtems/testsuites/libtests/termios01/termios01.scn	Mon Jun  7 13:33:09 2010
@@ -196,5 +196,87 @@
 set_attributes - B38400 8-NONE-2
 tcsetattr(TCSADRAIN, 2 bits) - OK
 set_attributes - B38400 8-NONE-2
+cfsetospeed(BAD BAUD) - EINVAL
+cfsetospeed(B0) - OK
+cfgetospeed(B0) - OK
+cfsetospeed(B50) - OK
+cfgetospeed(B50) - OK
+cfsetospeed(B75) - OK
+cfgetospeed(B75) - OK
+cfsetospeed(B110) - OK
+cfgetospeed(B110) - OK
+cfsetospeed(B134) - OK
+cfgetospeed(B134) - OK
+cfsetospeed(B150) - OK
+cfgetospeed(B150) - OK
+cfsetospeed(B200) - OK
+cfgetospeed(B200) - OK
+cfsetospeed(B300) - OK
+cfgetospeed(B300) - OK
+cfsetospeed(B600) - OK
+cfgetospeed(B600) - OK
+cfsetospeed(B1200) - OK
+cfgetospeed(B1200) - OK
+cfsetospeed(B1800) - OK
+cfgetospeed(B1800) - OK
+cfsetospeed(B2400) - OK
+cfgetospeed(B2400) - OK
+cfsetospeed(B4800) - OK
+cfgetospeed(B4800) - OK
+cfsetospeed(B9600) - OK
+cfgetospeed(B9600) - OK
+cfsetospeed(B19200) - OK
+cfgetospeed(B19200) - OK
+cfsetospeed(B38400) - OK
+cfgetospeed(B38400) - OK
+cfsetospeed(B57600) - OK
+cfgetospeed(B57600) - OK
+cfsetospeed(B115200) - OK
+cfgetospeed(B115200) - OK
+cfsetospeed(B230400) - OK
+cfgetospeed(B230400) - OK
+cfsetospeed(B460800) - OK
+cfgetospeed(B460800) - OK
+cfsetispeed(BAD BAUD) - EINVAL
+cfsetispeed(B0) - OK
+cfgetispeed(B0) - OK
+cfsetispeed(B50) - OK
+cfgetispeed(B50) - OK
+cfsetispeed(B75) - OK
+cfgetispeed(B75) - OK
+cfsetispeed(B110) - OK
+cfgetispeed(B110) - OK
+cfsetispeed(B134) - OK
+cfgetispeed(B134) - OK
+cfsetispeed(B150) - OK
+cfgetispeed(B150) - OK
+cfsetispeed(B200) - OK
+cfgetispeed(B200) - OK
+cfsetispeed(B300) - OK
+cfgetispeed(B300) - OK
+cfsetispeed(B600) - OK
+cfgetispeed(B600) - OK
+cfsetispeed(B1200) - OK
+cfgetispeed(B1200) - OK
+cfsetispeed(B1800) - OK
+cfgetispeed(B1800) - OK
+cfsetispeed(B2400) - OK
+cfgetispeed(B2400) - OK
+cfsetispeed(B4800) - OK
+cfgetispeed(B4800) - OK
+cfsetispeed(B9600) - OK
+cfgetispeed(B9600) - OK
+cfsetispeed(B19200) - OK
+cfgetispeed(B19200) - OK
+cfsetispeed(B38400) - OK
+cfgetispeed(B38400) - OK
+cfsetispeed(B57600) - OK
+cfgetispeed(B57600) - OK
+cfsetispeed(B115200) - OK
+cfgetispeed(B115200) - OK
+cfsetispeed(B230400) - OK
+cfgetispeed(B230400) - OK
+cfsetispeed(B460800) - OK
+cfgetispeed(B460800) - OK
 Init - close - /dev/test - OK
 *** END OF TEST TERMIOS 01 ***

diff -u rtems/testsuites/libtests/termios02/init.c:1.2 rtems/testsuites/libtests/termios02/init.c:1.3
--- rtems/testsuites/libtests/termios02/init.c:1.2	Tue Dec  8 11:52:49 2009
+++ rtems/testsuites/libtests/termios02/init.c	Mon Jun  7 13:33:09 2010
@@ -1,5 +1,5 @@
 /*
- *  COPYRIGHT (c) 1989-2009.
+ *  COPYRIGHT (c) 1989-2010.
  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
@@ -12,33 +12,119 @@
 #include "tmacros.h"
 #include <termios.h>
 #include <errno.h>
+#include <unistd.h>
 
 rtems_task Init(
   rtems_task_argument ignored
 )
 {
   int sc;
+  pid_t pid;
+  char *term_name_p;
+  char term_name[32];
 
-  printf( "\n\n*** TERMIOS 02 TEST ***\n" );
+  puts( "\n\n*** TERMIOS 02 TEST ***" );
 
-  printf( "tcdrain(12) - EBADF\n" );
+  puts( "tcdrain(12) - EBADF" );
   sc = tcdrain(12);
   rtems_test_assert( sc == -1 );
   rtems_test_assert( errno == EBADF );
 
-  printf( "tcdrain(stdin) - OK\n" );
+  puts( "tcdrain(stdin) - OK" );
   sc = tcdrain(0);
   rtems_test_assert( !sc );
 
-  printf( "tcdrain(stdout) - OK\n" );
+  puts( "tcdrain(stdout) - OK" );
   tcdrain(1);
   rtems_test_assert( !sc );
 
-  printf( "tcdrain(stderr) - OK\n" );
+  puts( "tcdrain(stderr) - OK" );
   tcdrain(2);
   rtems_test_assert( !sc );
 
-  printf( "*** END OF TERMIOS 02 TEST ***\n" );
+  puts( "" ); 
+
+  /***** TEST TCFLOW *****/
+  puts( "tcflow(stdin, TCOOFF) - ENOTSUP" );
+  sc = tcflow( 0, TCOOFF );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, TCOON) - ENOTSUP" );
+  sc = tcflow( 0, TCOON );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, TCIOFF) - ENOTSUP" );
+  sc = tcflow( 0, TCIOFF );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, TCION) - ENOTSUP" );
+  sc = tcflow( 0, TCION );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflow(stdin, 22) - EINVAL" );
+  sc = tcflow( 0, 22 );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = EINVAL );
+
+  puts( "" ); 
+
+  /***** TEST TCFLUSH *****/
+  puts( "tcflush(stdin, TCIFLUSH) - ENOTSUP" );
+  sc = tcflush( 0, TCIFLUSH );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflush(stdin, TCOFLUSH) - ENOTSUP" );
+  sc = tcflush( 0, TCOFLUSH );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflush(stdin, TCIOFLUSH) - ENOTSUP" );
+  sc = tcflush( 0, TCIOFLUSH );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = ENOTSUP );
+
+  puts( "tcflush(stdin, 22) - EINVAL" );
+  sc = tcflush( 0, 22 );
+  rtems_test_assert( sc == -1 );
+  rtems_test_assert( errno = EINVAL );
+
+  puts( "" );
+
+  /***** TEST TCGETPGRP *****/
+  puts( "tcgetpgrp( 1 ) - OK" );
+  pid = tcgetpgrp(1);
+  rtems_test_assert( pid == getpid() );
+
+  puts( "tcsetpgrp( 1, 3 ) - OK" );
+  sc = tcsetpgrp( 1, 3 );
+  rtems_test_assert( !sc );
+
+  puts( "" );
+
+  /***** TEST TCSENDBREAK *****/
+  puts( "tcsendbreak( 1, 0 ) - OK" );
+  sc = tcsendbreak( 1, 0 );
+  rtems_test_assert( !sc );
+
+  puts( "" );
+
+  /***** TEST CTERMID *****/
+  puts( "ctermid( NULL ) - OK" );
+  term_name_p = ctermid( NULL );
+  rtems_test_assert( term_name_p );
+  printf( "ctermid ==> %s\n", term_name_p );
+
+  puts( "ctermid( term_name ) - OK" );
+  term_name_p = ctermid( term_name );
+  rtems_test_assert( term_name_p == term_name );
+  printf( "ctermid ==> %s\n", term_name_p );
+
+  puts( "*** END OF TERMIOS 02 TEST ***" );
   exit( 0 );
 }
 

diff -u rtems/testsuites/libtests/termios02/termios02.scn:1.1 rtems/testsuites/libtests/termios02/termios02.scn:1.2
--- rtems/testsuites/libtests/termios02/termios02.scn:1.1	Thu Oct  1 18:52:36 2009
+++ rtems/testsuites/libtests/termios02/termios02.scn	Mon Jun  7 13:33:09 2010
@@ -3,4 +3,25 @@
 tcdrain(stdin) - OK
 tcdrain(stdout) - OK
 tcdrain(stderr) - OK
+
+tcflow(stdin, TCOOFF) - ENOTSUP
+tcflow(stdin, TCOON) - ENOTSUP
+tcflow(stdin, TCIOFF) - ENOTSUP
+tcflow(stdin, TCION) - ENOTSUP
+tcflow(stdin, 22) - EINVAL
+
+tcflush(stdin, TCIFLUSH) - ENOTSUP
+tcflush(stdin, TCOFLUSH) - ENOTSUP
+tcflush(stdin, TCIOFLUSH) - ENOTSUP
+tcflush(stdin, 22) - EINVAL
+
+tcgetpgrp( 1 ) - OK
+tcsetpgrp( 1, 3 ) - OK
+
+tcsendbreak( 1, 0 ) - OK
+
+ctermid( NULL ) - OK
+ctermid ==> /dev/console
+ctermid( term_name ) - OK
+ctermid ==> /dev/console
 *** END OF TERMIOS 02 TEST ***


 *joel*:
2010-06-07	Joel Sherrill <joel.sherrill at oarcorp.com>

	* libcsupport/src/tcflow.c, libcsupport/src/tcflush.c: Add switches
	to detect bad input.
	* libcsupport/src/tcsetpgrp.c: Fix typo.

M 1.2350  cpukit/ChangeLog
M    1.9  cpukit/libcsupport/src/tcflow.c
M    1.7  cpukit/libcsupport/src/tcflush.c
M    1.7  cpukit/libcsupport/src/tcsetpgrp.c

diff -u rtems/cpukit/ChangeLog:1.2349 rtems/cpukit/ChangeLog:1.2350
--- rtems/cpukit/ChangeLog:1.2349	Mon Jun  7 10:35:22 2010
+++ rtems/cpukit/ChangeLog	Mon Jun  7 13:37:16 2010
@@ -1,3 +1,9 @@
+2010-06-07	Joel Sherrill <joel.sherrill at oarcorp.com>
+
+	* libcsupport/src/tcflow.c, libcsupport/src/tcflush.c: Add switches
+	to detect bad input.
+	* libcsupport/src/tcsetpgrp.c: Fix typo.
+
 2010-06-07	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* libcsupport/include/rtems/libio_.h: Declare

diff -u rtems/cpukit/libcsupport/src/tcflow.c:1.8 rtems/cpukit/libcsupport/src/tcflow.c:1.9
--- rtems/cpukit/libcsupport/src/tcflow.c:1.8	Sun Nov 29 07:35:32 2009
+++ rtems/cpukit/libcsupport/src/tcflow.c	Mon Jun  7 13:37:16 2010
@@ -1,7 +1,7 @@
 /*
  *  tcflow() - POSIX 1003.1b 7.2.2 - Line Control Functions
  *
- *  COPYRIGHT (c) 1989-1999.
+ *  COPYRIGHT (c) 1989-2010.
  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
@@ -18,12 +18,27 @@
 #if defined(RTEMS_NEWLIB)
 #include <termios.h>
 #include <unistd.h>
+#include <errno.h>
+#include <rtems/seterr.h>
 
 int tcflow (
   int fd __attribute__((unused)),
-  int action __attribute__((unused)))
+  int action
+)
 {
-  return 0;
+  switch (action) {
+    case TCOOFF:
+    case TCOON:
+    case TCIOFF:
+    case TCION:
+    default:
+      rtems_set_errno_and_return_minus_one( EINVAL );
+  }
+
+  /* fd is not validated */
+
+  /* When this is supported, implement it here */
+  rtems_set_errno_and_return_minus_one( ENOTSUP );
 }
 
 #endif

diff -u rtems/cpukit/libcsupport/src/tcflush.c:1.6 rtems/cpukit/libcsupport/src/tcflush.c:1.7
--- rtems/cpukit/libcsupport/src/tcflush.c:1.6	Tue Sep 15 04:42:46 2009
+++ rtems/cpukit/libcsupport/src/tcflush.c	Mon Jun  7 13:37:16 2010
@@ -1,7 +1,7 @@
 /*
  *  tcflush() - POSIX 1003.1b 7.2.2 - Line Control Functions
  *
- *  COPYRIGHT (c) 1989-1999.
+ *  COPYRIGHT (c) 1989-2010.
  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
@@ -24,12 +24,26 @@
 #include <termios.h>
 /* #include <sys/ioctl.h> */
 
+#include <rtems/seterr.h>
 #include <rtems/libio.h>
 
 int tcflush (
   int fd __attribute__((unused)),
-  int queue __attribute__((unused)) )
+  int queue
+)
 {
+  switch (queue) {
+    case TCIFLUSH:
+    case TCOFLUSH:
+    case TCIOFLUSH:
+    default:
+      rtems_set_errno_and_return_minus_one( EINVAL );
+  }
+
+  /* fd is not validated */
+
+  /* When this is supported, implement it here */
+  rtems_set_errno_and_return_minus_one( ENOTSUP );
   return 0;
 }
 

diff -u rtems/cpukit/libcsupport/src/tcsetpgrp.c:1.6 rtems/cpukit/libcsupport/src/tcsetpgrp.c:1.7
--- rtems/cpukit/libcsupport/src/tcsetpgrp.c:1.6	Tue Sep 15 04:42:46 2009
+++ rtems/cpukit/libcsupport/src/tcsetpgrp.c	Mon Jun  7 13:37:16 2010
@@ -1,7 +1,7 @@
 /*
  *  tcsetprgrp() - POSIX 1003.1b 7.2.4 - Set Foreground Process Group ID
  *
- *  COPYRIGHT (c) 1989-1999.
+ *  COPYRIGHT (c) 1989-2010.
  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
@@ -26,7 +26,7 @@
 
 #include <rtems/libio.h>
 
-int tcsetprgrp(
+int tcsetpgrp(
   int fd __attribute__((unused)),
   pid_t pid __attribute__((unused)) )
 {



--

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/20100607/287fcad7/attachment.html>


More information about the vc mailing list