diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2001-07-12 14:06:05 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2001-07-12 14:06:05 +0000 |
commit | 089bf976e99aca8851982711e4cabd29891c598c (patch) | |
tree | d15723bdf726883dfd847d99e2af8c0a6c24bfc5 /regress/usr.bin/tsort | |
parent | 5ffbc7d3dce42404c85b1f8670e1d4a0c2a29327 (diff) |
Better tsort checker: parses cycle output, and checks that it's correct
with respect to the input.
Additional testcase, based on libcurses, that failed in the past.
Activate t5, t6. Check cycles output everywhere.
Diffstat (limited to 'regress/usr.bin/tsort')
-rw-r--r-- | regress/usr.bin/tsort/Makefile | 29 | ||||
-rw-r--r-- | regress/usr.bin/tsort/pairs5 | 663 | ||||
-rw-r--r-- | regress/usr.bin/tsort/tsort-check | 31 |
3 files changed, 712 insertions, 11 deletions
diff --git a/regress/usr.bin/tsort/Makefile b/regress/usr.bin/tsort/Makefile index 275638eaa3e..dd79efe6044 100644 --- a/regress/usr.bin/tsort/Makefile +++ b/regress/usr.bin/tsort/Makefile @@ -1,9 +1,9 @@ -# $OpenBSD: Makefile,v 1.3 2001/07/09 10:48:03 espie Exp $ +# $OpenBSD: Makefile,v 1.4 2001/07/12 14:06:02 espie Exp $ NOMAN= NOPROG= -regress: t1 t2 t3 t4 #t6 +regress: t1 t2 t3 t4 t5 t6 t1: t1.out perl ${.CURDIR}/tsort-check t1.out ${.CURDIR}/pairs1 @@ -12,25 +12,34 @@ t2: t2.out perl ${.CURDIR}/normalize-cycles <t2.out|head -1|diff - ${.CURDIR}/t2.canonical t3: t3.out pairs3 - time perl ${.CURDIR}/tsort-check t3.out pairs3 + perl ${.CURDIR}/tsort-check t3.out pairs3 t4: t4.out pairs4 - time perl ${.CURDIR}/tsort-check t4.out pairs4 + perl ${.CURDIR}/tsort-check t4.out pairs4 -t6: - tsort <pairs6 +t5: t5.out + perl ${.CURDIR}/tsort-check t5.out ${.CURDIR}/pairs5 + +t6: t6.out + perl ${.CURDIR}/tsort-check t6.out ${.CURDIR}/pairs6 t1.out: - tsort <${.CURDIR}/pairs1 >$@ + tsort <${.CURDIR}/pairs1 >$@ 2>&1 t2.out: cat ${.CURDIR}/pairs1 ${.CURDIR}/pairs2 |tsort -l >/dev/null 2>$@ t3.out: pairs3 - tsort <pairs3 >$@ + tsort <pairs3 >$@ 2>&1 t4.out: pairs4 - tsort <pairs4 >$@ + tsort <pairs4 >$@ 2>&1 + +t5.out: pairs5 + tsort <${.CURDIR}/pairs5 >$@ 2>&1 + +t6.out: pairs6 + tsort <${.CURDIR}/pairs6 >$@ 2>&1 pairs3: perl ${.CURDIR}/build-tree 4 8 >$@ @@ -39,6 +48,6 @@ pairs4: perl ${.CURDIR}/build-tree 5 10 >$@ .PHONY: t1 t2 regress -CLEANFILES+=t1.out t2.out t3.out t4.out pairs3 pairs4 +CLEANFILES+=t1.out t2.out t3.out t4.out t5.out t6.out pairs3 pairs4 .include <bsd.prog.mk> diff --git a/regress/usr.bin/tsort/pairs5 b/regress/usr.bin/tsort/pairs5 new file mode 100644 index 00000000000..15aad154a10 --- /dev/null +++ b/regress/usr.bin/tsort/pairs5 @@ -0,0 +1,663 @@ +codes.so codes.so +comp_captab.so comp_captab.so +expanded.so expanded.so +fallback.so fallback.so +lib_gen.so lib_gen.so +lib_keyname.so lib_keyname.so +names.so names.so +unctrl.so unctrl.so +define_key.so define_key.so +keybound.so keybound.so +keyok.so keyok.so +lib_adabind.so lib_adabind.so +lib_addch.so lib_addch.so +lib_addstr.so lib_addstr.so +lib_beep.so lib_beep.so +lib_bkgd.so lib_bkgd.so +lib_box.so lib_box.so +lib_chgat.so lib_chgat.so +lib_clear.so lib_clear.so +lib_clearok.so lib_clearok.so +lib_clrbot.so lib_clrbot.so +lib_clreol.so lib_clreol.so +lib_color.so lib_color.so +lib_colorset.so lib_colorset.so +lib_delch.so lib_delch.so +lib_delwin.so lib_delwin.so +lib_dft_fgbg.so lib_dft_fgbg.so +lib_echo.so lib_echo.so +lib_endwin.so lib_endwin.so +lib_erase.so lib_erase.so +lib_flash.so lib_flash.so +lib_freeall.so lib_freeall.so +lib_getch.so lib_getch.so +lib_getstr.so lib_getstr.so +lib_hline.so lib_hline.so +lib_immedok.so lib_immedok.so +lib_inchstr.so lib_inchstr.so +lib_initscr.so lib_initscr.so +lib_insch.so lib_insch.so +lib_insdel.so lib_insdel.so +lib_insstr.so lib_insstr.so +lib_instr.so lib_instr.so +lib_isendwin.so lib_isendwin.so +lib_leaveok.so lib_leaveok.so +lib_mouse.so lib_mouse.so +lib_move.so lib_move.so +lib_mvwin.so lib_mvwin.so +lib_newterm.so lib_newterm.so +lib_newwin.so lib_newwin.so +lib_nl.so lib_nl.so +lib_overlay.so lib_overlay.so +lib_pad.so lib_pad.so +lib_printw.so lib_printw.so +lib_redrawln.so lib_redrawln.so +lib_refresh.so lib_refresh.so +lib_restart.so lib_restart.so +lib_scanw.so lib_scanw.so +lib_screen.so lib_screen.so +lib_scroll.so lib_scroll.so +lib_scrollok.so lib_scrollok.so +lib_scrreg.so lib_scrreg.so +lib_set_term.so lib_set_term.so +lib_slk.so lib_slk.so +lib_slkatr_set.so lib_slkatr_set.so +lib_slkatrof.so lib_slkatrof.so +lib_slkatron.so lib_slkatron.so +lib_slkatrset.so lib_slkatrset.so +lib_slkattr.so lib_slkattr.so +lib_slkclear.so lib_slkclear.so +lib_slkcolor.so lib_slkcolor.so +lib_slkinit.so lib_slkinit.so +lib_slklab.so lib_slklab.so +lib_slkrefr.so lib_slkrefr.so +lib_slkset.so lib_slkset.so +lib_slktouch.so lib_slktouch.so +lib_touch.so lib_touch.so +lib_ungetch.so lib_ungetch.so +lib_vline.so lib_vline.so +lib_wattroff.so lib_wattroff.so +lib_wattron.so lib_wattron.so +lib_winch.so lib_winch.so +lib_window.so lib_window.so +nc_panel.so nc_panel.so +resizeterm.so resizeterm.so +safe_sprintf.so safe_sprintf.so +sigaction.so sigaction.so +tries.so tries.so +version.so version.so +wresize.so wresize.so +access.so access.so +add_tries.so add_tries.so +alloc_entry.so alloc_entry.so +alloc_ttype.so alloc_ttype.so +captoinfo.so captoinfo.so +comp_error.so comp_error.so +comp_expand.so comp_expand.so +comp_hash.so comp_hash.so +comp_parse.so comp_parse.so +comp_scan.so comp_scan.so +doalloc.so doalloc.so +free_ttype.so free_ttype.so +getenv_num.so getenv_num.so +home_terminfo.so home_terminfo.so +init_keytry.so init_keytry.so +lib_acs.so lib_acs.so +lib_baudrate.so lib_baudrate.so +lib_cur_term.so lib_cur_term.so +lib_data.so lib_data.so +lib_has_cap.so lib_has_cap.so +lib_kernel.so lib_kernel.so +lib_longname.so lib_longname.so +lib_napms.so lib_napms.so +lib_options.so lib_options.so +lib_print.so lib_print.so +lib_raw.so lib_raw.so +lib_setup.so lib_setup.so +lib_termcap.so lib_termcap.so +lib_termname.so lib_termname.so +lib_tgoto.so lib_tgoto.so +lib_ti.so lib_ti.so +lib_tparm.so lib_tparm.so +lib_tputs.so lib_tputs.so +lib_ttyflags.so lib_ttyflags.so +name_match.so name_match.so +parse_entry.so parse_entry.so +read_bsd_terminfo.so read_bsd_terminfo.so +read_entry.so read_entry.so +read_termcap.so read_termcap.so +setbuf.so setbuf.so +strings.so strings.so +write_entry.so write_entry.so +lib_trace.so lib_trace.so +lib_traceatr.so lib_traceatr.so +lib_tracebits.so lib_tracebits.so +lib_tracechr.so lib_tracechr.so +lib_tracedmp.so lib_tracedmp.so +lib_tracemse.so lib_tracemse.so +trace_buf.so trace_buf.so +trace_tries.so trace_tries.so +trace_xnames.so trace_xnames.so +hardscroll.so hardscroll.so +hashmap.so hashmap.so +lib_mvcur.so lib_mvcur.so +lib_tstp.so lib_tstp.so +lib_twait.so lib_twait.so +lib_vidattr.so lib_vidattr.so +tty_update.so tty_update.so +lib_tgoto.so lib_termcap.so +lib_set_term.so lib_color.so +lib_colorset.so lib_color.so +lib_set_term.so lib_color.so +lib_slkatr_set.so lib_color.so +lib_slkcolor.so lib_color.so +tty_update.so lib_color.so +lib_newterm.so lib_setup.so +resizeterm.so lib_setup.so +setbuf.so lib_setup.so +lib_initscr.so lib_getch.so +lib_newterm.so lib_setup.so +lib_set_term.so lib_setup.so +resizeterm.so lib_setup.so +setbuf.so lib_setup.so +lib_cur_term.so lib_tputs.so +lib_termcap.so lib_tputs.so +define_key.so lib_data.so +hardscroll.so lib_data.so +hashmap.so lib_data.so +init_keytry.so lib_data.so +keybound.so lib_data.so +keyok.so lib_data.so +lib_color.so lib_data.so +lib_delwin.so lib_data.so +lib_dft_fgbg.so lib_data.so +lib_echo.so lib_data.so +lib_endwin.so lib_data.so +lib_getch.so lib_data.so +lib_getstr.so lib_data.so +lib_isendwin.so lib_data.so +lib_kernel.so lib_data.so +lib_mouse.so lib_data.so +lib_mvcur.so lib_data.so +lib_mvwin.so lib_data.so +lib_newterm.so lib_data.so +lib_newwin.so lib_data.so +lib_nl.so lib_data.so +lib_options.so lib_data.so +lib_pad.so lib_data.so +lib_raw.so lib_data.so +lib_restart.so lib_data.so +lib_set_term.so lib_data.so +lib_setup.so lib_data.so +lib_slk.so lib_data.so +lib_slkatr_set.so lib_data.so +lib_slkatrof.so lib_data.so +lib_slkatron.so lib_data.so +lib_slkatrset.so lib_data.so +lib_slkattr.so lib_data.so +lib_slkclear.so lib_data.so +lib_slkcolor.so lib_data.so +lib_slklab.so lib_data.so +lib_slkrefr.so lib_data.so +lib_slkset.so lib_data.so +lib_slktouch.so lib_data.so +lib_tputs.so lib_data.so +lib_tstp.so lib_data.so +lib_ttyflags.so lib_data.so +lib_twait.so lib_data.so +lib_ungetch.so lib_data.so +lib_vidattr.so lib_data.so +nc_panel.so lib_data.so +resizeterm.so lib_data.so +safe_sprintf.so lib_data.so +setbuf.so lib_data.so +tty_update.so lib_data.so +lib_addch.so lib_setup.so +lib_newterm.so lib_setup.so +lib_screen.so access.so +read_entry.so access.so +write_entry.so access.so +define_key.so add_tries.so +init_keytry.so add_tries.so +keyok.so add_tries.so +lib_mouse.so add_tries.so +alloc_entry.so alloc_ttype.so +lib_clrbot.so lib_addch.so +lib_clreol.so lib_addch.so +lib_delch.so lib_addch.so +lib_erase.so lib_addch.so +lib_insdel.so lib_addch.so +lib_scroll.so lib_addch.so +wresize.so lib_addch.so +lib_tputs.so lib_baudrate.so +parse_entry.so comp_captab.so +parse_entry.so comp_captab.so +parse_entry.so captoinfo.so +parse_entry.so comp_scan.so +parse_entry.so comp_scan.so +comp_parse.so alloc_entry.so +alloc_entry.so alloc_ttype.so +comp_parse.so alloc_ttype.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +parse_entry.so comp_error.so +read_termcap.so comp_error.so +parse_entry.so comp_scan.so +lib_vidattr.so lib_color.so +tty_update.so lib_color.so +alloc_ttype.so doalloc.so +comp_expand.so doalloc.so +comp_scan.so doalloc.so +hardscroll.so doalloc.so +lib_tgoto.so doalloc.so +lib_tparm.so doalloc.so +lib_trace.so doalloc.so +parse_entry.so doalloc.so +read_entry.so doalloc.so +safe_sprintf.so doalloc.so +trace_buf.so doalloc.so +wresize.so doalloc.so +alloc_entry.so comp_error.so +captoinfo.so comp_error.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +home_terminfo.so comp_error.so +lib_tparm.so comp_error.so +parse_entry.so comp_error.so +write_entry.so comp_error.so +keybound.so tries.so +keyok.so tries.so +lib_setup.so fallback.so +parse_entry.so comp_hash.so +parse_entry.so comp_hash.so +comp_parse.so name_match.so +parse_entry.so name_match.so +lib_beep.so lib_tputs.so +lib_flash.so lib_tputs.so +lib_mouse.so lib_tputs.so +lib_options.so lib_tputs.so +lib_ttyflags.so lib_tputs.so +tty_update.so lib_tputs.so +read_bsd_terminfo.so comp_parse.so +read_termcap.so comp_parse.so +lib_cur_term.so free_ttype.so +read_entry.so free_ttype.so +lib_delwin.so lib_newwin.so +lib_pad.so lib_newwin.so +lib_set_term.so lib_newwin.so +parse_entry.so comp_captab.so +parse_entry.so comp_scan.so +lib_getstr.so lib_ttyflags.so +comp_scan.so comp_error.so +lib_initscr.so getenv_num.so +lib_setup.so getenv_num.so +hardscroll.so hashmap.so +read_bsd_terminfo.so comp_parse.so +read_termcap.so comp_parse.so +read_entry.so home_terminfo.so +write_entry.so home_terminfo.so +parse_entry.so comp_captab.so +parse_entry.so comp_captab.so +lib_set_term.so lib_acs.so +parse_entry.so alloc_entry.so +lib_options.so init_keytry.so +write_entry.so read_entry.so +lib_ttyflags.so lib_options.so +lib_color.so hashmap.so +lib_redrawln.so hashmap.so +lib_pad.so lib_newwin.so +comp_parse.so alloc_entry.so +lib_newterm.so lib_mvcur.so +tty_update.so lib_mvcur.so +lib_endwin.so lib_mvcur.so +comp_parse.so name_match.so +read_termcap.so name_match.so +hashmap.so hardscroll.so +lib_cur_term.so lib_baudrate.so +lib_color.so lib_tputs.so +lib_mvcur.so lib_tputs.so +lib_tstp.so lib_tputs.so +lib_vidattr.so lib_tputs.so +tty_update.so lib_tputs.so +parse_entry.so comp_scan.so +comp_parse.so parse_entry.so +lib_printw.so safe_sprintf.so +parse_entry.so comp_scan.so +read_entry.so read_bsd_terminfo.so +read_entry.so read_bsd_terminfo.so +comp_parse.so read_entry.so +lib_setup.so read_entry.so +read_bsd_terminfo.so comp_parse.so +read_termcap.so comp_parse.so +lib_setup.so read_termcap.so +define_key.so tries.so +keyok.so tries.so +define_key.so tries.so +lib_bkgd.so lib_addch.so +lib_box.so lib_addch.so +lib_hline.so lib_addch.so +lib_insch.so lib_addch.so +lib_vline.so lib_addch.so +comp_parse.so comp_scan.so +read_termcap.so comp_parse.so +lib_newterm.so lib_set_term.so +lib_mvcur.so strings.so +parse_entry.so strings.so +read_termcap.so strings.so +lib_mvcur.so strings.so +read_termcap.so strings.so +parse_entry.so alloc_entry.so +lib_set_term.so lib_data.so +lib_tstp.so lib_data.so +lib_newterm.so tty_update.so +lib_endwin.so tty_update.so +tty_update.so hashmap.so +tty_update.so hardscroll.so +lib_insdel.so lib_scroll.so +tty_update.so lib_scroll.so +hardscroll.so tty_update.so +lib_set_term.so setbuf.so +lib_ttyflags.so setbuf.so +read_bsd_terminfo.so comp_error.so +read_termcap.so comp_error.so +lib_getstr.so lib_ttyflags.so +lib_newterm.so lib_ttyflags.so +lib_raw.so lib_ttyflags.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +parse_entry.so comp_error.so +write_entry.so comp_error.so +lib_newterm.so lib_set_term.so +lib_newterm.so lib_tstp.so +tty_update.so lib_tstp.so +lib_newterm.so lib_slk.so +lib_slkinit.so lib_slk.so +lib_newterm.so lib_slk.so +parse_entry.so comp_scan.so +lib_mvcur.so strings.so +lib_mvcur.so strings.so +parse_entry.so strings.so +read_termcap.so strings.so +lib_mvcur.so strings.so +comp_parse.so comp_error.so +lib_addch.so lib_window.so +lib_addstr.so lib_window.so +lib_bkgd.so lib_window.so +lib_box.so lib_window.so +lib_clrbot.so lib_window.so +lib_clreol.so lib_window.so +lib_delch.so lib_window.so +lib_erase.so lib_window.so +lib_hline.so lib_window.so +lib_insdel.so lib_window.so +lib_insstr.so lib_window.so +lib_scroll.so lib_window.so +lib_vline.so lib_window.so +parse_entry.so comp_scan.so +comp_scan.so comp_error.so +write_entry.so comp_error.so +write_entry.so read_entry.so +lib_getch.so lib_twait.so +comp_scan.so lib_trace.so +parse_entry.so lib_trace.so +lib_getch.so lib_setup.so +lib_restart.so lib_setup.so +tty_update.so lib_setup.so +parse_entry.so free_ttype.so +read_entry.so free_ttype.so +write_entry.so free_ttype.so +parse_entry.so lib_trace.so +lib_addstr.so lib_addch.so +lib_insstr.so lib_addch.so +captoinfo.so comp_error.so +comp_parse.so comp_error.so +comp_scan.so comp_error.so +parse_entry.so comp_error.so +write_entry.so comp_error.so +comp_parse.so alloc_entry.so +parse_entry.so alloc_entry.so +lib_box.so lib_acs.so +lib_hline.so lib_acs.so +lib_set_term.so lib_acs.so +lib_vline.so lib_acs.so +lib_newterm.so lib_baudrate.so +lib_termcap.so lib_baudrate.so +lib_getstr.so lib_beep.so +lib_termcap.so codes.so +parse_entry.so names.so +lib_ti.so names.so +lib_getstr.so lib_raw.so +lib_newterm.so lib_raw.so +lib_options.so lib_raw.so +lib_restart.so lib_raw.so +lib_mvwin.so lib_overlay.so +hashmap.so lib_cur_term.so +init_keytry.so lib_cur_term.so +lib_acs.so lib_cur_term.so +lib_baudrate.so lib_cur_term.so +lib_beep.so lib_cur_term.so +lib_color.so lib_cur_term.so +lib_dft_fgbg.so lib_cur_term.so +lib_flash.so lib_cur_term.so +lib_has_cap.so lib_cur_term.so +lib_kernel.so lib_cur_term.so +lib_mouse.so lib_cur_term.so +lib_mvcur.so lib_cur_term.so +lib_newterm.so lib_cur_term.so +lib_options.so lib_cur_term.so +lib_print.so lib_cur_term.so +lib_raw.so lib_cur_term.so +lib_screen.so lib_cur_term.so +lib_set_term.so lib_cur_term.so +lib_setup.so lib_cur_term.so +lib_slk.so lib_cur_term.so +lib_slkrefr.so lib_cur_term.so +lib_termcap.so lib_cur_term.so +lib_ti.so lib_cur_term.so +lib_tputs.so lib_cur_term.so +lib_ttyflags.so lib_cur_term.so +lib_vidattr.so lib_cur_term.so +resizeterm.so lib_cur_term.so +tty_update.so lib_cur_term.so +lib_mvcur.so lib_options.so +hashmap.so lib_data.so +lib_color.so lib_data.so +lib_delwin.so lib_data.so +lib_newwin.so lib_data.so +lib_redrawln.so lib_data.so +lib_refresh.so lib_data.so +lib_screen.so lib_data.so +lib_set_term.so lib_data.so +tty_update.so lib_data.so +lib_initscr.so lib_ttyflags.so +lib_set_term.so lib_ttyflags.so +lib_tstp.so lib_ttyflags.so +lib_set_term.so lib_ttyflags.so +lib_tstp.so lib_ttyflags.so +lib_set_term.so lib_cur_term.so +lib_mvwin.so lib_delwin.so +lib_screen.so lib_delwin.so +lib_pad.so lib_newwin.so +lib_pad.so tty_update.so +lib_refresh.so tty_update.so +lib_tstp.so tty_update.so +lib_mvwin.so lib_window.so +lib_screen.so lib_window.so +lib_restart.so lib_echo.so +lib_tstp.so lib_endwin.so +lib_getstr.so lib_kernel.so +lib_tstp.so lib_kernel.so +lib_options.so lib_has_cap.so +tty_update.so lib_has_cap.so +lib_options.so lib_has_cap.so +define_key.so lib_options.so +lib_dft_fgbg.so lib_color.so +lib_getch.so lib_touch.so +lib_getstr.so lib_touch.so +lib_mouse.so keyok.so +lib_getstr.so lib_kernel.so +tty_update.so lib_mvcur.so +lib_mvwin.so lib_window.so +lib_tputs.so lib_napms.so +lib_twait.so lib_napms.so +hashmap.so lib_data.so +lib_newwin.so lib_data.so +lib_pad.so lib_data.so +lib_refresh.so lib_data.so +lib_screen.so lib_data.so +lib_set_term.so lib_data.so +tty_update.so lib_data.so +lib_initscr.so lib_newterm.so +lib_screen.so lib_newwin.so +lib_set_term.so lib_newwin.so +lib_window.so lib_newwin.so +lib_getstr.so lib_nl.so +lib_restart.so lib_nl.so +lib_restart.so lib_raw.so +lib_getstr.so lib_echo.so +lib_restart.so lib_echo.so +lib_restart.so lib_nl.so +lib_getstr.so lib_raw.so +lib_restart.so lib_raw.so +lib_termcap.so codes.so +parse_entry.so names.so +lib_ti.so names.so +lib_baudrate.so lib_tputs.so +lib_cur_term.so lib_tputs.so +lib_acs.so lib_tputs.so +lib_beep.so lib_tputs.so +lib_color.so lib_tputs.so +lib_flash.so lib_tputs.so +lib_mouse.so lib_tputs.so +lib_mvcur.so lib_tputs.so +lib_options.so lib_tputs.so +lib_slkrefr.so lib_tputs.so +tty_update.so lib_tputs.so +lib_restart.so lib_raw.so +lib_restart.so lib_ttyflags.so +tty_update.so lib_ttyflags.so +lib_endwin.so lib_ttyflags.so +lib_set_term.so resizeterm.so +lib_set_term.so lib_cur_term.so +lib_setup.so lib_cur_term.so +lib_tstp.so lib_set_term.so +lib_newterm.so lib_setup.so +lib_restart.so lib_setup.so +lib_termcap.so lib_setup.so +lib_slk.so lib_slkrefr.so +hashmap.so lib_data.so +lib_gen.so lib_data.so +lib_initscr.so lib_data.so +lib_newterm.so lib_data.so +lib_newwin.so lib_data.so +lib_printw.so lib_data.so +lib_scanw.so lib_data.so +lib_set_term.so lib_data.so +lib_slkclear.so lib_data.so +lib_slkrefr.so lib_data.so +lib_ttyflags.so lib_data.so +tty_update.so lib_data.so +lib_termcap.so codes.so +parse_entry.so names.so +lib_ti.so names.so +lib_set_term.so lib_vidattr.so +lib_dft_fgbg.so lib_ti.so +lib_color.so lib_tparm.so +lib_mvcur.so lib_tparm.so +lib_print.so lib_tparm.so +lib_slkrefr.so lib_tparm.so +lib_tgoto.so lib_tparm.so +lib_vidattr.so lib_tparm.so +tty_update.so lib_tparm.so +lib_color.so lib_tputs.so +lib_mvcur.so lib_tputs.so +lib_vidattr.so lib_tputs.so +tty_update.so lib_tputs.so +lib_longname.so lib_setup.so +lib_newterm.so lib_options.so +captoinfo.so unctrl.so +comp_scan.so unctrl.so +lib_addch.so unctrl.so +lib_getch.so lib_ungetch.so +lib_mouse.so lib_ungetch.so +tty_update.so lib_vidattr.so +lib_gen.so lib_printw.so +lib_gen.so lib_scanw.so +lib_gen.so lib_addch.so +lib_getstr.so lib_addch.so +lib_pad.so lib_addch.so +lib_slk.so lib_addch.so +lib_gen.so lib_addstr.so +lib_gen.so lib_addstr.so +lib_getstr.so lib_addstr.so +lib_printw.so lib_addstr.so +lib_slkrefr.so lib_addstr.so +lib_gen.so lib_wattroff.so +lib_gen.so lib_wattron.so +lib_gen.so lib_bkgd.so +lib_mvwin.so lib_bkgd.so +lib_gen.so lib_bkgd.so +lib_gen.so lib_box.so +lib_gen.so lib_chgat.so +lib_gen.so lib_clear.so +lib_gen.so lib_clrbot.so +lib_addch.so lib_clreol.so +lib_gen.so lib_clreol.so +lib_gen.so lib_colorset.so +lib_gen.so lib_delch.so +lib_gen.so lib_addch.so +lib_getch.so lib_addch.so +lib_getstr.so lib_addch.so +lib_pad.so lib_addch.so +lib_clear.so lib_erase.so +lib_gen.so lib_erase.so +lib_mvwin.so lib_erase.so +lib_slkclear.so lib_erase.so +lib_gen.so lib_getch.so +lib_getstr.so lib_getch.so +lib_gen.so lib_getstr.so +lib_getch.so lib_getstr.so +lib_scanw.so lib_getstr.so +lib_gen.so lib_hline.so +lib_slk.so lib_hline.so +lib_gen.so lib_winch.so +lib_gen.so lib_inchstr.so +lib_gen.so lib_instr.so +lib_gen.so lib_insch.so +lib_insstr.so lib_insch.so +lib_gen.so lib_insdel.so +lib_gen.so lib_insstr.so +lib_gen.so lib_mouse.so +lib_gen.so lib_move.so +lib_getstr.so lib_move.so +lib_printw.so lib_move.so +lib_scanw.so lib_move.so +lib_slk.so lib_move.so +lib_slkrefr.so lib_move.so +lib_window.so lib_move.so +lib_slkrefr.so lib_refresh.so +lib_gen.so lib_redrawln.so +lib_gen.so lib_refresh.so +lib_getch.so lib_refresh.so +lib_getstr.so lib_refresh.so +lib_slkclear.so lib_refresh.so +lib_slkrefr.so lib_refresh.so +lib_window.so lib_refresh.so +resizeterm.so wresize.so +lib_addch.so lib_scroll.so +lib_gen.so lib_scroll.so +lib_gen.so lib_scrreg.so +lib_refresh.so lib_window.so +lib_mvwin.so lib_window.so +lib_gen.so lib_options.so +lib_bkgd.so lib_touch.so +lib_delwin.so lib_touch.so +lib_gen.so lib_touch.so +lib_mvwin.so lib_touch.so +lib_overlay.so lib_touch.so +lib_redrawln.so lib_touch.so +lib_screen.so lib_touch.so +lib_scroll.so lib_touch.so +lib_gen.so lib_vline.so diff --git a/regress/usr.bin/tsort/tsort-check b/regress/usr.bin/tsort/tsort-check index b056575c7f9..f42342bce8e 100644 --- a/regress/usr.bin/tsort/tsort-check +++ b/regress/usr.bin/tsort/tsort-check @@ -5,21 +5,50 @@ %order=(); +%exception=(); +%ok=(); + + open(SORTED, shift) or die "No sorted output\n"; while(<SORTED>) { chomp; + while (m/^tsort: cycle in data/) { + @list = (); + while (<SORTED>) { + chomp; + last if m/^tsort: cycle in data/; + last unless m/^tsort:\s+/; + push(@list, $'); + } + for $i (1 .. @list) { + $exception{$list[$i-1].' '.$list[$i % @list]} = 1; + } + $break{$list[1]} = 1; + } $order{$_} = $i++; } close(SORTED); +@pairs=(); + open(PAIRS, shift) or die "No pairs\n"; while (<PAIRS>) { chomp; push(@pairs, split(/\s+/, $_)); while (@pairs >= 2) { - ($a, $b) = (pop @pairs, pop @pairs); + $b = pop @pairs; + $a = pop @pairs; + if (defined $exception{"$a $b"}) { + $ok{"$a $b"} = 1; + } + next if $break{$a} = 1; next unless $order{$a} < $order{$b}; die "Bad pair $a $b\n"; } } close(PAIRS); + +while (($key, $v) = each %exception) { + next if $v != 1; + die "Bogus cycle edge $key\n" unless $ok{$key}; +} |