summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/termios02
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-07 18:33:09 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-07 18:33:09 +0000
commit9f5f6f533c2f68314fc2029081480ef612f8a095 (patch)
treee10b7f9e1ae446b5d10a1d4863f4101c1502d515 /testsuites/libtests/termios02
parent2010-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-9f5f6f533c2f68314fc2029081480ef612f8a095.tar.bz2
2010-06-07 Joel Sherrill <joel.sherrill@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.
Diffstat (limited to 'testsuites/libtests/termios02')
-rw-r--r--testsuites/libtests/termios02/init.c100
-rw-r--r--testsuites/libtests/termios02/termios02.scn21
2 files changed, 114 insertions, 7 deletions
diff --git a/testsuites/libtests/termios02/init.c b/testsuites/libtests/termios02/init.c
index 2ab305c816..4d4ac6beb9 100644
--- a/testsuites/libtests/termios02/init.c
+++ b/testsuites/libtests/termios02/init.c
@@ -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 --git a/testsuites/libtests/termios02/termios02.scn b/testsuites/libtests/termios02/termios02.scn
index 614a6e2fc6..5e29a9cc65 100644
--- a/testsuites/libtests/termios02/termios02.scn
+++ b/testsuites/libtests/termios02/termios02.scn
@@ -3,4 +3,25 @@ tcdrain(12) - EBADF
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 ***