diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-09-16 09:24:52 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-09-16 09:24:52 +0000 |
commit | 11b9b5d0356d924dfcde7652c0616ad987dafaa7 (patch) | |
tree | 795c7113a5a42751877b99c9a2cdb2844dd56227 /testsuites/libtests/termios | |
parent | 2011-09-16 Sebastian Huber <Sebastian.Huber@embedded-brains.de> (diff) | |
download | rtems-11b9b5d0356d924dfcde7652c0616ad987dafaa7.tar.bz2 |
2011-09-16 Sebastian Huber <Sebastian.Huber@embedded-brains.de>
* monitor/monitor.scn, termios/termios.scn: New files.
* monitor/init.c, termios01/init.c: Use rtems_shell_wait_for_input().
Diffstat (limited to 'testsuites/libtests/termios')
-rw-r--r-- | testsuites/libtests/termios/init.c | 115 | ||||
-rw-r--r-- | testsuites/libtests/termios/termios.scn | 22 |
2 files changed, 90 insertions, 47 deletions
diff --git a/testsuites/libtests/termios/init.c b/testsuites/libtests/termios/init.c index 5872135f2b..039f5deb9b 100644 --- a/testsuites/libtests/termios/init.c +++ b/testsuites/libtests/termios/init.c @@ -43,6 +43,7 @@ rtems_task Init (rtems_task_argument argument); #include <rtems/confdefs.h> +#include <rtems/shell.h> #include <stdio.h> #include <unistd.h> @@ -711,6 +712,13 @@ void usage( void ) printf( "Enter your choice (1 to 5 or 9, followed by a carriage return): " ); } +static void notification( int fd, int seconds_remaining, void *arg ) +{ + printf( + "Press any key to check the termios input capabilities (%is remaining)\n", + seconds_remaining + ); +} /* * RTEMS Startup Task @@ -718,61 +726,74 @@ void usage( void ) rtems_task Init (rtems_task_argument ignored) { + rtems_status_code status; char c ; struct termios orig_termios, test_termios; - printf( "\n\n*** TEST OF TERMIOS INPUT CAPABILITIES ***\n" ); - - if( tcgetattr( fileno( stdin ), &orig_termios ) < 0 ) { - perror( "tcgetattr() failed" ); - rtems_test_exit( 0 ); - } + puts( "\n\n*** TEST TERMIOS INPUT CAPABILITIES ***" ); + + status = rtems_shell_wait_for_input( + STDIN_FILENO, + 20, + notification, + NULL + ); + if (status == RTEMS_SUCCESSFUL) { + if( tcgetattr( fileno( stdin ), &orig_termios ) < 0 ) { + perror( "tcgetattr() failed" ); + rtems_test_exit( 0 ); + } - test_termios = orig_termios; + test_termios = orig_termios; - usage(); - for(;;) { - switch( c = getchar() ) { - case '1': - printf( "\nResetting the line to the original termios setting\n\n" ); - test_termios = orig_termios; - if( tcsetattr( fileno( stdin ), TCSADRAIN, &test_termios ) < 0 ) { - perror( "tcsetattr() failed" ); + usage(); + for(;;) { + switch( c = getchar() ) { + case '1': + printf( "\nResetting the line to the original termios setting\n\n" ); + test_termios = orig_termios; + if( tcsetattr( fileno( stdin ), TCSADRAIN, &test_termios ) < 0 ) { + perror( "tcsetattr() failed" ); + rtems_test_exit( 1 ); + } + usage(); + break; + + case '2': + print_termios( &test_termios ); + usage(); + break; + + case '3': + change_line_settings( &test_termios ); + usage(); + break; + + case '4': + canonical_input( &test_termios ); + usage(); + break; + + case '5': + raw_input( &test_termios ); + usage(); + break; + + case '9': rtems_test_exit( 1 ); - } - usage(); - break; - - case '2': - print_termios( &test_termios ); - usage(); - break; - case '3': - change_line_settings( &test_termios ); - usage(); - break; + case '\n': + break; - case '4': - canonical_input( &test_termios ); - usage(); - break; - - case '5': - raw_input( &test_termios ); - usage(); - break; - - case '9': - rtems_test_exit( 1 ); - - case '\n': - break; - - default: - printf( "\n%c is not a valid choice. Try again\n\n", c ); - usage(); - break; + default: + printf( "\n%c is not a valid choice. Try again\n\n", c ); + usage(); + break; + } } + } else { + puts( "*** END OF TEST TERMIOS INPUT CAPABILITIES ***" ); + + rtems_test_exit( 0 ); } } diff --git a/testsuites/libtests/termios/termios.scn b/testsuites/libtests/termios/termios.scn new file mode 100644 index 0000000000..d8b52ada78 --- /dev/null +++ b/testsuites/libtests/termios/termios.scn @@ -0,0 +1,22 @@ +*** TEST TERMIOS INPUT CAPABILITIES *** +Press any key to check the termios input capabilities (20s remaining) +Press any key to check the termios input capabilities (19s remaining) +Press any key to check the termios input capabilities (18s remaining) +Press any key to check the termios input capabilities (17s remaining) +Press any key to check the termios input capabilities (16s remaining) +Press any key to check the termios input capabilities (15s remaining) +Press any key to check the termios input capabilities (14s remaining) +Press any key to check the termios input capabilities (13s remaining) +Press any key to check the termios input capabilities (12s remaining) +Press any key to check the termios input capabilities (11s remaining) +Press any key to check the termios input capabilities (10s remaining) +Press any key to check the termios input capabilities (9s remaining) +Press any key to check the termios input capabilities (8s remaining) +Press any key to check the termios input capabilities (7s remaining) +Press any key to check the termios input capabilities (6s remaining) +Press any key to check the termios input capabilities (5s remaining) +Press any key to check the termios input capabilities (4s remaining) +Press any key to check the termios input capabilities (3s remaining) +Press any key to check the termios input capabilities (2s remaining) +Press any key to check the termios input capabilities (1s remaining) +*** END OF TEST TERMIOS INPUT CAPABILITIES *** |