summaryrefslogtreecommitdiff
path: root/regress
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2001-07-12 14:06:05 +0000
committerMarc Espie <espie@cvs.openbsd.org>2001-07-12 14:06:05 +0000
commit089bf976e99aca8851982711e4cabd29891c598c (patch)
treed15723bdf726883dfd847d99e2af8c0a6c24bfc5 /regress
parent5ffbc7d3dce42404c85b1f8670e1d4a0c2a29327 (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')
-rw-r--r--regress/usr.bin/tsort/Makefile29
-rw-r--r--regress/usr.bin/tsort/pairs5663
-rw-r--r--regress/usr.bin/tsort/tsort-check31
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};
+}