diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-06-22 09:29:33 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-06-22 09:29:33 +0900 |
commit | 4d650bc25737a4d2c0dcc9d4c845688cb5dc85ce (patch) | |
tree | 397e2d27fcd2d4d647c1698f59e73d2ea175aca7 | |
parent | d01fd821875b989affc36e54e98f5dd67f47062e (diff) | |
download | ruby-4d650bc25737a4d2c0dcc9d4c845688cb5dc85ce.tar.gz |
Fix over-expansion
* test/lib/minitest/unit.rb (MiniTest::Assertions#mu_pp_for_diff):
do not expand escaped backslash followed by 'n'.
-rw-r--r-- | test/lib/minitest/unit.rb | 2 | ||||
-rw-r--r-- | test/minitest/test_minitest_unit.rb | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/test/lib/minitest/unit.rb b/test/lib/minitest/unit.rb index 25fd15d093..6ba1c707e6 100644 --- a/test/lib/minitest/unit.rb +++ b/test/lib/minitest/unit.rb @@ -179,7 +179,7 @@ module MiniTest # uses mu_pp to do the first pass and then cleans it up. def mu_pp_for_diff obj - mu_pp(obj).gsub(/\\n/, "\n").gsub(/:0x[a-fA-F0-9]{4,}/m, ':0xXXXXXX') + mu_pp(obj).gsub(/(?<!\\)(?:\\\\)*\K\\n/, "\n").gsub(/:0x[a-fA-F0-9]{4,}/m, ':0xXXXXXX') end def _assertions= n # :nodoc: diff --git a/test/minitest/test_minitest_unit.rb b/test/minitest/test_minitest_unit.rb index d790a377c7..c6c8830f20 100644 --- a/test/minitest/test_minitest_unit.rb +++ b/test/minitest/test_minitest_unit.rb @@ -868,6 +868,13 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase end end + def test_assert_equal_different_escaped_newline + msg = "--- expected\n+++ actual\n@@ -1,2 +1,2 @@\n \"xxx\n-a\\\\nb\"\n+a\\\\nc\"\n" + util_assert_triggered msg do + @tc.assert_equal "xxx\na\\nb", "xxx\na\\nc" + end + end + def test_assert_in_delta @tc.assert_in_delta 0.0, 1.0 / 1000, 0.1 end |