YAML.load chokes on Unicode #314

Closed
rkh opened this Issue Sep 26, 2012 · 21 comments

Projects

None yet

6 participants

@rkh
Contributor
rkh commented Sep 26, 2012

version: 1.7.0.preview2 (4a6bb0a) in 1.9 mode

require 'yaml'
YAML.load YAML.dump("\u{1f354}")

This even happens in comments:

YAML.load "42 # \u{1f354}"

Both work on MRI. Encoding of the String does not matter.

Exception:

Psych::SyntaxError: special characters are not allowed
    from org/jruby/ext/psych/PsychParser.java:188:in `parse'
    from /Users/konstantin/.rbenv/versions/jruby-1.7.0-preview2/lib/ruby/1.9/psych.rb:203:in `parse_stream'
    from /Users/konstantin/.rbenv/versions/jruby-1.7.0-preview2/lib/ruby/1.9/psych.rb:151:in `parse'
    from /Users/konstantin/.rbenv/versions/jruby-1.7.0-preview2/lib/ruby/1.9/psych.rb:127:in `load'
    from (irb):9:in `evaluate'
    from org/jruby/RubyKernel.java:1070:in `eval'
    from org/jruby/RubyKernel.java:1395:in `loop'
    from org/jruby/RubyKernel.java:1178:in `catch'
    from org/jruby/RubyKernel.java:1178:in `catch'
    from /Users/konstantin/.rbenv/versions/jruby-1.7.0-preview2/bin/irb:13:in `(root)'

I know your bussy, but please get in touch about potential solutions for this, as Travis CI is suffering from it in production (unfortunately rolling back to 1.6 is not an option atm).

@BanzaiMan
Member

https://github.com/jruby/jruby/blob/1.7.0.preview2/src/org/jruby/ext/psych/PsychParser.java#L188

The reader exception is being thrown by SnakeYAML parser. The problem persists on RC1.

@BanzaiMan
Member

By the way, removing braces seems to do the trick (for now):

$ jruby -v -e 'require "yaml"; p YAML.load(YAML.dump "#\u1f354")'
jruby 1.7.0.RC1 (1.9.3p203) 2012-09-25 8e849de on Java HotSpot(TM) 64-Bit Server VM 1.7.0_07-b10 [darwin-x86_64]
"#ἵ4"
$ jruby -v -e 'require "yaml"; p YAML.load(YAML.dump "#\u{1f354}")'
jruby 1.7.0.RC1 (1.9.3p203) 2012-09-25 8e849de on Java HotSpot(TM) 64-Bit Server VM 1.7.0_07-b10 [darwin-x86_64]
Psych::SyntaxError: (<unknown>): <reader> unacceptable character '?' (0xD83C) special characters are not allowed
in "<reader>", position 8 at line 0 column 0
         parse at org/jruby/ext/psych/PsychParser.java:197
  parse_stream at /Users/asari/Development/src/jruby/lib/ruby/1.9/psych.rb:203
         parse at /Users/asari/Development/src/jruby/lib/ruby/1.9/psych.rb:151
          load at /Users/asari/Development/src/jruby/lib/ruby/1.9/psych.rb:127
        (root) at -e:1
@rkh
Contributor
rkh commented Sep 26, 2012

@BanzaiMan that means we need to pre-parse the yaml, as it's user input (the .travis.yml)

@rkh
Contributor
rkh commented Sep 26, 2012

Just upgraded, this issue still exists in RC1.

@BanzaiMan
Member

Note that the problematic input has 5 hex digits. If you have only 4, we are OK, even with braces:

$ jruby -v -e 'require "yaml"; p YAML.load(YAML.dump "#\u{1f35}")' 
jruby 1.7.0.RC1 (1.9.3p203) 2012-09-26 8e849de on Java HotSpot(TM) 64-Bit Server VM 1.7.0_07-b10 [darwin-x86_64]
"#ἵ"

