memfs icon indicating copy to clipboard operation
memfs copied to clipboard

Windows spec failures

Open djberg96 opened this issue 4 years ago • 1 comments

I ran the specs on current master on a Windows 7 VM. Here was the result:

Failures:

  1) MemFs::File::Stat#grpowned? when the effective user group does not own of the file returns false
     Failure/Error: expect(file_stat.grpowned?).to be false

       expected false
            got true
     # ./spec/memfs/file/stat_spec.rb:445:in `block (4 levels) in <module:MemFs>'

  2) MemFs::File::Stat#owned? when the effective user does not own of the file returns false
     Failure/Error: expect(file_stat.owned?).to be false

       expected false
            got true
     # ./spec/memfs/file/stat_spec.rb:474:in `block (4 levels) in <module:MemFs>'

  3) MemFs::File.absolute_path converts a pathname to an absolute pathname
     Failure/Error: expect(path).to eq '/test-dir/test-file'

       expected: "/test-dir/test-file"
            got: "C:/test-dir/test-file"

       (compared using ==)
     # ./spec/memfs/file_spec.rb:43:in `block (3 levels) in <module:MemFs>'

  4) MemFs::File.absolute_path when +dir_string+ is given uses it as the starting point
     Failure/Error: expect(path).to eq '/no-dir/test-file'

       expected: "/no-dir/test-file"
            got: "C:/no-dir/test-file"

       (compared using ==)
     # ./spec/memfs/file_spec.rb:49:in `block (4 levels) in <module:MemFs>'

  5) MemFs::File.absolute_path when the given pathname starts with a '~' does not expanded
     Failure/Error: expect(path).to eq '/test-dir/~/test-file'

       expected: "/test-dir/~/test-file"
            got: "C:/test-dir/~/test-file"

       (compared using ==)
     # ./spec/memfs/file_spec.rb:56:in `block (4 levels) in <module:MemFs>'

  6) MemFs::File.realpath when the path contains a symlink and the symlink is a middle part returns the path with the sy
mlink dereferrenced
     Failure/Error: find(path) || fail(Errno::ENOENT, path)

     Errno::ENOENT:
       No such file or directory - C:/test-dir/sub-dir-link/test-file
     # ./lib/memfs/file_system.rb:66:in `find!'
     # ./lib/memfs/file.rb:321:in `dereference_path'
     # ./lib/memfs/file.rb:177:in `realpath'
     # ./spec/memfs/file_spec.rb:1327:in `block (5 levels) in <module:MemFs>'

  7) MemFs::File.realpath when the path contains a symlink and the symlink is the last part returns the path with the sy
mlink dereferrenced
     Failure/Error: find(path) || fail(Errno::ENOENT, path)

     Errno::ENOENT:
       No such file or directory - C:/test-dir/sub-dir-link
     # ./lib/memfs/file_system.rb:66:in `find!'
     # ./lib/memfs/file.rb:321:in `dereference_path'
     # ./lib/memfs/file.rb:177:in `realpath'
     # ./spec/memfs/file_spec.rb:1334:in `block (5 levels) in <module:MemFs>'

  8) MemFs::File.realpath when the path contains useless dots returns the path with the useless dots interpolated
     Failure/Error: find(path) || fail(Errno::ENOENT, path)

     Errno::ENOENT:
       No such file or directory - C:/test-dir/sub-dir/test-file
     # ./lib/memfs/file_system.rb:66:in `find!'
     # ./lib/memfs/file.rb:321:in `dereference_path'
     # ./lib/memfs/file.rb:177:in `realpath'
     # ./spec/memfs/file_spec.rb:1342:in `block (4 levels) in <module:MemFs>'

  9) MemFs::File.realpath when the given path is relative and +dir_string+ is not provided uses the current working dire
ctory has base directory
     Failure/Error: find(path) || fail(Errno::ENOENT, path)

     Errno::ENOENT:
       No such file or directory - C:/test-dir/sub-dir/test-file
     # ./lib/memfs/file_system.rb:66:in `find!'
     # ./lib/memfs/file.rb:321:in `dereference_path'
     # ./lib/memfs/file.rb:177:in `realpath'
     # ./spec/memfs/file_spec.rb:1352:in `block (5 levels) in <module:MemFs>'

  10) MemFs::File.realpath when the given path is relative and +dir_string+ is provided uses the given directory has bas
e directory
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir/sub-dir/test-file
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:177:in `realpath'
      # ./spec/memfs/file_spec.rb:1359:in `block (5 levels) in <module:MemFs>'

  11) MemFs::File.realpath when the path does not contain any symlink or useless dots returns the path itself
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-file
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:177:in `realpath'
      # ./spec/memfs/file_spec.rb:1319:in `block (4 levels) in <module:MemFs>'

  12) MemFs::File.realdirpath when the last part of the given path is a symlink and its target does not exist uses the n
ame of the target in the resulting path
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir/sub-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1288:in `block (5 levels) in <module:MemFs>'

  13) MemFs::File.realdirpath when the path contains a symlink and the symlink is a middle part returns the path with th
e symlink dereferrenced
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir/sub-dir-link
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1244:in `block (5 levels) in <module:MemFs>'

  14) MemFs::File.realdirpath when the path contains a symlink and the symlink is the last part returns the path with th
e symlink dereferrenced
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1251:in `block (5 levels) in <module:MemFs>'

  15) MemFs::File.realdirpath when the last part of the given path does not exist uses its name in the resulting path
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir/sub-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1296:in `block (4 levels) in <module:MemFs>'

  16) MemFs::File.realdirpath when the path does not contain any symlink or useless dots returns the path itself
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1236:in `block (4 levels) in <module:MemFs>'

  17) MemFs::File.realdirpath when the given path is relative and +dir_string+ is provided uses the given directory has
base directory
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir/sub-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1275:in `block (5 levels) in <module:MemFs>'

  18) MemFs::File.realdirpath when the given path is relative and +dir_string+ is not provided uses the current working
directory has base directory
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir/sub-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1268:in `block (5 levels) in <module:MemFs>'

  19) MemFs::File.realdirpath when the path contains useless dots returns the path with the useless dots interpolated
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir/sub-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:316:in `dereference_dir_path'
      # ./lib/memfs/file.rb:326:in `loose_dereference_path'
      # ./lib/memfs/file.rb:173:in `realdirpath'
      # ./spec/memfs/file_spec.rb:1259:in `block (4 levels) in <module:MemFs>'

  20) MemFs::File.grpowned? when the named file exists and the effective user group does not own of the file returns fal
