[#65451] [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string — ko1@...

Issue #10333 has been updated by Koichi Sasada.

9 messages 2014/10/07

[ruby-core:66014] [ruby-trunk - Bug #10430] [Closed] Proc instead of String as error message doesn't work.

From: kou@...
Date: 2014-10-30 05:02:18 UTC
List: ruby-core #66014
Issue #10430 has been updated by Kouhei Sutou.

Status changed from Open to Closed

I close this issue because installing gem is another topic.

----------------------------------------
Bug #10430: Proc instead of String as error message doesn't work.
https://bugs.ruby-lang.org/issues/10430#change-49739

* Author: Martin D=C3=BCrst
* Status: Closed
* 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 erro=
r 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. A=
ny change should do; I changed "Q" to "QQ" in one instance. Run make instal=
l(-nodoc). Run ruby test/test_unicode_normalize.rb.

The result I get is as follows:

~~~
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
Failure:
test_normalize_to_NFKD_from_source_with_nfkd(TestNormalize)
test/test_unicode_normalize.rb:38:in `block (2 levels) in generate_test_nor=
malize'
test/test_unicode_normalize.rb:33:in `each'
test/test_unicode_normalize.rb:33:in `block in generate_test_normalize'
#<Proc:0x000006033229f0@test/test_unicode_normalize.rb:32>
<"Q"> expected but was
<"QQ">

diff:
? QQ
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
~~~

The failure is expected (artificially generated). The problem is the line
`#<Proc:0x000006033229f0@test/test_unicode_normalize.rb:32>`
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, pow=
er_assert-0.1.4.gem, and test-unit-3.0.1.gem.




--=20
https://bugs.ruby-lang.org/

In This Thread

Prev Next