Home | History | Annotate | Line # | Download | only in libcurses
t_curses.sh revision 1.31
      1 h_run()
      2 {
      3 	TEST_LOCALE=en_US.UTF-8
      4 
      5 	file=$1
      6 	locale=`locale -a | grep -i ${TEST_LOCALE}`
      7 	if [ -z "${locale}" ]; then
      8 		atf_fail "test ${file} failed because locale ${locale} not available"
      9 	else
     10 		# export the locale and shift the parameters by two and pass the rest
     11 		export LC_ALL=$locale
     12 		shift
     13 		r_run $file $@
     14 	fi
     15 }
     16 
     17 r_run()
     18 {
     19 	file="$(atf_get_srcdir)/tests/${1}"
     20 	export COLUMNS=80
     21 	export LINES=24
     22 	$(atf_get_srcdir)/director $2 \
     23 		-T $(atf_get_srcdir) \
     24 		-t atf \
     25 		-C $(atf_get_srcdir)/check_files \
     26 		-s $(atf_get_srcdir)/slave $file || atf_fail "test ${file} failed"
     27 }
     28 
     29 ##########################################
     30 # testframe utility functions
     31 ##########################################
     32 
     33 atf_test_case startup
     34 startup_head()
     35 {
     36 	atf_set "descr" "Checks curses initialisation sequence"
     37 }
     38 startup_body()
     39 {
     40 	h_run start
     41 }
     42 
     43 atf_test_case window
     44 window_head()
     45 {
     46 	atf_set "descr" "Checks window creation"
     47 }
     48 window_body()
     49 {
     50 	h_run window
     51 }
     52 
     53 atf_test_case start_slk
     54 start_slk_head()
     55 {
     56 	atf_set "descr" "Checks curses initialisation sequence with soft key labels"
     57 }
     58 start_slk_body()
     59 {
     60 	h_run start_slk
     61 }
     62 
     63 atf_test_case window_hierarchy
     64 window_hierarchy_head()
     65 {
     66 	atf_set "descr" "Checks creating a hierarchy of windows"
     67 }
     68 window_hierarchy_body()
     69 {
     70 	h_run window_hierarchy
     71 }
     72 
     73 atf_test_case two_window
     74 two_window_head()
     75 {
     76 	atf_set "descr" "Checks creating 2 windows"
     77 }
     78 two_window_body()
     79 {
     80 	h_run two_window
     81 }
     82 
     83 atf_test_case varcheck
     84 varcheck_head()
     85 {
     86 	atf_set "descr" "Checks if the testframe CHECK command works"
     87 }
     88 varcheck_body()
     89 {
     90 	h_run varcheck
     91 }
     92 
     93 ##########################################
     94 # curses add characters to window routines
     95 ##########################################
     96 
     97 atf_test_case addbytes
     98 addbytes_head()
     99 {
    100 	atf_set "descr" "Tests adding bytes to stdscr"
    101 }
    102 addbytes_body()
    103 {
    104 	h_run addbytes
    105 }
    106 
    107 atf_test_case addch
    108 addch_head()
    109 {
    110 	atf_set "descr" "Tests adding a chtype to stdscr"
    111 }
    112 addch_body()
    113 {
    114 	h_run addch
    115 }
    116 
    117 atf_test_case waddch
    118 waddch_head()
    119 {
    120     atf_set "descr" "Tests adding a chtype to window - tests mvwaddch too"
    121 }
    122 waddch_body()
    123 {
    124     h_run waddch
    125 }
    126 
    127 atf_test_case mvaddch
    128 mvaddch_head()
    129 {
    130 	atf_set "descr" "Move the cursor and add a character to stdscr"
    131 }
    132 mvaddch_body()
    133 {
    134 	h_run mvaddch
    135 }
    136 
    137 atf_test_case addchstr
    138 addchstr_head()
    139 {
    140 	atf_set "descr" "Tests adding a chtype string to stdscr"
    141 }
    142 addchstr_body()
    143 {
    144 	h_run addchstr
    145 }
    146 
    147 atf_test_case waddchstr
    148 waddchstr_head()
    149 {
    150     atf_set "descr" "Tests adding a chtype string to window"
    151 }
    152 waddchstr_body()
    153 {
    154     h_run waddchstr
    155 }
    156 
    157 atf_test_case addchnstr
    158 addchnstr_head()
    159 {
    160 	atf_set "descr" "Tests adding bytes from a chtype string to stdscr"
    161 }
    162 addchnstr_body()
    163 {
    164 	h_run addchnstr
    165 }
    166 
    167 atf_test_case waddchnstr
    168 waddchnstr_head()
    169 {
    170     atf_set "descr" "Tests adding bytes from a chtype string to window"
    171 }
    172 waddchnstr_body()
    173 {
    174     h_run waddchnstr
    175 }
    176 
    177 atf_test_case mvaddchstr
    178 mvaddchstr_head()
    179 {
    180 	atf_set "descr" "Move the cursor and add a ch string to stdscr"
    181 }
    182 mvaddchstr_body()
    183 {
    184 	h_run mvaddchstr
    185 }
    186 
    187 atf_test_case mvwaddchstr
    188 mvwaddchstr_head()
    189 {
    190     atf_set "descr" "Move the cursor and add a ch string to window"
    191 }
    192 mvwaddchstr_body()
    193 {
    194     h_run mvwaddchstr
    195 }
    196 
    197 atf_test_case mvaddchnstr
    198 mvaddchnstr_head()
    199 {
    200 	atf_set "descr" "Move the cursor and add a limited ch string to stdscr"
    201 }
    202 mvaddchnstr_body()
    203 {
    204 	h_run mvaddchnstr
    205 }
    206 
    207 atf_test_case mvwaddchnstr
    208 mvwaddchnstr_head()
    209 {
    210     atf_set "descr" "Move the cursor and add a limited ch string to window"
    211 }
    212 mvwaddchnstr_body()
    213 {
    214     h_run mvwaddchnstr
    215 }
    216 
    217 atf_test_case addstr
    218 addstr_head()
    219 {
    220 	atf_set "descr" "Tests adding bytes from a string to stdscr"
    221 }
    222 addstr_body()
    223 {
    224 	h_run addstr
    225 }
    226 
    227 atf_test_case addwstr
    228 addwstr_head()
    229 {
    230     atf_set "descr" "Tests adding wide character string to stdscr"
    231 }
    232 addwstr_body()
    233 {
    234     h_run addwstr
    235 }
    236 
    237 atf_test_case waddstr
    238 waddstr_head()
    239 {
    240     atf_set "descr" "Tests adding bytes from a string to window"
    241 }
    242 waddstr_body()
    243 {
    244     h_run waddstr
    245 }
    246 
    247 atf_test_case waddwstr
    248 waddwstr_head()
    249 {
    250     atf_set "descr" "Tests adding wide character string to window"
    251 }
    252 waddwstr_body()
    253 {
    254     h_run waddwstr
    255 }
    256 
    257 atf_test_case addnstr
    258 addnstr_head()
    259 {
    260 	atf_set "descr" "Tests adding bytes from a string to stdscr"
    261 }
    262 addnstr_body()
    263 {
    264 	h_run addnstr
    265 }
    266 
    267 atf_test_case addnwstr
    268 addnwstr_head()
    269 {
    270     atf_set "descr" "Tests adding wide characters from string to stdscr"
    271 }
    272 addnwstr_body()
    273 {
    274     h_run addnwstr
    275 }
    276 
    277 atf_test_case waddnstr
    278 waddnstr_head()
    279 {
    280     atf_set "descr" "Tests adding wide characters from string to window"
    281 }
    282 waddnstr_body()
    283 {
    284     h_run waddnstr
    285 }
    286 
    287 atf_test_case waddnwstr
    288 waddnwstr_head()
    289 {
    290     atf_set "descr" "Move the cursor and add wide characters from string to stdscr"
    291 }
    292 waddnwstr_body()
    293 {
    294     h_run waddnwstr
    295 }
    296 
    297 atf_test_case mvwaddnwstr
    298 mvwaddnwstr_head()
    299 {
    300     atf_set "descr" "Move the cursor and add wide characters from string to stdscr"
    301 }
    302 mvwaddnwstr_body()
    303 {
    304     h_run mvwaddnwstr
    305 }
    306 
    307 atf_test_case mvaddstr
    308 mvaddstr_head()
    309 {
    310 	atf_set "descr" "Move the cursor and add a string to stdscr"
    311 }
    312 mvaddstr_body()
    313 {
    314 	h_run mvaddstr
    315 }
    316 
    317 atf_test_case mvaddwstr
    318 mvaddwstr_head()
    319 {
    320     atf_set "descr" "Move the cursor and add wide character string to stdscr"
    321 }
    322 mvaddwstr_body()
    323 {
    324     h_run mvaddwstr
    325 }
    326 
    327 atf_test_case mvwaddwstr
    328 mvwaddwstr_head()
    329 {
    330     atf_set "descr" "Move the cursor and add wide character string to window"
    331 }
    332 mvwaddwstr_body()
    333 {
    334     h_run mvwaddwstr
    335 }
    336 
    337 atf_test_case mvwaddstr
    338 mvwaddstr_head()
    339 {
    340     atf_set "descr" "Move the cursor and add a string to window"
    341 }
    342 mvwaddstr_body()
    343 {
    344     h_run mvwaddstr
    345 }
    346 
    347 atf_test_case mvaddnstr
    348 mvaddnstr_head()
    349 {
    350 	atf_set "descr" "Move the cursor and add a limited string to stdscr"
    351 }
    352 mvaddnstr_body()
    353 {
    354 	h_run mvaddnstr
    355 }
    356 
    357 atf_test_case mvaddnwstr
    358 mvaddnwstr_head()
    359 {
    360     atf_set "descr" "Move the cursor and add wide characters from string to stdscr"
    361 }
    362 mvaddnwstr_body()
    363 {
    364     h_run mvaddnwstr
    365 }
    366 
    367 atf_test_case mvwaddnstr
    368 mvwaddnstr_head()
    369 {
    370     atf_set "descr" "Move the cursor and add wide characters from string to window"
    371 }
    372 mvwaddnstr_body()
    373 {
    374     h_run mvwaddnstr
    375 }
    376 
    377 atf_test_case add_wch
    378 add_wch_head()
    379 {
    380 	atf_set "descr" "Test adding complex character to stdscr"
    381 }
    382 add_wch_body()
    383 {
    384 	h_run add_wch
    385 }
    386 
    387 atf_test_case wadd_wch
    388 wadd_wch_head()
    389 {
    390     atf_set "descr" "Test adding complex character to window"
    391 }
    392 wadd_wch_body()
    393 {
    394     h_run wadd_wch
    395 }
    396 
    397 ##########################################
    398 # curses input stream routines
    399 ##########################################
    400 
    401 atf_test_case getch
    402 getch_head()
    403 {
    404 	atf_set "descr" "Checks reading a character input - tests mvgetch also"
    405 }
    406 getch_body()
    407 {
    408 	h_run getch
    409 }
    410 
    411 atf_test_case wgetch
    412 wgetch_head()
    413 {
    414 	atf_set "descr" "Checks reading a character input from window - tests mvwgetch also"
    415 }
    416 wgetch_body()
    417 {
    418 	h_run wgetch
    419 }
    420 
    421 atf_test_case define_key
    422 define_key_head()
    423 {
    424 	atf_set "descr" "Check defining a key and removing the definition works"
    425 }
    426 define_key_body()
    427 {
    428 	h_run define_key
    429 }
    430 
    431 atf_test_case keyok
    432 keyok_head()
    433 {
    434 	atf_set "descr" "Check the ability to disable interpretation of a multichar key sequence"
    435 }
    436 keyok_body()
    437 {
    438 	h_run keyok
    439 }
    440 
    441 atf_test_case getnstr
    442 getnstr_head()
    443 {
    444 	atf_set "descr" "Check getting a string with a limit"
    445 }
    446 getnstr_body()
    447 {
    448 	h_run getnstr
    449 }
    450 
    451 atf_test_case wgetnstr
    452 wgetnstr_head()
    453 {
    454     atf_set "descr" "Check getting a string on window input with a limit"
    455 }
    456 wgetnstr_body()
    457 {
    458     h_run wgetnstr
    459 }
    460 
    461 atf_test_case mvgetnstr
    462 mvgetnstr_head()
    463 {
    464 	atf_set "descr" "Move the cursor and get a limited number of characters"
    465 }
    466 mvgetnstr_body()
    467 {
    468 	h_run mvgetnstr
    469 }
    470 
    471 atf_test_case mvwgetnstr
    472 mvwgetnstr_head()
    473 {
    474     atf_set "descr" "Move the cursor and get a limited number of characters on window input"
    475 }
    476 mvwgetnstr_body()
    477 {
    478     h_run mvwgetnstr
    479 }
    480 
    481 atf_test_case getstr
    482 getstr_head()
    483 {
    484 	atf_set "descr" "Check getting a string from input"
    485 }
    486 getstr_body()
    487 {
    488 	h_run getstr
    489 }
    490 
    491 atf_test_case wgetstr
    492 wgetstr_head()
    493 {
    494     atf_set "descr" "Check getting a string from window input"
    495 }
    496 wgetstr_body()
    497 {
    498     h_run wgetstr
    499 }
    500 
    501 atf_test_case mvgetstr
    502 mvgetstr_head()
    503 {
    504 	atf_set "descr" "Move the cursor and get characters"
    505 }
    506 mvgetstr_body()
    507 {
    508 	h_run mvgetstr
    509 }
    510 
    511 atf_test_case mvwgetstr
    512 mvwgetstr_head()
    513 {
    514     atf_set "descr" "Move the cursor and get characters on window input"
    515 }
    516 mvwgetstr_body()
    517 {
    518     h_run mvwgetstr
    519 }
    520 
    521 atf_test_case keyname
    522 keyname_head()
    523 {
    524 	atf_set "descr" "Convert integers into printable key names"
    525 }
    526 keyname_body()
    527 {
    528 	h_run keyname
    529 }
    530 
    531 atf_test_case key_name
    532 key_name_head()
    533 {
    534     atf_set "descr" "Convert integers into printable key names"
    535 }
    536 key_name_body()
    537 {
    538     h_run key_name
    539 }
    540 
    541 atf_test_case keypad
    542 keypad_head()
    543 {
    544     atf_set "descr" "Checks enable/disable abbreviation of function keys - tests is_keypad also"
    545 }
    546 keypad_body()
    547 {
    548     h_run keypad
    549 }
    550 
    551 atf_test_case notimeout
    552 notimeout_head()
    553 {
    554     atf_set "descr" "Checks notimeout when reading a character"
    555 }
    556 notimeout_body()
    557 {
    558     h_run notimeout
    559 }
    560 
    561 atf_test_case timeout
    562 timeout_head()
    563 {
    564 	atf_set "descr" "Checks timeout when reading a character"
    565 }
    566 timeout_body()
    567 {
    568 	h_run timeout
    569 }
    570 
    571 atf_test_case wtimeout
    572 wtimeout_head()
    573 {
    574     atf_set "descr" "Checks timeout when reading a character on window"
    575 }
    576 wtimeout_body()
    577 {
    578     h_run wtimeout
    579 }
    580 
    581 atf_test_case nodelay
    582 nodelay_head()
    583 {
    584 	atf_set "descr" "Test that the nodelay call causes wget to not block"
    585 }
    586 nodelay_body()
    587 {
    588 	h_run nodelay
    589 }
    590 
    591 atf_test_case unget_wch
    592 unget_wch_head()
    593 {
    594     atf_set "descr" "Checks pushing of character into input queue - tests ungetch also"
    595 }
    596 unget_wch_body()
    597 {
    598     h_run unget_wch
    599 }
    600 
    601 atf_test_case getn_wstr
    602 getn_wstr_head()
    603 {
    604     atf_set "descr" "Checks getting limited characters from wide string through queue"
    605 }
    606 getn_wstr_body()
    607 {
    608     h_run getn_wstr
    609 }
    610 
    611 atf_test_case wgetn_wstr
    612 wgetn_wstr_head()
    613 {
    614     atf_set "descr" "Checks getting limited characters from wide string on window through queue"
    615 }
    616 wgetn_wstr_body()
    617 {
    618     h_run wgetn_wstr
    619 }
    620 
    621 atf_test_case get_wstr
    622 get_wstr_head()
    623 {
    624     atf_set "descr" "Checks getting characters from wide string through queue"
    625 }
    626 get_wstr_body()
    627 {
    628     h_run get_wstr
    629 }
    630 
    631 atf_test_case wget_wstr
    632 wget_wstr_head()
    633 {
    634     atf_set "descr" "Checks getting characters from wide string on window through queue"
    635 }
    636 wget_wstr_body()
    637 {
    638     h_run wget_wstr
    639 }
    640 
    641 atf_test_case mvgetn_wstr
    642 mvgetn_wstr_head()
    643 {
    644     atf_set "descr" "Move the cursor and get limited characters from wide string through queue"
    645 }
    646 mvgetn_wstr_body()
    647 {
    648     h_run mvgetn_wstr
    649 }
    650 
    651 atf_test_case mvwgetn_wstr
    652 mvwgetn_wstr_head()
    653 {
    654     atf_set "descr" "Move the cursor and get limited characters from wide string on window through queue"
    655 }
    656 mvwgetn_wstr_body()
    657 {
    658     h_run mvwgetn_wstr
    659 }
    660 
    661 atf_test_case mvget_wstr
    662 mvget_wstr_head()
    663 {
    664     atf_set "descr" "Move the cursor and get characters from wide string through queue"
    665 }
    666 mvget_wstr_body()
    667 {
    668     h_run mvget_wstr
    669 }
    670 
    671 atf_test_case mvwget_wstr
    672 mvwget_wstr_head()
    673 {
    674     atf_set "descr" "Move the cursor and get characters from wide string on window through queue"
    675 }
    676 mvwget_wstr_body()
    677 {
    678     h_run mvwget_wstr
    679 }
    680 
    681 atf_test_case get_wch
    682 get_wch_head()
    683 {
    684 	atf_set "descr" "Checks reading a complex character through input queue"
    685 }
    686 get_wch_body()
    687 {
    688 	h_run get_wch
    689 }
    690 
    691 ##########################################
    692 # curses read screen contents routines
    693 ##########################################
    694 
    695 atf_test_case inch
    696 inch_head()
    697 {
    698 	atf_set "descr" "Get the character under the cursor on stdscr"
    699 }
    700 inch_body()
    701 {
    702 	h_run inch
    703 }
    704 
    705 atf_test_case winch
    706 winch_head()
    707 {
    708     atf_set "descr" "Get the character under the cursor on window"
    709 }
    710 winch_body()
    711 {
    712     h_run winch
    713 }
    714 
    715 atf_test_case mvinch
    716 mvinch_head()
    717 {
    718 	atf_set "descr" "Move the cursor and get the character under the cursor on stdscr"
    719 }
    720 mvinch_body()
    721 {
    722 	h_run mvinch
    723 }
    724 
    725 atf_test_case mvwinch
    726 mvwinch_head()
    727 {
    728     atf_set "descr" "Move the cursor and get the character under the cursor on window"
    729 }
    730 mvwinch_body()
    731 {
    732     h_run mvwinch
    733 }
    734 
    735 atf_test_case inchnstr
    736 inchnstr_head()
    737 {
    738 	atf_set "descr" "Get a limited chtype string from the stdscr - tests inchstr too"
    739 }
    740 inchnstr_body()
    741 {
    742 	h_run inchnstr
    743 }
    744 
    745 atf_test_case winchnstr
    746 winchnstr_head()
    747 {
    748     atf_set "descr" "Get a limited chtype string from the window - tests winchstr too"
    749 }
    750 winchnstr_body()
    751 {
    752     h_run winchnstr
    753 }
    754 
    755 atf_test_case mvinchnstr
    756 mvinchnstr_head()
    757 {
    758 	atf_set "descr" "Move the cursor read characters from stdscr - tests both mvinchstr and mvinchnstr"
    759 }
    760 mvinchnstr_body()
    761 {
    762 	h_run mvinchnstr
    763 }
    764 
    765 atf_test_case mvwinchnstr
    766 mvwinchnstr_head()
    767 {
    768     atf_set "descr" "Move the cursor read characters from window - tests both mvinchstr and mvinchnstr"
    769 }
    770 mvwinchnstr_body()
    771 {
    772     h_run mvwinchnstr
    773 }
    774 
    775 atf_test_case innstr
    776 innstr_head()
    777 {
    778 	atf_set "descr" "Get a limited string starting at the cursor from stdscr - tests instr also"
    779 }
    780 innstr_body()
    781 {
    782 	h_run innstr
    783 }
    784 
    785 atf_test_case winnstr
    786 winnstr_head()
    787 {
    788     atf_set "descr" "Get a limited string starting at the cursor from window - tests instr also"
    789 }
    790 winnstr_body()
    791 {
    792     h_run winnstr
    793 }
    794 
    795 atf_test_case mvinnstr
    796 mvinnstr_head()
    797 {
    798     atf_set "descr" "Move the cursor read limited characters from stdscr - tests mvinstr also"
    799 }
    800 mvinnstr_body()
    801 {
    802     h_run mvinnstr
    803 }
    804 
    805 atf_test_case mvwinnstr
    806 mvwinnstr_head()
    807 {
    808     atf_set "descr" "Move the cursor read limited characters from window - tests mvwinstr also"
    809 }
    810 mvwinnstr_body()
    811 {
    812     h_run mvwinnstr
    813 }
    814 
    815 atf_test_case in_wch
    816 in_wch_head()
    817 {
    818     atf_set "descr" "Read the complex character from stdscr - tests mvin_wch too"
    819 }
    820 in_wch_body()
    821 {
    822     h_run in_wch
    823 }
    824 
    825 atf_test_case win_wch
    826 win_wch_head()
    827 {
    828     atf_set "descr" "Read the complex character from window - tests mvwin_wch too"
    829 }
    830 win_wch_body()
    831 {
    832     h_run win_wch
    833 }
    834 
    835 atf_test_case innwstr
    836 innwstr_head()
    837 {
    838     atf_set "descr" "Get a limited wide string starting at the cursor from stdscr"
    839 }
    840 innwstr_body()
    841 {
    842     h_run innwstr
    843 }
    844 
    845 atf_test_case winnwstr
    846 winnwstr_head()
    847 {
    848     atf_set "descr" "Get a limited wide string starting at the cursor from window"
    849 }
    850 winnwstr_body()
    851 {
    852     h_run winnwstr
    853 }
    854 
    855 atf_test_case inwstr
    856 inwstr_head()
    857 {
    858     atf_set "descr" "Get a wide string starting at the cursor from stdscr"
    859 }
    860 inwstr_body()
    861 {
    862     h_run inwstr
    863 }
    864 
    865 atf_test_case winwstr
    866 winwstr_head()
    867 {
    868     atf_set "descr" "Get a wide string starting at the cursor from window"
    869 }
    870 winwstr_body()
    871 {
    872     h_run winwstr
    873 }
    874 
    875 atf_test_case mvinnwstr
    876 mvinnwstr_head()
    877 {
    878     atf_set "descr" "Move the cursor and get a limited wide string starting at the cursor from stdscr"
    879 }
    880 mvinnwstr_body()
    881 {
    882     h_run mvinnwstr
    883 }
    884 
    885 atf_test_case mvwinnwstr
    886 mvwinnwstr_head()
    887 {
    888     atf_set "descr" "Move the cursor and get a limited wide string starting at the cursor from window"
    889 }
    890 mvwinnwstr_body()
    891 {
    892     h_run mvwinnwstr
    893 }
    894 
    895 atf_test_case mvinwstr
    896 mvinwstr_head()
    897 {
    898     atf_set "descr" "Move the cursor and get a wide string starting at the cursor from stdscr"
    899 }
    900 mvinwstr_body()
    901 {
    902     h_run mvinwstr
    903 }
    904 
    905 atf_test_case mvwinwstr
    906 mvwinwstr_head()
    907 {
    908     atf_set "descr" "Move the cursor and get a limited wide string starting at the cursor from window"
    909 }
    910 mvwinwstr_body()
    911 {
    912     h_run mvwinwstr
    913 }
    914 
    915 ##########################################
    916 # curses insert character to window routines
    917 ##########################################
    918 
    919 atf_test_case insch
    920 insch_head()
    921 {
    922     atf_set "descr" "Tests inserting a chtype to stdscr"
    923 }
    924 insch_body()
    925 {
    926     h_run insch
    927 }
    928 
    929 atf_test_case winsch
    930 winsch_head()
    931 {
    932     atf_set "descr" "Tests inserting a chtype to window"
    933 }
    934 winsch_body()
    935 {
    936     h_run winsch
    937 }
    938 
    939 atf_test_case mvinsch
    940 mvinsch_head()
    941 {
    942     atf_set "descr" "Move the cursor and insert a chtype to stdscr"
    943 }
    944 mvinsch_body()
    945 {
    946     h_run mvinsch
    947 }
    948 
    949 atf_test_case mvwinsch
    950 mvwinsch_head()
    951 {
    952     atf_set "descr" "Move the cursor and insert a chtype to window"
    953 }
    954 mvwinsch_body()
    955 {
    956     h_run mvwinsch
    957 }
    958 
    959 atf_test_case ins_wch
    960 ins_wch_head()
    961 {
    962     atf_set "descr" "Tests inserting complex character to stdscr"
    963 }
    964 ins_wch_body()
    965 {
    966     h_run ins_wch
    967 }
    968 
    969 atf_test_case wins_wch
    970 wins_wch_head()
    971 {
    972     atf_set "descr" "Tests inserting complex character to window"
    973 }
    974 wins_wch_body()
    975 {
    976     h_run wins_wch
    977 }
    978 
    979 atf_test_case mvins_wch
    980 mvins_wch_head()
    981 {
    982     atf_set "descr" "Move the cursor and insert complex character to stdscr"
    983 }
    984 mvins_wch_body()
    985 {
    986     h_run mvins_wch
    987 }
    988 
    989 atf_test_case mvwins_wch
    990 mvwins_wch_head()
    991 {
    992     atf_set "descr" "Move the cursor and insert complex character to window"
    993 }
    994 mvwins_wch_body()
    995 {
    996     h_run mvwins_wch
    997 }
    998 
    999 atf_test_case ins_nwstr
   1000 ins_nwstr_head()
   1001 {
   1002     atf_set "descr" "Tests inserting a limited wide character string to stdscr"
   1003 }
   1004 ins_nwstr_body()
   1005 {
   1006     h_run ins_nwstr
   1007 }
   1008 
   1009 atf_test_case wins_nwstr
   1010 wins_nwstr_head()
   1011 {
   1012     atf_set "descr" "Tests inserting a limited wide character string to window"
   1013 }
   1014 wins_nwstr_body()
   1015 {
   1016     h_run wins_nwstr
   1017 }
   1018 
   1019 atf_test_case ins_wstr
   1020 ins_wstr_head()
   1021 {
   1022     atf_set "descr" "Tests inserting a wide character string to stdscr"
   1023 }
   1024 ins_wstr_body()
   1025 {
   1026     h_run ins_wstr
   1027 }
   1028 
   1029 atf_test_case wins_wstr
   1030 wins_wstr_head()
   1031 {
   1032     atf_set "descr" "Tests inserting a wide character string to window"
   1033 }
   1034 wins_wstr_body()
   1035 {
   1036     h_run wins_wstr
   1037 }
   1038 
   1039 atf_test_case mvins_nwstr
   1040 mvins_nwstr_head()
   1041 {
   1042     atf_set "descr" "Move the cursor and insert a limited wide character string to stdscr"
   1043 }
   1044 mvins_nwstr_body()
   1045 {
   1046     h_run mvins_nwstr
   1047 }
   1048 
   1049 atf_test_case mvwins_nwstr
   1050 mvwins_nwstr_head()
   1051 {
   1052     atf_set "descr" "Move the cursor and insert a limited wide character string to window"
   1053 }
   1054 mvwins_nwstr_body()
   1055 {
   1056     h_run mvwins_nwstr
   1057 }
   1058 
   1059 atf_test_case mvins_wstr
   1060 mvins_wstr_head()
   1061 {
   1062     atf_set "descr" "Move the cursor and insert a wide character string to stdscr"
   1063 }
   1064 mvins_wstr_body()
   1065 {
   1066     h_run mvins_wstr
   1067 }
   1068 
   1069 atf_test_case mvwins_wstr
   1070 mvwins_wstr_head()
   1071 {
   1072     atf_set "descr" "Move the cursor and insert a wide character string to window"
   1073 }
   1074 mvwins_wstr_body()
   1075 {
   1076     h_run mvwins_wstr
   1077 }
   1078 
   1079 ##########################################
   1080 # curses delete characters routines
   1081 ##########################################
   1082 
   1083 atf_test_case delch
   1084 delch_head()
   1085 {
   1086     atf_set "descr" "Tests deleting a character from stdscr and window both"
   1087 }
   1088 delch_body()
   1089 {
   1090     h_run delch
   1091 }
   1092 
   1093 atf_test_case mvdelch
   1094 mvdelch_head()
   1095 {
   1096     atf_set "descr" "Move the cursor, deletes the character from stdscr and window"
   1097 }
   1098 mvdelch_body()
   1099 {
   1100     h_run mvdelch
   1101 }
   1102 
   1103 ##########################################
   1104 # curses terminal manipulation routines
   1105 ##########################################
   1106 
   1107 atf_test_case beep
   1108 beep_head()
   1109 {
   1110 	atf_set "descr" "Check sending a beep"
   1111 }
   1112 beep_body()
   1113 {
   1114 	h_run beep
   1115 }
   1116 
   1117 atf_test_case flash
   1118 flash_head()
   1119 {
   1120 	atf_set "descr" "Validate curses can flash the screen"
   1121 }
   1122 flash_body()
   1123 {
   1124 	h_run flash
   1125 }
   1126 
   1127 atf_test_case curs_set
   1128 curs_set_head()
   1129 {
   1130 	atf_set "descr" "Check setting the cursor visibility works"
   1131 }
   1132 curs_set_body()
   1133 {
   1134 	h_run curs_set
   1135 }
   1136 
   1137 atf_test_case delay_output
   1138 delay_output_head()
   1139 {
   1140     atf_set "descr" "Tests pausing the output"
   1141 }
   1142 delay_output_body()
   1143 {
   1144     h_run delay_output
   1145 }
   1146 
   1147 atf_test_case erasechar
   1148 erasechar_head()
   1149 {
   1150 	atf_set "descr" "Validate erase char can be retrieved"
   1151 }
   1152 erasechar_body()
   1153 {
   1154 	h_run erasechar
   1155 }
   1156 
   1157 atf_test_case erasewchar
   1158 erasewchar_head()
   1159 {
   1160     atf_set "descr" "Validate erase wide char can be retrieved"
   1161 }
   1162 erasewchar_body()
   1163 {
   1164     h_run erasewchar
   1165 }
   1166 
   1167 atf_test_case echochar
   1168 echochar_head()
   1169 {
   1170     atf_set "descr" "echo single-byte character and rendition to a stdscr/window and refresh"
   1171 }
   1172 echochar_body()
   1173 {
   1174     h_run echochar
   1175 }
   1176 
   1177 atf_test_case echo_wchar
   1178 echo_wchar_head()
   1179 {
   1180     atf_set "descr" "echo wide character and rendition to a stdscr and refresh"
   1181 }
   1182 echo_wchar_body()
   1183 {
   1184     h_run echo_wchar
   1185 }
   1186 
   1187 atf_test_case wecho_wchar
   1188 wecho_wchar_head()
   1189 {
   1190     atf_set "descr" "echo wide character and rendition to a window and refresh"
   1191 }
   1192 wecho_wchar_body()
   1193 {
   1194     h_run wecho_wchar
   1195 }
   1196 
   1197 atf_test_case halfdelay
   1198 halfdelay_head()
   1199 {
   1200     atf_set "descr" "Tests setting the input mode to half delay"
   1201 }
   1202 halfdelay_body()
   1203 {
   1204     h_run halfdelay
   1205 }
   1206 
   1207 atf_test_case has_ic
   1208 has_ic_head()
   1209 {
   1210 	atf_set "descr" "Check if the terminal can insert characters and lines"
   1211 }
   1212 has_ic_body()
   1213 {
   1214 	h_run has_ic
   1215 }
   1216 
   1217 atf_test_case killchar
   1218 killchar_head()
   1219 {
   1220 	atf_set "descr" "Get the value of the terminals kill character"
   1221 }
   1222 killchar_body()
   1223 {
   1224 	h_run killchar
   1225 }
   1226 
   1227 atf_test_case killwchar
   1228 killwchar_head()
   1229 {
   1230     atf_set "descr" "Get the value of the terminals wide kill character"
   1231 }
   1232 killwchar_body()
   1233 {
   1234     h_run killwchar
   1235 }
   1236 
   1237 atf_test_case meta
   1238 meta_head()
   1239 {
   1240 	atf_set "descr" "Check setting and clearing the meta flag on a window"
   1241 }
   1242 meta_body()
   1243 {
   1244 	h_run meta
   1245 }
   1246 
   1247 atf_test_case cbreak
   1248 cbreak_head()
   1249 {
   1250 	atf_set "descr" "Check cbreak mode works"
   1251 }
   1252 cbreak_body()
   1253 {
   1254 	h_run cbreak
   1255 }
   1256 
   1257 atf_test_case nocbreak
   1258 nocbreak_head()
   1259 {
   1260 	atf_set "descr" "Test that the nocbreak call returns the terminal to canonical character processing"
   1261 }
   1262 nocbreak_body()
   1263 {
   1264 	h_run nocbreak
   1265 }
   1266 
   1267 ##########################################
   1268 # curses general attribute manipulation routines
   1269 ##########################################
   1270 
   1271 atf_test_case attributes
   1272 attributes_head()
   1273 {
   1274 	atf_set "descr" "Check setting, clearing and getting of attributes of stdscr"
   1275 }
   1276 attributes_body()
   1277 {
   1278 	h_run attributes
   1279 }
   1280 
   1281 atf_test_case wattributes
   1282 wattributes_head()
   1283 {
   1284     atf_set "descr" "Check setting, clearing and getting of attributes of window"
   1285 }
   1286 wattributes_body()
   1287 {
   1288     h_run wattributes
   1289 }
   1290 
   1291 atf_test_case getattrs
   1292 getattrs_head()
   1293 {
   1294 	atf_set "descr" "Validate curses can get and set attributes on a window"
   1295 }
   1296 getattrs_body()
   1297 {
   1298 	h_run getattrs
   1299 }
   1300 
   1301 atf_test_case color_set
   1302 color_set_head()
   1303 {
   1304     atf_set "descr" "Validate curses can set the color pair for stdscr"
   1305 }
   1306 color_set_body()
   1307 {
   1308     h_run color_set
   1309 }
   1310 
   1311 atf_test_case wcolor_set
   1312 wcolor_set_head()
   1313 {
   1314     atf_set "descr" "Validate curses can set the color pair for window"
   1315 }
   1316 wcolor_set_body()
   1317 {
   1318     h_run wcolor_set
   1319 }
   1320 
   1321 atf_test_case termattrs
   1322 termattrs_head()
   1323 {
   1324 	atf_set "descr" "Check the terminal attributes"
   1325 }
   1326 termattrs_body()
   1327 {
   1328 	h_run termattrs
   1329 }
   1330 
   1331 ##########################################
   1332 # curses on-screen attribute manipulation routines
   1333 ##########################################
   1334 
   1335 atf_test_case chgat
   1336 chgat_head()
   1337 {
   1338 	atf_set "descr" "Check changing attributes works on stdscr"
   1339 }
   1340 chgat_body()
   1341 {
   1342 	h_run chgat
   1343 }
   1344 
   1345 atf_test_case wchgat
   1346 wchgat_head()
   1347 {
   1348     atf_set "descr" "Check changing attributes works on window"
   1349 }
   1350 wchgat_body()
   1351 {
   1352     h_run wchgat
   1353 }
   1354 
   1355 atf_test_case mvchgat
   1356 mvchgat_head()
   1357 {
   1358 	atf_set "descr" "Move the cursor and change the attributes on the screen"
   1359 }
   1360 mvchgat_body()
   1361 {
   1362 	h_run mvchgat
   1363 }
   1364 
   1365 atf_test_case mvwchgat
   1366 mvwchgat_head()
   1367 {
   1368     atf_set "descr" "Move the cursor and change the attributes on the window"
   1369 }
   1370 mvwchgat_body()
   1371 {
   1372     h_run mvwchgat
   1373 }
   1374 
   1375 ##########################################
   1376 # curses standout attribute manipulation routines
   1377 ##########################################
   1378 
   1379 atf_test_case standout
   1380 standout_head()
   1381 {
   1382     atf_set "descr" "Checks tuning on/off of standard attribute on stdscr"
   1383 }
   1384 standout_body()
   1385 {
   1386     h_run standout
   1387 }
   1388 
   1389 atf_test_case wstandout
   1390 wstandout_head()
   1391 {
   1392     atf_set "descr" "Checks tuning on/off of standard attribute on window"
   1393 }
   1394 wstandout_body()
   1395 {
   1396     h_run wstandout
   1397 }
   1398 
   1399 ##########################################
   1400 # curses color manipulation routines
   1401 ##########################################
   1402 
   1403 atf_test_case has_colors
   1404 has_colors_head()
   1405 {
   1406 	atf_set "descr" "Check if the terminal can support colours"
   1407 }
   1408 has_colors_body()
   1409 {
   1410 	h_run has_colors
   1411 }
   1412 
   1413 atf_test_case can_change_color
   1414 can_change_color_head()
   1415 {
   1416 	atf_set "descr" "Check if the terminal can change colours"
   1417 }
   1418 can_change_color_body()
   1419 {
   1420 	h_run can_change_color
   1421 }
   1422 
   1423 atf_test_case start_color
   1424 start_color_head()
   1425 {
   1426     atf_set "descr" "Check if curses can enable use of colours"
   1427 }
   1428 start_color_body()
   1429 {
   1430     h_run start_color
   1431 }
   1432 
   1433 atf_test_case pair_content
   1434 pair_content_head()
   1435 {
   1436     atf_set "descr" "Checks color pair initialization and retrieval"
   1437 }
   1438 pair_content_body()
   1439 {
   1440     h_run pair_content
   1441 }
   1442 
   1443 atf_test_case init_color
   1444 init_color_head()
   1445 {
   1446 	atf_set "descr" "Set a custom color entry"
   1447 }
   1448 init_color_body()
   1449 {
   1450 	h_run init_color
   1451 }
   1452 
   1453 atf_test_case color_content
   1454 color_content_head()
   1455 {
   1456     atf_set "descr" "Check if curses can extract the color intensity from colors"
   1457 }
   1458 color_content_body()
   1459 {
   1460     h_run color_content
   1461 }
   1462 
   1463 atf_test_case assume_default_colors
   1464 assume_default_colors_head()
   1465 {
   1466 	atf_set "descr" "Check setting the default color pair"
   1467 }
   1468 assume_default_colors_body()
   1469 {
   1470 	h_run assume_default_colors
   1471 }
   1472 
   1473 ##########################################
   1474 # curses clear window routines
   1475 ##########################################
   1476 
   1477 atf_test_case clear
   1478 clear_head()
   1479 {
   1480 	atf_set "descr" "Check clear,erase,clrtobot,clrtoeol work - tests window routines too"
   1481 }
   1482 clear_body()
   1483 {
   1484 	h_run clear
   1485 }
   1486 
   1487 atf_test_case clearok
   1488 clearok_head()
   1489 {
   1490     atf_set "descr" "Check clearing of screen during a refresh if correspnding flag is set"
   1491 }
   1492 clearok_body()
   1493 {
   1494     h_run clearok
   1495 }
   1496 
   1497 ##########################################
   1498 # curses terminal update routines
   1499 ##########################################
   1500 
   1501 atf_test_case doupdate
   1502 doupdate_head()
   1503 {
   1504 	atf_set "descr" "Check doupdate performs an update - test wnoutrefresh too"
   1505 }
   1506 doupdate_body()
   1507 {
   1508 	h_run doupdate
   1509 }
   1510 
   1511 atf_test_case immedok
   1512 immedok_head()
   1513 {
   1514     atf_set "descr" "Checks if the screen is refreshed whenever window is changed"
   1515 }
   1516 immedok_body()
   1517 {
   1518     h_run immedok
   1519 }
   1520 
   1521 atf_test_case leaveok
   1522 leaveok_head()
   1523 {
   1524     atf_set "descr" "Checks cursor positioning from refresh operations - tests is_leaveok too"
   1525 }
   1526 leaveok_body()
   1527 {
   1528     h_run leaveok
   1529 }
   1530 
   1531 ##########################################
   1532 # curses window scrolling routines
   1533 ##########################################
   1534 
   1535 atf_test_case wscrl
   1536 wscrl_head()
   1537 {
   1538 	atf_set "descr" "Check window scrolling"
   1539 }
   1540 wscrl_body()
   1541 {
   1542 	h_run wscrl
   1543 }
   1544 
   1545 atf_test_case scroll
   1546 scroll_head()
   1547 {
   1548     atf_set "descr" "Checks scrolling"
   1549 }
   1550 scroll_body()
   1551 {
   1552     h_run scroll
   1553 }
   1554 
   1555 atf_test_case setscrreg
   1556 setscrreg_head()
   1557 {
   1558     atf_set "descr" "Checks if setting the scrolling region works for stdscr"
   1559 }
   1560 setscrreg_body()
   1561 {
   1562     h_run setscrreg
   1563 }
   1564 
   1565 atf_test_case wsetscrreg
   1566 wsetscrreg_head()
   1567 {
   1568     atf_set "descr" "Checks if setting the scrolling region works for window"
   1569 }
   1570 wsetscrreg_body()
   1571 {
   1572     h_run wsetscrreg
   1573 }
   1574 
   1575 ##########################################
   1576 # curses window modification routines
   1577 ##########################################
   1578 
   1579 atf_test_case touchline
   1580 touchline_head()
   1581 {
   1582     atf_set "descr" "Checks touchline to touch lines"
   1583 }
   1584 touchline_body()
   1585 {
   1586     h_run touchline
   1587 }
   1588 
   1589 atf_test_case touchoverlap
   1590 touchoverlap_head()
   1591 {
   1592     atf_set "descr" "Check touching of partial and full overlap of windows"
   1593 }
   1594 touchoverlap_body()
   1595 {
   1596     h_run touchoverlap
   1597 }
   1598 
   1599 atf_test_case touchwin
   1600 touchwin_head()
   1601 {
   1602     atf_set "descr" "Tests touching of window to completely refresh it"
   1603 }
   1604 touchwin_body()
   1605 {
   1606     h_run touchwin
   1607 }
   1608 
   1609 atf_test_case untouchwin
   1610 untouchwin_head()
   1611 {
   1612     atf_set "descr" "Tests untouching the changes made to window so they are not reflected in refresh"
   1613 }
   1614 untouchwin_body()
   1615 {
   1616     h_run untouchwin
   1617 }
   1618 
   1619 atf_test_case wtouchln
   1620 wtouchln_head()
   1621 {
   1622     atf_set "descr" "Tests touching of multiple lines in window"
   1623 }
   1624 wtouchln_body()
   1625 {
   1626     h_run wtouchln
   1627 }
   1628 
   1629 atf_test_case is_linetouched
   1630 is_linetouched_head()
   1631 {
   1632 	atf_set "descr" "Check if a line has been modified in a window"
   1633 }
   1634 is_linetouched_body()
   1635 {
   1636 	h_run is_linetouched
   1637 }
   1638 
   1639 atf_test_case is_wintouched
   1640 is_wintouched_head()
   1641 {
   1642 	atf_set "descr" "Check if a window has been modified"
   1643 }
   1644 is_wintouched_body()
   1645 {
   1646 	h_run is_wintouched
   1647 }
   1648 
   1649 atf_test_case redrawwin
   1650 redrawwin_head()
   1651 {
   1652     atf_set "descr" "Tests marking whole window as touched and redraw it"
   1653 }
   1654 redrawwin_body()
   1655 {
   1656     h_run redrawwin
   1657 }
   1658 
   1659 atf_test_case wredrawln
   1660 wredrawln_head()
   1661 {
   1662     atf_set "descr" "Tests marking line in window as touched and redraw it"
   1663 }
   1664 wredrawln_body()
   1665 {
   1666     h_run wredrawln
   1667 }
   1668 
   1669 atf_test_case wresize
   1670 wresize_head()
   1671 {
   1672     atf_set "descr" "Tests resizing a window with a subwin"
   1673 }
   1674 wresize_body()
   1675 {
   1676     h_run wresize
   1677 }
   1678 
   1679 ##########################################
   1680 # curses soft label key routines
   1681 ##########################################
   1682 
   1683 atf_test_case slk
   1684 slk_head()
   1685 {
   1686     atf_set "descr" "Tests routines related to soft key labels"
   1687 }
   1688 slk_body()
   1689 {
   1690     h_run slk
   1691 }
   1692 
   1693 ##########################################
   1694 # curses draw lines on windows routines
   1695 ##########################################
   1696 
   1697 atf_test_case hline
   1698 hline_head()
   1699 {
   1700 	atf_set "descr" "Draw a horizontal line on stdscr"
   1701 }
   1702 hline_body()
   1703 {
   1704 	h_run hline
   1705 }
   1706 
   1707 atf_test_case whline
   1708 whline_head()
   1709 {
   1710     atf_set "descr" "Draw a horizontal line on window - tests mvwhline too"
   1711 }
   1712 whline_body()
   1713 {
   1714     h_run whline
   1715 }
   1716 
   1717 atf_test_case mvhline
   1718 mvhline_head()
   1719 {
   1720 	atf_set "descr" "Move the cursor and draw a horizontal line"
   1721 }
   1722 mvhline_body()
   1723 {
   1724 	h_run mvhline
   1725 }
   1726 
   1727 atf_test_case wvline
   1728 wvline_head()
   1729 {
   1730     atf_set "descr" "Draw a vertical line on window - tests mvwvline too"
   1731 }
   1732 wvline_body()
   1733 {
   1734     h_run wvline
   1735 }
   1736 
   1737 atf_test_case mvvline
   1738 mvvline_head()
   1739 {
   1740 	atf_set "descr" "Move the cursor and draw a vertical line - tests vline too"
   1741 }
   1742 mvvline_body()
   1743 {
   1744 	h_run mvvline
   1745 }
   1746 
   1747 atf_test_case hline_set
   1748 hline_set_head()
   1749 {
   1750     atf_set "descr" "Draws a horizontal line on stdscr using complex character"
   1751 }
   1752 hline_set_body()
   1753 {
   1754     h_run hline_set
   1755 }
   1756 
   1757 atf_test_case whline_set
   1758 whline_set_head()
   1759 {
   1760     atf_set "descr" "Draws a horizontal line on window using complex character"
   1761 }
   1762 whline_set_body()
   1763 {
   1764     h_run whline_set
   1765 }
   1766 
   1767 atf_test_case vline_set
   1768 vline_set_head()
   1769 {
   1770     atf_set "descr" "Draws a vertical line on stdscr using complex character"
   1771 }
   1772 vline_set_body()
   1773 {
   1774     h_run vline_set
   1775 }
   1776 
   1777 atf_test_case wvline_set
   1778 wvline_set_head()
   1779 {
   1780     atf_set "descr" "Draws a vertical line on window using complex character"
   1781 }
   1782 wvline_set_body()
   1783 {
   1784     h_run wvline_set
   1785 }
   1786 
   1787 ##########################################
   1788 # curses pad routines
   1789 ##########################################
   1790 
   1791 atf_test_case pad
   1792 pad_head()
   1793 {
   1794 	atf_set "descr" "Test the newpad, subpad, pnoutrefresh and prefresh functions"
   1795 }
   1796 pad_body()
   1797 {
   1798 	h_run pad
   1799 }
   1800 
   1801 atf_test_case pechochar
   1802 pechochar_head()
   1803 {
   1804     atf_set "descr" "Tests pechochar and pecho_wchar functions"
   1805 }
   1806 pechochar_body()
   1807 {
   1808     h_run pechochar
   1809 }
   1810 
   1811 ##########################################
   1812 # curses cursor and window location and positioning routines
   1813 ##########################################
   1814 
   1815 atf_test_case cursor
   1816 cursor_head()
   1817 {
   1818     atf_set "descr" "Tests cursor positioning and window location routines"
   1819 }
   1820 cursor_body()
   1821 {
   1822     h_run cursor
   1823 }
   1824 
   1825 atf_test_case getcurx
   1826 getcurx_head()
   1827 {
   1828 	atf_set "descr" "Validate curses getting cursor locations in a window"
   1829 }
   1830 getcurx_body()
   1831 {
   1832 	h_run getcurx
   1833 }
   1834 
   1835 atf_test_case getmaxx
   1836 getmaxx_head()
   1837 {
   1838 	atf_set "descr" "Validate curses getting the maximum x value of a window"
   1839 }
   1840 getmaxx_body()
   1841 {
   1842 	h_run getmaxx
   1843 }
   1844 
   1845 atf_test_case getmaxy
   1846 getmaxy_head()
   1847 {
   1848 	atf_set "descr" "Validate curses getting the maximum y value of a window"
   1849 }
   1850 getmaxy_body()
   1851 {
   1852 	h_run getmaxy
   1853 }
   1854 
   1855 atf_test_case getparx
   1856 getparx_head()
   1857 {
   1858 	atf_set "descr" "Check getting the location of a window relative to its parent"
   1859 }
   1860 getparx_body()
   1861 {
   1862 	h_run getparx
   1863 }
   1864 
   1865 atf_test_case getbegy
   1866 getbegy_head()
   1867 {
   1868 	atf_set "descr" "Validate curses getting the maximum y value of a window"
   1869 }
   1870 getbegy_body()
   1871 {
   1872 	h_run getbegy
   1873 }
   1874 
   1875 atf_test_case getbegx
   1876 getbegx_head()
   1877 {
   1878 	atf_set "descr" "Validate curses getting the maximum y value of a window"
   1879 }
   1880 getbegx_body()
   1881 {
   1882 	h_run getbegx
   1883 }
   1884 
   1885 atf_test_case mvcur
   1886 mvcur_head()
   1887 {
   1888 	atf_set "descr" "Move the cursor on the screen"
   1889 }
   1890 mvcur_body()
   1891 {
   1892 	h_run mvcur
   1893 }
   1894 
   1895 
   1896 ##########################################
   1897 # curses window routines
   1898 ##########################################
   1899 
   1900 atf_test_case copywin
   1901 copywin_head()
   1902 {
   1903 	atf_set "descr" "Check all the modes of copying a window work"
   1904 }
   1905 copywin_body()
   1906 {
   1907 	h_run copywin
   1908 }
   1909 
   1910 atf_test_case dupwin
   1911 dupwin_head()
   1912 {
   1913 	atf_set "descr" "Check duplicating a window works"
   1914 }
   1915 dupwin_body()
   1916 {
   1917 	h_run dupwin
   1918 }
   1919 
   1920 atf_test_case delwin
   1921 delwin_head()
   1922 {
   1923     atf_set "descr" "Tests deleting a window"
   1924 }
   1925 delwin_body()
   1926 {
   1927     h_run delwin
   1928 }
   1929 
   1930 atf_test_case derwin
   1931 derwin_head()
   1932 {
   1933 	atf_set "descr" "Check derived subwindow creation behaves correctly."
   1934 }
   1935 derwin_body()
   1936 {
   1937 	h_run derwin
   1938 }
   1939 
   1940 atf_test_case mvwin
   1941 mvwin_head()
   1942 {
   1943 	atf_set "descr" "Check moving a window"
   1944 }
   1945 mvwin_body()
   1946 {
   1947 	h_run mvwin
   1948 }
   1949 
   1950 atf_test_case mvderwin
   1951 mvderwin_head()
   1952 {
   1953 	atf_set "descr" "Move the mapping of a region relative to the parent"
   1954 }
   1955 mvderwin_body()
   1956 {
   1957 	h_run mvderwin
   1958 }
   1959 
   1960 atf_test_case newwin
   1961 newwin_head()
   1962 {
   1963     atf_set "descr" "Check creating a new window"
   1964 }
   1965 newwin_body()
   1966 {
   1967     h_run newwin
   1968 }
   1969 
   1970 atf_test_case overlay
   1971 overlay_head()
   1972 {
   1973     atf_set "descr" "Checks overlaying the overlapping portion of two windows"
   1974 }
   1975 overlay_body()
   1976 {
   1977     h_run overlay
   1978 }
   1979 
   1980 atf_test_case overwrite
   1981 overwrite_head()
   1982 {
   1983     atf_set "descr" "Checks overwriting the overlapping portion of two windows"
   1984 }
   1985 overwrite_body()
   1986 {
   1987     h_run overwrite
   1988 }
   1989 
   1990 atf_test_case getwin
   1991 getwin_head()
   1992 {
   1993     atf_set "descr" "Tests dumping window to, and reloading window from, a file"
   1994 }
   1995 getwin_body()
   1996 {
   1997     h_run getwin
   1998 }
   1999 
   2000 ##########################################
   2001 # curses background attribute manipulation routines
   2002 ##########################################
   2003 
   2004 atf_test_case background
   2005 background_head()
   2006 {
   2007 	atf_set "descr" "Check setting background character and attributes for both stdscr and a window."
   2008 }
   2009 background_body()
   2010 {
   2011 	h_run background
   2012 }
   2013 
   2014 atf_test_case bkgdset
   2015 bkgdset_head()
   2016 {
   2017 	atf_set "descr" "Validate curses set the background attributes on stdscr"
   2018 }
   2019 bkgdset_body()
   2020 {
   2021 	h_run bkgdset
   2022 }
   2023 
   2024 atf_test_case bkgrndset
   2025 bkgrndset_head()
   2026 {
   2027 	atf_set "descr" "Validate curses sets the background character using a complex char on stdscr"
   2028 }
   2029 bkgrndset_body()
   2030 {
   2031 	h_run bkgrndset
   2032 }
   2033 
   2034 atf_test_case getbkgd
   2035 getbkgd_head()
   2036 {
   2037 	atf_set "descr" "Validate curses getting the background attributes on stdscr"
   2038 }
   2039 getbkgd_body()
   2040 {
   2041 	h_run getbkgd
   2042 }
   2043 
   2044 ##########################################
   2045 # curses border drawing routines
   2046 ##########################################
   2047 
   2048 atf_test_case box
   2049 box_head()
   2050 {
   2051 	atf_set "descr" "Checks drawing a box around a window"
   2052 }
   2053 box_body()
   2054 {
   2055 	h_run box
   2056 }
   2057 
   2058 atf_test_case box_set
   2059 box_set_head()
   2060 {
   2061     atf_set "descr" "Checks drawing the box from complex character"
   2062 }
   2063 box_set_body()
   2064 {
   2065     h_run box_set
   2066 }
   2067 
   2068 atf_test_case wborder
   2069 wborder_head()
   2070 {
   2071 	atf_set "descr" "Checks drawing a border around a window"
   2072 }
   2073 wborder_body()
   2074 {
   2075 	h_run wborder
   2076 }
   2077 
   2078 atf_test_case border_set
   2079 border_set_head()
   2080 {
   2081     atf_set "descr" "Checks drawing borders from complex characters and renditions on stdscr"
   2082 }
   2083 border_set_body()
   2084 {
   2085     h_run border_set
   2086 }
   2087 
   2088 atf_test_case wborder_set
   2089 wborder_set_head()
   2090 {
   2091     atf_set "descr" "Checks drawing borders from complex characters and renditions on window"
   2092 }
   2093 wborder_set_body()
   2094 {
   2095     h_run wborder_set
   2096 }
   2097 
   2098 ##########################################
   2099 # curses insert or delete lines routines
   2100 ##########################################
   2101 
   2102 atf_test_case deleteln
   2103 deleteln_head()
   2104 {
   2105     atf_set "descr" "Checks curses can delete lines from stdscr and window both"
   2106 }
   2107 deleteln_body()
   2108 {
   2109     h_run deleteln
   2110 }
   2111 
   2112 atf_test_case insertln
   2113 insertln_head()
   2114 {
   2115     atf_set "descr" "Checks curses can insert lines from stdscr and window both"
   2116 }
   2117 insertln_body()
   2118 {
   2119     h_run insertln
   2120 }
   2121 
   2122 atf_test_case insdelln
   2123 insdelln_head()
   2124 {
   2125     atf_set "descr" "Checks curses can insert/delete lines from stdscr and window both based on argument"
   2126 }
   2127 insdelln_body()
   2128 {
   2129     h_run insdelln
   2130 }
   2131 
   2132 ##########################################
   2133 # curses print formatted strings on windows routines
   2134 ##########################################
   2135 
   2136 atf_test_case wprintw
   2137 wprintw_head()
   2138 {
   2139 	atf_set "descr" "Checks printing to a window"
   2140 }
   2141 wprintw_body()
   2142 {
   2143 	h_run wprintw
   2144 }
   2145 
   2146 atf_test_case mvprintw
   2147 mvprintw_head()
   2148 {
   2149 	atf_set "descr" "Move the cursor and print a string"
   2150 }
   2151 mvprintw_body()
   2152 {
   2153 	h_run mvprintw
   2154 }
   2155 
   2156 atf_test_case mvscanw
   2157 mvscanw_head()
   2158 {
   2159 	atf_set "descr" "Move the cursor and scan for input patterns"
   2160 }
   2161 mvscanw_body()
   2162 {
   2163 	h_run mvscanw
   2164 }
   2165 
   2166 ##########################################
   2167 # curses underscore attribute manipulation routines
   2168 ##########################################
   2169 
   2170 atf_test_case underscore
   2171 underscore_head()
   2172 {
   2173 	atf_set "descr" "Manipulate underscore attribute on stdscr"
   2174 }
   2175 underscore_body()
   2176 {
   2177 	h_run underscore
   2178 }
   2179 
   2180 atf_test_case wunderscore
   2181 wunderscore_head()
   2182 {
   2183 	atf_set "descr" "Manipulate underscore attribute on window"
   2184 }
   2185 wunderscore_body()
   2186 {
   2187 	h_run wunderscore
   2188 }
   2189 
   2190 atf_init_test_cases()
   2191 {
   2192 	# testframe utility functions
   2193 	atf_add_test_case startup
   2194 	atf_add_test_case window
   2195 	atf_add_test_case start_slk
   2196 	atf_add_test_case window_hierarchy
   2197 	atf_add_test_case two_window
   2198 	atf_add_test_case varcheck
   2199 
   2200 	# curses add characters to window routines
   2201 	atf_add_test_case addbytes
   2202 	atf_add_test_case addch
   2203 	atf_add_test_case waddch
   2204 	atf_add_test_case mvaddch
   2205 	atf_add_test_case addchstr
   2206 	atf_add_test_case waddchstr
   2207 	atf_add_test_case addchnstr
   2208 	atf_add_test_case waddchnstr
   2209 	atf_add_test_case mvaddchstr
   2210 	atf_add_test_case mvwaddchstr
   2211 	atf_add_test_case mvaddchnstr
   2212 	atf_add_test_case mvwaddchnstr
   2213 	atf_add_test_case addstr
   2214 	atf_add_test_case addwstr
   2215 	atf_add_test_case waddstr
   2216 	atf_add_test_case waddwstr
   2217 	atf_add_test_case addnstr
   2218 	atf_add_test_case addnwstr
   2219 	atf_add_test_case waddnstr
   2220 	atf_add_test_case waddnwstr
   2221 	atf_add_test_case mvwaddnwstr
   2222 	atf_add_test_case mvaddstr
   2223 	atf_add_test_case mvaddwstr
   2224 	atf_add_test_case mvwaddwstr
   2225 	atf_add_test_case mvwaddstr
   2226 	atf_add_test_case mvaddnstr
   2227 	atf_add_test_case mvaddnwstr
   2228 	atf_add_test_case mvwaddnstr
   2229 	atf_add_test_case add_wch
   2230 	atf_add_test_case wadd_wch
   2231 
   2232 	# curses input stream routines
   2233 	atf_add_test_case getch
   2234 	#atf_add_test_case wgetch [test is missing]
   2235 	atf_add_test_case define_key
   2236 	atf_add_test_case keyok
   2237 	atf_add_test_case getnstr
   2238 	atf_add_test_case wgetnstr
   2239 	atf_add_test_case mvgetnstr
   2240 	atf_add_test_case mvwgetnstr
   2241 	atf_add_test_case getstr
   2242 	atf_add_test_case wgetstr
   2243 	atf_add_test_case mvgetstr
   2244 	atf_add_test_case mvwgetstr
   2245 	atf_add_test_case keyname
   2246 	atf_add_test_case key_name
   2247 	atf_add_test_case keypad
   2248 	atf_add_test_case notimeout
   2249 	atf_add_test_case timeout
   2250 	atf_add_test_case wtimeout
   2251 	atf_add_test_case nodelay
   2252 	atf_add_test_case unget_wch
   2253 	atf_add_test_case getn_wstr
   2254 	atf_add_test_case wgetn_wstr
   2255 	atf_add_test_case get_wstr
   2256 	atf_add_test_case wget_wstr
   2257 	atf_add_test_case mvgetn_wstr
   2258 	atf_add_test_case mvwgetn_wstr
   2259 	atf_add_test_case mvget_wstr
   2260 	atf_add_test_case mvwget_wstr
   2261 	atf_add_test_case get_wch
   2262 
   2263 	# curses read screen contents routines
   2264 	atf_add_test_case inch
   2265 	atf_add_test_case winch
   2266 	atf_add_test_case mvinch
   2267 	atf_add_test_case mvwinch
   2268 	atf_add_test_case inchnstr
   2269 	atf_add_test_case winchnstr
   2270 	atf_add_test_case mvinchnstr
   2271 	atf_add_test_case mvwinchnstr
   2272 	atf_add_test_case innstr
   2273 	atf_add_test_case winnstr
   2274 	atf_add_test_case mvinnstr
   2275 	atf_add_test_case mvwinnstr
   2276 	atf_add_test_case in_wch
   2277 	atf_add_test_case win_wch
   2278 	atf_add_test_case innwstr
   2279 	atf_add_test_case winnwstr
   2280 	atf_add_test_case inwstr
   2281 	atf_add_test_case winwstr
   2282 	atf_add_test_case mvinnwstr
   2283 	atf_add_test_case mvwinnwstr
   2284 	atf_add_test_case mvinwstr
   2285 	atf_add_test_case mvwinwstr
   2286 
   2287 	# curses insert character to window routines
   2288 	atf_add_test_case insch
   2289 	atf_add_test_case winsch
   2290 	atf_add_test_case mvinsch
   2291 	atf_add_test_case mvwinsch
   2292 	atf_add_test_case ins_wch
   2293 	atf_add_test_case wins_wch
   2294 	atf_add_test_case mvins_wch
   2295 	atf_add_test_case mvwins_wch
   2296 	atf_add_test_case ins_nwstr
   2297 	atf_add_test_case wins_nwstr
   2298 	atf_add_test_case ins_wstr
   2299 	atf_add_test_case wins_wstr
   2300 	atf_add_test_case mvins_nwstr
   2301 	atf_add_test_case mvwins_nwstr
   2302 	atf_add_test_case mvins_wstr
   2303 	atf_add_test_case mvwins_wstr
   2304 
   2305 	# curses delete characters routines
   2306 	atf_add_test_case delch
   2307 	atf_add_test_case mvdelch
   2308 
   2309 	# curses terminal manipulation routines
   2310 	atf_add_test_case beep
   2311 	atf_add_test_case flash
   2312 	atf_add_test_case curs_set
   2313 	# atf_add_test_case delay_output [WORKS CORRECTLY BUT FAILS IN TESTFRAME]
   2314 	atf_add_test_case erasechar
   2315 	atf_add_test_case erasewchar
   2316 	atf_add_test_case echochar
   2317 	atf_add_test_case echo_wchar
   2318 	atf_add_test_case wecho_wchar
   2319 	atf_add_test_case halfdelay
   2320 	atf_add_test_case has_ic
   2321 	atf_add_test_case killchar
   2322 	atf_add_test_case killwchar
   2323 	atf_add_test_case meta
   2324 	atf_add_test_case cbreak
   2325 	atf_add_test_case nocbreak
   2326 
   2327 	# curses general attribute manipulation routines
   2328 	atf_add_test_case attributes
   2329 	atf_add_test_case wattributes
   2330 	atf_add_test_case getattrs
   2331 	atf_add_test_case color_set
   2332 	atf_add_test_case wcolor_set
   2333 	atf_add_test_case termattrs
   2334 
   2335 	# curses on-screen attribute manipulation routines
   2336 	atf_add_test_case chgat
   2337 	atf_add_test_case wchgat
   2338 	atf_add_test_case mvchgat
   2339 	atf_add_test_case mvwchgat
   2340 
   2341 	# curses standout attribute manipulation routines
   2342 	atf_add_test_case standout
   2343 	atf_add_test_case wstandout
   2344 
   2345 	# curses color manipulation routines
   2346 	atf_add_test_case has_colors
   2347 	atf_add_test_case can_change_color
   2348 	atf_add_test_case start_color
   2349 	atf_add_test_case pair_content
   2350 	atf_add_test_case init_color
   2351 	atf_add_test_case color_content
   2352 	atf_add_test_case assume_default_colors
   2353 
   2354 	# curses clear window routines
   2355 	atf_add_test_case clear
   2356 	atf_add_test_case clearok
   2357 
   2358 	# curses terminal update routines
   2359 	atf_add_test_case doupdate
   2360 	atf_add_test_case immedok
   2361 	atf_add_test_case leaveok
   2362 
   2363 	# curses window scrolling routines
   2364 	atf_add_test_case wscrl
   2365 	atf_add_test_case scroll
   2366 	atf_add_test_case setscrreg
   2367 	atf_add_test_case wsetscrreg
   2368 
   2369 	# curses window modification routines
   2370 	atf_add_test_case touchline
   2371 	atf_add_test_case touchoverlap
   2372 	atf_add_test_case touchwin
   2373 	atf_add_test_case untouchwin
   2374 	atf_add_test_case wtouchln
   2375 	atf_add_test_case is_linetouched
   2376 	atf_add_test_case is_wintouched
   2377 	atf_add_test_case redrawwin
   2378 	atf_add_test_case wresize
   2379 	atf_add_test_case wredrawln
   2380 
   2381 	# curses soft label key routines
   2382 	atf_add_test_case slk
   2383 
   2384 	# curses draw lines on windows routines
   2385 	atf_add_test_case hline
   2386 	atf_add_test_case whline
   2387 	atf_add_test_case mvhline
   2388 	atf_add_test_case wvline
   2389 	atf_add_test_case mvvline
   2390 	atf_add_test_case hline_set
   2391 	atf_add_test_case whline_set
   2392 	atf_add_test_case vline_set
   2393 	atf_add_test_case wvline_set
   2394 
   2395 	# curses pad routines
   2396 	atf_add_test_case pad
   2397 	atf_add_test_case pechochar
   2398 
   2399 	# curses cursor and window location and positioning routines
   2400 	atf_add_test_case cursor
   2401 	atf_add_test_case getcurx
   2402 	atf_add_test_case getmaxx
   2403 	atf_add_test_case getmaxy
   2404 	atf_add_test_case getparx
   2405 	atf_add_test_case getbegy
   2406 	atf_add_test_case getbegx
   2407 	atf_add_test_case mvcur
   2408 
   2409 	# curses window routines
   2410 	atf_add_test_case copywin
   2411 	atf_add_test_case dupwin
   2412 	# atf_add_test_case delwin [FAILING]
   2413 	atf_add_test_case derwin
   2414 	atf_add_test_case mvwin
   2415 	atf_add_test_case mvderwin
   2416 	atf_add_test_case newwin
   2417 	atf_add_test_case overlay
   2418 	atf_add_test_case overwrite
   2419 	atf_add_test_case getwin
   2420 
   2421 	# curses background attribute manipulation routines
   2422 	atf_add_test_case background
   2423 	atf_add_test_case bkgdset
   2424 	atf_add_test_case bkgrndset
   2425 	atf_add_test_case getbkgd
   2426 
   2427 	# curses border drawing routines
   2428 	atf_add_test_case box
   2429 	atf_add_test_case box_set
   2430 	atf_add_test_case wborder
   2431 	atf_add_test_case border_set
   2432 	atf_add_test_case wborder_set
   2433 
   2434 	# curses insert or delete lines routines
   2435 	atf_add_test_case deleteln
   2436 	atf_add_test_case insertln
   2437 	atf_add_test_case insdelln
   2438 
   2439 	# curses print formatted strings on windows routines
   2440 	atf_add_test_case wprintw
   2441 	atf_add_test_case mvprintw
   2442 	atf_add_test_case mvscanw
   2443 
   2444 	# curses underscore attribute manipulation routines
   2445 	atf_add_test_case underscore
   2446 	atf_add_test_case wunderscore
   2447 }
   2448