svn commit: r363692 - head/usr.bin/diff/tests
Kyle Evans
kevans at FreeBSD.org
Thu Jul 30 13:33:46 UTC 2020
Author: kevans
Date: Thu Jul 30 13:33:45 2020
New Revision: 363692
URL: https://svnweb.freebsd.org/changeset/base/363692
Log:
diff: fix side_by_side after r363679
It's currently unclear to me how this could have worked previously; \n here
is not a literal newline but actual '\' 'n', and was getting passed to the
underlying regex engine as such. regex(3) does not translate this to a
newline, and this became an error because we don't really allow escaping
of arbitrary ordinary characters anymore.
Run the pattern strings through printf to make sure we're dealing with real
newlines before passing them through to atf_check, which ultimately feeds
them directly to regcomp(3).
This fix is different than that will be needed for sed, in that this is the
proper way to inject newlines into search strings as long as regex(3)
won't combine \ + n as folks might expect.
Reported by: Jenkins via lwhsu
MFC after: 1 week
Modified:
head/usr.bin/diff/tests/diff_test.sh
Modified: head/usr.bin/diff/tests/diff_test.sh
==============================================================================
--- head/usr.bin/diff/tests/diff_test.sh Thu Jul 30 13:17:01 2020 (r363691)
+++ head/usr.bin/diff/tests/diff_test.sh Thu Jul 30 13:33:45 2020 (r363692)
@@ -108,8 +108,8 @@ side_by_side_body()
atf_check -o save:A printf "A\nB\nC\n"
atf_check -o save:B printf "D\nB\nE\n"
- exp_output="A[[:space:]]+|[[:space:]]+D\nB[[:space:]]+B\nC[[:space:]]+|[[:space:]]+E"
- exp_output_suppressed="A[[:space:]]+|[[:space:]]+D\nC[[:space:]]+|[[:space:]]+E"
+ exp_output=$(printf "A[[:space:]]+|[[:space:]]+D\nB[[:space:]]+B\nC[[:space:]]+|[[:space:]]+E")
+ exp_output_suppressed=$(printf "A[[:space:]]+|[[:space:]]+D\nC[[:space:]]+|[[:space:]]+E")
atf_check -o match:"$exp_output" -s exit:1 \
diff --side-by-side A B
More information about the svn-src-head
mailing list