Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4bc75fcba220
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 314295c23373
Choose a head ref

Commits on Apr 16, 2015

  1. Copy the full SHA
    c384fd0 View commit details

Commits on Apr 20, 2015

  1. Transplant recent LoadService fixes from master.

    * Fix autoload in the presence of canonicalized paths
    * Fix require locking in the presence of canonicalized paths
    * Fix circular require warning setting $!
    headius committed Apr 20, 2015
    Copy the full SHA
    1735752 View commit details

Commits on Apr 21, 2015

  1. Copy the full SHA
    7f28c67 View commit details
  2. Always do this check; does not appear to break test_pid anymore.

    This should help bring popen behavior in line with MRI per
    rails/rails#19777.
    headius committed Apr 21, 2015
    Copy the full SHA
    821bb77 View commit details
  3. [Truffle] Refactor a good part of Module concerning visibility.

    * @coremethod with "private" names are now automatically private.
    * At last, proper implementation of Module.{public_,private_,protected_,}methods.
    eregon committed Apr 21, 2015
    Copy the full SHA
    06c53b9 View commit details
  4. [Truffle] Remove abstract non-DSL execute methods in cast and coerce …

    …nodes.
    
    * They are generated by the DSL anyway and likely remnants when they were not yet DSL nodes.
    * execute() is the same when generated, with just an extra try/catch.
    * Keep the execute with evaluated values above specializations for consistency.
    eregon committed Apr 21, 2015
    Copy the full SHA
    b24e393 View commit details
  5. [Truffle] Fix the build.

    eregon committed Apr 21, 2015
    Copy the full SHA
    6f90864 View commit details
  6. Better argument processing.

    * Peel off leading env hash
    * Peel off options
    * Process coercions correctly
    
    Helps get the case from rails/rails#19777 running right.
    headius committed Apr 21, 2015
    Copy the full SHA
    30cd6e8 View commit details
  7. Derp.

    headius committed Apr 21, 2015
    Copy the full SHA
    5c93efa View commit details
  8. Minor reformat.

    headius committed Apr 21, 2015
    Copy the full SHA
    7d240aa View commit details
  9. Copy the full SHA
    260cae0 View commit details
  10. Copy the full SHA
    8e040f6 View commit details
  11. Copy the full SHA
    214dea5 View commit details
  12. Re-fix searching of prepended modules-in-a-module. Fixes #2864.

    The original problem was that we only searched the target module's
    method table, which is empty in the presence of prepends. The new
    issue was that my depth-limiting fix to IncludedModuleWrapper's
    searchMethodCommon did not start from the right place (`this`
    instead of `origin`) and the condition was not right.
    headius committed Apr 21, 2015
    Copy the full SHA
    b9473af View commit details
  13. Copy the full SHA
    e5e5198 View commit details
  14. Copy the full SHA
    ab3b1d5 View commit details
  15. Fix edge case in findMethodInstanceContainer codeo

    * Looks like we can have scenarios where 'self' for a closure
      executed in a module_eval context need not be the module
      but a different object. In that case, we still need to add
      the method to self => we need to get its metaclass first.
    
    * This fixes crasher in this case:
    
    -------------
    require "minitest/autorun"
    
    describe "A" do
      it "should do something" do
        def foo
        end
      end
    end
    -------------
    subbuss committed Apr 21, 2015
    Copy the full SHA
    c2f66f2 View commit details
  16. Document the edge case in a FIXME as caused by define_method use

    * We should rip out the fix when we update the define_method
      implementation to convert those blocks to real method scopes.
    subbuss committed Apr 21, 2015
    Copy the full SHA
    b65a584 View commit details

Commits on Apr 22, 2015

  1. 8
    Copy the full SHA
    b57c48b View commit details
  2. Copy the full SHA
    4a947d4 View commit details
  3. Copy the full SHA
    336ed58 View commit details
  4. Copy the full SHA
    2bea720 View commit details
  5. Revert "Remove a couple working excludes."

    This reverts commit e7c7beb.
    headius committed Apr 22, 2015
    Copy the full SHA
    6dca372 View commit details
  6. Copy the full SHA
    a60bd1f View commit details
  7. Copy the full SHA
    f0579bc View commit details
  8. need to copy the jars before resources phase

    [skip ci]
    mkristian committed Apr 22, 2015
    Copy the full SHA
    eab2354 View commit details
  9. Merge remote-tracking branch 'origin/jruby-1_7'

    Conflicts:
    	core/src/main/java/org/jruby/RubyIO.java
    	core/src/main/java/org/jruby/runtime/ThreadContext.java
    	core/src/main/java/org/jruby/runtime/load/LoadService.java
    	core/src/main/java/org/jruby/util/TypeConverter.java
    	lib/pom.rb
    headius committed Apr 22, 2015
    Copy the full SHA
    0b01058 View commit details
  10. Copy the full SHA
    f90af5a View commit details
  11. Copy the full SHA
    db0bd4e View commit details
  12. [Truffle] Ensure to produce some output for Travis with MSpec.

    * Remove old unused options.
    eregon committed Apr 22, 2015
    Copy the full SHA
    04c17ec View commit details
  13. Merge branch 'master' into truffle-io

    Conflicts:
    	truffle/src/main/java/org/jruby/truffle/translator/BodyTranslator.java
    chrisseaton committed Apr 22, 2015
    Copy the full SHA
    e08fd5f View commit details
  14. Copy the full SHA
    12ad44e View commit details
  15. Copy the full SHA
    e8835c0 View commit details
  16. Copy the full SHA
    08f528f View commit details
  17. Copy the full SHA
    314295c View commit details
Showing with 495 additions and 1,166 deletions.
  1. +3 −3 .travis.yml
  2. +4 −4 core/pom.rb
  3. +1 −3 core/pom.xml
  4. +6 −4 core/src/main/java/org/jruby/IncludedModuleWrapper.java
  5. +47 −53 core/src/main/java/org/jruby/RubyIO.java
  6. +2 −3 core/src/main/java/org/jruby/RubyModule.java
  7. +1 −1 core/src/main/java/org/jruby/ext/rbconfig/RbConfigLibrary.java
  8. +30 −1 core/src/main/java/org/jruby/ir/runtime/IRRuntimeHelpers.java
  9. +10 −10 core/src/main/java/org/jruby/runtime/backtrace/TraceType.java
  10. +22 −9 core/src/main/java/org/jruby/runtime/load/LoadService.java
  11. +1 −1 core/src/main/java/org/jruby/util/ShellLauncher.java
  12. +1 −1 lib/pom.rb
  13. +13 −13 lib/pom.xml
  14. +21 −0 spec/regression/GH-2864_search_prepends_in_modules_spec.rb
  15. +0 −1 spec/truffle/tags/core/file/atime_tags.txt
  16. +0 −2 spec/truffle/tags/core/file/blockdev_tags.txt
  17. +0 −2 spec/truffle/tags/core/file/chardev_tags.txt
  18. +0 −5 spec/truffle/tags/core/file/constants_tags.txt
  19. +0 −1 spec/truffle/tags/core/file/ctime_tags.txt
  20. +0 −7 spec/truffle/tags/core/file/extname_tags.txt
  21. +0 −21 spec/truffle/tags/core/file/fnmatch_tags.txt
  22. +0 −8 spec/truffle/tags/core/file/ftype_tags.txt
  23. +0 −3 spec/truffle/tags/core/file/grpowned_tags.txt
  24. +0 −1 spec/truffle/tags/core/file/inspect_tags.txt
  25. +0 −2 spec/truffle/tags/core/file/link_tags.txt
  26. +0 −2 spec/truffle/tags/core/file/lstat_tags.txt
  27. +0 −1 spec/truffle/tags/core/file/mtime_tags.txt
  28. +0 −16 spec/truffle/tags/core/file/new_tags.txt
  29. +0 −1 spec/truffle/tags/core/file/null_tags.txt
  30. +0 −53 spec/truffle/tags/core/file/open_tags.txt
  31. +0 −3 spec/truffle/tags/core/file/owned_tags.txt
  32. +0 −1 spec/truffle/tags/core/file/path_tags.txt
  33. +0 −2 spec/truffle/tags/core/file/pipe_tags.txt
  34. +0 −3 spec/truffle/tags/core/file/readable_real_tags.txt
  35. +0 −1 spec/truffle/tags/core/file/readable_tags.txt
  36. +0 −2 spec/truffle/tags/core/file/rename_tags.txt
  37. +0 −2 spec/truffle/tags/core/file/setgid_tags.txt
  38. +0 −2 spec/truffle/tags/core/file/setuid_tags.txt
  39. +0 −8 spec/truffle/tags/core/file/size_tags.txt
  40. +0 −8 spec/truffle/tags/core/file/split_tags.txt
  41. +0 −2 spec/truffle/tags/core/file/stat_tags.txt
  42. +0 −3 spec/truffle/tags/core/file/sticky_tags.txt
  43. +0 −2 spec/truffle/tags/core/file/symlink_tags.txt
  44. +0 −5 spec/truffle/tags/core/file/to_path_tags.txt
  45. +0 −8 spec/truffle/tags/core/file/truncate_tags.txt
  46. +0 −4 spec/truffle/tags/core/file/unlink_tags.txt
  47. +0 −2 spec/truffle/tags/core/file/world_readable_tags.txt
  48. +0 −2 spec/truffle/tags/core/file/world_writable_tags.txt
  49. +0 −5 spec/truffle/tags/core/file/writable_real_tags.txt
  50. +0 −3 spec/truffle/tags/core/file/writable_tags.txt
  51. +0 −9 spec/truffle/tags/core/file/zero_tags.txt
  52. +0 −6 spec/truffle/tags/core/io/advise_tags.txt
  53. +0 −4 spec/truffle/tags/core/io/binmode_tags.txt
  54. +0 −2 spec/truffle/tags/core/io/binread_tags.txt
  55. +0 −10 spec/truffle/tags/core/io/binwrite_tags.txt
  56. +0 −1 spec/truffle/tags/core/io/bytes_tags.txt
  57. +0 −3 spec/truffle/tags/core/io/chars_tags.txt
  58. +0 −2 spec/truffle/tags/core/io/close_tags.txt
  59. +0 −1 spec/truffle/tags/core/io/closed_tags.txt
  60. +0 −2 spec/truffle/tags/core/io/codepoints_tags.txt
  61. +0 −2 spec/truffle/tags/core/io/constants_tags.txt
  62. +0 −7 spec/truffle/tags/core/io/copy_stream_tags.txt
  63. +0 −3 spec/truffle/tags/core/io/each_byte_tags.txt
  64. +0 −3 spec/truffle/tags/core/io/each_char_tags.txt
  65. +0 −2 spec/truffle/tags/core/io/each_codepoint_tags.txt
  66. +0 −13 spec/truffle/tags/core/io/each_line_tags.txt
  67. +0 −13 spec/truffle/tags/core/io/each_tags.txt
  68. +0 −6 spec/truffle/tags/core/io/eof_tags.txt
  69. +0 −36 spec/truffle/tags/core/io/external_encoding_tags.txt
  70. +0 −1 spec/truffle/tags/core/io/fileno_tags.txt
  71. +0 −33 spec/truffle/tags/core/io/for_fd_tags.txt
  72. +0 −27 spec/truffle/tags/core/io/foreach_tags.txt
  73. +0 −2 spec/truffle/tags/core/io/getbyte_tags.txt
  74. +0 −2 spec/truffle/tags/core/io/getc_tags.txt
  75. +0 −34 spec/truffle/tags/core/io/gets_tags.txt
  76. +0 −5 spec/truffle/tags/core/io/initialize_tags.txt
  77. +0 −48 spec/truffle/tags/core/io/internal_encoding_tags.txt
  78. +0 −1 spec/truffle/tags/core/io/isatty_tags.txt
  79. +0 −7 spec/truffle/tags/core/io/lineno_tags.txt
  80. +0 −3 spec/truffle/tags/core/io/lines_tags.txt
  81. +0 −33 spec/truffle/tags/core/io/new_tags.txt
  82. +0 −37 spec/truffle/tags/core/io/open_tags.txt
  83. +0 −1 spec/truffle/tags/core/io/output_tags.txt
  84. +0 −1 spec/truffle/tags/core/io/pid_tags.txt
  85. +0 −3 spec/truffle/tags/core/io/pos_tags.txt
  86. +0 −3 spec/truffle/tags/core/io/print_tags.txt
  87. +0 −8 spec/truffle/tags/core/io/putc_tags.txt
  88. +0 −12 spec/truffle/tags/core/io/puts_tags.txt
  89. +0 −64 spec/truffle/tags/core/io/read_tags.txt
  90. +0 −2 spec/truffle/tags/core/io/readbyte_tags.txt
  91. +0 −3 spec/truffle/tags/core/io/readchar_tags.txt
  92. +0 −4 spec/truffle/tags/core/io/readline_tags.txt
  93. +0 −41 spec/truffle/tags/core/io/readlines_tags.txt
  94. +0 −3 spec/truffle/tags/core/io/rewind_tags.txt
  95. +0 −7 spec/truffle/tags/core/io/seek_tags.txt
  96. +0 −12 spec/truffle/tags/core/io/set_encoding_tags.txt
  97. +0 −3 spec/truffle/tags/core/io/sync_tags.txt
  98. +0 −6 spec/truffle/tags/core/io/sysopen_tags.txt
  99. +0 −2 spec/truffle/tags/core/io/sysread_tags.txt
  100. +0 −5 spec/truffle/tags/core/io/sysseek_tags.txt
  101. +0 −7 spec/truffle/tags/core/io/syswrite_tags.txt
  102. +0 −1 spec/truffle/tags/core/io/tell_tags.txt
  103. +0 −1 spec/truffle/tags/core/io/to_i_tags.txt
  104. +0 −2 spec/truffle/tags/core/io/to_io_tags.txt
  105. +0 −6 spec/truffle/tags/core/io/try_convert_tags.txt
  106. +0 −1 spec/truffle/tags/core/io/tty_tags.txt
  107. +0 −1 spec/truffle/tags/core/io/ungetbyte_tags.txt
  108. +0 −1 spec/truffle/tags/core/io/ungetc_tags.txt
  109. +0 −9 spec/truffle/tags/core/io/write_tags.txt
  110. +0 −2 spec/truffle/tags/core/module/extend_object_tags.txt
  111. +0 −4 spec/truffle/tags/core/module/module_function_tags.txt
  112. +0 −3 spec/truffle/tags/core/module/private_tags.txt
  113. +0 −3 spec/truffle/tags/core/module/protected_tags.txt
  114. +0 −3 spec/truffle/tags/core/module/public_tags.txt
  115. +1 −1 test/check_versions.sh
  116. +2 −0 test/mri/excludes/TestProcess.rb
  117. +31 −17 test/mri/ruby/test_m17n_comb.rb
  118. +5 −21 test/pom.rb
  119. +15 −18 test/pom.xml
  120. +7 −0 truffle/src/main/java/org/jruby/truffle/TruffleBridgeImpl.java
  121. +4 −7 truffle/src/main/java/org/jruby/truffle/nodes/cast/BooleanCastNode.java
  122. +2 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/CmpIntNode.java
  123. +0 −5 truffle/src/main/java/org/jruby/truffle/nodes/cast/ToSNode.java
  124. +2 −7 truffle/src/main/java/org/jruby/truffle/nodes/coerce/SymbolOrToStrNode.java
  125. +2 −1 truffle/src/main/java/org/jruby/truffle/nodes/coerce/ToIntNode.java
  126. +2 −9 truffle/src/main/java/org/jruby/truffle/nodes/coerce/ToStrNode.java
  127. +2 −5 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayNodes.java
  128. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/BasicObjectNodes.java
  129. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/BindingNodes.java
  130. +7 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/CoreMethodNodeManager.java
  131. +4 −8 truffle/src/main/java/org/jruby/truffle/nodes/core/KernelNodes.java
  132. +138 −32 truffle/src/main/java/org/jruby/truffle/nodes/core/ModuleNodes.java
  133. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java
  134. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadNodes.java
  135. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/CheckMatchVariableTypeNode.java
  136. +2 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/AddMethodNode.java
  137. +25 −25 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/IOBufferPrimitiveNodes.java
  138. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/IOPrimitiveNodes.java
  139. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/StringPrimitiveNodes.java
  140. +26 −10 truffle/src/main/java/org/jruby/truffle/runtime/ModuleOperations.java
  141. +6 −0 truffle/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java
  142. +20 −75 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyModule.java
  143. +6 −2 truffle/src/main/java/org/jruby/truffle/runtime/methods/InternalMethod.java
  144. +10 −28 truffle/src/main/java/org/jruby/truffle/translator/BodyTranslator.java
  145. +1 −0 truffle/src/main/ruby/core/config.rb
  146. +3 −1 truffle/src/main/ruby/core/rubinius/common/exception.rb
  147. +2 −0 truffle/src/main/ruby/core/rubinius/delta/class.rb
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -2,9 +2,9 @@ language: java