se
      Failure/Error: expect(grpowned).to be false

        expected false
             got true
      # ./spec/memfs/file_spec.rb:668:in `block (5 levels) in <module:MemFs>'

  21) MemFs::File.owned? when the named file exists and the effective user does not own of the file returns false
      Failure/Error: expect(owned).to be false

        expected false
             got true
      # ./spec/memfs/file_spec.rb:995:in `block (5 levels) in <module:MemFs>'

  22) MemFs::File.expand_path converts a pathname to an absolute pathname
      Failure/Error: expect(expanded_path).to eq '/test-file'

        expected: "/test-file"
             got: "C:/test-file"

        (compared using ==)
      # ./spec/memfs/file_spec.rb:493:in `block (3 levels) in <module:MemFs>'

  23) MemFs::File.expand_path references path from the current working directory
      Failure/Error: expect(expanded_path).to eq '/test-dir/test-file'

        expected: "/test-dir/test-file"
             got: "C:/test-dir/test-file"

        (compared using ==)
      # ./spec/memfs/file_spec.rb:500:in `block (3 levels) in <module:MemFs>'

  24) MemFs::File.expand_path when +dir_string+ is provided uses +dir_string+ as the stating point
      Failure/Error: expect(expanded_path).to eq '/test/test-file'

        expected: "/test/test-file"
             got: "C:/test/test-file"

        (compared using ==)
      # ./spec/memfs/file_spec.rb:506:in `block (4 levels) in <module:MemFs>'

  25) FileUtils.cp_r copies +src+ to +dest+
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-file
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:177:in `realpath'
      # ./spec/fileutils_spec.rb:422:in `block (3 levels) in <top (required)>'

  26) FileUtils.cp_r when +src+ is a directory copies all its contents recursively
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:177:in `realpath'
      # ./spec/fileutils_spec.rb:431:in `block (4 levels) in <top (required)>'

  27) FileUtils.cp_r when +src+ is a list of files copies each of them in +dest+
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test/dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:177:in `realpath'
      # ./spec/fileutils_spec.rb:451:in `block (4 levels) in <top (required)>'

  28) FileUtils.cp_r when +dest+ is a directory copies +src+ to +dest/src+
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file.rb:321:in `dereference_path'
      # ./lib/memfs/file.rb:177:in `realpath'
      # ./spec/fileutils_spec.rb:441:in `block (4 levels) in <top (required)>'

  29) FileUtils.remove_entry_secure removes a file system entry +path+
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file/stat.rb:59:in `initialize'
      # ./lib/memfs/file.rb:149:in `new'
      # ./lib/memfs/file.rb:149:in `lstat'
      # ./spec/fileutils_spec.rb:819:in `block (3 levels) in <top (required)>'

  30) FileUtils.remove_entry_secure when +path+ is a directory removes it recursively
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file/stat.rb:59:in `initialize'
      # ./lib/memfs/file.rb:149:in `new'
      # ./lib/memfs/file.rb:149:in `lstat'
      # ./spec/fileutils_spec.rb:826:in `block (4 levels) in <top (required)>'

  31) FileUtils.remove_entry_secure when +path+ is a directory and is word writable calls chmod(2) on all sub directorie
s
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file/stat.rb:59:in `initialize'
      # ./lib/memfs/file.rb:149:in `new'
      # ./lib/memfs/file.rb:149:in `lstat'
      # ./spec/fileutils_spec.rb:842:in `block (5 levels) in <top (required)>'

  32) FileUtils.remove_entry_secure when +path+ is a directory and is word writable calls chown(2) on it
      Failure/Error: find(path) || fail(Errno::ENOENT, path)

      Errno::ENOENT:
        No such file or directory - C:/test-dir
      # ./lib/memfs/file_system.rb:66:in `find!'
      # ./lib/memfs/file/stat.rb:59:in `initialize'
      # ./lib/memfs/file.rb:149:in `new'
      # ./lib/memfs/file.rb:149:in `lstat'
      # ./spec/fileutils_spec.rb:835:in `block (5 levels) in <top (required)>'

Finished in 2.93 seconds (files took 1.05 seconds to load)
816 examples, 32 failures, 2 pending

Failed examples:

rspec ./spec/memfs/file/stat_spec.rb:443 # MemFs::File::Stat#grpowned? when the effective user group does not own of the
 file returns false
rspec ./spec/memfs/file/stat_spec.rb:472 # MemFs::File::Stat#owned? when the effective user does not own of the file ret
urns false
rspec ./spec/memfs/file_spec.rb:41 # MemFs::File.absolute_path converts a pathname to an absolute pathname
rspec ./spec/memfs/file_spec.rb:47 # MemFs::File.absolute_path when +dir_string+ is given uses it as the starting point
rspec ./spec/memfs/file_spec.rb:54 # MemFs::File.absolute_path when the given pathname starts with a '~' does not expand
ed
rspec ./spec/memfs/file_spec.rb:1326 # MemFs::File.realpath when the path contains a symlink and the symlink is a middle
 part returns the path with the symlink dereferrenced
rspec ./spec/memfs/file_spec.rb:1333 # MemFs::File.realpath when the path contains a symlink and the symlink is the last
 part returns the path with the symlink dereferrenced
rspec ./spec/memfs/file_spec.rb:1341 # MemFs::File.realpath when the path contains useless dots returns the path with th
e useless dots interpolated
rspec ./spec/memfs/file_spec.rb:1349 # MemFs::File.realpath when the given path is relative and +dir_string+ is not prov
ided uses the current working directory has base directory
rspec ./spec/memfs/file_spec.rb:1358 # MemFs::File.realpath when the given path is relative and +dir_string+ is provided
 uses the given directory has base directory
rspec ./spec/memfs/file_spec.rb:1318 # MemFs::File.realpath when the path does not contain any symlink or useless dots r
eturns the path itself
rspec ./spec/memfs/file_spec.rb:1287 # MemFs::File.realdirpath when the last part of the given path is a symlink and its
 target does not exist uses the name of the target in the resulting path
rspec ./spec/memfs/file_spec.rb:1243 # MemFs::File.realdirpath when the path contains a symlink and the symlink is a mid
dle part returns the path with the symlink dereferrenced
rspec ./spec/memfs/file_spec.rb:1250 # MemFs::File.realdirpath when the path contains a symlink and the symlink is the l
ast part returns the path with the symlink dereferrenced
rspec ./spec/memfs/file_spec.rb:1295 # MemFs::File.realdirpath when the last part of the given path does not exist uses
its name in the resulting path
rspec ./spec/memfs/file_spec.rb:1235 # MemFs::File.realdirpath when the path does not contain any symlink or useless dot
s returns the path itself
rspec ./spec/memfs/file_spec.rb:1274 # MemFs::File.realdirpath when the given path is relative and +dir_string+ is provi
ded uses the given directory has base directory
rspec ./spec/memfs/file_spec.rb:1266 # MemFs::File.realdirpath when the given path is relative and +dir_string+ is not p
rovided uses the current working directory has base directory
rspec ./spec/memfs/file_spec.rb:1258 # MemFs::File.realdirpath when the path contains useless dots returns the path with
 the useless dots interpolated
rspec ./spec/memfs/file_spec.rb:664 # MemFs::File.grpowned? when the named file exists and the effective user group does
 not own of the file returns false
rspec ./spec/memfs/file_spec.rb:991 # MemFs::File.owned? when the named file exists and the effective user does not own
of the file returns false
rspec ./spec/memfs/file_spec.rb:489 # MemFs::File.expand_path converts a pathname to an absolute pathname
rspec ./spec/memfs/file_spec.rb:496 # MemFs::File.expand_path references path from the current working directory
rspec ./spec/memfs/file_spec.rb:504 # MemFs::File.expand_path when +dir_string+ is provided uses +dir_string+ as the sta
ting point
rspec ./spec/fileutils_spec.rb:419 # FileUtils.cp_r copies +src+ to +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:447 # FileUtils.cp_r when +src+ is a list of files copies each of them in +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:817 # FileUtils.remove_entry_secure removes a file system entry +path+
rspec ./spec/fileutils_spec.rb:824 # FileUtils.remove_entry_secure when +path+ is a directory removes it recursively
rspec ./spec/fileutils_spec.rb:838 # FileUtils.remove_entry_secure when +path+ is a directory and is word writable calls
 chmod(2) on all sub directories
rspec ./spec/fileutils_spec.rb:831 # FileUtils.remove_entry_secure when +path+ is a directory and is word writable calls
 chown(2) on it

Randomized with seed 35952

[Coveralls] Outside the CI environment, not sending data.

djberg96 avatar Apr 17 '22 22:04 djberg96

Hi. Thanks for reporting this issue. Sadly I'm on an extremely tight schedule and can't spend to much time maintaining the project. I'm open to reviewing a PR if you'd like to have a stab at it though 😊

simonc avatar May 03 '22 22:05 simonc