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