From: kou@... Date: 2014-10-28T14:57:06+00:00 Subject: [ruby-core:65948] [ruby-trunk - Bug #10430] Proc instead of String as error message doesn't work. Issue #10430 has been updated by Kouhei Sutou. I've released new test-unit gem. It support Proc as user_message. Should I update version in gems/bundled_gems? ---------------------------------------- Bug #10430: Proc instead of String as error message doesn't work. https://bugs.ruby-lang.org/issues/10430#change-49684 * Author: Martin D��rst * Status: Open * Priority: Normal * Assignee: Kouhei Sutou * Category: test * Target version: current: 2.2.0 * ruby -v: ruby 2.2.0dev (2014-10-26 trunk 48146) [x86_64-cygwin] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Revision r48113 introduced Procs to delay time-consuming generation of error messages. This is a good idea, but it doesn't work for me. How to reproduce: Make a small change in lib/unicode_normalize/tables.rb. Any change should do; I changed "Q" to "QQ" in one instance. Run make install(-nodoc). Run ruby test/test_unicode_normalize.rb. The result I get is as follows: ~~~ =============================================================================== Failure: test_normalize_to_NFKD_from_source_with_nfkd(TestNormalize) test/test_unicode_normalize.rb:38:in `block (2 levels) in generate_test_normalize' test/test_unicode_normalize.rb:33:in `each' test/test_unicode_normalize.rb:33:in `block in generate_test_normalize' # <"Q"> expected but was <"QQ"> diff: ? QQ =============================================================================== ~~~ The failure is expected (artificially generated). The problem is the line `#` The Proc that is supposed to be evaluated to generate a more detailed error message (showing codepoints of the characters involved) is just converted to a String. For reference, I'm using the standard bundled gems minitest-5.4.1.gem, power_assert-0.1.4.gem, and test-unit-3.0.1.gem. -- https://bugs.ruby-lang.org/