svn commit: r363974 - stable/12/usr.bin/diff/tests

Kyle Evans kevans at FreeBSD.org
Thu Aug 6 18:17:20 UTC 2020


Author: kevans
Date: Thu Aug  6 18:17:19 2020
New Revision: 363974
URL: https://svnweb.freebsd.org/changeset/base/363974

Log:
  MFC r363692: diff: fix side_by_side
  
  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.

Modified:
  stable/12/usr.bin/diff/tests/diff_test.sh
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/usr.bin/diff/tests/diff_test.sh
==============================================================================
--- stable/12/usr.bin/diff/tests/diff_test.sh	Thu Aug  6 18:13:45 2020	(r363973)
+++ stable/12/usr.bin/diff/tests/diff_test.sh	Thu Aug  6 18:17:19 2020	(r363974)
@@ -106,8 +106,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-stable-12 mailing list