Okan and I finally figured out what I was smoking when I wrote this regress test: it's testing for correct tab spacing when displaying on a terminal, correctly predicting the number of columns each tab will take up (as naively counting each character as taking up exactly one column will mess up the columnular output).
I replaced the systrace policy files with columns of numbers, which should make it obvious what's going on. Any regress test masters please let me know if the style is good. Thanks! Ray Index: Makefile =================================================================== RCS file: /home/cvs/src/regress/usr.bin/sdiff/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- Makefile 31 May 2016 17:28:14 -0000 1.3 +++ Makefile 1 Jun 2016 16:56:27 -0000 @@ -51,8 +51,8 @@ test-sflag: file1 file2 sflag.out test-wflag: file1 file2 wflag.out ${SDIFF} -w 40 ${.CURDIR}/file1 ${.CURDIR}/file2 | diff -u ${.CURDIR}/wflag.out - -test-tabs: tabs1 tabs2 tabs.out - ${SDIFF} ${.CURDIR}/tabs1 ${.CURDIR}/tabs2 | diff -u ${.CURDIR}/tabs.out - +test-tabs: tabs.in tabs.out + ${SDIFF} ${.CURDIR}/tabs.in ${.CURDIR}/tabs.in | diff -u ${.CURDIR}/tabs.out - test-tabends: tabends tabends.out ${SDIFF} -w30 ${.CURDIR}/tabends /dev/null | diff -u ${.CURDIR}/tabends.out - Index: tabs.in =================================================================== RCS file: tabs.in diff -N tabs.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ tabs.in 1 Jun 2016 16:55:12 -0000 @@ -0,0 +1,11 @@ +12345678901234567890123456789012345678901234567890123456789012345678901234567890 + 2345678901234567890123456789012345678901234567890123456789012345678901234567890 +1 345678901234567890123456789012345678901234567890123456789012345678901234567890 +12 45678901234567890123456789012345678901234567890123456789012345678901234567890 +123 5678901234567890123456789012345678901234567890123456789012345678901234567890 +1234 678901234567890123456789012345678901234567890123456789012345678901234567890 +12345 78901234567890123456789012345678901234567890123456789012345678901234567890 +123456 8901234567890123456789012345678901234567890123456789012345678901234567890 +1234567 901234567890123456789012345678901234567890123456789012345678901234567890 +12345678 01234567890123456789012345678901234567890123456789012345678901234567890 +123456789 1234567890123456789012345678901234567890123456789012345678901234567890 Index: tabs.out =================================================================== RCS file: /home/cvs/src/regress/usr.bin/sdiff/tabs.out,v retrieving revision 1.3 diff -u -p -r1.3 tabs.out --- tabs.out 14 Sep 2015 07:09:15 -0000 1.3 +++ tabs.out 1 Jun 2016 16:57:50 -0000 @@ -1,102 +1,11 @@ -Policy: /usr/bin/lynx, Emulation: native Policy: /usr/bin/lynx, Emulation: native - > native-issetugid: permit - > native-mprotect: permit - > native-mmap: permit - > native-sysctl: permit - > native-fsread: filename eq "/var/run/ld.so.hints" then pe - > native-fstat: permit - native-close: permit native-close: permit - native-connect: sockaddr eq "inet-[127.0.0.1]:53" then | native-fsread: filename match "/usr/lib/libssl.so.*" then - native-connect: sockaddr match "inet-\\\[*\\\]:80" then | native-read: permit - native-exit: permit | native-fsread: filename match "/usr/lib/libcrypto.so.*" t - native-fcntl: cmd eq "F_SETFD" then permit | native-fsread: filename match "/usr/lib/libncurses.so.*" - native-fsread: filename eq "/" then permit | native-fsread: filename match "/usr/lib/libc.so.*" then p - native-fsread: filename match "/<non-existent filename> | native-munmap: permit - native-fsread: filename eq "/etc/lynx.cfg" then permit | native-sigprocmask: permit - native-fsread: filename eq "/etc/malloc.conf" then perm native-fsread: filename eq "/etc/malloc.conf" then permit - native-fsread: filename eq "/etc/resolv.conf" then perm | native-getpid: permit - native-fsread: filename eq "/etc/utmp" then permit < - native-fsread: filename eq "/home" then permit < - native-fsread: filename eq "$HOME" then permit < - native-fsread: filename eq "$HOME/.lynx-keymaps" then p < - native-fsread: filename eq "$HOME/.lynxrc" then permit < - native-fsread: filename eq "$HOME/.mailcap" then permit < - native-fsread: filename eq "$HOME/.mime.types" then per < - native-fsread: filename eq "$HOME/.terminfo" then permi < - native-fsread: filename eq "$HOME/.terminfo.db" then pe < - native-fsread: filename eq "/obj" then permit < - native-fsread: filename eq "/tmp" then permit native-fsread: filename eq "/tmp" then permit - > native-fswrite: filename match "/tmp/lynx-*" then permit - native-fsread: filename match "/tmp/lynx-*/." then perm native-fsread: filename match "/tmp/lynx-*/." then permit - > native-fsread: filename eq "$HOME" then permit - > native-fsread: filename eq "/etc/lynx.cfg" then permit - > native-fsread: filename eq "/" then permit - > native-fsread: filename eq "/usr/obj/bin/systrace/." then - > native-fsread: filename eq "/usr/obj/bin" then permit - > native-fcntl: permit - > native-getdirentries: permit - > native-lseek: permit - > native-fsread: filename eq "/usr/obj" then permit - native-fsread: filename eq "/usr" then permit native-fsread: filename eq "/usr" then permit - native-fsread: filename eq "/usr/bin" then permit native-fsread: filename eq "/usr/bin" then permit - native-fsread: filename eq "/usr/games" then permit native-fsread: filename eq "/usr/games" then permit - native-fsread: filename eq "/usr/include" then permit native-fsread: filename eq "/usr/include" then permit - native-fsread: filename eq "/usr/lib" then permit native-fsread: filename eq "/usr/lib" then permit - native-fsread: filename match "/usr/lib/libc.so.*" then < - native-fsread: filename match "/usr/lib/libcrypto.so.*" < - native-fsread: filename match "/usr/lib/libncurses.so.* < - native-fsread: filename match "/usr/lib/libssl.so.*" th < - native-fsread: filename eq "/usr/libdata" then permit native-fsread: filename eq "/usr/libdata" then permit - native-fsread: filename eq "/usr/libexec" then permit native-fsread: filename eq "/usr/libexec" then permit - native-fsread: filename eq "/usr/lkm" then permit native-fsread: filename eq "/usr/lkm" then permit - native-fsread: filename eq "/usr/local" then permit native-fsread: filename eq "/usr/local" then permit - native-fsread: filename eq "/usr/mdec" then permit native-fsread: filename eq "/usr/mdec" then permit - native-fsread: filename eq "/usr/obj" then permit | native-fsread: filename eq "/home" then permit - native-fsread: filename eq "/usr/obj/bin" then permit | native-fsread: filename eq "/obj" then permit - native-fsread: filename eq "/usr/obj/bin/systrace/." th | native-fsread: filename eq "$HOME/.lynxrc" then permit - > native-fsread: filename match "/<non-existent filename>: - native-fsread: filename eq "/usr/obj/bin/systrace/.mail native-fsread: filename eq "/usr/obj/bin/systrace/.mailca - > native-fsread: filename eq "$HOME/.mailcap" then permit - native-fsread: filename eq "/usr/obj/bin/systrace/.mime native-fsread: filename eq "/usr/obj/bin/systrace/.mime.t - > native-fsread: filename eq "$HOME/.mime.types" then permi - > native-sigaction: permit - > native-ioctl: permit - > native-fsread: filename eq "$HOME/.terminfo.db" then perm - > native-fsread: filename eq "$HOME/.terminfo" then permit - native-fsread: filename eq "/usr/share/misc/terminfo.db native-fsread: filename eq "/usr/share/misc/terminfo.db" - > native-pread: permit - > native-write: permit - > native-fsread: filename eq "$HOME/.lynx-keymaps" then per - native-fsread: filename eq "/var/run/dev.db" then permi native-fsread: filename eq "/var/run/dev.db" then permit - native-fsread: filename eq "/var/run/ld.so.hints" then | native-fsread: filename eq "/etc/utmp" then permit - native-fstat: permit < - native-fswrite: filename match "/tmp/lynx-*" then permi < - native-getdirentries: permit < - native-getpid: permit < - native-gettimeofday: permit < - native-ioctl: permit < - native-issetugid: permit < - native-lseek: permit < - native-mmap: permit < - native-mprotect: prot eq "PROT_READ" then permit < - native-mprotect: prot eq "PROT_READ|PROT_EXEC" then per < - native-mprotect: prot eq "PROT_READ|PROT_WRITE" then pe < - native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXE < - native-munmap: permit < - native-nanosleep: permit < - native-poll: permit native-poll: permit - native-pread: permit | native-nanosleep: permit - native-read: permit | native-gettimeofday: permit - native-recvfrom: permit | native-fsread: filename eq "/etc/resolv.conf" then permit - native-select: permit < - native-sendto: true then permit < - native-sigaction: permit < - native-sigprocmask: permit < - native-socket: sockdom eq "AF_INET" and socktype eq "SO native-socket: sockdom eq "AF_INET" and socktype eq "SOCK - > native-connect: sockaddr eq "inet-[127.0.0.1]:53" then pe - > native-sendto: true then permit - > native-select: permit - > native-recvfrom: permit - native-socket: sockdom eq "AF_INET" and socktype eq "SO native-socket: sockdom eq "AF_INET" and socktype eq "SOCK - native-sysctl: permit | native-connect: sockaddr match "inet-\\\[*\\\]:80" then p - native-write: permit | native-exit: permit +123456789012345678901234567890123456789012345678901234567890123 123456789012345678901234567890123456789012345678901234567890123 + 2345678901234567890123456789012345678901234567890123456 234567890123456789012345678901234567890123456789012345678 +1 3456789012345678901234567890123456789012345678901234567 1 345678901234567890123456789012345678901234567890123456789 +12 4567890123456789012345678901234567890123456789012345678 12 456789012345678901234567890123456789012345678901234567890 +123 5678901234567890123456789012345678901234567890123456789 123 567890123456789012345678901234567890123456789012345678901 +1234 6789012345678901234567890123456789012345678901234567890 1234 678901234567890123456789012345678901234567890123456789012 +12345 7890123456789012345678901234567890123456789012345678901 12345 789012345678901234567890123456789012345678901234567890123 +123456 8901234567890123456789012345678901234567890123456789012 123456 8901234567890123456789012345678901234567890123456 +1234567 9012345678901234567890123456789012345678901234567890123 1234567 9012345678901234567890123456789012345678901234567 +12345678 01234567890123456789012345678901234567890123456 12345678 0123456789012345678901234567890123456789012345678 +123456789 12345678901234567890123456789012345678901234567 123456789 1234567890123456789012345678901234567890123456789 Index: tabs1 =================================================================== RCS file: tabs1 diff -N tabs1 --- tabs1 13 Sep 2015 17:08:04 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,72 +0,0 @@ -Policy: /usr/bin/lynx, Emulation: native - native-close: permit - native-connect: sockaddr eq "inet-[127.0.0.1]:53" then permit - native-connect: sockaddr match "inet-\\\[*\\\]:80" then permit - native-exit: permit - native-fcntl: cmd eq "F_SETFD" then permit - native-fsread: filename eq "/" then permit - native-fsread: filename match "/<non-existent filename>: *" then permit - native-fsread: filename eq "/etc/lynx.cfg" then permit - native-fsread: filename eq "/etc/malloc.conf" then permit - native-fsread: filename eq "/etc/resolv.conf" then permit - native-fsread: filename eq "/etc/utmp" then permit - native-fsread: filename eq "/home" then permit - native-fsread: filename eq "$HOME" then permit - native-fsread: filename eq "$HOME/.lynx-keymaps" then permit - native-fsread: filename eq "$HOME/.lynxrc" then permit - native-fsread: filename eq "$HOME/.mailcap" then permit - native-fsread: filename eq "$HOME/.mime.types" then permit - native-fsread: filename eq "$HOME/.terminfo" then permit - native-fsread: filename eq "$HOME/.terminfo.db" then permit - native-fsread: filename eq "/obj" then permit - native-fsread: filename eq "/tmp" then permit - native-fsread: filename match "/tmp/lynx-*/." then permit - native-fsread: filename eq "/usr" then permit - native-fsread: filename eq "/usr/bin" then permit - native-fsread: filename eq "/usr/games" then permit - native-fsread: filename eq "/usr/include" then permit - native-fsread: filename eq "/usr/lib" then permit - native-fsread: filename match "/usr/lib/libc.so.*" then permit - native-fsread: filename match "/usr/lib/libcrypto.so.*" then permit - native-fsread: filename match "/usr/lib/libncurses.so.*" then permit - native-fsread: filename match "/usr/lib/libssl.so.*" then permit - native-fsread: filename eq "/usr/libdata" then permit - native-fsread: filename eq "/usr/libexec" then permit - native-fsread: filename eq "/usr/lkm" then permit - native-fsread: filename eq "/usr/local" then permit - native-fsread: filename eq "/usr/mdec" then permit - native-fsread: filename eq "/usr/obj" then permit - native-fsread: filename eq "/usr/obj/bin" then permit - native-fsread: filename eq "/usr/obj/bin/systrace/." then permit - native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" then permit - native-fsread: filename eq "/usr/obj/bin/systrace/.mime.types" then permit - native-fsread: filename eq "/usr/share/misc/terminfo.db" then permit - native-fsread: filename eq "/var/run/dev.db" then permit - native-fsread: filename eq "/var/run/ld.so.hints" then permit - native-fstat: permit - native-fswrite: filename match "/tmp/lynx-*" then permit - native-getdirentries: permit - native-getpid: permit - native-gettimeofday: permit - native-ioctl: permit - native-issetugid: permit - native-lseek: permit - native-mmap: permit - native-mprotect: prot eq "PROT_READ" then permit - native-mprotect: prot eq "PROT_READ|PROT_EXEC" then permit - native-mprotect: prot eq "PROT_READ|PROT_WRITE" then permit - native-mprotect: prot eq "PROT_READ|PROT_WRITE|PROT_EXEC" then permit - native-munmap: permit - native-nanosleep: permit - native-poll: permit - native-pread: permit - native-read: permit - native-recvfrom: permit - native-select: permit - native-sendto: true then permit - native-sigaction: permit - native-sigprocmask: permit - native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_DGRAM" then permit - native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_STREAM" then permit - native-sysctl: permit - native-write: permit Index: tabs2 =================================================================== RCS file: tabs2 diff -N tabs2 --- tabs2 13 Sep 2015 17:08:04 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,69 +0,0 @@ -Policy: /usr/bin/lynx, Emulation: native - native-issetugid: permit - native-mprotect: permit - native-mmap: permit - native-sysctl: permit - native-fsread: filename eq "/var/run/ld.so.hints" then permit - native-fstat: permit - native-close: permit - native-fsread: filename match "/usr/lib/libssl.so.*" then permit - native-read: permit - native-fsread: filename match "/usr/lib/libcrypto.so.*" then permit - native-fsread: filename match "/usr/lib/libncurses.so.*" then permit - native-fsread: filename match "/usr/lib/libc.so.*" then permit - native-munmap: permit - native-sigprocmask: permit - native-fsread: filename eq "/etc/malloc.conf" then permit - native-getpid: permit - native-fsread: filename eq "/tmp" then permit - native-fswrite: filename match "/tmp/lynx-*" then permit - native-fsread: filename match "/tmp/lynx-*/." then permit - native-fsread: filename eq "$HOME" then permit - native-fsread: filename eq "/etc/lynx.cfg" then permit - native-fsread: filename eq "/" then permit - native-fsread: filename eq "/usr/obj/bin/systrace/." then permit - native-fsread: filename eq "/usr/obj/bin" then permit - native-fcntl: permit - native-getdirentries: permit - native-lseek: permit - native-fsread: filename eq "/usr/obj" then permit - native-fsread: filename eq "/usr" then permit - native-fsread: filename eq "/usr/bin" then permit - native-fsread: filename eq "/usr/games" then permit - native-fsread: filename eq "/usr/include" then permit - native-fsread: filename eq "/usr/lib" then permit - native-fsread: filename eq "/usr/libdata" then permit - native-fsread: filename eq "/usr/libexec" then permit - native-fsread: filename eq "/usr/lkm" then permit - native-fsread: filename eq "/usr/local" then permit - native-fsread: filename eq "/usr/mdec" then permit - native-fsread: filename eq "/home" then permit - native-fsread: filename eq "/obj" then permit - native-fsread: filename eq "$HOME/.lynxrc" then permit - native-fsread: filename match "/<non-existent filename>: *" then permit - native-fsread: filename eq "/usr/obj/bin/systrace/.mailcap" then permit - native-fsread: filename eq "$HOME/.mailcap" then permit - native-fsread: filename eq "/usr/obj/bin/systrace/.mime.types" then permit - native-fsread: filename eq "$HOME/.mime.types" then permit - native-sigaction: permit - native-ioctl: permit - native-fsread: filename eq "$HOME/.terminfo.db" then permit - native-fsread: filename eq "$HOME/.terminfo" then permit - native-fsread: filename eq "/usr/share/misc/terminfo.db" then permit - native-pread: permit - native-write: permit - native-fsread: filename eq "$HOME/.lynx-keymaps" then permit - native-fsread: filename eq "/var/run/dev.db" then permit - native-fsread: filename eq "/etc/utmp" then permit - native-poll: permit - native-nanosleep: permit - native-gettimeofday: permit - native-fsread: filename eq "/etc/resolv.conf" then permit - native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_DGRAM" then permit - native-connect: sockaddr eq "inet-[127.0.0.1]:53" then permit - native-sendto: true then permit - native-select: permit - native-recvfrom: permit - native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_STREAM" then permit - native-connect: sockaddr match "inet-\\\[*\\\]:80" then permit - native-exit: permit