sudo: false

cache:
directories:
- $HOME/.m2
#cache:
# directories:
# - $HOME/.m2

before_script:
- unset GEM_PATH GEM_HOME IRBRC JRUBY_OPTS
8 changes: 4 additions & 4 deletions core/pom.rb
Original file line number Diff line number Diff line change
@@ -41,17 +41,17 @@
jar 'org.ow2.asm:asm-util:${asm.version}'

jar 'com.github.jnr:jnr-netdb:1.1.4'
jar 'com.github.jnr:jnr-enxio:0.7'
jar 'com.github.jnr:jnr-enxio:0.8-SNAPSHOT'
jar 'com.github.jnr:jnr-x86asm:1.0.2'
jar 'com.github.jnr:jnr-unixsocket:0.6'
jar 'com.github.jnr:jnr-posix:3.0.10'
jar 'com.github.jnr:jnr-unixsocket:0.7-SNAPSHOT'
jar 'com.github.jnr:jnr-posix:3.0.11-SNAPSHOT'
jar 'com.github.jnr:jnr-constants:0.8.6'
jar 'com.github.jnr:jnr-ffi:2.0.2'
jar 'com.github.jnr:jffi:${jffi.version}'
jar 'com.github.jnr:jffi:${jffi.version}:native'

jar 'org.jruby.joni:joni:2.1.6-SNAPSHOT'
jar 'org.jruby.extras:bytelist:1.0.12'
jar 'org.jruby.extras:bytelist:1.0.13-SNAPSHOT'
jar 'org.jruby.jcodings:jcodings:1.0.13-SNAPSHOT'
jar 'org.jruby:dirgra:0.2'

4 changes: 1 addition & 3 deletions core/pom.xml
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@
<installer.gems>${jruby.win32ole.gem}</installer.gems>
<tesla.dump.readonly>true</tesla.dump.readonly>
<prawn.git.repo>git://github.com/sandal/prawn.git</prawn.git.repo>
<version.ruby.minor>0</version.ruby.minor>
<version.ruby.minor>2</version.ruby.minor>
<tzdata.version>2013d</tzdata.version>
<install4j.executable>/Applications/install4j 4/bin/install4jc</install4j.executable>
<jay.bin>jay</jay.bin>
@@ -91,7 +91,6 @@
<groupId>com.github.jnr</groupId>
<artifactId>jnr-enxio</artifactId>
<version>0.8-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
@@ -102,7 +101,6 @@
<groupId>com.github.jnr</groupId>
<artifactId>jnr-unixsocket</artifactId>
<version>0.7-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
10 changes: 6 additions & 4 deletions core/src/main/java/org/jruby/IncludedModuleWrapper.java
Original file line number Diff line number Diff line change
@@ -208,14 +208,16 @@ public IRubyObject getAutoloadConstant(String name) {

@Override
protected DynamicMethod searchMethodCommon(String name) {
// IncludedModuleWrapper needs to search prepended modules too, but not included ones.
RubyModule module = this;
for (; module.isPrepended(); module = module.getSuperClass()) {
// IncludedModuleWrapper needs to search prepended modules too, so search until we find methodLocation
RubyModule module = origin;
RubyModule methodLoc = origin.getMethodLocation();

for (; module != methodLoc; module = module.getSuperClass()) {
DynamicMethod method = module.getMethods().get(name);
if (method != null) return method.isNull() ? null : method;
}

// Last non-prepended module should be our regular module, do one last search.
// one last search for method location
DynamicMethod method = module.getMethods().get(name);
if (method != null) return method.isNull() ? null : method;

100 changes: 47 additions & 53 deletions core/src/main/java/org/jruby/RubyIO.java
Original file line number Diff line number Diff line change
@@ -3432,7 +3432,7 @@ private static IRubyObject openKeyArgs(ThreadContext context, IRubyObject recv,
IRubyObject path, v;

path = StringSupport.checkEmbeddedNulls(runtime, RubyFile.get_path(context, argv[0]));
failIfDirectory(runtime, (RubyString)path); // only in JRuby
failIfDirectory(runtime, (RubyString) path); // only in JRuby
// MRI increments args past 0 now, so remaining uses of args only see non-path args

if (opt.isNil()) {
@@ -3762,61 +3762,53 @@ private static class Ruby19POpen {

public Ruby19POpen(Ruby runtime, IRubyObject[] args) {
IRubyObject[] _cmdPlusArgs = null;
RubyHash _env = null;
IRubyObject _env = null;
IRubyObject _cmd;
IRubyObject arg0 = args[0].checkArrayType();

if (args[0] instanceof RubyHash) {
// use leading hash as env
if (args.length > 1) {
_env = (RubyHash)args[0];
} else {
Arity.raiseArgumentError(runtime, 0, 1, 2);
}
int firstArg = 0;
int argc = args.length;

if (Platform.IS_WINDOWS) {
String[] tokens = args[1].convertToString().toString().split(" ", 2);
String commandString = tokens[0].replace('/', '\\') +
(tokens.length > 1 ? ' ' + tokens[1] : "");
_cmd = runtime.newString(commandString);
} else {
_cmd = args[1].convertToString();
if (argc > 0 && !(_env = TypeConverter.checkHashType(runtime, args[0])).isNil()) {
if (argc < 2) throw runtime.newArgumentError(1, 2);
firstArg++;
argc--;
} else {
_env = null;
}

IRubyObject arg0 = args[firstArg].checkArrayType();

if (arg0.isNil()) {
if ((arg0 = TypeConverter.checkStringType(runtime, args[firstArg])).isNil()) {
throw runtime.newTypeError(args[firstArg], runtime.getString());
}
} else if (args[0] instanceof RubyArray) {
RubyArray arg0Ary = (RubyArray)arg0;
_cmdPlusArgs = new IRubyObject[]{arg0};
} else {
RubyArray arg0Ary = (RubyArray) arg0;
if (arg0Ary.isEmpty()) throw runtime.newArgumentError("wrong number of arguments");
if (arg0Ary.eltOk(0) instanceof RubyHash) {
// leading hash, use for env
_env = (RubyHash)arg0Ary.delete_at(0);
_env = arg0Ary.delete_at(0);
}
if (arg0Ary.isEmpty()) throw runtime.newArgumentError("wrong number of arguments");
if (arg0Ary.size() > 1 && arg0Ary.eltOk(arg0Ary.size() - 1) instanceof RubyHash) {
// trailing hash, use for opts
_env = (RubyHash)arg0Ary.eltOk(arg0Ary.size() - 1);
_env = arg0Ary.eltOk(arg0Ary.size() - 1);
}
_cmdPlusArgs = (IRubyObject[])arg0Ary.toJavaArray();
_cmdPlusArgs = arg0Ary.toJavaArray();
}

if (Platform.IS_WINDOWS) {
String commandString = _cmdPlusArgs[0].convertToString().toString().replace('/', '\\');
_cmdPlusArgs[0] = runtime.newString(commandString);
} else {
_cmdPlusArgs[0] = _cmdPlusArgs[0].convertToString();
}
_cmd = _cmdPlusArgs[0];
if (Platform.IS_WINDOWS) {
String commandString = _cmdPlusArgs[0].convertToString().toString().replace('/', '\\');
_cmdPlusArgs[0] = runtime.newString(commandString);
} else {
if (Platform.IS_WINDOWS) {
String[] tokens = args[0].convertToString().toString().split(" ", 2);
String commandString = tokens[0].replace('/', '\\') +
(tokens.length > 1 ? ' ' + tokens[1] : "");
_cmd = runtime.newString(commandString);
} else {
_cmd = args[0].convertToString();
}
_cmdPlusArgs[0] = _cmdPlusArgs[0].convertToString();
}
_cmd = _cmdPlusArgs[0];

this.cmd = (RubyString)_cmd;
this.cmdPlusArgs = _cmdPlusArgs;
this.env = _env;
this.env = (RubyHash)_env;
}
}

@@ -3832,21 +3824,23 @@ public static IRubyObject popen(ThreadContext context, IRubyObject recv, IRubyOb
// old JDK popen logic
IRubyObject pmode = null;
RubyHash options = null;

switch(args.length) {
case 1:
break;
case 2:
if (args[1] instanceof RubyHash) {
options = (RubyHash) args[1];
} else {
pmode = args[1];
}
break;
case 3:
options = args[2].convertToHash();
pmode = args[1];
break;
IRubyObject tmp;

int firstArg = 0;
int argc = args.length;

if (argc > 0 && !TypeConverter.checkHashType(runtime, args[0]).isNil()) {
firstArg++;
argc--;
}

if (argc > 0 && !(tmp = TypeConverter.checkHashType(runtime, args[args.length - 1])).isNil()) {
options = (RubyHash)tmp;
argc--;
}

if (argc > 1) {
pmode = args[firstArg + 1];
}

RubyIO io = new RubyIO(runtime, (RubyClass) recv);
5 changes: 2 additions & 3 deletions core/src/main/java/org/jruby/RubyModule.java
Original file line number Diff line number Diff line change
@@ -3151,11 +3151,10 @@ public Collection<String> constantsCommon(Ruby runtime, boolean replaceModule, b
return constantsCommon(runtime, replaceModule, allConstants, true);
}


public Collection<String> constantsCommon(Ruby runtime, boolean replaceModule, boolean allConstants, boolean includePrivate) {
RubyModule objectClass = runtime.getObject();
final RubyModule objectClass = runtime.getObject();

Collection<String> constantNames = new HashSet<String>();
final Collection<String> constantNames;
if (allConstants) {
if ((replaceModule && runtime.getModule() == this) || objectClass == this) {
constantNames = objectClass.getConstantNames(includePrivate);
Original file line number Diff line number Diff line change
@@ -230,7 +230,7 @@ public void load(Ruby runtime, boolean wrap) {
setConfig(configHash, "MAJOR", versionParts[0]);
setConfig(configHash, "MINOR", versionParts[1]);
setConfig(configHash, "TEENY", versionParts[2]);
setConfig(configHash, "ruby_version", versionParts[0] + '.' + versionParts[1]);
setConfig(configHash, "ruby_version", versionParts[0] + '.' + versionParts[1] + ".0");
// Rubygems is too specific on host cpu so until we have real need lets default to universal
//setConfig(configHash, "arch", System.getProperty("os.arch") + "-java" + System.getProperty("java.specification.version"));
setConfig(configHash, "arch", "universal-java" + System.getProperty("java.specification.version"));
31 changes: 30 additions & 1 deletion core/src/main/java/org/jruby/ir/runtime/IRRuntimeHelpers.java
Original file line number Diff line number Diff line change
@@ -735,7 +735,36 @@ public static RubyModule findInstanceMethodContainer(ThreadContext context, Dyna
for (DynamicScope ds = currDynScope; ds != null; ) {
IRScopeType scopeType = ds.getStaticScope().getScopeType();
switch (ds.getEvalType()) {
case MODULE_EVAL : return (RubyModule) self;
// The most common use case here is where :
// - a method is defined inside a closure
// that is nested inside a module_eval.
// here self = the module
// - in the rare case where it is not (looks like it can
// happen in some testing frameworks), we have to add
// the method to self itself => its metaclass.
//
// SSS FIXME: Looks like this rare case happens when
// the closure is used in a "define_method &block" scenario
// => in reality the scope is not a closure but an
// instance_method. So, when we fix define_method implementation
// to actually convert blocks to real instance_method scopes,
// we will not have this edge case since the code will then
// be covered by the (scopeType == IRScopeType.INSTANCE_METHOD)
// scenario below. Whenever we get to fixing define_method
// implementation, we should rip out this code here.
//
// Verify that this test runs:
// -------------
// require "minitest/autorun"
//
// describe "A" do
// it "should do something" do
// def foo
// end
// end
// end
// -------------
case MODULE_EVAL : return self instanceof RubyModule ? (RubyModule) self : self.getMetaClass();
case INSTANCE_EVAL: return self.getSingletonClass();
case BINDING_EVAL : ds = ds.getParentScope(); break;
case NONE:
20 changes: 10 additions & 10 deletions core/src/main/java/org/jruby/runtime/backtrace/TraceType.java
Original file line number Diff line number Diff line change
@@ -68,20 +68,20 @@ public static void logBacktrace(RubyStackTraceElement[] trace) {
LOG.info(" " + element.getFileName() + ":" + element.getLineNumber() + " in " + element.getMethodName());
}
}

public static void dumpException(RubyException exception) {
LOG.info("Exception raised: {} : {}", exception.getMetaClass(), exception);
}

public static void dumpBacktrace(RubyException exception) {
Ruby runtime = exception.getRuntime();
System.err.println("Backtrace generated:\n" + Format.JRUBY.printBacktrace(exception, runtime.getPosix().isatty(FileDescriptor.err)));
}

public static void dumpCaller(RubyArray trace) {
LOG.info("Caller backtrace generated:\n" + trace);
}

public static void dumpCaller(RubyStackTraceElement[] trace) {
LOG.info("Caller backtrace generated:\n" + Arrays.toString(trace));
}
@@ -94,13 +94,13 @@ public static TraceType traceTypeFor(String style) {
if (style.equalsIgnoreCase("raw")) return new TraceType(Gather.RAW, Format.JRUBY);
else if (style.equalsIgnoreCase("ruby_framed")) return new TraceType(Gather.NORMAL, Format.JRUBY);
else if (style.equalsIgnoreCase("normal")) return new TraceType(Gather.NORMAL, Format.JRUBY);
// deprecated, just uses jruby format now
// deprecated, just uses jruby format now
else if (style.equalsIgnoreCase("rubinius")) return new TraceType(Gather.NORMAL, Format.JRUBY);
else if (style.equalsIgnoreCase("full")) return new TraceType(Gather.FULL, Format.JRUBY);
else if (style.equalsIgnoreCase("mri")) return new TraceType(Gather.NORMAL, Format.MRI);
else return new TraceType(Gather.NORMAL, Format.JRUBY);
}

public enum Gather {
/**
* Full raw backtraces with all Java frames included.
@@ -121,7 +121,7 @@ public BacktraceData getBacktraceData(ThreadContext context, StackTraceElement[]
*/
FULL {
public BacktraceData getBacktraceData(ThreadContext context, StackTraceElement[] javaTrace, boolean nativeException) {
return new BacktraceData(
return new BacktraceData(
javaTrace,
context.createBacktrace2(0, nativeException),
true,
@@ -191,7 +191,7 @@ public BacktraceData getBacktraceData(ThreadContext context, boolean nativeExcep
/**
* Gather backtrace data for an integrated trace if the current gather type is "NORMAL", otherwise use the
* current gather type.
*
*
* @param context
* @param javaTrace
* @return
@@ -202,7 +202,7 @@ public BacktraceData getIntegratedBacktraceData(ThreadContext context, StackTrac
if (useGather == NORMAL) {
useGather = INTEGRATED;
}

BacktraceData data = useGather.getBacktraceData(context, javaTrace, false);

context.runtime.incrementBacktraceCount();
@@ -213,7 +213,7 @@ public BacktraceData getIntegratedBacktraceData(ThreadContext context, StackTrac

public abstract BacktraceData getBacktraceData(ThreadContext context, StackTraceElement[] javaTrace, boolean nativeException);
}

public enum Format {
/**
* Formatting like C Ruby
31 changes: 22 additions & 9 deletions core/src/main/java/org/jruby/runtime/load/LoadService.java
Original file line number Diff line number Diff line change
@@ -393,19 +393,32 @@ private enum RequireState {
LOADED, ALREADY_LOADED, CIRCULAR
};

private RequireState requireCommon(String requireName, boolean circularRequireWarning) {
// check for requiredName without extension.
if (featureAlreadyLoaded(requireName)) {
private RequireState requireCommon(String file, boolean circularRequireWarning) {
checkEmptyLoad(file);

// check with short name
if (featureAlreadyLoaded(file)) {
return RequireState.ALREADY_LOADED;
}

SearchState state = findFileForLoad(file);

if (state.library == null) {
throw runtime.newLoadError("no such file to load -- " + state.searchFile, state.searchFile);
}

// check with long name
if (featureAlreadyLoaded(state.loadName)) {
return RequireState.ALREADY_LOADED;
}

if (!runtime.getProfile().allowRequire(requireName)) {
throw runtime.newLoadError("no such file to load -- " + requireName, requireName);
if (!runtime.getProfile().allowRequire(file)) {
throw runtime.newLoadError("no such file to load -- " + file, file);
}

return smartLoadInternal(requireName, circularRequireWarning);
return smartLoadInternal(file, circularRequireWarning);
}

protected final RequireLocks requireLocks = new RequireLocks();

private class RequireLocks {
@@ -422,7 +435,7 @@ private RequireLocks() {
* Get exclusive lock for the specified requireName. Acquire sync object
* for the requireName from the pool, then try to lock it. NOTE: This
* lock is not fair for now.
*
*
* @param requireName
* just a name for the lock.
* @return If the sync object already locked by current thread, it just
@@ -446,7 +459,7 @@ private boolean lock(String requireName) {

/**
* Unlock the lock for the specified requireName.
*
*
* @param requireName
* name of the lock to be unlocked.
*/
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/util/ShellLauncher.java
Original file line number Diff line number Diff line change
@@ -783,7 +783,7 @@ private static Process popenShared(Ruby runtime, IRubyObject[] strings, Map env,

String[] args = parseCommandLine(runtime.getCurrentContext(), runtime, strings);
LaunchConfig lc = new LaunchConfig(runtime, strings, false);
boolean useShell = Platform.IS_WINDOWS ? lc.shouldRunInShell() : false;
boolean useShell = lc.shouldRunInShell();
if (addShell) for (String arg : args) useShell |= shouldUseShell(arg);

// CON: popen is a case where I think we should just always shell out.
2 changes: 1 addition & 1 deletion lib/pom.rb
Original file line number Diff line number Diff line change
@@ -97,7 +97,7 @@ def to_pathname

# TODO no hardcoded group-ids
plugin :dependency, :useRepositoryLayout => true, :outputDirectory => 'ruby/stdlib', :excludeGroupIds => 'rubygems', :includeScope => :provided do
execute_goal 'copy-dependencies', :phase => 'package'
execute_goal 'copy-dependencies', :phase => 'generate-resources'
end

execute :install_gems, :'initialize' do |ctx|
26 changes: 13 additions & 13 deletions lib/pom.xml
Original file line number Diff line number Diff line change
@@ -79,8 +79,8 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
<artifactId>minitest</artifactId>
<version>${minitest.version}</version>
<type>gem</type>
<scope>provided</scope>
<exclusions>
@@ -92,8 +92,8 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>jar-dependencies</artifactId>
<version>0.1.13</version>
<artifactId>test-unit</artifactId>
<version>${test-unit.version}</version>
<type>gem</type>
<scope>provided</scope>
<exclusions>
@@ -105,8 +105,8 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>minitest</artifactId>
<version>${minitest.version}</version>
<artifactId>power_assert</artifactId>
<version>${power_assert.version}</version>
<type>gem</type>
<scope>provided</scope>
<exclusions>
@@ -118,8 +118,8 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>test-unit</artifactId>
<version>${test-unit.version}</version>
<artifactId>psych</artifactId>
<version>2.0.9.2</version>
<type>gem</type>
<scope>provided</scope>
<exclusions>
@@ -131,8 +131,8 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>power_assert</artifactId>
<version>${power_assert.version}</version>
<artifactId>json</artifactId>
<version>${json.version}</version>
<type>gem</type>
<scope>provided</scope>
<exclusions>
@@ -144,8 +144,8 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>psych</artifactId>
<version>2.0.9.2</version>
<artifactId>jar-dependencies</artifactId>
<version>0.1.13</version>
<type>gem</type>
<scope>provided</scope>
<exclusions>
@@ -230,7 +230,7 @@
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<phase>generate-resources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
21 changes: 21 additions & 0 deletions spec/regression/GH-2864_search_prepends_in_modules_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# The issue here stemmed from modules with prepends not being searched like classes with prepends. Instead of searching
# up the prepend hierarchy, we only ever checked the target module's method table. When a prepend was active, this
# table is empty. The modified logic now searches all modules in hierarchy below and including the original, allowing
# it to search prepended modules-in-a-module correctly. #2864
describe "A module with prepends" do
it "is searched as a hierarchy" do
a = Module.new do
def foo; 1; end
end
b = Module.new
a.prepend(b)
x = Class.new do
include a
end
y = Class.new(x) do
prepend b
end

expect(y.new.foo).to eq(1)
end
end
1 change: 0 additions & 1 deletion spec/truffle/tags/core/file/atime_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
fails:File.atime returns the last access time for the named file as a Time object
fails:File.atime raises an Errno::ENOENT exception if the file is not found
fails:File.atime accepts an object that has a #to_path method
fails:File#atime returns the last access time to self
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/blockdev_tags.txt

This file was deleted.

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/chardev_tags.txt

This file was deleted.

5 changes: 0 additions & 5 deletions spec/truffle/tags/core/file/constants_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/file/ctime_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
fails:File.ctime Returns the change time for the named file (the time at which directory information about the file was changed, not the file itself).
fails:File.ctime accepts an object that has a #to_path method
fails:File.ctime raises an Errno::ENOENT exception if the file is not found
fails:File#ctime Returns the change time for the named file (the time at which directory information about the file was changed, not the file itself).
7 changes: 0 additions & 7 deletions spec/truffle/tags/core/file/extname_tags.txt

This file was deleted.

21 changes: 0 additions & 21 deletions spec/truffle/tags/core/file/fnmatch_tags.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,2 @@
fails:File.fnmatch? matches entire strings
fails:File.fnmatch? does not match partial strings
fails:File.fnmatch? does not support { } patterns by default
fails:File.fnmatch? supports some { } patterns when File::FNM_EXTGLOB is passed
fails:File.fnmatch? matches a single character for each ? character
fails:File.fnmatch? matches zero or more characters for each * character
fails:File.fnmatch? matches ranges of characters using bracket expresions (e.g. [a-z])
fails:File.fnmatch? matches ranges of characters using bracket expresions, taking case into account
fails:File.fnmatch? does not match characters outside of the range of the bracket expresion
fails:File.fnmatch? matches ranges of characters using exclusive bracket expresions (e.g. [^t] or [!t])
fails:File.fnmatch? matches characters with a case sensitive comparison
fails:File.fnmatch? matches literal ? or * in path when pattern includes \? or \*
fails:File.fnmatch? matches literal character (e.g. 'a') in path when pattern includes escaped character (e.g. \a)
fails:File.fnmatch? escapes special characters inside bracket expression
fails:File.fnmatch? does not match leading periods in filenames with wildcards by default
fails:File.fnmatch? matches patterns with leading periods to dotfiles by default
fails:File.fnmatch? matches multiple directories with ** and *
fails:File.fnmatch? matches multiple directories with ** when flags includes File::FNM_PATHNAME
fails:File.fnmatch? accepts an object that has a #to_path method
fails:File.fnmatch? raises a TypeError if the first and second arguments are not string-like
fails:File.fnmatch? does not raise a TypeError if the third argument can be coerced to an Integer
fails(windows):File.fnmatch matches case sensitive characters on platfroms with case insensitive paths, when flags include FNM_SYSCASE
fails(windows):File.fnmatch? matches case sensitive characters on platfroms with case insensitive paths, when flags include FNM_SYSCASE
8 changes: 0 additions & 8 deletions spec/truffle/tags/core/file/ftype_tags.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,2 @@
fails:File.ftype raises ArgumentError if not given exactly one filename
fails:File.ftype raises Errno::ENOENT if the file is not valid
fails:File.ftype returns a String
fails:File.ftype returns 'file' when the file is a file
fails:File.ftype returns 'directory' when the file is a dir
fails:File.ftype returns 'blockSpecial' when the file is a block
fails:File.ftype returns 'characterSpecial' when the file is a char
fails:File.ftype returns 'link' when the file is a link
fails:File.ftype returns fifo when the file is a fifo
fails:File.ftype returns 'socket' when the file is a socket
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/file/grpowned_tags.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
fails:File.grpowned? returns true if the file exist
fails:File.grpowned? accepts an object that has a #to_path method
fails:File.grpowned? takes non primary groups into account
fails:File.grpowned? returns false if file the does not exist
fails(windows):File.grpowned? returns false if the file exist
1 change: 0 additions & 1 deletion spec/truffle/tags/core/file/inspect_tags.txt

This file was deleted.

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/link_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
fails:File.link link a file with another
fails:File.link raises an Errno::EEXIST if the target already exists
fails:File.link raises an ArgumentError if not passed two arguments
fails:File.link raises a TypeError if not passed String types
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/lstat_tags.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
fails:File.lstat returns a File::Stat object if the given file exists
fails:File.lstat returns a File::Stat object when called on an instance of File
fails:File.lstat accepts an object that has a #to_path method
fails:File.lstat raises an Errno::ENOENT if the file does not exist
fails:File.lstat returns a File::Stat object with symlink properties for a symlink
1 change: 0 additions & 1 deletion spec/truffle/tags/core/file/mtime_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
fails:File.mtime returns the modification Time of the file
fails:File.mtime raises an Errno::ENOENT exception if the file is not found
fails:File#mtime returns the modification Time of the file
16 changes: 0 additions & 16 deletions spec/truffle/tags/core/file/new_tags.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,4 @@
fails:File.new returns a new File with mode string
fails:File.new returns a new File with mode num
fails:File.new returns a new File with modus num and permissions
fails:File.new creates the file and returns writable descriptor when called with 'w' mode and r-o permissions
fails:File.new opens the existing file, does not change permissions even when they are specified
fails:File.new returns a new File with modus fd
fails:File.new creates a new file when use File::EXCL mode
fails:File.new raises an Errorno::EEXIST if the file exists when create a new file with File::CREAT|File::EXCL
fails:File.new creates a new file when use File::WRONLY|File::APPEND mode
fails:File.new returns a new File when use File::APPEND mode
fails:File.new returns a new File when use File::RDONLY|File::APPEND mode
fails:File.new returns a new File when use File::RDONLY|File::WRONLY mode
fails:File.new creates a new file when use File::WRONLY|File::TRUNC mode
fails:File.new coerces filename using to_str
fails:File.new coerces filename using #to_path
fails:File.new raises a TypeError if the first parameter can't be coerced to a string
fails:File.new raises a TypeError if the first parameter is nil
fails:File.new raises an Errno::EBADF if the first parameter is an invalid file descriptor
fails:File.new can't alter mode or permissions when opening a file
fails:File.new opens directories
1 change: 0 additions & 1 deletion spec/truffle/tags/core/file/null_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
fails:File::NULL returns /dev/null as a string
fails(windows):File::NULL returns NUL as a string
53 changes: 0 additions & 53 deletions spec/truffle/tags/core/file/open_tags.txt
Original file line number Diff line number Diff line change
@@ -1,69 +1,16 @@
fails:File.open opens the file (basic case)
fails:File.open opens with mode string
fails:File.open opens a file with mode num
fails:File.open opens a file with mode and permission as nil
fails:File.open opens the file when passed mode, num and permissions
fails:File.open opens the file when passed mode, num, permissions and block
fails:File.open creates the file and returns writable descriptor when called with 'w' mode and r-o permissions
fails:File.open opens the existing file, does not change permissions even when they are specified
fails:File.open creates a new write-only file when invoked with 'w' and '0222'
fails:File.open opens a file that no exists when use File::WRONLY mode
fails:File.open opens a file that no exists when use File::RDONLY mode
fails:File.open opens a file that no exists when use 'r' mode
fails:File.open opens a file that no exists when use File::EXCL mode
fails:File.open opens a file that no exists when use File::NONBLOCK mode
fails:File.open opens a file that no exists when use File::TRUNC mode
fails:File.open opens a file that no exists when use File::NOCTTY mode
fails:File.open opens a file that no exists when use File::CREAT mode
fails:File.open opens a file that no exists when use 'a' mode
fails:File.open opens a file that no exists when use 'w' mode
fails:File.open raises an ArgumentError exception when call with an unknown mode
fails:File.open can read in a block when call open with RDONLY mode
fails:File.open can read in a block when call open with 'r' mode
fails:File.open raises an IO exception when write in a block opened with RDONLY mode
fails:File.open raises an IO exception when write in a block opened with 'r' mode
fails:File.open can't write in a block when call open with File::WRONLY||File::RDONLY mode
fails:File.open can't read in a block when call open with File::WRONLY||File::RDONLY mode
fails:File.open can write in a block when call open with WRONLY mode
fails:File.open raises an IOError when read in a block opened with WRONLY mode
fails:File.open raises an IOError when read in a block opened with 'w' mode
fails:File.open raises an IOError when read in a block opened with 'a' mode
fails:File.open raises an IOError when read in a block opened with File::WRONLY|File::APPEND mode
fails:File.open raises an IOError when read in a block opened with File::RDONLY|File::APPEND mode
fails:File.open can read and write in a block when call open with RDWR mode
fails:File.open can't read in a block when call open with File::EXCL mode
fails:File.open can read in a block when call open with File::EXCL mode
fails:File.open can read and write in a block when call open with File::RDWR|File::EXCL mode
fails:File.open raises an Errorno::EEXIST if the file exists when open with File::CREAT|File::EXCL
fails:File.open creates a new file when use File::WRONLY|File::APPEND mode
fails:File.open opens a file when use File::WRONLY|File::APPEND mode
fails:File.open raises an IOError if the file exists when open with File::RDONLY|File::APPEND
fails:File.open truncates the file when passed File::TRUNC mode
fails:File.open can't read in a block when call open with File::TRUNC mode
fails:File.open opens a file when use File::WRONLY|File::TRUNC mode
fails:File.open can't write in a block when call open with File::TRUNC mode
fails:File.open raises an Errorno::EEXIST if the file exists when open with File::RDONLY|File::TRUNC
fails:File.open raises an Errno::EACCES when opening non-permitted file
fails:File.open raises an Errno::EACCES when opening read-only file
fails:File.open opens a file for binary read
fails:File.open opens a file for binary write
fails:File.open opens a file for read-write and truncate the file
fails:File.open opens a file for binary read-write starting at the beginning of the file
fails:File.open opens a file for binary read-write and truncate the file
fails:File.open raises a SystemCallError if passed an invalid Integer type
fails:File.open raises an ArgumentError if passed an invalid string for mode
fails:File.open defaults external_encoding to ASCII-8BIT for binary modes
fails:File.open uses the second argument as an options Hash
fails:File.open calls #to_hash to convert the second argument to a Hash
fails:File.open with a block does not raise error when file is closed inside the block
fails:File.open with a block invokes close on an opened file when exiting the block
fails:File.open with a block propagates non-StandardErrors produced by close
fails:File.open with a block does not propagate StandardErrors produced by close
fails:File.open on a FIFO opens it as a normal file
fails:File.open when passed a file descriptor opens a file
fails:File.open when passed a file descriptor opens a file when passed a block
fails:File.open opens directories
fails:File.open opens the file when call with fd
fails:File.open opens a file with a file descriptor d and a block
fails:File.open with a block propagates StandardErrors produced by close
fails:File.open with a block does not propagate IOError with 'closed stream' message produced by close
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/file/owned_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/file/path_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
fails:File#path returns the pathname used to create file as a string
windows:File.path returns the full path for the given file
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/pipe_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
fails:File.pipe? returns false if file does not exist
fails:File.pipe? returns false if the file is not a pipe
fails:File.pipe? returns true if the file is a pipe
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/file/readable_real_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/file/readable_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
fails:File.readable? accepts an object that has a #to_path method
windows:File.readable? returns true if named file is readable by the effective user id of the process, otherwise false
windows:File.readable? returns false if the file does not exist
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/rename_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
fails:File.rename renames a file
fails:File.rename raises an Errno::ENOENT if the source does not exist
fails:File.rename raises an ArgumentError if not passed two arguments
fails:File.rename raises a TypeError if not passed String types
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/setgid_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
fails:File.setgid? returns false if the file was just made
fails:File.setgid? returns false if the file does not exist
fails:File.setgid? returns true when the gid bit is set
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/setuid_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
fails:File.setuid? returns false if the file was just made
fails:File.setuid? returns false if the file does not exist
fails:File.setuid? returns true when the gid bit is set
8 changes: 0 additions & 8 deletions spec/truffle/tags/core/file/size_tags.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,7 @@
fails:File.size? accepts a String-like (to_str) parameter
fails:File.size? accepts an object that has a #to_path method
fails:File.size? calls #to_io to convert the argument to an IO
fails:File.size? accepts a File argument
fails:File.size returns the size of the file if it exists and is not empty
fails:File.size accepts a String-like (to_str) parameter
fails:File.size accepts an object that has a #to_path method
fails:File.size calls #to_io to convert the argument to an IO
fails:File.size raises an error if file_name doesn't exist
fails:File.size returns 0 if the file is empty
fails:File.size accepts a File argument
fails:File#size is an instance method
fails:File#size returns the file's size as a Fixnum
fails:File#size returns the file's size in bytes
fails:File#size returns the cached size of the file if subsequently deleted
8 changes: 0 additions & 8 deletions spec/truffle/tags/core/file/split_tags.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,2 @@
fails:File.split splits the string at the last '/' when the last component does not have an extension
fails:File.split splits the string at the last '/' when the last component has an extension
fails:File.split splits an empty string into a '.' and an empty string
fails:File.split collapses multiple '/' characters and strips trailing ones
fails:File.split splits the string at the last '\' when the last component does not have an extension
fails:File.split splits the string at the last '\' when the last component has an extension
fails:File.split raises an ArgumentError when not passed a single argument
fails:File.split raises a TypeError if the argument is not a String type
fails:File.split coerces the argument with to_str if it is not a String type
fails:File.split accepts an object that has a #to_path method
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/stat_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
fails:File.stat returns a File::Stat object if the given file exists
fails:File.stat returns a File::Stat object when called on an instance of File
fails:File.stat accepts an object that has a #to_path method
fails:File.stat raises an Errno::ENOENT if the file does not exist
fails:File.stat returns information for a file that has been deleted but is still open
fails:File.stat returns a File::Stat object with file properties for a symlink
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/file/sticky_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
fails:File.sticky? returns false if the file dies not exist
fails:File.sticky? returns false if file does not exist
fails:File.sticky? returns false if the file has not sticky bit set
fails:File.sticky? returns true if the file has sticky bit set
fails:File.sticky? returns true if the named file has the sticky bit, otherwise false
fails:File.sticky? cannot set sticky bit to a normal file
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/symlink_tags.txt
Original file line number Diff line number Diff line change
@@ -2,7 +2,5 @@ fails:File.symlink creates a symlink between a source and target file
fails:File.symlink creates a symbolic link
fails:File.symlink accepts args that have #to_path methods
fails:File.symlink raises an Errno::EEXIST if the target already exists
fails:File.symlink raises an ArgumentError if not called with two arguments
fails:File.symlink raises a TypeError if not called with String types
fails:File.symlink? returns true if the file is a link
fails:File.symlink? accepts an object that has a #to_path method
5 changes: 0 additions & 5 deletions spec/truffle/tags/core/file/to_path_tags.txt

This file was deleted.

8 changes: 0 additions & 8 deletions spec/truffle/tags/core/file/truncate_tags.txt
Original file line number Diff line number Diff line change
@@ -3,11 +3,7 @@ fails:File.truncate truncate a file size to 0
fails:File.truncate truncate a file size to 5
fails:File.truncate truncates to a larger file size than the original file
fails:File.truncate truncates to the same size as the original file
fails:File.truncate raises an Errno::ENOENT if the file does not exist
fails:File.truncate raises an ArgumentError if not passed two arguments
fails:File.truncate raises an Errno::EINVAL if the length argument is not valid
fails:File.truncate raises a TypeError if not passed a String type for the first argument
fails:File.truncate raises a TypeError if not passed an Integer type for the second argument
fails:File.truncate accepts an object that has a #to_path method
fails:File#truncate does not move the file write pointer to the specified byte offset
fails:File#truncate does not move the file read pointer to the specified byte offset
@@ -16,8 +12,4 @@ fails:File#truncate truncates a file size to 0
fails:File#truncate truncates a file size to 5
fails:File#truncate truncates a file to a larger size than the original file
fails:File#truncate truncates a file to the same size as the original file
fails:File#truncate raises an ArgumentError if not passed one argument
fails:File#truncate raises an Errno::EINVAL if the length argument is not valid
fails:File#truncate raises an IOError if file is closed
fails:File#truncate raises an IOError if file is not opened for writing
fails:File#truncate raises a TypeError if not passed an Integer type for the for the argument
4 changes: 0 additions & 4 deletions spec/truffle/tags/core/file/unlink_tags.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
fails:File.unlink returns 0 when called without arguments
fails:File.unlink deletes multiple files
fails:File.unlink raises an Errno::ENOENT when the given file doesn't exist
fails:File.unlink coerces a given parameter into a string if possible
fails:File.unlink accepts an object that has a #to_path method
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/world_readable_tags.txt
Original file line number Diff line number Diff line change
@@ -3,5 +3,3 @@ fails:File.world_readable? returns nil if the file is chmod 000
fails:File.world_readable? returns nil if the file is chmod 700
fails:File.world_readable? returns a Fixnum if the file is chmod 644
fails:File.world_readable? returns a Fixnum if the file is a directory and chmod 644
fails:File.world_readable? coerces the argument with #to_path
fails:File.world_readable? returns nil if the file does not exist
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/file/world_writable_tags.txt
Original file line number Diff line number Diff line change
@@ -3,5 +3,3 @@ fails:File.world_writable? returns nil if the file is chmod 000
fails:File.world_writable? returns nil if the file is chmod 700
fails:File.world_writable? returns a Fixnum if the file is chmod 777
fails:File.world_writable? returns a Fixnum if the file is a directory and chmod 777
fails:File.world_writable? coerces the argument with #to_path
fails:File.world_writable? returns nil if the file does not exist
5 changes: 0 additions & 5 deletions spec/truffle/tags/core/file/writable_real_tags.txt

This file was deleted.

3 changes: 0 additions & 3 deletions spec/truffle/tags/core/file/writable_tags.txt

This file was deleted.

9 changes: 0 additions & 9 deletions spec/truffle/tags/core/file/zero_tags.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,2 @@
fails:File.zero? returns true if the file is empty
fails:File.zero? returns false if the file is not empty
fails:File.zero? accepts an object that has a #to_path method
fails:File.zero? returns true for /dev/null
fails:File.zero? raises an ArgumentError if not passed one argument
fails:File.zero? raises a TypeError if not passed a String type
fails:File.zero? returns true inside a block opening a file if it is empty
fails:File.zero? returns false for a directory
fails:File.zero? returns false if the file does not exist
fails(windows):File.zero? returns true for NUL
fails(windows):File.zero? returns true for a directory
6 changes: 0 additions & 6 deletions spec/truffle/tags/core/io/advise_tags.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
fails:IO#advise raises a TypeError if advise is not a Symbol
fails:IO#advise raises a TypeError if offsert cannot be coerced to an Integer
fails:IO#advise raises a TypeError if len cannot be coerced to an Integer
fails:IO#advise raises a RangeError if offset is too big
fails:IO#advise raises a RangeError if len is too big
fails:IO#advise raises a NotImplementedError if advise is not recognized
fails:IO#advise supports the normal advice type
fails:IO#advise supports the sequential advice type
fails:IO#advise supports the random advice type
4 changes: 0 additions & 4 deletions spec/truffle/tags/core/io/binmode_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,2 @@
fails:IO#binmode returns self
fails:IO#binmode raises an IOError on closed stream
fails:IO#binmode sets external encoding to binary
fails:IO#binmode sets internal encoding to nil
fails:IO#binmode? is true after a call to IO#binmode
fails:IO#binmode? propagates to dup'ed IO objects
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/binread_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
fails:IO.binread reads the contents of a file
fails:IO.binread reads the contents of a file up to a certain size when specified
fails:IO.binread reads the contents of a file from an offset of a specific size when specified
fails:IO.binread returns a String in ASCII-8BIT encoding
fails:IO.binread returns a String in ASCII-8BIT encoding regardless of Encoding.default_internal
fails:IO.binread raises an Errno::EINVAL when not passed a valid offset
10 changes: 0 additions & 10 deletions spec/truffle/tags/core/io/binwrite_tags.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1 @@
fails:IO.binwrite coerces the argument to a string using to_s
fails:IO.binwrite returns the number of bytes written
fails:IO.binwrite creates a file if missing
fails:IO.binwrite creates file if missing even if offset given
fails:IO.binwrite truncates the file and writes the given string
fails:IO.binwrite doesn't truncate the file and writes the given string if an offset is given
fails:IO.binwrite doesn't truncate and writes at the given offset after passing empty opts
fails:IO.binwrite accepts a :mode option
fails:IO.binwrite raises an error if readonly mode is specified
fails:IO.binwrite truncates if empty :opts provided and offset skipped
fails:IO.binwrite needs to be reviewed for spec completeness
1 change: 0 additions & 1 deletion spec/truffle/tags/core/io/bytes_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
fails:IO#bytes returns an enumerator of the next bytes from the stream
fails:IO#bytes yields each byte
fails:IO#bytes raises an IOError on closed stream
fails:IO#bytes raises an IOError on an enumerator for a stream that has been closed
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/chars_tags.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
fails:IO#chars yields each character
fails:IO#chars returns an Enumerator when passed no block
fails:IO#chars returns itself
fails:IO#chars returns an enumerator for a closed stream
fails:IO#chars raises an IOError when an enumerator created on a closed stream is accessed
fails:IO#chars raises IOError on closed stream
fails:IO#chars does not yield any characters on an empty stream
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/close_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
fails:IO#close closes the stream
fails:IO#close returns nil
fails:IO#close raises an IOError reading from a closed IO
fails:IO#close raises an IOError writing to a closed IO
fails:IO#close raises an IOError if closed
fails:IO#close on an IO.popen stream clears #pid
1 change: 0 additions & 1 deletion spec/truffle/tags/core/io/closed_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
fails:IO#closed? returns true on closed stream
fails:IO#closed? returns false on open stream
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/codepoints_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
fails:IO#codepoints returns an Enumerator when passed no block
fails:IO#codepoints yields each codepoint
fails:IO#codepoints yields each codepoint starting from the current position
fails:IO#codepoints raises an error if reading invalid sequence
fails:IO#codepoints does not change $_
fails:IO#codepoints raises an IOError when self is not readable
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/constants_tags.txt

This file was deleted.

7 changes: 0 additions & 7 deletions spec/truffle/tags/core/io/copy_stream_tags.txt
Original file line number Diff line number Diff line change
@@ -1,34 +1,28 @@
fails:IO.copy_stream from an IO raises an IOError if the source IO is not open for reading
fails:IO.copy_stream from an IO does not close the source IO
fails:IO.copy_stream from an IO does not change the IO offset when an offset is specified
fails:IO.copy_stream from an IO does change the IO offset when an offset is not specified
fails:IO.copy_stream from an IO to a file name copies the entire IO contents to the file
fails:IO.copy_stream from an IO to a file name returns the number of bytes copied
fails:IO.copy_stream from an IO to a file name copies only length bytes when specified
fails:IO.copy_stream from an IO to a file name calls #to_path to convert on object to a file name
fails:IO.copy_stream from an IO to a file name raises a TypeError if #to_path does not return a String
fails:IO.copy_stream from an IO to a file name copies only length bytes from the offset
fails:IO.copy_stream from an IO to an IO copies the entire IO contents to the IO
fails:IO.copy_stream from an IO to an IO returns the number of bytes copied
fails:IO.copy_stream from an IO to an IO starts writing at the destination IO's current position
fails:IO.copy_stream from an IO to an IO leaves the destination IO position at the last write
fails:IO.copy_stream from an IO to an IO raises an IOError if the destination IO is not open for writing
fails:IO.copy_stream from an IO to an IO does not close the destination IO
fails:IO.copy_stream from an IO to an IO copies only length bytes when specified
fails:IO.copy_stream from an IO to an IO copies only length bytes from the offset
fails:IO.copy_stream from a file name calls #to_path to convert on object to a file name
fails:IO.copy_stream from a file name raises a TypeError if #to_path does not return a String
fails:IO.copy_stream from a file name to a file name copies the entire IO contents to the file
fails:IO.copy_stream from a file name to a file name returns the number of bytes copied
fails:IO.copy_stream from a file name to a file name copies only length bytes when specified
fails:IO.copy_stream from a file name to a file name calls #to_path to convert on object to a file name
fails:IO.copy_stream from a file name to a file name raises a TypeError if #to_path does not return a String
fails:IO.copy_stream from a file name to a file name copies only length bytes from the offset
fails:IO.copy_stream from a file name to an IO copies the entire IO contents to the IO
fails:IO.copy_stream from a file name to an IO returns the number of bytes copied
fails:IO.copy_stream from a file name to an IO starts writing at the destination IO's current position
fails:IO.copy_stream from a file name to an IO leaves the destination IO position at the last write
fails:IO.copy_stream from a file name to an IO raises an IOError if the destination IO is not open for writing
fails:IO.copy_stream from a file name to an IO does not close the destination IO
fails:IO.copy_stream from a file name to an IO copies only length bytes when specified
fails:IO.copy_stream from a file name to an IO copies only length bytes from the offset
@@ -47,6 +41,5 @@ fails:IO.copy_stream from a pipe IO to an IO raises an IOError if the destinatio
fails:IO.copy_stream from a pipe IO to an IO does not close the destination IO
fails:IO.copy_stream from a pipe IO to an IO copies only length bytes when specified
fails:IO.copy_stream with non-IO Objects calls #readpartial on the source Object if defined
fails:IO.copy_stream with non-IO Objects calls #read on the source Object
fails:IO.copy_stream with non-IO Objects calls #write on the destination Object
fails:IO.copy_stream with non-IO Objects does not call #pos on the source if no offset is given
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/each_byte_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
fails:IO#each_byte raises IOError on closed stream
fails:IO#each_byte yields each byte
fails:IO#each_byte returns an Enumerator when passed no block
fails:IO#each_byte returns self on an empty stream
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/each_char_tags.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
fails:IO#each_char yields each character
fails:IO#each_char returns an Enumerator when passed no block
fails:IO#each_char returns itself
fails:IO#each_char returns an enumerator for a closed stream
fails:IO#each_char raises an IOError when an enumerator created on a closed stream is accessed
fails:IO#each_char raises IOError on closed stream
fails:IO#each_char does not yield any characters on an empty stream
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/each_codepoint_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
fails:IO#each_codepoint returns an Enumerator when passed no block
fails:IO#each_codepoint yields each codepoint
fails:IO#each_codepoint yields each codepoint starting from the current position
fails:IO#each_codepoint raises an error if reading invalid sequence
fails:IO#each_codepoint does not change $_
fails:IO#each_codepoint raises an IOError when self is not readable
13 changes: 0 additions & 13 deletions spec/truffle/tags/core/io/each_line_tags.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1 @@
fails:IO#each_line with no separator yields each line to the passed block
fails:IO#each_line with no separator yields each line starting from the current position
fails:IO#each_line with no separator returns self
fails:IO#each_line with no separator does not change $_
fails:IO#each_line with no separator raises an IOError when self is not readable
fails:IO#each_line with no separator makes line count accessible via lineno
fails:IO#each_line with no separator makes line count accessible via $.
fails:IO#each_line with no separator returns an Enumerator when passed no block
fails:IO#each_line when passed a String containing one space as a separator uses the passed argument as the line separator
fails:IO#each_line when passed a String containing one space as a separator does not change $_
fails:IO#each_line when passed a String containing one space as a separator tries to convert the passed separator to a String using #to_str
fails:IO#each_line when passed nil as a separator yields self's content starting from the current position when the passed separator is nil
fails:IO#each_line when passed an empty String as a separator yields each paragraph
fails:IO#each_line uses $/ as the default line separator
13 changes: 0 additions & 13 deletions spec/truffle/tags/core/io/each_tags.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1 @@
fails:IO#each with no separator yields each line to the passed block
fails:IO#each with no separator yields each line starting from the current position
fails:IO#each with no separator returns self
fails:IO#each with no separator does not change $_
fails:IO#each with no separator raises an IOError when self is not readable
fails:IO#each with no separator makes line count accessible via lineno
fails:IO#each with no separator makes line count accessible via $.
fails:IO#each with no separator returns an Enumerator when passed no block
fails:IO#each when passed a String containing one space as a separator uses the passed argument as the line separator
fails:IO#each when passed a String containing one space as a separator does not change $_
fails:IO#each when passed a String containing one space as a separator tries to convert the passed separator to a String using #to_str
fails:IO#each when passed nil as a separator yields self's content starting from the current position when the passed separator is nil
fails:IO#each when passed an empty String as a separator yields each paragraph
fails:IO#each uses $/ as the default line separator
6 changes: 0 additions & 6 deletions spec/truffle/tags/core/io/eof_tags.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
fails:IO#eof? returns true on an empty stream that has just been opened
fails:IO#eof? raises IOError on stream not opened for reading
fails:IO#eof? returns false when not at end of file
fails:IO#eof? returns true after reading with read with no parameters
fails:IO#eof? returns true after reading with read
fails:IO#eof? returns true after reading with sysread
fails:IO#eof? returns true after reading with readlines
fails:IO#eof? returns false on just opened non-empty stream
fails:IO#eof? does not consume the data from the stream
fails:IO#eof? raises IOError on closed stream
fails:IO#eof? raises IOError on stream closed for reading by close_read
fails:IO#eof? returns true on one-byte stream after single-byte read
fails:IO#eof? returns true on receiving side of Pipe when writing side is closed
fails:IO#eof? returns false on receiving side of Pipe when writing side wrote some data
36 changes: 0 additions & 36 deletions spec/truffle/tags/core/io/external_encoding_tags.txt
Original file line number Diff line number Diff line change
@@ -1,58 +1,22 @@
fails:IO#external_encoding with 'r' mode when Encoding.default_internal is nil returns Encoding.default_external if the external encoding is not set
fails:IO#external_encoding with 'r' mode when Encoding.default_internal is nil returns Encoding.default_external when that encoding is changed after the instance is created
fails:IO#external_encoding with 'r' mode when Encoding.default_internal is nil returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'r' mode when Encoding.default_internal is nil returns the encoding set by #set_encoding
fails:IO#external_encoding with 'r' mode when Encoding.default_external == Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'r' mode when Encoding.default_external == Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'r' mode when Encoding.default_external == Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'r' mode when Encoding.default_external != Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'r' mode when Encoding.default_external != Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'rb' mode returns Encoding::ASCII_8BIT
fails:IO#external_encoding with 'rb' mode returns the external encoding specified by the mode argument
fails:IO#external_encoding with 'r+' mode when Encoding.default_internal is nil returns nil
fails:IO#external_encoding with 'r+' mode when Encoding.default_internal is nil returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'r+' mode when Encoding.default_internal is nil returns the encoding set by #set_encoding
fails:IO#external_encoding with 'r+' mode when Encoding.default_external != Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'r+' mode when Encoding.default_external != Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'r+' mode when Encoding.default_external != Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'r+' mode when Encoding.default_external == Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'r+' mode when Encoding.default_external == Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'r+' mode when Encoding.default_external == Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'w' mode when Encoding.default_internal is nil returns nil
fails:IO#external_encoding with 'w' mode when Encoding.default_internal is nil returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'w' mode when Encoding.default_internal is nil returns the encoding set by #set_encoding
fails:IO#external_encoding with 'w' mode when Encoding.default_external != Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'w' mode when Encoding.default_external != Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'w' mode when Encoding.default_external != Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'w' mode when Encoding.default_external == Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'w' mode when Encoding.default_external == Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'w' mode when Encoding.default_external == Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'wb' mode returns Encoding::ASCII_8BIT
fails:IO#external_encoding with 'wb' mode returns the external encoding specified by the mode argument
fails:IO#external_encoding with 'w+' mode when Encoding.default_internal is nil returns nil
fails:IO#external_encoding with 'w+' mode when Encoding.default_internal is nil returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'w+' mode when Encoding.default_internal is nil returns the encoding set by #set_encoding
fails:IO#external_encoding with 'w+' mode when Encoding.default_external != Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'w+' mode when Encoding.default_external != Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'w+' mode when Encoding.default_external != Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'w+' mode when Encoding.default_external == Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'w+' mode when Encoding.default_external == Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'w+' mode when Encoding.default_external == Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'a' mode when Encoding.default_internal is nil returns nil
fails:IO#external_encoding with 'a' mode when Encoding.default_internal is nil returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'a' mode when Encoding.default_internal is nil returns the encoding set by #set_encoding
fails:IO#external_encoding with 'a' mode when Encoding.default_external != Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'a' mode when Encoding.default_external != Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'a' mode when Encoding.default_external != Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'a' mode when Encoding.default_external == Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'a' mode when Encoding.default_external == Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'a' mode when Encoding.default_external == Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'a+' mode when Encoding.default_internal is nil returns nil
fails:IO#external_encoding with 'a+' mode when Encoding.default_internal is nil returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'a+' mode when Encoding.default_internal is nil returns the encoding set by #set_encoding
fails:IO#external_encoding with 'a+' mode when Encoding.default_external != Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'a+' mode when Encoding.default_external != Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'a+' mode when Encoding.default_external != Encoding.default_internal returns the encoding set by #set_encoding
fails:IO#external_encoding with 'a+' mode when Encoding.default_external == Encoding.default_internal returns the value of Encoding.default_external when the instance was created
fails:IO#external_encoding with 'a+' mode when Encoding.default_external == Encoding.default_internal returns the external encoding specified when the instance was created
fails:IO#external_encoding with 'a+' mode when Encoding.default_external == Encoding.default_internal returns the encoding set by #set_encoding
1 change: 0 additions & 1 deletion spec/truffle/tags/core/io/fileno_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
fails:IO#fileno returns the numeric file descriptor of the given IO object
fails:IO#fileno raises IOError on closed stream
33 changes: 0 additions & 33 deletions spec/truffle/tags/core/io/for_fd_tags.txt
Original file line number Diff line number Diff line change
@@ -1,51 +1,18 @@
fails:IO.for_fd creates an IO instance from a Fixnum argument
fails:IO.for_fd calls #to_int on an object to convert to a Fixnum
fails:IO.for_fd accepts a :mode option
fails:IO.for_fd accepts a mode argument set to nil with a valid :mode option
fails:IO.for_fd accepts a mode argument with a :mode option set to nil
fails:IO.for_fd raises an error if passed modes two ways
fails:IO.for_fd uses the external encoding specified in the mode argument
fails:IO.for_fd uses the external and the internal encoding specified in the mode argument
fails:IO.for_fd uses the external encoding specified via the :external_encoding option
fails:IO.for_fd uses the internal encoding specified via the :internal_encoding option
fails:IO.for_fd uses the colon-separated encodings specified via the :encoding option
fails:IO.for_fd uses the :encoding option as the external encoding when only one is given
fails:IO.for_fd uses the :encoding options as the external encoding when it's an Encoding object
fails:IO.for_fd ingores the :encoding option when the :external_encoding option is present
fails:IO.for_fd ingores the :encoding option when the :internal_encoding option is present
fails:IO.for_fd uses the encoding specified via the :mode option hash
fails:IO.for_fd ignores the :internal_encoding option when the same as the external encoding
fails:IO.for_fd sets internal encoding to nil when passed '-'
fails:IO.for_fd raises an error if passed encodings two ways
fails:IO.for_fd sets binmode from mode string
fails:IO.for_fd does not set binmode without being asked
fails:IO.for_fd sets binmode from :binmode option
fails:IO.for_fd does not set binmode from false :binmode
fails:IO.for_fd raises an error if passed binary/text mode two ways
fails:IO.for_fd raises an error when trying to set both binmode and textmode
fails:IO.for_fd sets external encoding to binary with binmode in mode string
fails:IO.for_fd sets external encoding to binary with :binmode option
fails:IO.for_fd does not use binary encoding when mode encoding is specified
fails:IO.for_fd does not use binary encoding when :encoding option is specified
fails:IO.for_fd does not use binary encoding when :external_encoding option is specified
fails:IO.for_fd does not use binary encoding when :internal_encoding option is specified
fails:IO.for_fd accepts nil options
fails:IO.for_fd coerces mode with #to_str
fails:IO.for_fd coerces mode with #to_int
fails:IO.for_fd coerces mode with #to_str when passed in options
fails:IO.for_fd coerces mode with #to_int when passed in options
fails:IO.for_fd coerces :encoding option with #to_str
fails:IO.for_fd coerces :external_encoding option with #to_str
fails:IO.for_fd coerces :internal_encoding option with #to_str
fails:IO.for_fd coerces options as third argument with #to_hash
fails:IO.for_fd coerces options as second argument with #to_hash
fails:IO.for_fd raises ArgumentError if not passed a hash or nil for options
fails:IO.for_fd raises TypeError if passed a hash for mode and nil for options
fails:IO.for_fd accepts an :autoclose option
fails:IO.for_fd accepts any truthy option :autoclose
fails:IO.for_fd raises an Errno::EBADF if the file descriptor is not valid
fails:IO.for_fd raises an IOError if passed a closed stream
fails:IO.for_fd raises an Errno::EINVAL if the new mode is not compatible with the descriptor's current mode
fails:IO.for_fd raises ArgumentError if passed an empty mode string
fails:IO.for_fd creates an IO instance when STDOUT is closed
fails:IO.for_fd creates an IO instance when STDERR is closed
27 changes: 0 additions & 27 deletions spec/truffle/tags/core/io/foreach_tags.txt
Original file line number Diff line number Diff line change
@@ -1,32 +1,5 @@
fails:IO.foreach updates $. with each yield
fails:IO.foreach when the filename starts with | gets data from the standard out of the subprocess
fails:IO.foreach when the filename starts with | gets data from a fork when passed -
fails:IO.foreach sets $_ to nil
fails:IO.foreach returns an Enumerator when called without a block
fails:IO.foreach raises TypeError if the first parameter is nil
fails:IO.foreach raises an Errno::ENOENT if the file does not exist
fails:IO.foreach yields a single string with entire content when the separator is nil
fails:IO.foreach yields a sequence of paragraphs when the separator is an empty string
fails:IO.foreach when passed name calls #to_path to convert the name
fails:IO.foreach when passed name defaults to $/ as the separator
fails:IO.foreach when passed name, object calls #to_str to convert the object to a separator
fails:IO.foreach when passed name, object when the object is a Fixnum defaults to $/ as the separator
fails:IO.foreach when passed name, object when the object is a Fixnum uses the object as a limit if it is a Fixnum
fails:IO.foreach when passed name, object when the object is a String uses the value as the separator
fails:IO.foreach when passed name, object when the object is a String accepts non-ASCII data as separator
fails:IO.foreach when passed name, object when the object is a Hash uses the value as the options hash
fails:IO.foreach when passed name, object, object when the first object is a Fixnum uses the second object as an options Hash
fails:IO.foreach when passed name, object, object when the first object is a Fixnum calls #to_hash to convert the second object to a Hash
fails:IO.foreach when passed name, object, object when the first object is a String uses the second object as a limit if it is a Fixnum
fails:IO.foreach when passed name, object, object when the first object is a String calls #to_int to convert the second object
fails:IO.foreach when passed name, object, object when the first object is a String uses the second object as an options Hash
fails:IO.foreach when passed name, object, object when the first object is a String calls #to_hash to convert the second object to a Hash
fails:IO.foreach when passed name, object, object when the first object is not a String or Fixnum calls #to_str to convert the object to a String
fails:IO.foreach when passed name, object, object when the first object is not a String or Fixnum uses the second object as a limit if it is a Fixnum
fails:IO.foreach when passed name, object, object when the first object is not a String or Fixnum calls #to_int to convert the second object
fails:IO.foreach when passed name, object, object when the first object is not a String or Fixnum uses the second object as an options Hash
fails:IO.foreach when passed name, object, object when the first object is not a String or Fixnum calls #to_hash to convert the second object to a Hash
fails:IO.foreach when passed name, separator, limit, options calls #to_path to convert the name object
fails:IO.foreach when passed name, separator, limit, options calls #to_str to convert the separator object
fails:IO.foreach when passed name, separator, limit, options calls #to_int to convert the limit argument
fails:IO.foreach when passed name, separator, limit, options calls #to_hash to convert the options object
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/getbyte_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
fails:IO#getbyte returns the next byte from the stream
fails:IO#getbyte returns nil when invoked at the end of the stream
fails:IO#getbyte raises an IOError on closed stream
fails:IO#getbyte returns nil on empty stream
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/getc_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
fails:IO#getc returns the next character from the stream
fails:IO#getc returns nil when invoked at the end of the stream
fails:IO#getc raises IOError on closed stream
fails:IO#getc returns nil on empty stream
34 changes: 0 additions & 34 deletions spec/truffle/tags/core/io/gets_tags.txt
Original file line number Diff line number Diff line change
@@ -1,43 +1,9 @@
fails:IO#gets with ASCII separator returns the separator's character representation
fails:IO#gets assigns the returned line to $_
fails:IO#gets returns nil if called at the end of the stream
fails:IO#gets raises IOError on closed stream
fails:IO#gets with no separator returns the next line of string that is separated by $/
fails:IO#gets with no separator returns tainted strings
fails:IO#gets with no separator updates lineno with each invocation
fails:IO#gets with no separator updates $. with each invocation
fails:IO#gets with nil separator returns the entire contents
fails:IO#gets with nil separator returns tainted strings
fails:IO#gets with nil separator updates lineno with each invocation
fails:IO#gets with nil separator updates $. with each invocation
fails:IO#gets with an empty String separator returns the next paragraph
fails:IO#gets with an empty String separator reads until the beginning of the next paragraph
fails:IO#gets with an empty String separator returns tainted strings
fails:IO#gets with an empty String separator updates lineno with each invocation
fails:IO#gets with an empty String separator updates $. with each invocation
fails:IO#gets with an arbitrary String separator reads up to and including the separator
fails:IO#gets with an arbitrary String separator returns tainted strings
fails:IO#gets with an arbitrary String separator updates lineno with each invocation
fails:IO#gets with an arbitrary String separator updates $. with each invocation
fails:IO#gets raises an IOError if the stream is opened for append only
fails:IO#gets raises an IOError if the stream is opened for writing only
fails:IO#gets calls #to_int to convert a single object argument to an Integer limit
fails:IO#gets calls #to_int to convert the second object argument to an Integer limit
fails:IO#gets calls #to_str to convert the first argument to a String when passed a limit
fails:IO#gets reads to the default seperator when passed a single argument greater than the number of bytes to the separator
fails:IO#gets reads limit bytes when passed a single argument less than the number of bytes to the default separator
fails:IO#gets reads limit bytes when passed nil and a limit
fails:IO#gets reads all bytes when the limit is higher than the available bytes
fails:IO#gets reads until the next paragraph when passed '' and a limit greater than the next paragraph
fails:IO#gets reads limit bytes when passed '' and a limit less than the next paragraph
fails:IO#gets reads all bytes when pass a separator and reading more than all bytes
fails:IO#gets reads limit bytes and extra bytes when limit is reached not at character boundary
fails:IO#gets read limit bytes and extra bytes with maximum of 16
fails:IO#gets uses the default external encoding
fails:IO#gets uses the IO object's external encoding, when set
fails:IO#gets transcodes into the default internal encoding
fails:IO#gets transcodes into the IO object's internal encoding, when set
fails:IO#gets overwrites the default external encoding with the IO object's own external encoding
fails:IO#gets ignores the internal encoding if the default external encoding is ASCII-8BIT
fails:IO#gets ignores the internal encoding if the IO object's external encoding is ASCII-8BIT
fails:IO#gets transcodes to internal encoding if the IO object's external encoding is ASCII-8BIT
5 changes: 0 additions & 5 deletions spec/truffle/tags/core/io/initialize_tags.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,2 @@
fails:IO#initialize reassociates the IO instance with the new descriptor when passed a Fixnum
fails:IO#initialize calls #to_int to coerce the object passed as an fd
fails:IO#initialize raises a TypeError when passed an IO
fails:IO#initialize raises a TypeError when passed nil
fails:IO#initialize raises a TypeError when passed a String
fails:IO#initialize raises IOError on closed stream
fails:IO#initialize raises an Errno::EBADF when given an invalid file descriptor
48 changes: 0 additions & 48 deletions spec/truffle/tags/core/io/internal_encoding_tags.txt
Original file line number Diff line number Diff line change
@@ -1,78 +1,30 @@
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal is not set returns nil if the internal encoding is not set
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal is not set returns nil if Encoding.default_internal is changed after the instance is created
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal is not set returns the value set when the instance was created
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal is not set returns the value set by #set_encoding
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal == Encoding.default_external returns nil
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal == Encoding.default_external returns nil regardless of Encoding.default_internal changes
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal != Encoding.default_external returns the value of Encoding.default_internal when the instance was created if the internal encoding is not set
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal != Encoding.default_external does not change when Encoding.default_internal is changed
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal != Encoding.default_external returns the internal encoding set when the instance was created
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal != Encoding.default_external does not change when set and Encoding.default_internal is changed
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal != Encoding.default_external returns the value set by #set_encoding
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal != Encoding.default_external returns nil when Encoding.default_external is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'r' mode when Encoding.default_internal != Encoding.default_external returns nil when the external encoding is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal is not set returns nil if the internal encoding is not set
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal is not set returns nil if Encoding.default_internal is changed after the instance is created
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal is not set returns the value set when the instance was created
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal is not set returns the value set by #set_encoding
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal == Encoding.default_external returns nil
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal == Encoding.default_external returns nil regardless of Encoding.default_internal changes
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal != Encoding.default_external returns the value of Encoding.default_internal when the instance was created if the internal encoding is not set
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal != Encoding.default_external does not change when Encoding.default_internal is changed
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal != Encoding.default_external returns the internal encoding set when the instance was created
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal != Encoding.default_external does not change when set and Encoding.default_internal is changed
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal != Encoding.default_external returns the value set by #set_encoding
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal != Encoding.default_external returns nil when Encoding.default_external is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'r+' mode when Encoding.default_internal != Encoding.default_external returns nil when the external encoding is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal is not set returns nil if the internal encoding is not set
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal is not set returns nil if Encoding.default_internal is changed after the instance is created
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal is not set returns the value set when the instance was created
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal is not set returns the value set by #set_encoding
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal == Encoding.default_external returns nil
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal == Encoding.default_external returns nil regardless of Encoding.default_internal changes
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal != Encoding.default_external returns the value of Encoding.default_internal when the instance was created if the internal encoding is not set
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal != Encoding.default_external does not change when Encoding.default_internal is changed
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal != Encoding.default_external returns the internal encoding set when the instance was created
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal != Encoding.default_external does not change when set and Encoding.default_internal is changed
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal != Encoding.default_external returns the value set by #set_encoding
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal != Encoding.default_external returns nil when Encoding.default_external is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'w' mode when Encoding.default_internal != Encoding.default_external returns nil when the external encoding is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal is not set returns nil if the internal encoding is not set
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal is not set returns nil if Encoding.default_internal is changed after the instance is created
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal is not set returns the value set when the instance was created
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal is not set returns the value set by #set_encoding
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal == Encoding.default_external returns nil
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal == Encoding.default_external returns nil regardless of Encoding.default_internal changes
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal != Encoding.default_external returns the value of Encoding.default_internal when the instance was created if the internal encoding is not set
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal != Encoding.default_external does not change when Encoding.default_internal is changed
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal != Encoding.default_external returns the internal encoding set when the instance was created
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal != Encoding.default_external does not change when set and Encoding.default_internal is changed
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal != Encoding.default_external returns the value set by #set_encoding
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal != Encoding.default_external returns nil when Encoding.default_external is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'w+' mode when Encoding.default_internal != Encoding.default_external returns nil when the external encoding is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal is not set returns nil if the internal encoding is not set
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal is not set returns nil if Encoding.default_internal is changed after the instance is created
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal is not set returns the value set when the instance was created
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal is not set returns the value set by #set_encoding
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal == Encoding.default_external returns nil
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal == Encoding.default_external returns nil regardless of Encoding.default_internal changes
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal != Encoding.default_external returns the value of Encoding.default_internal when the instance was created if the internal encoding is not set
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal != Encoding.default_external does not change when Encoding.default_internal is changed
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal != Encoding.default_external returns the internal encoding set when the instance was created
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal != Encoding.default_external does not change when set and Encoding.default_internal is changed
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal != Encoding.default_external returns the value set by #set_encoding
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal != Encoding.default_external returns nil when Encoding.default_external is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'a' mode when Encoding.default_internal != Encoding.default_external returns nil when the external encoding is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal is not set returns nil if the internal encoding is not set
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal is not set returns nil if Encoding.default_internal is changed after the instance is created
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal is not set returns the value set when the instance was created
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal is not set returns the value set by #set_encoding
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal == Encoding.default_external returns nil
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal == Encoding.default_external returns nil regardless of Encoding.default_internal changes
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal != Encoding.default_external returns the value of Encoding.default_internal when the instance was created if the internal encoding is not set
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal != Encoding.default_external does not change when Encoding.default_internal is changed
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal != Encoding.default_external returns the internal encoding set when the instance was created
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal != Encoding.default_external does not change when set and Encoding.default_internal is changed
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal != Encoding.default_external returns the value set by #set_encoding
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal != Encoding.default_external returns nil when Encoding.default_external is ASCII-8BIT and the internal encoding is not set
fails:IO#internal_encoding with 'a+' mode when Encoding.default_internal != Encoding.default_external returns nil when the external encoding is ASCII-8BIT and the internal encoding is not set
1 change: 0 additions & 1 deletion spec/truffle/tags/core/io/isatty_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
fails:IO#isatty returns true if this stream is a terminal device (TTY)
fails:IO#isatty returns false if this stream is not a terminal device (TTY)
fails:IO#isatty raises IOError on closed stream
7 changes: 0 additions & 7 deletions spec/truffle/tags/core/io/lineno_tags.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,2 @@
fails:IO#lineno raises an IOError on a closed stream
fails:IO#lineno returns the current line number
fails:IO#lineno= raises an IOError on a closed stream
fails:IO#lineno= calls #to_int on a non-numeric argument
fails:IO#lineno= truncates a Float argument
fails:IO#lineno= raises TypeError on nil argument
fails:IO#lineno= sets the current line number to the given value
fails:IO#lineno= does not change $.
fails:IO#lineno= does not change $. until next read
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/lines_tags.txt

This file was deleted.

33 changes: 0 additions & 33 deletions spec/truffle/tags/core/io/new_tags.txt
Original file line number Diff line number Diff line change
@@ -1,51 +1,18 @@
fails:IO.new creates an IO instance from a Fixnum argument
fails:IO.new calls #to_int on an object to convert to a Fixnum
fails:IO.new accepts a :mode option
fails:IO.new accepts a mode argument set to nil with a valid :mode option
fails:IO.new accepts a mode argument with a :mode option set to nil
fails:IO.new raises an error if passed modes two ways
fails:IO.new uses the external encoding specified in the mode argument
fails:IO.new uses the external and the internal encoding specified in the mode argument
fails:IO.new uses the external encoding specified via the :external_encoding option
fails:IO.new uses the internal encoding specified via the :internal_encoding option
fails:IO.new uses the colon-separated encodings specified via the :encoding option
fails:IO.new uses the :encoding option as the external encoding when only one is given
fails:IO.new uses the :encoding options as the external encoding when it's an Encoding object
fails:IO.new ingores the :encoding option when the :external_encoding option is present
fails:IO.new ingores the :encoding option when the :internal_encoding option is present
fails:IO.new uses the encoding specified via the :mode option hash
fails:IO.new ignores the :internal_encoding option when the same as the external encoding
fails:IO.new sets internal encoding to nil when passed '-'
fails:IO.new raises an error if passed encodings two ways
fails:IO.new sets binmode from mode string
fails:IO.new does not set binmode without being asked
fails:IO.new sets binmode from :binmode option
fails:IO.new does not set binmode from false :binmode
fails:IO.new raises an error if passed binary/text mode two ways
fails:IO.new raises an error when trying to set both binmode and textmode
fails:IO.new sets external encoding to binary with binmode in mode string
fails:IO.new sets external encoding to binary with :binmode option
fails:IO.new does not use binary encoding when mode encoding is specified
fails:IO.new does not use binary encoding when :encoding option is specified
fails:IO.new does not use binary encoding when :external_encoding option is specified
fails:IO.new does not use binary encoding when :internal_encoding option is specified
fails:IO.new accepts nil options
fails:IO.new coerces mode with #to_str
fails:IO.new coerces mode with #to_int
fails:IO.new coerces mode with #to_str when passed in options
fails:IO.new coerces mode with #to_int when passed in options
fails:IO.new coerces :encoding option with #to_str
fails:IO.new coerces :external_encoding option with #to_str
fails:IO.new coerces :internal_encoding option with #to_str
fails:IO.new coerces options as third argument with #to_hash
fails:IO.new coerces options as second argument with #to_hash
fails:IO.new raises ArgumentError if not passed a hash or nil for options
fails:IO.new raises TypeError if passed a hash for mode and nil for options
fails:IO.new accepts an :autoclose option
fails:IO.new accepts any truthy option :autoclose
fails:IO.new raises an Errno::EBADF if the file descriptor is not valid
fails:IO.new raises an IOError if passed a closed stream
fails:IO.new raises an Errno::EINVAL if the new mode is not compatible with the descriptor's current mode
fails:IO.new raises ArgumentError if passed an empty mode string
fails:IO.new creates an IO instance when STDOUT is closed
fails:IO.new creates an IO instance when STDERR is closed
37 changes: 0 additions & 37 deletions spec/truffle/tags/core/io/open_tags.txt
Original file line number Diff line number Diff line change
@@ -1,58 +1,21 @@
fails:IO.open creates an IO instance from a Fixnum argument
fails:IO.open calls #to_int on an object to convert to a Fixnum
fails:IO.open accepts a :mode option
fails:IO.open accepts a mode argument set to nil with a valid :mode option
fails:IO.open accepts a mode argument with a :mode option set to nil
fails:IO.open raises an error if passed modes two ways
fails:IO.open uses the external encoding specified in the mode argument
fails:IO.open uses the external and the internal encoding specified in the mode argument
fails:IO.open uses the external encoding specified via the :external_encoding option
fails:IO.open uses the internal encoding specified via the :internal_encoding option
fails:IO.open uses the colon-separated encodings specified via the :encoding option
fails:IO.open uses the :encoding option as the external encoding when only one is given
fails:IO.open uses the :encoding options as the external encoding when it's an Encoding object
fails:IO.open ingores the :encoding option when the :external_encoding option is present
fails:IO.open ingores the :encoding option when the :internal_encoding option is present
fails:IO.open uses the encoding specified via the :mode option hash
fails:IO.open ignores the :internal_encoding option when the same as the external encoding
fails:IO.open sets internal encoding to nil when passed '-'
fails:IO.open raises an error if passed encodings two ways
fails:IO.open sets binmode from mode string
fails:IO.open does not set binmode without being asked
fails:IO.open sets binmode from :binmode option
fails:IO.open does not set binmode from false :binmode
fails:IO.open raises an error if passed binary/text mode two ways
fails:IO.open raises an error when trying to set both binmode and textmode
fails:IO.open sets external encoding to binary with binmode in mode string
fails:IO.open sets external encoding to binary with :binmode option
fails:IO.open does not use binary encoding when mode encoding is specified
fails:IO.open does not use binary encoding when :encoding option is specified
fails:IO.open does not use binary encoding when :external_encoding option is specified
fails:IO.open does not use binary encoding when :internal_encoding option is specified
fails:IO.open accepts nil options
fails:IO.open coerces mode with #to_str
fails:IO.open coerces mode with #to_int
fails:IO.open coerces mode with #to_str when passed in options
fails:IO.open coerces mode with #to_int when passed in options
fails:IO.open coerces :encoding option with #to_str
fails:IO.open coerces :external_encoding option with #to_str
fails:IO.open coerces :internal_encoding option with #to_str
fails:IO.open coerces options as third argument with #to_hash
fails:IO.open coerces options as second argument with #to_hash
fails:IO.open raises ArgumentError if not passed a hash or nil for options
fails:IO.open raises TypeError if passed a hash for mode and nil for options
fails:IO.open accepts an :autoclose option
fails:IO.open accepts any truthy option :autoclose
fails:IO.open raises an Errno::EBADF if the file descriptor is not valid
fails:IO.open raises an IOError if passed a closed stream
fails:IO.open raises an Errno::EINVAL if the new mode is not compatible with the descriptor's current mode
fails:IO.open raises ArgumentError if passed an empty mode string
fails:IO.open calls #close after yielding to the block
fails:IO.open propagates an exception raised by #close that is not a StandardError
fails:IO.open does not propagate a StandardError raised by #close
fails:IO.open does not set last error when a StandardError raised by #close
fails:IO.open creates an IO instance when STDOUT is closed
fails:IO.open creates an IO instance when STDERR is closed
fails:IO.open propagates an exception raised by #close that is a StandardError
fails:IO.open does not propagate a IOError with 'closed stream' message raised by #close
fails:IO.open does not set last error when a IOError with 'closed stream' raised by #close
1 change: 0 additions & 1 deletion spec/truffle/tags/core/io/output_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
fails:IO#<< writes an object to the IO stream
fails:IO#<< calls #to_s on the object to print it
fails:IO#<< raises an error if the stream is closed
1 change: 0 additions & 1 deletion spec/truffle/tags/core/io/pid_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
fails:IO#pid returns nil for IO not associated with a process
fails:IO#pid returns the ID of a process associated with stream
fails:IO#pid raises an IOError on closed stream
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/pos_tags.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
fails:IO#pos gets the offset
fails:IO#pos raises IOError on closed stream
fails:IO#pos resets #eof?
fails:IO#pos= sets the offset
fails:IO#pos= converts arguments to Integers
fails:IO#pos= does not accept Bignums that don't fit in a C long
fails:IO#pos= raises IOError on closed stream
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/print_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
fails:IO#print writes $_.to_s followed by $\ (if any) to the stream if no arguments given
fails:IO#print calls obj.to_s and not obj.to_str then writes the record separator
fails:IO#print writes each obj.to_s to the stream and appends $\ (if any) given multiple objects
fails:IO#print raises IOError on closed stream
8 changes: 0 additions & 8 deletions spec/truffle/tags/core/io/putc_tags.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1 @@
fails:IO#putc calls #to_int to convert an object to an Integer
fails:IO#putc raises IOError on a closed stream
fails:IO#putc raises a TypeError when passed nil
fails:IO#putc raises a TypeError when passed false
fails:IO#putc raises a TypeError when passed true
fails:IO#putc with a Fixnum argument writes one character as a String
fails:IO#putc with a Fixnum argument writes the low byte as a String
fails:IO#putc with a String argument writes one character
fails:IO#putc with a String argument writes the first character
12 changes: 0 additions & 12 deletions spec/truffle/tags/core/io/puts_tags.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1 @@
fails:IO#puts writes just a newline when given no args
fails:IO#puts writes just a newline when given just a newline
fails:IO#puts writes empty string with a newline when given nil as an arg
fails:IO#puts writes empty string with a newline when when given nil as multiple args
fails:IO#puts calls to_s before writing non-string objects
fails:IO#puts writes each arg if given several
fails:IO#puts flattens a nested array before writing it
fails:IO#puts writes nothing for an empty array
fails:IO#puts writes [...] for a recursive array arg
fails:IO#puts writes a newline after objects that do not end in newlines
fails:IO#puts does not write a newline after objects that end in newlines
fails:IO#puts ignores the $/ separator global
fails:IO#puts raises IOError on closed stream
64 changes: 0 additions & 64 deletions spec/truffle/tags/core/io/read_tags.txt
Original file line number Diff line number Diff line change
@@ -1,29 +1,7 @@
fails:IO.read reads the contents of a file
fails:IO.read calls #to_path on non-String arguments
fails:IO.read accepts an empty options Hash
fails:IO.read accepts a length, offset, and empty options Hash
fails:IO.read raises an IOError if the options Hash specifies write mode
fails:IO.read raises an IOError if the options Hash specifies append only mode
fails:IO.read reads the file if the options Hash includes read mode
fails:IO.read reads the file if the options Hash includes read/write mode
fails:IO.read reads the file if the options Hash includes read/write append mode
fails:IO.read treats second nil argument as no length limit
fails:IO.read treats third nil argument as 0
fails:IO.read reads the contents of a file up to a certain size when specified
fails:IO.read reads the contents of a file from an offset of a specific size when specified
fails:IO.read returns nil at end-of-file when length is passed
fails:IO.read raises an Errno::ENOENT when the requested file does not exist
fails:IO.read raises a TypeError when not passed a String type
fails:IO.read raises an ArgumentError when not passed a valid length
fails:IO.read raises an Errno::EINVAL when not passed a valid offset
fails:IO.read uses the external encoding specified via the :external_encoding option
fails:IO.read uses the external encoding specified via the :encoding option
fails:IO.read from a pipe runs the rest as a subprocess and returns the standard output
fails:IO.read from a pipe opens a pipe to a fork if the rest is -
fails:IO.read from a pipe reads only the specified number of bytes requested
fails:IO.read from a pipe raises Errno::ESPIPE if passed an offset
fails:IO.read on an empty file returns nil when length is passed
fails:IO.read on an empty file returns an empty string when no length is passed
fails:IO#read can be read from consecutively
fails:IO#read clears the output buffer if there is nothing to read
fails:IO#read consumes zero bytes when reading zero bytes
@@ -41,55 +19,13 @@ fails:IO#read returns an empty string when the current pos is bigger than the co
fails:IO#read returns nil at end-of-file with a length
fails:IO#read with length argument returns nil when the current pos is bigger than the content size
fails:IO#read raises IOError on closed stream
fails:IO#read with $KCODE set to UTF-8 ignores unicode encoding
fails:IO#read in binary mode does not transcode file contents when Encoding.default_internal is set
fails:IO#read in binary mode does not transcode file contents when an internal encoding is specified
fails:IO#read in text mode reads data according to the internal encoding
fails:IO.read with BOM reads a file without a bom
fails:IO.read with BOM reads a file with a utf-8 bom
fails:IO.read with BOM reads a file with a utf-16le bom
fails:IO.read with BOM reads a file with a utf-16be bom
fails:IO.read with BOM reads a file with a utf-32le bom
fails:IO.read with BOM reads a file with a utf-32be bom
fails:IO#read when IO#external_encoding and IO#internal_encoding are nil sets the String encoding to Encoding.default_external
fails:IO#read with internal encoding not specified does not transcode the String
fails:IO#read with internal encoding not specified sets the String encoding to the external encoding
fails:IO#read with internal encoding not specified reads bytes when passed a size
fails:IO#read with internal encoding not specified returns a String in ASCII-8BIT when passed a size
fails:IO#read with internal encoding not specified does not change the buffer's encoding when passed a limit
fails:IO#read with internal encoding not specified trucates the buffer but does not change the buffer's encoding when no data remains
fails:IO#read with internal encoding specified by open mode returns a transcoded String
fails:IO#read with internal encoding specified by open mode sets the String encoding to the internal encoding
fails:IO#read with internal encoding specified by open mode reads bytes when passed a size
fails:IO#read with internal encoding specified by open mode returns a String in ASCII-8BIT when passed a size
fails:IO#read with internal encoding specified by open mode does not change the buffer's encoding when passed a limit
fails:IO#read with internal encoding specified by open mode trucates the buffer but does not change the buffer's encoding when no data remains
fails:IO#read with internal encoding specified by open mode when passed nil for limit sets the buffer to a transcoded String
fails:IO#read with internal encoding specified by open mode when passed nil for limit sets the buffer's encoding to the internal encoding
fails:IO#read with internal encoding specified by mode: option returns a transcoded String
fails:IO#read with internal encoding specified by mode: option sets the String encoding to the internal encoding
fails:IO#read with internal encoding specified by mode: option reads bytes when passed a size
fails:IO#read with internal encoding specified by mode: option returns a String in ASCII-8BIT when passed a size
fails:IO#read with internal encoding specified by mode: option does not change the buffer's encoding when passed a limit
fails:IO#read with internal encoding specified by mode: option trucates the buffer but does not change the buffer's encoding when no data remains
fails:IO#read with internal encoding specified by mode: option when passed nil for limit sets the buffer to a transcoded String
fails:IO#read with internal encoding specified by mode: option when passed nil for limit sets the buffer's encoding to the internal encoding
fails:IO#read with internal encoding specified by internal_encoding: option returns a transcoded String
fails:IO#read with internal encoding specified by internal_encoding: option sets the String encoding to the internal encoding
fails:IO#read with internal encoding specified by internal_encoding: option reads bytes when passed a size
fails:IO#read with internal encoding specified by internal_encoding: option returns a String in ASCII-8BIT when passed a size
fails:IO#read with internal encoding specified by internal_encoding: option does not change the buffer's encoding when passed a limit
fails:IO#read with internal encoding specified by internal_encoding: option trucates the buffer but does not change the buffer's encoding when no data remains
fails:IO#read with internal encoding specified by internal_encoding: option when passed nil for limit sets the buffer to a transcoded String
fails:IO#read with internal encoding specified by internal_encoding: option when passed nil for limit sets the buffer's encoding to the internal encoding
fails:IO#read with internal encoding specified by encoding: option returns a transcoded String
fails:IO#read with internal encoding specified by encoding: option sets the String encoding to the internal encoding
fails:IO#read with internal encoding specified by encoding: option reads bytes when passed a size
fails:IO#read with internal encoding specified by encoding: option returns a String in ASCII-8BIT when passed a size
fails:IO#read with internal encoding specified by encoding: option does not change the buffer's encoding when passed a limit
fails:IO#read with internal encoding specified by encoding: option trucates the buffer but does not change the buffer's encoding when no data remains
fails:IO#read with internal encoding specified by encoding: option when passed nil for limit sets the buffer to a transcoded String
fails:IO#read with internal encoding specified by encoding: option when passed nil for limit sets the buffer's encoding to the internal encoding
fails:IO#read with large data reads all the data at once
fails:IO#read with large data reads only the requested number of bytes
fails(windows):IO#read on Windows normalizes line endings in text mode
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/readbyte_tags.txt

This file was deleted.

3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/readchar_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
fails:IO#readchar returns the next string from the stream
fails:IO#readchar raises an EOFError when invoked at the end of the stream
fails:IO#readchar raises IOError on closed stream
fails:IO#readchar raises EOFError on empty stream
4 changes: 0 additions & 4 deletions spec/truffle/tags/core/io/readline_tags.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,2 @@
fails:IO#readline returns the next line on the stream
fails:IO#readline goes back to first position after a rewind
fails:IO#readline returns characters after the position set by #seek
fails:IO#readline raises EOFError on end of stream
fails:IO#readline raises IOError on closed stream
fails:IO#readline assigns the returned line to $_
41 changes: 0 additions & 41 deletions spec/truffle/tags/core/io/readlines_tags.txt
Original file line number Diff line number Diff line change
@@ -1,49 +1,8 @@
fails:IO#readlines raises an IOError if the stream is closed
fails:IO#readlines when passed no arguments returns an Array containing lines based on $/
fails:IO#readlines when passed no arguments updates self's position
fails:IO#readlines when passed no arguments updates self's lineno based on the number of lines read
fails:IO#readlines when passed no arguments does not change $_
fails:IO#readlines when passed no arguments returns an empty Array when self is at the end
fails:IO#readlines when passed nil returns the remaining content as one line starting at the current position
fails:IO#readlines when passed an empty String returns an Array containing all paragraphs
fails:IO#readlines when passed a separator returns an Array containing lines based on the separator
fails:IO#readlines when passed a separator returns an empty Array when self is at the end
fails:IO#readlines when passed a separator updates self's lineno based on the number of lines read
fails:IO#readlines when passed a separator updates self's position based on the number of characters read
fails:IO#readlines when passed a separator does not change $_
fails:IO#readlines when passed a separator tries to convert the passed separator to a String using #to_str
fails:IO#readlines when passed a string that starts with a | gets data from the standard out of the subprocess
fails:IO#readlines when passed a string that starts with a | gets data from a fork when passed -
fails:IO#readlines raises an IOError if the stream is opened for append only
fails:IO#readlines raises an IOError if the stream is opened for write only
fails:IO.readlines raises an Errno::ENOENT if the file does not exist
fails:IO.readlines yields a single string with entire content when the separator is nil
fails:IO.readlines yields a sequence of paragraphs when the separator is an empty string
fails:IO.readlines when passed name calls #to_path to convert the name
fails:IO.readlines when passed name defaults to $/ as the separator
fails:IO.readlines when passed name, object calls #to_str to convert the object to a separator
fails:IO.readlines when passed name, object when the object is a Fixnum defaults to $/ as the separator
fails:IO.readlines when passed name, object when the object is a Fixnum uses the object as a limit if it is a Fixnum
fails:IO.readlines when passed name, object when the object is a String uses the value as the separator
fails:IO.readlines when passed name, object when the object is a String accepts non-ASCII data as separator
fails:IO.readlines when passed name, object when the object is a Hash uses the value as the options hash
fails:IO.readlines when passed name, object, object when the first object is a Fixnum uses the second object as an options Hash
fails:IO.readlines when passed name, object, object when the first object is a Fixnum calls #to_hash to convert the second object to a Hash
fails:IO.readlines when passed name, object, object when the first object is a String uses the second object as a limit if it is a Fixnum
fails:IO.readlines when passed name, object, object when the first object is a String calls #to_int to convert the second object
fails:IO.readlines when passed name, object, object when the first object is a String uses the second object as an options Hash
fails:IO.readlines when passed name, object, object when the first object is a String calls #to_hash to convert the second object to a Hash
fails:IO.readlines when passed name, object, object when the first object is not a String or Fixnum calls #to_str to convert the object to a String
fails:IO.readlines when passed name, object, object when the first object is not a String or Fixnum uses the second object as a limit if it is a Fixnum
fails:IO.readlines when passed name, object, object when the first object is not a String or Fixnum calls #to_int to convert the second object
fails:IO.readlines when passed name, object, object when the first object is not a String or Fixnum uses the second object as an options Hash
fails:IO.readlines when passed name, object, object when the first object is not a String or Fixnum calls #to_hash to convert the second object to a Hash
fails:IO.readlines when passed name, separator, limit, options calls #to_path to convert the name object
fails:IO.readlines when passed name, separator, limit, options calls #to_str to convert the separator object
fails:IO.readlines when passed name, separator, limit, options calls #to_int to convert the limit argument
fails:IO.readlines when passed name, separator, limit, options calls #to_hash to convert the options object
fails:IO.readlines encodes lines using the default external encoding
fails:IO.readlines encodes lines using the default internal encoding, when set
fails:IO.readlines ignores the default internal encoding if the external encoding is ASCII-8BIT
windows:IO.readlines does not change $_
windows:IO.readlines raises TypeError if the first parameter is nil
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/rewind_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
fails:IO#rewind positions the instance to the beginning of input
fails:IO#rewind positions the instance to the beginning of input and clears EOF
fails:IO#rewind sets lineno to 0
fails:IO#rewind raises IOError on closed stream
7 changes: 0 additions & 7 deletions spec/truffle/tags/core/io/seek_tags.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
fails:IO#seek sets the offset
fails:IO#seek converts arguments to Integers
fails:IO#seek does not accept Bignums that don't fit in a C long
fails:IO#seek raises IOError on closed stream
fails:IO#seek moves the read position relative to the current position with SEEK_CUR
fails:IO#seek moves the read position relative to the start with SEEK_SET
fails:IO#seek moves the read position relative to the end with SEEK_END
fails:IO#seek moves the read position and clears EOF with SEEK_SET
fails:IO#seek moves the read position and clears EOF with SEEK_CUR
fails:IO#seek moves the read position and clears EOF with SEEK_END
12 changes: 0 additions & 12 deletions spec/truffle/tags/core/io/set_encoding_tags.txt
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
fails:IO#set_encoding when passed nil, nil with 'r' mode sets the encodings to the current Encoding defaults
fails:IO#set_encoding when passed nil, nil with 'r' mode prevents the #internal_encoding from changing when Encoding.default_internal is changed
fails:IO#set_encoding when passed nil, nil with 'r' mode allows the #external_encoding to change when Encoding.default_external is changed
fails:IO#set_encoding when passed nil, nil with 'rb' mode returns Encoding.default_external
fails:IO#set_encoding when passed nil, nil with 'r+' mode sets the encodings to nil
fails:IO#set_encoding when passed nil, nil with 'r+' mode prevents the encodings from changing when Encoding defaults are changed
fails:IO#set_encoding when passed nil, nil with 'r+' mode sets the encodings to the current Encoding defaults
fails:IO#set_encoding when passed nil, nil with 'w' mode sets the encodings to nil
fails:IO#set_encoding when passed nil, nil with 'w' mode prevents the encodings from changing when Encoding defaults are changed
fails:IO#set_encoding when passed nil, nil with 'w' mode sets the encodings to the current Encoding defaults
fails:IO#set_encoding when passed nil, nil with 'w+' mode sets the encodings to nil
fails:IO#set_encoding when passed nil, nil with 'w+' mode prevents the encodings from changing when Encoding defaults are changed
fails:IO#set_encoding when passed nil, nil with 'w+' mode sets the encodings to the current Encoding defaults
fails:IO#set_encoding when passed nil, nil with 'a' mode sets the encodings to nil
fails:IO#set_encoding when passed nil, nil with 'a' mode prevents the encodings from changing when Encoding defaults are changed
fails:IO#set_encoding when passed nil, nil with 'a' mode sets the encodings to the current Encoding defaults
fails:IO#set_encoding when passed nil, nil with 'a+' mode sets the encodings to nil
fails:IO#set_encoding when passed nil, nil with 'a+' mode prevents the encodings from changing when Encoding defaults are changed
fails:IO#set_encoding when passed nil, nil with 'a+' mode sets the encodings to the current Encoding defaults
fails:IO#set_encoding returns self
fails:IO#set_encoding sets the external encoding when passed an Encoding argument
fails:IO#set_encoding sets the external and internal encoding when passed two Encoding arguments
fails:IO#set_encoding sets the external encoding when passed the name of an Encoding
fails:IO#set_encoding ignores the internal encoding if the same as external when passed Encoding objects
fails:IO#set_encoding ignores the internal encoding if the same as external when passed encoding names separanted by ':'
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/io/sync_tags.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
fails:IO#sync= sets the sync mode to true or false
fails:IO#sync= accepts non-boolean arguments
fails:IO#sync= raises an IOError on closed stream
fails:IO#sync returns the current sync mode
fails:IO#sync raises an IOError on closed stream
6 changes: 0 additions & 6 deletions spec/truffle/tags/core/io/sysopen_tags.txt

This file was deleted.

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/io/sysread_tags.txt
Original file line number Diff line number Diff line change
@@ -3,7 +3,5 @@ fails:IO#sysread on a file reads the specified number of bytes from the file to
fails:IO#sysread on a file coerces the second argument to string and uses it as a buffer
fails:IO#sysread on a file advances the position of the file by the specified number of bytes
fails:IO#sysread on a file reads normally even when called immediately after a buffered IO#read
fails:IO#sysread on a file does not raise error if called after IO#read followed by IO#write
fails:IO#sysread on a file does not raise error if called after IO#read followed by IO#syswrite
fails:IO#sysread on a file reads updated content after the flushed buffered IO#write
fails:IO#sysread on a file raises IOError on closed stream
5 changes: 0 additions & 5 deletions spec/truffle/tags/core/io/sysseek_tags.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
fails:IO#sysseek sets the offset
fails:IO#sysseek converts arguments to Integers
fails:IO#sysseek does not accept Bignums that don't fit in a C long
fails:IO#sysseek raises IOError on closed stream
fails:IO#sysseek moves the read position relative to the current position with SEEK_CUR
fails:IO#sysseek raises an error when called after buffered reads
fails:IO#sysseek moves the read position relative to the start with SEEK_SET
fails:IO#sysseek moves the read position relative to the end with SEEK_END
Loading