I was going to take a stab at an nlink PR, but the current specs aren't even passing for me, so I thought I better mention this. Current spec failures:
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Randomized with seed 16442
Pending: (Failures listed here are expected and do not affect your suite's status)
1) MemFs::File.write when +offset+ is provided starts writing from the offset
# Offsets not yet implemented in IO.write
# ./spec/memfs/file_spec.rb:1917
2) MemFs::File#print when no argument is given prints $_
# I don't know how to test with $_
# ./spec/memfs/file_spec.rb:2610
Failures:
1) MemFs::File.read when the last argument is a hash passes the contained options to +open+
Failure/Error: file = open(path, *open_args)
#<MemFs::File (class)> received :open with unexpected arguments
expected: ("/test-file", 0, {:encoding=>"UTF-8"})
got: ("/test-file", 0, {:encoding=>"UTF-8"})
# ./lib/memfs/io.rb:25:in `read'
# ./spec/memfs/file_spec.rb:1079:in `block (4 levels) in <module:MemFs>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
2) FileUtils.install copies +src+ to +dest+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x50178>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:514:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:883:in `block in install'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1613:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:879:in `install'
# ./spec/fileutils_spec.rb:471:in `block (3 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
3) FileUtils.install when +:mode+ is set changes the permission mode to +mode+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x502a8>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:514:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:883:in `block in install'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1613:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:879:in `install'
# ./spec/fileutils_spec.rb:478:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
4) FileUtils.install when +dest+ already exists removes destination before copy
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x503d8>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:514:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:883:in `block in install'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1613:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:879:in `install'
# ./spec/fileutils_spec.rb:493:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
5) FileUtils.install when +dest+ already exists and +dest+ is a directory installs +src+ in dest/src
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x50508>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:514:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:883:in `block in install'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1611:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:879:in `install'
# ./spec/fileutils_spec.rb:499:in `block (5 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
6) FileUtils.copy_file copies file contents of src to dest
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x50678>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:514:in `copy_file'
# ./spec/fileutils_spec.rb:371:in `block (3 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
7) FileUtils.cp_r copies +src+ to +dest+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x507a8>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:471:in `block in cp_r'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1613:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:470:in `cp_r'
# ./spec/fileutils_spec.rb:422:in `block (3 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
8) FileUtils.cp_r when +dest+ is a directory copies +src+ to +dest/src+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x508d8>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1516:in `block in wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `each'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1516:in `block in wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `each'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:471:in `block in cp_r'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1611:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:470:in `cp_r'
# ./spec/fileutils_spec.rb:441:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
9) FileUtils.cp_r when +src+ is a list of files copies each of them in +dest+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x50d38>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1516:in `block in wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `each'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:471:in `block in cp_r'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1606:in `block in fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1604:in `each'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1604:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:470:in `cp_r'
# ./spec/fileutils_spec.rb:451:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
10) FileUtils.cp_r when +src+ is a directory copies all its contents recursively
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51188>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1516:in `block in wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `each'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1516:in `block in wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `each'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1515:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:471:in `block in cp_r'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1613:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:470:in `cp_r'
# ./spec/fileutils_spec.rb:431:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
11) FileUtils.cp copies a file content +src+ to +dest+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51548>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:514:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:433:in `block in cp'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1613:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:432:in `cp'
# ./spec/fileutils_spec.rb:386:in `block (3 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
12) FileUtils.cp when +dest+ is a directory copies +src+ to +dest/src+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51678>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:514:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:433:in `block in cp'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1597:in `block in fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1613:in `fu_each_src_dest0'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1595:in `fu_each_src_dest'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:432:in `cp'
# ./spec/fileutils_spec.rb:401:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
13) FileUtils.copy_entry copies a file system entry +src+ to +dest+
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x517e8>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# ./spec/fileutils_spec.rb:292:in `block (3 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
14) FileUtils.copy_entry when +dest+ already exists overwrite it
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51918>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# ./spec/fileutils_spec.rb:346:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
15) FileUtils.copy_entry when +preserve+ is true preserves modified time
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51a48>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# ./spec/fileutils_spec.rb:322:in `block (4 levels) in <top (required)>'
# <internal:core> core/array.rb:957:in `reverse_each'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
16) FileUtils.copy_entry when +preserve+ is true preserves group
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51b78>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# ./spec/fileutils_spec.rb:322:in `block (4 levels) in <top (required)>'
# <internal:core> core/array.rb:957:in `reverse_each'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
17) FileUtils.copy_entry when +preserve+ is true preserves permissions
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51ca8>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# ./spec/fileutils_spec.rb:322:in `block (4 levels) in <top (required)>'
# <internal:core> core/array.rb:957:in `reverse_each'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
18) FileUtils.copy_entry when +preserve+ is true preserves owner
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51dd8>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# ./spec/fileutils_spec.rb:322:in `block (4 levels) in <top (required)>'
# <internal:core> core/array.rb:957:in `reverse_each'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
19) FileUtils.copy_entry when +remove_destination+ is true removes each destination file before copy
Failure/Error: yield file
NoMethodError:
undefined method `ensure_open_and_readable' for #<MemFs::File:0x51f08>
# <internal:core> core/io.rb:382:in `run'
# <internal:core> core/io.rb:425:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/forwardable.rb:238:in `copy_stream'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1416:in `block (2 levels) in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1415:in `block in copy_file'
# ./lib/memfs/file.rb:160:in `open'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1414:in `copy_file'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1379:in `copy'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:500:in `block in copy_entry'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:1513:in `wrap_traverse'
# /home/dberger/.rbenv/versions/truffleruby-22.1.0/lib/mri/fileutils.rb:497:in `copy_entry'
# ./spec/fileutils_spec.rb:355:in `block (4 levels) in <top (required)>'
# <internal:core> core/kernel.rb:376:in `load'
# <internal:core> core/kernel.rb:376:in `load'
Finished in 2.35 seconds (files took 3.38 seconds to load)
816 examples, 19 failures, 2 pending
Failed examples:
rspec ./spec/memfs/file_spec.rb:1073 # MemFs::File.read when the last argument is a hash passes the contained options to +open+
rspec ./spec/fileutils_spec.rb:470 # FileUtils.install copies +src+ to +dest+
rspec ./spec/fileutils_spec.rb:476 # FileUtils.install when +:mode+ is set changes the permission mode to +mode+
rspec ./spec/fileutils_spec.rb:491 # FileUtils.install when +dest+ already exists removes destination before copy
rspec ./spec/fileutils_spec.rb:497 # FileUtils.install when +dest+ already exists and +dest+ is a directory installs +src+ in dest/src
rspec ./spec/fileutils_spec.rb:369 # FileUtils.copy_file copies file contents of src to dest
rspec ./spec/fileutils_spec.rb:419 # FileUtils.cp_r copies +src+ to +dest+
rspec ./spec/fileutils_spec.rb:437 # FileUtils.cp_r when +dest+ is a directory copies +src+ to +dest/src+
rspec ./spec/fileutils_spec.rb:447 # FileUtils.cp_r when +src+ is a list of files copies each of them in +dest+
rspec ./spec/fileutils_spec.rb:427 # FileUtils.cp_r when +src+ is a directory copies all its contents recursively
rspec ./spec/fileutils_spec.rb:385 # FileUtils.cp copies a file content +src+ to +dest+
rspec ./spec/fileutils_spec.rb:399 # FileUtils.cp when +dest+ is a directory copies +src+ to +dest/src+
rspec ./spec/fileutils_spec.rb:290 # FileUtils.copy_entry copies a file system entry +src+ to +dest+
rspec ./spec/fileutils_spec.rb:343 # FileUtils.copy_entry when +dest+ already exists overwrite it
rspec ./spec/fileutils_spec.rb:337 # FileUtils.copy_entry when +preserve+ is true preserves modified time
rspec ./spec/fileutils_spec.rb:329 # FileUtils.copy_entry when +preserve+ is true preserves group
rspec ./spec/fileutils_spec.rb:333 # FileUtils.copy_entry when +preserve+ is true preserves permissions
rspec ./spec/fileutils_spec.rb:325 # FileUtils.copy_entry when +preserve+ is true preserves owner
rspec ./spec/fileutils_spec.rb:352 # FileUtils.copy_entry when +remove_destination+ is true removes each destination file before copy
Randomized with seed 16442
I was going to take a stab at an nlink PR, but the current specs aren't even passing for me, so I thought I better mention this. Current spec failures: