"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Christian Weisgerber <naddy@mips.inka.de>
Subject:
Re: got diff chomps trailing \r
To:
gameoftrees@openbsd.org
Date:
Thu, 11 May 2023 16:54:39 +0200

Download raw body.

Thread
Stefan Sperling:

> As a first step it would be nice to have is a regression test.

There already is test_diff_crlf(), but it confirms that the trailing
carriage return is omitted.

Here's a tweak to make it actually test the desired behavior.
Yes, the sed 'l' command is in POSIX.

diff /home/naddy/got
commit - 79cd0a74be4fd59c3cbfc4f35772ba4336b950be
path + /home/naddy/got
blob - 74c5c3277048c41e7d957d274e2fd708fbd7e022
file + regress/cmdline/diff.sh
--- regress/cmdline/diff.sh
+++ regress/cmdline/diff.sh
@@ -1308,7 +1308,7 @@ test_diff_crlf() {
 		return 1
 	fi
 
-	printf 'test\r\n' > $testroot/wt/crlf
+	printf 'one\r\ntwo\r\nthree\r\n' > $testroot/wt/crlf
 	(cd $testroot/wt && got add crlf && got commit -m +crlf) >/dev/null
 	ret=$?
 	if [ $ret -ne 0 ]; then
@@ -1316,14 +1316,16 @@ test_diff_crlf() {
 		return 1
 	fi
 
-	printf 'test 2\r\n' > $testroot/wt/crlf
-	(cd $testroot/wt && got diff | sed -n '/^---/,$p' > $testroot/stdout)
-	cat <<EOF > $testroot/stdout.expected
---- crlf
-+++ crlf
-@@ -1 +1 @@
--test
-+test 2
+	printf 'one\r\ntwain\r\nthree\r\n' > $testroot/wt/crlf
+	(cd $testroot/wt && got diff | sed -n '/^---/,$l' > $testroot/stdout)
+	cat <<\EOF > $testroot/stdout.expected
+--- crlf$
++++ crlf$
+@@ -1,3 +1,3 @@$
+ one\r$
+-two\r$
++twain\r$
+ three\r$
 EOF
 
 	cmp -s $testroot/stdout.expected $testroot/stdout
-- 
Christian "naddy" Weisgerber                          naddy@mips.inka.de