From e9092b12dc3cf617d47578f13a1f64285cfa5b2f Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Fri, 30 May 2025 13:58:02 -0700 Subject: [PATCH] Fix unified diff headers. The length part (only) of each range is optional when equal to one. See http://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html PiperOrigin-RevId: 765326445 Change-Id: I4aec68e82f889e3b4f01861d3b6a16a8b2785ce6 --- googletest/src/gtest.cc | 18 +++++++++--------- .../test/googletest-output-test-golden-lin.txt | 2 +- googletest/test/gtest_unittest.cc | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 09af15179..6be9300e0 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -1488,17 +1488,17 @@ class Hunk { // Print a unified diff header for one hunk. // The format is // "@@ -, +, @@" - // where the left/right parts are omitted if unnecessary. + // where the left/right lengths are omitted if unnecessary. void PrintHeader(std::ostream* ss) const { - *ss << "@@ "; - if (removes_) { - *ss << "-" << left_start_ << "," << (removes_ + common_); + size_t left_length = removes_ + common_; + size_t right_length = adds_ + common_; + *ss << "@@ " << "-" << left_start_; + if (left_length != 1) { + *ss << "," << left_length; } - if (removes_ && adds_) { - *ss << " "; - } - if (adds_) { - *ss << "+" << right_start_ << "," << (adds_ + common_); + *ss << " " << "+" << right_start_; + if (right_length != 1) { + *ss << "," << right_length; } *ss << " @@\n"; } diff --git a/googletest/test/googletest-output-test-golden-lin.txt b/googletest/test/googletest-output-test-golden-lin.txt index 533eb8c6e..57f7d1ad2 100644 --- a/googletest/test/googletest-output-test-golden-lin.txt +++ b/googletest/test/googletest-output-test-golden-lin.txt @@ -62,7 +62,7 @@ Expected equality of these values: Which is: "\"Line\0 1\"\nLine 2" "Line 2" With diff: -@@ -1,2 @@ +@@ -1,2 +1 @@ -\"Line\0 1\" Line 2 diff --git a/googletest/test/gtest_unittest.cc b/googletest/test/gtest_unittest.cc index 559d34c01..f4ef63b6c 100644 --- a/googletest/test/gtest_unittest.cc +++ b/googletest/test/gtest_unittest.cc @@ -3579,13 +3579,13 @@ TEST(EditDistance, TestSuites) { {__LINE__, "A", "A", " ", ""}, {__LINE__, "ABCDE", "ABCDE", " ", ""}, // Simple adds. - {__LINE__, "X", "XA", " +", "@@ +1,2 @@\n X\n+A\n"}, - {__LINE__, "X", "XABCD", " ++++", "@@ +1,5 @@\n X\n+A\n+B\n+C\n+D\n"}, + {__LINE__, "X", "XA", " +", "@@ -1 +1,2 @@\n X\n+A\n"}, + {__LINE__, "X", "XABCD", " ++++", "@@ -1 +1,5 @@\n X\n+A\n+B\n+C\n+D\n"}, // Simple removes. - {__LINE__, "XA", "X", " -", "@@ -1,2 @@\n X\n-A\n"}, - {__LINE__, "XABCD", "X", " ----", "@@ -1,5 @@\n X\n-A\n-B\n-C\n-D\n"}, + {__LINE__, "XA", "X", " -", "@@ -1,2 +1 @@\n X\n-A\n"}, + {__LINE__, "XABCD", "X", " ----", "@@ -1,5 +1 @@\n X\n-A\n-B\n-C\n-D\n"}, // Simple replaces. - {__LINE__, "A", "a", "/", "@@ -1,1 +1,1 @@\n-A\n+a\n"}, + {__LINE__, "A", "a", "/", "@@ -1 +1 @@\n-A\n+a\n"}, {__LINE__, "ABCD", "abcd", "////", "@@ -1,4 +1,4 @@\n-A\n-B\n-C\n-D\n+a\n+b\n+c\n+d\n"}, // Path finding.