From: duerst@... Date: 2014-10-29T05:15:14+00:00 Subject: [ruby-core:65979] [ruby-trunk - Bug #10430] Proc instead of String as error message doesn't work. Issue #10430 has been updated by Martin D��rst. Kouhei Sutou wrote: > I've released new test-unit gem. It support Proc as user_message. > > Should I update version in gems/bundled_gems? It seem that Hiroshi has done this at r48180, and I have updated my checkout, but I still get the same error. I'm not sure why, but could it be because now both gems get installed? This is what gets shown at the end of 'make install-nodoc' installing bundle gems: /usr/local/lib/ruby/gems/2.2.0 (build_info, cache, doc, extensions, gems, specifications) DL is deprecated, please use Fiddle minitest-5.4.1.gem minitest-5.4.2.gem power_assert-0.1.4.gem test-unit-3.0.1.gem test-unit-3.0.3.gem ---------------------------------------- Bug #10430: Proc instead of String as error message doesn't work. https://bugs.ruby-lang.org/issues/10430#change-49715 * 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/