diff options
-rw-r--r-- | testsuites/libtests/ChangeLog | 9 | ||||
-rw-r--r-- | testsuites/libtests/termios01/init.c | 86 | ||||
-rw-r--r-- | testsuites/libtests/termios01/termios01.scn | 82 | ||||
-rw-r--r-- | testsuites/libtests/termios02/init.c | 100 | ||||
-rw-r--r-- | testsuites/libtests/termios02/termios02.scn | 21 |
5 files changed, 284 insertions, 14 deletions
diff --git a/testsuites/libtests/ChangeLog b/testsuites/libtests/ChangeLog index f838f1e501..78618991bd 100644 --- a/testsuites/libtests/ChangeLog +++ b/testsuites/libtests/ChangeLog @@ -1,3 +1,12 @@ +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. + 2010-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de> * heapwalk/init.c, malloctest/init.c: Update for heap extend changes. diff --git a/testsuites/libtests/termios01/init.c b/testsuites/libtests/termios01/init.c index b28c0f53e1..206d676b51 100644 --- a/testsuites/libtests/termios01/init.c +++ b/testsuites/libtests/termios01/init.c @@ -135,14 +135,17 @@ void test_termios_baud2index(void) 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_set_stop_bits( } } +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 @@ rtems_task Init( 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 --git a/testsuites/libtests/termios01/termios01.scn b/testsuites/libtests/termios01/termios01.scn index 584923fdf6..4c010d842a 100644 --- a/testsuites/libtests/termios01/termios01.scn +++ b/testsuites/libtests/termios01/termios01.scn @@ -196,5 +196,87 @@ tcsetattr(TCSANOW, 2 bits) - OK 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 --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 *** |