When we remove the braces, the parser grabs the first 4 hex digits after \u and parses it correctly. I think YAML specification is to have either 4 or 8 hex digits after the unicode escape. (http://yaml.org/spec/current.html#id2517668) If this is the case, it seems to me that MRI's behavior is wrong.

@rkh
Contributor
rkh commented Sep 26, 2012

This is misleading, the \u{..} is not interpreted by YAML, but by Ruby. This is happening for real unicode characters, like this: https://raw.github.com/gist/35c51948e2d7cebee2ee/8a09ad64f00d77413886486037196b3ceaea7428/gistfile1.txt (github comments don't allow unicode apparently for some reason, saying "Comment field was blank").

This also happens for characters from the BMP.

@headius
Member
headius commented Sep 26, 2012

Ok, confusing behavior from MRI.

Using the code @BanzaiMan found we can get JRuby to emit the unicode escape sequence into yaml, which then loads correctly. However, it breaks a test in psych's test_emitter that wants Japanese characters to be embedded directly.

Here's JRuby with the fix:

system ~/projects/jruby $ jruby -ryaml -e "p YAML.dump('日本語')"
"--- ! \"\\u65e5\\u672c\\u8a9e\"\n"

system ~/projects/jruby $ jruby -ryaml -e "p YAML.dump('<hamburger character>')"
"--- ! \"\\ud83c\\udf54\"\n"

And here's MRI:

system ~/projects/jruby $ ruby-1.9.3 -ryaml -e "p YAML.dump('日本語')"
"--- 日本語\n...\n"

system ~/projects/jruby $ ruby-1.9.3 -ryaml -e "p YAML.dump('<hamburger character>')"
"--- ! \"\\U0001F354\"\n"

I do not understand how libyaml is deciding to sometimes emit the literal character and sometimes deciding to emit the escape sequence.

Note that the escaped output differs as well. JRuby can load MRI's output, but MRI can't always load JRuby's:

system ~/projects/jruby $ jruby -ryaml -e 'p YAML.load("--- 日本語\n...\n")'
"日本語"

system ~/projects/jruby $ jruby -ryaml -e 'p YAML.load("--- ! \"\\U0001F354\"\n")'
"<hamburger character>"

system ~/projects/jruby $ ruby-1.9.3 -ryaml -e 'p YAML.load("--- ! \"\\u65e5\\u672c\\u8a9e\"\n")'
"日本語"

system ~/projects/jruby $ ruby-1.9.3 -ryaml -e 'p YAML.load("--- ! \"\\ud83c\\udf54\"\n")'
/usr/local/lib/ruby/1.9.1/psych.rb:203:in `parse': (<unknown>): found invalid Unicode character escape code while parsing a quoted scalar at line 1 column 7 (Psych::SyntaxError)
    from /usr/local/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
    from /usr/local/lib/ruby/1.9.1/psych.rb:151:in `parse'
    from /usr/local/lib/ruby/1.9.1/psych.rb:127:in `load'
    from -e:1:in `<main>'
@rkh
Contributor
rkh commented Sep 26, 2012

Well, we'd actually need a fix for load, not dump.

jruby -ryaml -e "p YAML.load('42 # 日本語')"
@headius
Member
headius commented Sep 26, 2012

@rkh Actually, the bug is in dump, in SnakeYAML. According to the YAML spec:

"On output, a YAML processor must only produce acceptable characters. Any excluded characters must be presented using escape sequences. In addition, any allowed characters known to be non-printable should also be escaped. This isn’t mandatory since a full implementation would require extensive character property tables."

SnakeYAML is allowing an unprintable character (HAMBURGER) to get emitted directly into the YAML stream, which means that stream can no longer be loaded by compliant YAML parsers.

I have filed http://code.google.com/p/snakeyaml/issues/detail?id=158 to get SnakeYAML to fix this issue.

@rkh
Contributor
rkh commented Sep 26, 2012

Ah, ok, I wasn't aware if the relation.

@headius
Member
headius commented Sep 26, 2012

I have added some comments to the SnakeYAML issue. It's definitely a problem on their side...they are not encoding "nonprintable" characters properly when emitting.

@headius
Member
headius commented Sep 27, 2012

@rkh Ok, so here's the situation.

There are issues in SnakeYAML. Specifically, it is not encoding "unprintable characters" according to spec, and when it does encode characters (e.g. in ascii mode) it is not using the right format.

Unprintable character encoding is the root of this bug. For 🍔 it emits the raw character directly into the YAML, but then (properly) fails to load it because the loading side knows there should not be unprintable characters in the stream. We can force encoding by setting the emitter's options to disallow embedded unicode, but that brings us to the second issue.

When emitting encoded characters, SnakeYAML will properly emit \uxxxx format for 16-bit characters, but incorrectly emits \uxxxx\uyyyy for 32-bit characters:

system ~/projects/jruby $ jruby -ryaml -e 'puts YAML.dump("\u{1f354}")'
--- ! "\ud83c\udf54"

SnakeYAML appears to be able to load this ok, but MRI fails because these are not actually valid Unicode escape codes (or so it would seem):

system ~/projects/jruby $ ruby-1.9.3 -ryaml -e 'puts YAML.load("--- ! \"\\ud83c\\udf54\"\n")'
/usr/local/lib/ruby/1.9.1/psych.rb:203:in `parse': (<unknown>): found invalid Unicode character escape code while parsing a quoted scalar at line 1 column 7 (Psych::SyntaxError)
    from /usr/local/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
    from /usr/local/lib/ruby/1.9.1/psych.rb:151:in `parse'
    from /usr/local/lib/ruby/1.9.1/psych.rb:127:in `load'
    from -e:1:in `<main>'

So we are left with a bit of a conundrum here.

We could fix SnakeYAML, but could take more time than we had intended for JRuby RCs to reach final status. It would also likely require an additional RC and we had hope to do a near-final RC2 tomorrow.

We could set all YAML to dump encoded unicode, knowing that for 32-bit characters only SnakeYAML can properly load them. I'm not sure if the YAML you are dumping gets fed to MRI or not, but this might be an option.

We could delay fix until after 1.7.0 and help you guys work around it for now.

FWIW, this only affects characters in the range U+10000 to U+10FFFF.

@headius
Member
headius commented Sep 27, 2012

I submitted a patch on the SnakeYAML bug and requested that it be reviewed, applied, and released on the SnakeYAML: https://groups.google.com/d/topic/snakeyaml-core/NLe5_N9f60E/discussion

@headius headius closed this in 900c537 Sep 27, 2012
@headius headius reopened this Sep 27, 2012
@rkh
Contributor
rkh commented Sep 27, 2012

\o/

@headius headius closed this in 9c0ba79 Sep 28, 2012
@headius headius reopened this Sep 28, 2012
@headius
Member
headius commented Sep 28, 2012

Bleh, Github's auto-closing is a bit annoying for a bug-in-progress on a work branch.

I have pushed a version of JRuby with patched SnakeYAML to branch gh-314. We would appreciate your testing it out and letting us know if everything is resolved.

I'm negotiating with the SnakeYAML maintainer to get a release out, but I'm not sure it will happen before 1.7.0 final.

@headius headius closed this in e23fb45 Sep 28, 2012
@joshk
joshk commented Sep 28, 2012

Sorry to be a pain but can I install a branch via Rvm?


Sent from my Sega Master System

On 29/09/2012, at 12:06 AM, Charles Oliver Nutter notifications@github.com wrote:

Bleh, Github's auto-closing is a bit annoying for a bug-in-progress on a work branch.

I have pushed a version of JRuby with patched SnakeYAML to branch gh-314. We would appreciate your testing it out and letting us know if everything is resolved.

I'm negotiating with the SnakeYAML maintainer to get a release out, but I'm not sure it will happen before 1.7.0 final.


Reply to this email directly or view it on GitHub.

@headius
Member
headius commented Sep 28, 2012

I think you should be able to do something like rvm install jruby-head --branch gh-314 but my local rvm seems to be hosed.

I also pushed a gh_314 branch since the - seemed to confuse RVM in some cases.

@headius
Member
headius commented Sep 28, 2012

Yes, this command seems to work, now that I've fixed my rvm:

rvm install jruby-head -n gh314 --branch gh-314

-n just provides a name for the install.

@joshk
joshk commented Sep 28, 2012

Awesome, I'll try it tomorrow!!


Sent from my Sega Master System

On 29/09/2012, at 1:01 AM, Charles Oliver Nutter notifications@github.com wrote:

I think you should be able to do something like rvm install jruby-head --branch gh-314 but my local rvm seems to be hosed.

I also pushed a gh_314 branch since the - seemed to confuse RVM in some cases.


Reply to this email directly or view it on GitHub.

@headius headius added a commit that referenced this issue Sep 30, 2012
@headius headius Update to SnakeYAML 1.11. Fixes #314.
One MRI test had to be masked out, but it does not appear to be
very critical. We should talk to Aaron Patterson about syncing
up our code with any changes he has made.

Squashed commit of the following:

commit 7918f23cb9615baf851868edf500a6086349d932
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Sun Sep 30 14:09:06 2012 -0500

    Final update to SnakeYAML 1.11.

commit 8a99dc58823f33910b5b644f9d6f92156d37909e
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Fri Sep 28 18:18:35 2012 -0500

    Mask out probably-ok failure in Psych tests, due to SnakeYAML 1.11

commit 50f9e500c96e25eaea25e3e0b039e9359eef05c9
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Fri Sep 28 17:01:43 2012 -0500

    Snapshot build of SnakeYAML 1.11 with my patches for #314.

commit d46d576bb9ad5b83fbd84e8dc2f0ed6b664cce06
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Thu Sep 27 15:55:32 2012 -0500

    Correct logic for handling incoming version.

commit fad50675553da5623ff4b5951d7e365be5d8cb99
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Wed Sep 26 15:42:02 2012 -0500

    Update to SnakeYAML 1.11 in an attempt to fix #314.
0b0de97
@AnttiMa
AnttiMa commented Oct 11, 2012

Using jruby-1.7.0RC2 I cannot convert an umlaut to yaml:

irb(main):022:0> s = "\u{00F6}"
"\u00F6"
irb(main):023:0> yml = YAML.dump s
"--- \xF6\n"
irb(main):024:0> yml.encoding
#<Encoding:UTF-8>
irb(main):025:0> yml.encode("windows-1252")
Encoding::UndefinedConversionError: Input length = 2
    from org/jruby/RubyString.java:7479:in `encode'
    from (irb):25:in `evaluate'
    from org/jruby/RubyKernel.java:1065:in `eval'
    from org/jruby/RubyKernel.java:1390:in `loop'
    from org/jruby/RubyKernel.java:1173:in `catch'
    from org/jruby/RubyKernel.java:1173:in `catch'
    from C:\jruby-1.7.0.RC2\/bin/jirb_swing:54:in `(root)'
irb(main):026:0> 

The encoding of yml is UTF-8, but it is not a valid UTF-8 string, as the conversion shows.
Is this covered by your fix? (Unfortunately I can't test it myself)

@enebo
Member
enebo commented Oct 11, 2012

AnnttiMa, I opened http://jira.codehaus.org/browse/JRUBY-6930 for your comment. This was one YAML loading and you have uncovered an issue on dumping.

@prathamesh-sonpatki prathamesh-sonpatki added a commit to prathamesh-sonpatki/jruby that referenced this issue Dec 3, 2012
@headius @prathamesh-sonpatki headius + prathamesh-sonpatki Update to SnakeYAML 1.11. Fixes #314.
One MRI test had to be masked out, but it does not appear to be
very critical. We should talk to Aaron Patterson about syncing
up our code with any changes he has made.

Squashed commit of the following:

commit 7918f23cb9615baf851868edf500a6086349d932
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Sun Sep 30 14:09:06 2012 -0500

    Final update to SnakeYAML 1.11.

commit 8a99dc58823f33910b5b644f9d6f92156d37909e
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Fri Sep 28 18:18:35 2012 -0500

    Mask out probably-ok failure in Psych tests, due to SnakeYAML 1.11

commit 50f9e500c96e25eaea25e3e0b039e9359eef05c9
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Fri Sep 28 17:01:43 2012 -0500

    Snapshot build of SnakeYAML 1.11 with my patches for #314.

commit d46d576bb9ad5b83fbd84e8dc2f0ed6b664cce06
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Thu Sep 27 15:55:32 2012 -0500

    Correct logic for handling incoming version.

commit fad50675553da5623ff4b5951d7e365be5d8cb99
Author: Charles Oliver Nutter <headius@headius.com>
Date:   Wed Sep 26 15:42:02 2012 -0500

    Update to SnakeYAML 1.11 in an attempt to fix #314.
c9d4da3
@eregon eregon added a commit that referenced this issue Oct 29, 2016
@eregon eregon Squashed 'spec/ruby/' changes from ae9cea3..a2e5952
a2e5952 Specs for Complex explicitly removing positive? and negative?.
d0c8343 Add spec for backtrace from rescue that only captures $!.
197292f Specs for conditionally-assigned variables accessed in closure.
ad581ab Fix Hash#assoc spec to avoid a CRuby >= 2.2 bug
fe9e1d1 Add spec for Range#include? with Time endpoints.
a0a7642 add more spec for ||= and &&=
f06c18d Spec for passing a block to forms of [] method.
e20cc56 Add spec for EAFNOSUPPORT in udp sockets
767d983 Add UDPSocket.new specs
53466eb Add specs for * and ** coercion of BasicObject types.
f3e2edf Fix typo in socketpair_spec.rb.
a0780cd Fix Socket#socketpair shared spec
048320b Add Socket#socketpair response type spec
5ee05bc This only appears to work on OS X.
1278eb2 Spec for IO#seek > 2^32.
e81f3e5 Fix extra space
a5f6f5e Specs for rb_obj_method_arity.
e990a71 Fix WIN32OLE_METHOD#offset_vtbl spec for 64-bit Windows
aa3697e Split platform-dependent parts in Float#round specs
9d0932f Handle the special case of x64-mingw32 for String#unpack('J') specs
849e1e2 Handle the special case of x64-mingw32 for Array#pack('J') specs
9689d97 Try running on 64-bit Ruby 2.3 on Windows
3a71993 Merge pull request #346 from mjago/fix_encodings
31c3d16 Fix encoding in core/string/shared/codepoints.rb
5191351 Fix encoding in core/string/shared/chars.rb
5213d36 Fix encoding in core/string/scrub_spec.rb
3f70703 Fix encoding in core/string/new_spec.rb
ac1e312 Exclude connect_nonblock raises Errno::EINPROGRESS
25a1538 Merge pull request #344 from mjago/socket_option_on_aix
ba36b85 Merge pull request #345 from mjago/fix_encoding
16b6441 Fix encoding in core/string/gsub_spec.rb
a083778 Fix encoding in core/string/getbyte_spec.rb
769d842 Fix encoding in core/string/fixtures/iso-8859-9-encoding.rb
d5141d5 Fix encoding in core/string/encoding_spec.rb
68d48e7 Fix encoding in core/string/encoding_spec.rb
608140c Fix encoding in core/string/element_set_spec.rb
96ebe46 Avoid use of getsockopt for setsockopt specs on aix
42cfee7 Merge pull request #343 from mjago/fix_encodings
ef14dee Fix encoding in core/string/delete_spec.rb
0325dfb Fix encoding in core/string/count_spec.rb
fc80507 Fix encoding in core/string/comparison_spec.rb
0f1590f Fix encoding in core/regexp/shared/new_ascii.rb
e30e3ab Remove extraneous parenthesis
7ecb1aa Merge pull request #342 from mjago/encoding_fixes
3e60d4c Add back `larger than UTF-8 max codepoints' spec
2c1dd28 Really fix encoding in unicode.rb
b752874 Fix encoding in core/array/pack/shared/unicode.rb
0317231 Merge pull request #341 from mjago/aix_socket_constants
17b07cf Fix encoding in core/array/pack/shared/string.rb
87d371b Fix encoding in core/array/fixtures/encoded_strings.rb
3702273 Fix whitespace
7c0d354 Remove IP_MAX_MEMBERSHIPS check on AIX platform
fa2ec3d Don't check for IPX socket constants on AIX platform
3ea90df Merge pull request #340 from iliabylich/add-more-specs-for-squiggly-heredoc
8fbd1ad More specs for "squiggly" heredoc.
b3b68c7 Merge pull request #339 from mjago/fix_stringscanner_encodings
b21cea4 Fix encoding in stringscanner/shared/get_byte.rb
2964778 Fix encoding in stringscanner/getch_spec.rb
05dbe0e Merge pull request #338 from mjago/fix_unbranch_on_big_endian
201a176 Fix unpack specs with j option on big-endian systems
5605faf Merge pull request #337 from mjago/fix_encodings
c601f85 Fix encodings in core/encoding/replicate_spec.rb
eb1d56d Fix encoding in encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb
26ee43a Accept both possible values for Socket::Option#linger
ff41556 Do not make assumptions on the value of Dir#pos
b4bfa56 Merge pull request #336 from mjago/fix_j_spec_for_big_endian_platforms
864e2e1 Fix specs for Array pack with format J and j specs
151f7c6 Merge pull request #331 from mjago/unpack_option_j_specs
4c8b9b3 Fix encoding/invalid_byte_sequence_error/incomplete_input_spec.rb
626fab3 Fix encoding in encoding/invalid_byte_sequence_error/error_bytes_spec.rb
db30005 Fix encoding in encoding/fixtures/classes.rb
f4b5e0d Fix encoding in encoding/converter/putback_spec.rb
7e99711 Add specs for unpack options J and j
bcb318b Move require to example so unsupported syntax would only fail that example
57c69fc tests squiggly heredoc * See #175 * See [Feature 9098]
ce4eb8f Fix encoding in encoding/converter/primitive_errinfo_spec.rb
ef64e76 Fix encoding in encoding/converter/primitive_convert_spec.rb
8466a28 Fix encoding in encoding/converter/last_error_spec.rb
e0d32ca Fix encoding in encoding/converter/convert_spec.rb
a743e63 Fix encoding in core/string/codepoints_spec.rb
6353bbe Fix encoding in core/string/byteslice_spec.rb
5d1f1cb Revert "Travis: allow ruby-head to fail since it's outdated"
5ec5a10 Array pack with format J and j specs (#320)
6068505 Merge pull request #321 from mjago/fix_encoding_in_recv_spec
fb52aef Fix encoding in recv_spec.rb
96f8e44 Merge pull request #319 from mjago/fix_match_spec_utf8
012827a Fix utf-8 conflicts in Regexp match specs
f3c10d3 Fix magic encoding to avoid utf-8 conflicts
adfb2eb Merge pull request #316 from mjago/avoid_utf8_conflicts_in_io_specs
c6daa63 Fix alignment
044b889 Rename data to write
d259a19 Remove redundant artifact
3a71973 Avoid utf-8 conflicts in IO specs
402b2cb Fix expectation in a zlib spec
bee369d Zlib specs should use binary strings
c77a0e9 Merge pull request #315 from sgarciac/master
1334490 Tests Base64#urlsafe_encode64 and Base64#urlsafe_decode64 * See #175 * See [Feature 10740]
80937d6 Merge pull request #313 from mjago/avoid_utf8_conflicts_with_binary_encoding_in_marshall_specs
6e2efe7 Merge pull request #314 from mjago/fix_utf8_conflict_in_expand_path_spec
4df37ac DRY spec
d96bde0 Fix tests
6d47911 Fix utf-8 conflict in expand_path_spec.rb
7d1e89a Avoid utf8 conflicts in Marshall specs
45f9256 Merge pull request #312 from mjago/avoid_utf8_conflicts_with_binary_encoding_in_digest_specs
1884a0e Avoid utf-8 conflicts in Digest files
c4cabcf Add specs for yielding to a lambda with an Array and the wrong number of arguments
de4fab0 Remove extra encoding comment
c65e5ca Merge pull request #311 from mjago/avoid_problematic_encodings_in_zlib_specs
7b91144 Avoid problematic encodings in Zlib specs
a0a65c7 Fix variable naming style in Thread fixtures
8669cc2 Merge pull request #304 from ruby/fix_parser_warnings
71c4024 Fix most parser warnings (of 317)
bb48acd Fix most parser warnings: the first 200
ddc9372 Remove bad spec potentially changing the global process group
a226ed4 Merge pull request #310 from mjago/remove_problematic_utf_8_encoding
81cbd64 Avoid problematic byte sequence in UTF-8 encoding
292f31f IO#each_codepoint raises an exception at incomplete character before EOF when conversion takes place
94cbe8d SIGTERM is not supported on Windows
2dd2245 Speed up Process.waitpid spec
67f285b Improve spec description from changelog
0c2fe01 Move Hash#inspect specs in the Hash specs
48679fe Fix shared spec name
9a6c6b1 Merge pull request #307 from sgarciac/master
aef521e Hash#inspect doesn't raise error even if its content returns a string which is not compatible with Encoding.default_external as inspected result.
894db53 flatten no longer calls #to_ary method on elements beyond the given level. * See #175 * See [Bug 10748]
8126e53 Add spec for Net::FTP being passive by default from 2.3+
6e58b5f Merge pull request #306 from mjago/setsockopt_spec_test_fail_on_osx
5c232ad getsockopt(2) returns SO_LINGER instead of 1
264f06c Fix most parser warnings: the first 100
2d5aece Fix bad spec: Module#prepend does import constants
309343b Remove usages of eval for common syntax
fc21517 AppVeyor: run only once per PR from the same repo (#305)
0d9b6ff Merge pull request #301 from nobu/suppress-warnings
1c901da Merge pull request #302 from nobu/Enumerable#chunk-without-block
e00328a Update Enumerable#chunk
75fef79 Shadowing variables
c04ce7c Suppress warnings
6852fd4 Simplify guards in pack/unpack for the special case of mingw32 on Windows 64-bit
2fd92c4 Merge pull request #300 from bkutil/test-octal-int-opal
7b19ee9 Spec for Integer("0") parsing as 0
4e37db8 Remove all not_compliant_on and deviates_on guards
66f6ccc Use a simpler limits for spec'ing too big array sizes
5c78608 Remove not_compliant_on :ironruby guards
9e0f660 Remove impl-specific object_id spec
664b4c1 Fixed one TODO
87ae44f Avoid passing RUBY_EXE explicitly
21024e4 Fix link to AppVeyor
7f7430f Mention all types of specs
0099874 Mention being tested in implementation Cis
8a29c71 Update AppVeyor badge
cab9b2f Properly convert an st_index_t to a Fixnum
de08352 Remove trailing spaces
92a66ec Replace tab by spaces
2902648 Remove extra spaces after should/should_not
52e60f4 Merge pull request #299 from backus/conditional-regexp
76f88c1 Add conditional regular expression tests
4ae1346 It seems IO#close_on_exec* was implemented on Windows in MRI 2.3
f5afc1e It seems File::Stat.ino got implemented in MRI 2.3 on Windows
3de35fe Create an empty directory for #zero? specs
d3b01ca skip hanging spec on Windows
9f78b1a Test Ruby 2.3.1 on Windows with AppVeyor
30b9fab Merge pull request #298 from ksss/interrupt
8efd3ef Add spec for inheritance of Interrupt
564a064 Add Interrupt class specs
5309c48 Merge pull request #297 from ksss/signal_exception
a79325b Check a signm value if SignalException rescued
cdd885f Merge pull request #295 from ksss/signame
d416040 Add Signal.signame specs

git-subtree-dir: spec/ruby
git-subtree-split: a2e5952554a7632e5debf0306fbae4e2559b2880
53b286b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment