Diff of the two buildlogs: -- --- b1/build.log 2019-06-14 11:06:34.143981168 +0000 +++ b2/build.log 2019-06-14 11:20:56.451196235 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Jul 16 05:28:53 -12 2020 -I: pbuilder-time-stamp: 1594920533 +I: Current time: Sat Jun 15 01:06:35 +14 2019 +I: pbuilder-time-stamp: 1560510395 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration @@ -18,7 +18,7 @@ I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error -gpgv: Signature made Tue Feb 6 06:14:11 2018 -12 +gpgv: Signature made Wed Feb 7 08:14:11 2018 +14 gpgv: using RSA key 7E43E9ACBF727AB3CF0885338716CE4614A452D8 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./ruby-memfs_1.0.0-1.dsc @@ -30,6 +30,18 @@ dpkg-source: info: applying 002_fix-spec-ruby25.patch I: using fakeroot in build. I: Installing the build-deps +I: user script /srv/workspace/pbuilder/5743/tmp/hooks/D01_modify_environment starting +disorder-fs debug: Running on profitbricks-build2-i386. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash' +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/5743/tmp/hooks/D01_modify_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -231,7 +243,7 @@ Get: 156 http://cdn-fastly.deb.debian.org/debian buster/main i386 ruby-thread-order all 1.1.0-1 [5096 B] Get: 157 http://cdn-fastly.deb.debian.org/debian buster/main i386 ruby-rspec-core all 3.8.0c0e1m0s0-1 [190 kB] Get: 158 http://cdn-fastly.deb.debian.org/debian buster/main i386 ruby-rspec all 3.8.0c0e1m0s0-1 [7620 B] -Fetched 45.2 MB in 19s (2351 kB/s) +Fetched 45.2 MB in 37s (1221 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:i386. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19231 files and directories currently installed.) @@ -893,9 +905,41 @@ Building dependency tree... Reading state information... fakeroot is already the newest version (1.23-1). -0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +The following additional packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl +The following NEW packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl usrmerge +0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. +Need to get 59.5 kB of archives. +After this operation, 182 kB of additional disk space will be used. +Get:1 http://cdn-fastly.deb.debian.org/debian buster/main i386 libnumber-compare-perl all 0.03-1 [7642 B] +Get:2 http://cdn-fastly.deb.debian.org/debian buster/main i386 libtext-glob-perl all 0.10-1 [8362 B] +Get:3 http://cdn-fastly.deb.debian.org/debian buster/main i386 libfile-find-rule-perl all 0.34-1 [30.6 kB] +Get:4 http://cdn-fastly.deb.debian.org/debian buster/main i386 usrmerge all 21 [12.8 kB] +debconf: delaying package configuration, since apt-utils is not installed +Fetched 59.5 kB in 1s (76.6 kB/s) +Selecting previously unselected package libnumber-compare-perl. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 26702 files and directories currently installed.) +Preparing to unpack .../libnumber-compare-perl_0.03-1_all.deb ... +Unpacking libnumber-compare-perl (0.03-1) ... +Selecting previously unselected package libtext-glob-perl. +Preparing to unpack .../libtext-glob-perl_0.10-1_all.deb ... +Unpacking libtext-glob-perl (0.10-1) ... +Selecting previously unselected package libfile-find-rule-perl. +Preparing to unpack .../libfile-find-rule-perl_0.34-1_all.deb ... +Unpacking libfile-find-rule-perl (0.34-1) ... +Selecting previously unselected package usrmerge. +Preparing to unpack .../archives/usrmerge_21_all.deb ... +Unpacking usrmerge (21) ... +Setting up libtext-glob-perl (0.10-1) ... +Setting up libnumber-compare-perl (0.03-1) ... +Setting up libfile-find-rule-perl (0.34-1) ... +Setting up usrmerge (21) ... +The system has been successfully converted. +Processing triggers for man-db (2.8.5-2) ... +Not building database; man-db/auto-update is not 'true'. I: Building the package -I: Running cd /build/ruby-memfs-1.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/ruby-memfs-1.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b dpkg-buildpackage: info: source package ruby-memfs dpkg-buildpackage: info: source version 1.0.0-1 dpkg-buildpackage: info: source distribution unstable @@ -936,19 +980,19 @@ └──────────────────────────────────────────────────────────────────────────────┘ install -d /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby -install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/filesystem_access.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/filesystem_access.rb +install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs.rb install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/version.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/version.rb -install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/file.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/file.rb install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/dir.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/dir.rb -install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/io.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/io.rb install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/file_system.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/file_system.rb +install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/file.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/file.rb +install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/io.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/io.rb +install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/file/stat.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/file/stat.rb install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/fake/directory.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/fake/directory.rb +install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/fake/symlink.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/fake/symlink.rb install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/fake/entry.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/fake/entry.rb install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/fake/file.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/fake/file.rb -install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/fake/symlink.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/fake/symlink.rb install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/fake/file/content.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/fake/file/content.rb -install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/file/stat.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/file/stat.rb -install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs.rb +install -D -m644 /build/ruby-memfs-1.0.0/lib/memfs/filesystem_access.rb /build/ruby-memfs-1.0.0/debian/ruby-memfs/usr/lib/ruby/vendor_ruby/memfs/filesystem_access.rb dh_installchangelogs -pruby-memfs /build/ruby-memfs-1.0.0/CHANGELOG.md upstream ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -977,119 +1021,272 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 13535 +Randomized with seed 6643 + +MemFs::Fake::Entry + behaves like it has accessors for + uid + behaves like it has accessors for + mtime + #ino + Returns the inode number for the entry + #type + returns 'unknown + #delete + removes the entry from its parent + .new + sets its default uid to the current user's uid + sets the modification time + sets its default gid to the current user's gid + sets atime and mtime to the same value + sets an empty string as name if none is given + sets the access time + extract its name from the path passed as argument + #touch + sets the access time to now + sets the modification time to now + #path + returns the complete path of the entry + behaves like it has accessors for + character_device + #dereferenced_name + returns the entry name + behaves like it has accessors for + mode + paths + returns an array containing the entry path + behaves like it has accessors for + ctime + behaves like it has accessors for + block_device + behaves like it has accessors for + gid + behaves like it has accessors for + name + #dev + returns an integer representing the device on which the entry resides + #dereferenced_path + returns the entry path + behaves like it has accessors for + atime + behaves like it has accessors for + parent + #find + raises an error + #dereferenced + returns the entry itself FileUtils + .chmod + returns an array containing the file names + raises an error if an entry does not exist + changes permission bits on the named files (in list) to the bit pattern represented by mode + changes permission bits on the named file to the bit pattern represented by mode + when the named file is a symlink + when File responds to lchmod + changes the mode on the link + doesn't change the mode of the link's target + when File doesn't respond to lchmod + does nothing + .touch + creates a list of files if they don't exist + creates a file if it doesn't exist + .remove_entry + removes a file system entry +path+ + when +path+ is a directory + removes it recursively + .remove_file + removes a file path + when +force+ is set + ignores StandardError + .makedirs + behaves like aliased method + #mkdir_p + .uptodate? + returns true if +newer+ is newer than all +old_list+ + when +newer+ does not exist + consideres it as older + when a item of +old_list+ does not exist + consideres it as older than +newer+ + .copy_file + copies file contents of src to dest .link behaves like aliased method #ln + .mv + removes +src+ + moves +src+ to +dest+ + when +dest+ already exists + and is a directory + moves +src+ to dest/src + and +dest+ is not a directory + it overwrites +dest+ + .cp + copies a file content +src+ to +dest+ + when +dest+ is a directory + copies +src+ to +dest/src+ + when +src+ and +dest+ are the same file + raises an error + when src is a list of files + when +dest+ is not a directory + raises an error + .cmp + behaves like aliased method + #compare_file .getwd behaves like aliased method #pwd - .copy - behaves like aliased method - #cp - .mkdir - creates one directory - when passing options - when passing mode parameter - creates directory with specified permissions - when passing noop parameter - does not create any directories - when passing a list of paths - creates several directories + .pwd + returns the name of the current directory + .rm_rf + calls rm with +:force+ set to true + .compare_file + returns true if the contents of a file A and a file B are identical + returns false if the contents of a file A and a file B are not identical .rmdir - Removes a list of directories Removes a directory + Removes a list of directories when a directory is not empty doesn’t remove the directory raises an error - .mv - moves +src+ to +dest+ - removes +src+ - when +dest+ already exists - and is a directory - moves +src+ to dest/src - and +dest+ is not a directory - it overwrites +dest+ + .compare_stream + returns true if the contents of a stream A and stream B are identical + returns false if the contents of a stream A and stream B are not identical + .rm + removes the specified file + cannot remove a directory + removes files specified in list + when +:force+ is set + ignores StandardError + .remove_entry_secure + removes a file system entry +path+ + when +path+ is a directory + removes it recursively + and is word writable + calls chmod(2) on all sub directories + calls chown(2) on it .chown + doesn't change group if group is nil + changes group on the named entries in list changes group on the named entry changes owner on the named files (in list) - changes group on the named entries in list - doesn't change group if group is nil doesn't change user if user is nil changes owner on the named file when the name entry is a symlink + changes the owner on the last target of the link chain doesn't change the group of the symlink doesn't change the owner of the symlink - changes the owner on the last target of the link chain changes the group on the last target of the link chain - .symlink + .mkdir + creates one directory + when passing options + when passing noop parameter + does not create any directories + when passing mode parameter + creates directory with specified permissions + when passing a list of paths + creates several directories + .ln_s + creates a symbolic link which points to +old+ + creates a symbolic link +new+ + when passing a list of paths + creates symbolic links pointing to each item in the list + creates several symbolic links in +destdir+ + when +destdir+ is not a directory + raises an error + when +new+ already exists + and it is not a directory + raises an exeption + and +:force+ is set + overwrites +new+ + and it is a directory + creates a symbolic link +new/old+ + .rmtree behaves like aliased method - #ln_s - .cmp + #rm_rf + .rm_f + calls rm with +:force+ set to true + .copy behaves like aliased method - #compare_file - .rm - removes files specified in list - removes the specified file - cannot remove a directory + #cp + .safe_unlink + behaves like aliased method + #rm_f + .remove + behaves like aliased method + #rm + .chown_R + changes the group on any descendant file of the named entry + changes the owner on the named entry + changes the owner on any descendant file of the named entry + changes the owner on any sub-directory of the named entry + changes the group on the named entry + changes the group on any sub-directory of the named entry + .mkpath + behaves like aliased method + #mkdir_p + .rm_r + removes a list of files when +:force+ is set ignores StandardError - .chmod - raises an error if an entry does not exist - changes permission bits on the named file to the bit pattern represented by mode - changes permission bits on the named files (in list) to the bit pattern represented by mode - returns an array containing the file names - when the named file is a symlink - when File responds to lchmod - changes the mode on the link - doesn't change the mode of the link's target - when File doesn't respond to lchmod - does nothing - .remove_file - removes a file path - when +force+ is set - ignores StandardError + when an item of the list is a directory + removes all its contents recursively + .ln_sf + calls ln_s with +:force+ set to true + .cd + returns nil + changes the current working directory + raises an error when the given path is not a directory + raises an error when the given path doesn't exist + when called with a block + changes current working directory for the block execution + resumes to the old working directory after the block execution finished + when the destination is a symlink + changes directory to the last target of the link chain + raises an error if the last target of the link chain doesn't exist + .cp_r + copies +src+ to +dest+ + when +src+ is a directory + copies all its contents recursively + when +src+ is a list of files + copies each of them in +dest+ + when +dest+ is a directory + copies +src+ to +dest/src+ .chmod_R changes the permission bits on the named entry - changes the permission bits on any descendant file of the named entry changes the permission bits on any sub-directory of the named entry + changes the permission bits on any descendant file of the named entry + .mkdir_p + creates all the parent directories + creates a directory + when passing options + when passing mode parameter + creates directory with specified permissions + when passing noop parameter + does not create any directories + when passing a list of paths + creates each directory's parents + creates each directory + .symlink + behaves like aliased method + #ln_s .install copies +src+ to +dest+ - when +:mode+ is set - changes the permission mode to +mode+ + when +src+ and +dest+ are the same file + raises an exception when +dest+ already exists removes destination before copy and +dest+ is a directory installs +src+ in dest/src - when +src+ and +dest+ are the same file - raises an exception - .chown_R - changes the owner on any sub-directory of the named entry - changes the owner on any descendant file of the named entry - changes the group on any sub-directory of the named entry - changes the owner on the named entry - changes the group on any descendant file of the named entry - changes the group on the named entry - .rmtree - behaves like aliased method - #rm_rf - .remove_entry_secure - removes a file system entry +path+ - when +path+ is a directory - removes it recursively - and is word writable - calls chmod(2) on all sub directories - calls chown(2) on it - .touch - creates a list of files if they don't exist - creates a file if it doesn't exist - .rm_f - calls rm with +:force+ set to true + when +:mode+ is set + changes the permission mode to +mode+ .ln creates a hard link, not a symlink creates a hard link +dest+ which points to +src+ + when passing a list of paths + creates a link for each path in +destdir+ + and +destdir+ is not a directory + raises an exception when +dest+ already exists and is a directory creates a link dest/src @@ -1097,547 +1294,515 @@ raises an exception and +:force+ is set overwrites +dest+ - when passing a list of paths - creates a link for each path in +destdir+ - and +destdir+ is not a directory - raises an exception - .copy_file - copies file contents of src to dest - .uptodate? - returns true if +newer+ is newer than all +old_list+ - when +newer+ does not exist - consideres it as older - when a item of +old_list+ does not exist - consideres it as older than +newer+ .copy_entry copies a file system entry +src+ to +dest+ preserves file types + when +src+ does not exist + raises an exception when +preserve+ is true - preserves owner - preserves group preserves modified time + preserves group preserves permissions - when +src+ does not exist - raises an exception + preserves owner when +src+ is a directory copies its contents recursively when +remove_destination+ is true removes each destination file before copy when +dest+ already exists overwrite it - .remove_entry - removes a file system entry +path+ - when +path+ is a directory - removes it recursively - .pwd - returns the name of the current directory - .compare_file - returns true if the contents of a file A and a file B are identical - returns false if the contents of a file A and a file B are not identical - .makedirs + .move behaves like aliased method - #mkdir_p - .ln_sf - calls ln_s with +:force+ set to true - .cd - returns nil - changes the current working directory - raises an error when the given path is not a directory - raises an error when the given path doesn't exist - when the destination is a symlink - raises an error if the last target of the link chain doesn't exist - changes directory to the last target of the link chain - when called with a block - resumes to the old working directory after the block execution finished - changes current working directory for the block execution - .mkdir_p - creates all the parent directories - creates a directory - when passing a list of paths - creates each directory - creates each directory's parents - when passing options - when passing mode parameter - creates directory with specified permissions - when passing noop parameter - does not create any directories - .rm_rf - calls rm with +:force+ set to true - .ln_s - creates a symbolic link which points to +old+ - creates a symbolic link +new+ - when passing a list of paths - creates several symbolic links in +destdir+ - creates symbolic links pointing to each item in the list - when +destdir+ is not a directory - raises an error - when +new+ already exists - and it is a directory - creates a symbolic link +new/old+ - and it is not a directory - raises an exeption - and +:force+ is set - overwrites +new+ + #mv + .identical? + behaves like aliased method + #compare_file .remove_dir - removes the given directory +dir+ removes the contents of the given directory +dir+ + removes the given directory +dir+ when +force+ is set ignores standard errors - .cp_r - copies +src+ to +dest+ - when +src+ is a list of files - copies each of them in +dest+ - when +dest+ is a directory - copies +src+ to +dest/src+ - when +src+ is a directory - copies all its contents recursively - .identical? - behaves like aliased method - #compare_file - .rm_r - removes a list of files - when an item of the list is a directory - removes all its contents recursively - when +:force+ is set - ignores StandardError - .remove - behaves like aliased method - #rm - .safe_unlink - behaves like aliased method - #rm_f - .mkpath - behaves like aliased method - #mkdir_p - .compare_stream - returns true if the contents of a stream A and stream B are identical - returns false if the contents of a stream A and stream B are not identical - .move + +MemFs::Fake::Directory + #add_entry + sets the parent of the added entry + adds the entry to the entries list + #find + calls find on the next directory in the search chain + should remove any leading / in the path + should remove any trailing / in the path + returns the named entry if it is one of the entries + #remove_entry + removes an entry from the entries list + #entry_names + returns the list of the names of the entries in the directory + .new + sets .. in the entries list + sets . in the entries list + empty? + returns true if the directory is empty + returns false if the directory is not empty + #path + returns the directory path + when the directory is / + returns / + #type + returns 'directory' + #paths + returns the path of the directory and its entries recursively + #parent= + sets the .. entry in entries list + sets the parent directory + +MemFs::FileSystem + #paths + returns the list of all the existing paths + #rename + renames the given file to the new name + removes the old file + can move a file in another directory + #link + does not create a symbolic link + creates a hard link +dest+ that points to +src+ + when +new_name+ already exists + raises an exception + #mkdir + sets directory permissions to default 0777 + creates a directory + when permissions are specified + sets directory permission to specified value + when a relative path is given + creates a directory in current directory + when the directory already exists + raises an exception + #chdir + raises an error if directory does not exist + raises an error if the destination is not a directory + changes the current working directory + when the destination is a symlink + sets current directory as the last link chain target + when a block is given + changes current working directory for the block + gets back to previous directory once the block is finished + #touch + creates a regular file for each named filed + creates an entry only if it doesn't exist + creates a regular file + when the named file already exists + sets the modification time of the touched file + sets the access time of the touched file + #find_directory! + returns the named directory + raises an error if the named entry is not a directory + #chown + ignores nil group id + ignores -1 user id + changes the owner of the named file to the given numeric owner id + changes the group of the named file to the given numeric group id + ignores nil user id + ignores -1 group id + when the named entry is a symlink + doesn't change the owner of the symlink + changes the owner on the last target of the link chain + doesn't change the group of the symlink + changes the group on the last target of the link chain + #new + creates the root directory + #find + when there is no entry for the given path + returns nil + when the entry for the given path exists + returns the entry + when a part of the given path is a symlink + and the symlink's target exists + returns the entry + and the symlink's target does not exist + returns nil + #find_parent! + raises an error if the parent is not a directory + raises an error if the parent directory does not exist + returns the parent directory of the named entry + #getwd + returns the current working directory + #clear! + sets the current directory to / + clear the registred entries + #find! + when a part of the given path is a symlink + and the symlink's target exists + returns the entry + and the symlink's target does not exist + raises an exception + when the entry for the given path exists + returns the entry + when there is no entry for the given path + raises an exception + #unlink + deletes the named file + when the entry is a directory + raises an exception + #pwd behaves like aliased method - #mv - .cp - copies a file content +src+ to +dest+ - when +src+ and +dest+ are the same file - raises an error - when src is a list of files - when +dest+ is not a directory - raises an error - when +dest+ is a directory - copies +src+ to +dest/src+ + #getwd + #rmdir + removes the given directory + when the directory is not empty + raises an exception + #entries + returns an array containing all of the filenames in the given directory + #symlink + creates a symbolic link + when +new_name+ already exists + raises an exception + #chmod + changes permission bits on the named file + when the named file is a symlink + changes the permission bits on the symlink itself + +MemFs::Fake::Symlink + #target + returns the target of the symlink + #dereferenced_name + when the symlink's target does not exist + returns its target name + when the symlink's target exists + returns its target name + #type + returns 'link' + #dereferenced + returns the last target of the chain + returns the target if it's not a symlink + #content + returns the target's content + #find + when the symlink's target exists + forwards the search to it + when the symlink's target does not exist + returns nil + #dereferenced_path + when the symlink's target exists + returns its target path + when the symlink's target does not exist + raises an exception + +MemFs + .touch + creates the specified file + when the parent folder do not exist + creates them all + when several files are specified + creates every file + .activate + deactivates MemFs even when an exception occurs + resets the original classes once finished + calls the given block with MemFs activated + .halt + switches back to the faked Dir & File classes + maintains the state of the faked fs + switches back to the faked Dir & File classes no matter what + switches back to the original Ruby Dir & File classes + .activate! + replaces Ruby Dir class with a fake one + replaces Ruby File class with a fake one + .deactivate! + sets back the Ruby File class to the original one + sets back the Ruby Dir class to the original one MemFs::File implements Enumerable - .utime - sets the access time of each named file to the first argument - returns the number of file names in the argument list - sets the modification time of each named file to the second argument - raises en error if the entry does not exist - #each - returns the file itself - calls the block for every line in the file - when the file is not open for reading + .path + when the path is a Pathname + returns the string representation of the path + when the path is a string + returns the string representation of the path + .readlink + returns the name of the file referenced by the given link + .unlink + deletes the named file + returns the number of names passed as arguments + when the entry is a directory raises an exception - when no block is given - does not raise an exception - when no block is given - returns an enumerator - when a separator is given - uses this separator to split lines - .symlink? - when the named entry is not a symlink + when multiple file names are given + deletes the named files + .basename + returns the last component of the filename given in +file_name+ + when +suffix+ is given + when it is present at the end of +file_name+ + removes the +suffix+ from the filename basename + .expand_path + references path from the current working directory + converts a pathname to an absolute pathname + when +dir_string+ is provided + uses +dir_string+ as the stating point + #autoclose? + returns true by default + when the file will not be automatically closed returns false - when the named entry is a symlink + when the file will be automatically closed returns true - when the named entry does not exist - returns false - .chardev? - when the name file exists - and it is not a character device - returns false - and it is a character device - returns true - when the name file does not exist - returns false #autoclose= sets the autoclose flag - #print - appends the given object to the file - converts any given object to string with to_s + #advise returns nil - when the output field separator is not nil - inserts it between the objects - when the output record separator is nil - inserts nothing at the end of the output - when the output record separator is not nil - inserts it at the end of the output - when the is not opened for writing + behaves like advise working + when the :random advise type is given + does not raise an error + behaves like advise working + when the :normal advise type is given + does not raise an error + behaves like advise working + when the :willneed advise type is given + does not raise an error + when a wrong advise type is given raises an exception - when no argument is given - prints $_ (PENDING: I don't know how to test with $_) - when the output field separator is nil - inserts nothing between the objects - when multiple objects are given - appends the given objects to the file - .extname - returns the extension of the given path - when the given path starts with a period - and the path has an extension - returns the extension - and the path has no extension - returns an empty string - when the period is the last character in path - returns an empty string + behaves like advise working + when the :dontneed advise type is given + does not raise an error + behaves like advise working + when the :noreuse advise type is given + does not raise an error + behaves like advise working + when the :sequential advise type is given + does not raise an error + #puts + does not override the file’s content + appends content to the file + when the file is not writable + raises an exception + #close + closes the file stream + #stat + returns the +Stat+ object of the file #chmod - returns zero changes permission bits on the file - #binmode - sets the binmode flag for the file - sets the file encoding to ASCII-8BIT - returns the file itself - #each_char - calls the given block once for each byte of the file - returns the file itself - when the file is not open for reading - raises an exception - when no block is given - does not raise an exception - when no block is given - returns an enumerator - .split - splits the given string into a directory and a file component - #lstat - returns the File::Stat object of the file - when the given file is a symlink - does not follow the last symbolic link - #chars - behaves like aliased method - #each_char - .delete - behaves like aliased method - #unlink - .world_readable? - when file_name is readable by others - returns an integer representing the file permission bits - when file_name is not readable by others - returns nil - #closed? - returns false when the file is open - returns true when the file is closed - .symlink - returns 0 - creates a symbolic link that points to an entry named old_name - creates a symbolic link named new_name - when the target does not exist - creates a symbolic link - .ctime - raises an error if the entry does not exist - returns the change time for the named file as a Time object - when the entry is a symlink - returns the last access time of the last target of the link chain - #binmode? - returns false by default - when the file is in binmode - returns true - constants - expose SEPARATOR - expose ALT_SEPARATOR - .readable? - when the file is user readable - and the current user owns the file - returns true - when the file does not exist - returns false - when the file is readable by anyone - and the user has no specific right on it - returns true - when the file is group readable - and the current user is part of the owner group - returns true - when the file is not readable by anyone - return false - .writable_real? - when the file is group writable - and the current user is part of the owner group - returns true - when the file is writable by anyone - and the user has no specific right on it - returns true - when the file is user writable - and the current user owns the file - returns true - when the file is not writable by anyone - return false - when the file does not exist - returns false - #read - when no length is given - returns an empty string if called a second time - returns the content of the named file - when a buffer is given - fills the buffer with the read content - when a length is given - returns a string of the given length - returns nil when there is nothing more to read - #truncate returns zero - truncates the given file to be at most integer bytes long - .sticky? - when the named file exists - returns true if the named file has the sticky bit set - returns false if the named file hasn’t the sticky bit set - when the named file does not exist - returns false - #autoclose? - returns true by default - when the file will be automatically closed - returns true - when the file will not be automatically closed + #close_on_exec= + sets the close-on-exec flag on the file + .symlink? + when the named entry does not exist returns false - .stat - returns a File::Stat object for the named file - always returns a new object - follows the last symbolic link - when the named file is a symlink - and its target does not exist - raises an exception - when the named file does not exist - raises an exception - .exist? - behaves like aliased method - #exists? - .fnmatch - when the given path matches against the given pattern + when the named entry is a symlink returns true - when the given path does not match against the given pattern + when the named entry is not a symlink returns false - .chown - changes the owner of the named file to the given numeric owner id - ignores nil group id - ignores -1 group id - changes owner on the named files (in list) - changes the group of the named file to the given numeric group id - returns the number of files - ignores nil user id - ignores -1 user id - when the named entry is a symlink - changes the owner on the last target of the link chain - does not change the group of the symlink - changes the group on the last target of the link chain - does not change the owner of the symlink - .path - when the path is a string - returns the string representation of the path - when the path is a Pathname - returns the string representation of the path - #ctime - returns a Time object - .world_writable? - when file_name is writable by others - returns an integer representing the file permission bits - when file_name is not writable by others - returns nil .read reads the content of the given file - when the last argument is a hash - passes the contained options to +open+ - when it contains the +open_args+ key - takes precedence over the other options when +offset+ is provided - starts reading from the offset raises an error if offset is negative + starts reading from the offset when +lenght+ is provided reads only +length+ characters when +length+ is bigger than the file size reads until the end of the file - .zero? - when the named file does not exist + when the last argument is a hash + passes the contained options to +open+ + when it contains the +open_args+ key + takes precedence over the other options + .exists? + when the file does not exist returns false - when the named file exists - and does not have a zero size - returns false - and has a zero size - returns true - .basename - returns the last component of the filename given in +file_name+ - when +suffix+ is given - when it is present at the end of +file_name+ - removes the +suffix+ from the filename basename - .readlink - returns the name of the file referenced by the given link - .chmod - changes permission bits on the named files (in list) - changes permission bits on the named file + when the file exists + returns true + .ctime + returns the change time for the named file as a Time object + raises an error if the entry does not exist + when the entry is a symlink + returns the last access time of the last target of the link chain + #binmode + returns the file itself + sets the file encoding to ASCII-8BIT + sets the binmode flag for the file + .size + returns the size of the file + #close_on_exec? + returns true by default + when the close-on-exec flag is set to false + returns false + #bytes + behaves like aliased method + #each_byte + #flock + returns zero #chown changes the group of the named file to the given numeric group id ignores -1 group id - changes the owner of the named file to the given numeric owner id - ignores nil group id - changes owner on the named files (in list) - returns zero ignores nil user id + returns zero + changes owner on the named files (in list) ignores -1 user id + changes the owner of the named file to the given numeric owner id + ignores nil group id when the named entry is a symlink - does not change the owner of the symlink - does not change the group of the symlink changes the owner on the last target of the link chain + does not change the group of the symlink + does not change the owner of the symlink changes the group on the last target of the link chain - #atime - returns a Time object - .unlink - returns the number of names passed as arguments - deletes the named file - when the entry is a directory - raises an exception - when multiple file names are given - deletes the named files - #mtime - returns a Time object - .size - returns the size of the file - #close_on_exec? - returns true by default - when the close-on-exec flag is set to false - returns false - #eof + .delete behaves like aliased method - #eof? - .join - returns a new string formed by joining the strings using File::SEPARATOR - .lchmod - when the named file is a symlink - does not change permission bits on the link’s target - changes permission bits on the symlink - when the named file is a regular file - acts like chmod - .pipe? - when the named file is not a pipe - returns false - #external_encoding - returns the Encoding object representing the file encoding - when the file is open in write mode - and no encoding has been specified - returns nil - and an encoding has been specified - returns the Encoding - .identical? - when two paths represent the same path - returns true - when a path is a symlink - and the linked file is the same as the other path - returns true - and the linked file is different from the other path - returns false - when two paths do not represent the same file - returns false - when the two paths are symlinks - and both links do not point to the same file - returns false - and both links point to the same file - returns true - when one of the paths does not exist + #unlink + .executable_real? + when the file does not exist returns false - #path - returns the path of the file - #each_byte - returns the file itself - calls the given block once for each byte of the file - when no block is given - returns an enumerator - when the file is not open for reading - raises an exception - when no block is given - does not raise an exception - #printf - appends the string in the file - returns nil - converts parameters under control of the format string - #eof? - when the file is not empty - and the file is not yet read - returns false - and the file is read - returns true - and the file is partly read - returns false - when the file is not empty - and the file is read - returns true - and the file is not yet read - returns true - .executable? when the file is not executable by anyone return false when the file is user executable and the current user owns the file returns true - when the file is executable by anyone - and the user has no specific right on it - returns true - when the file does not exist - returns false when the file is group executable and the current user is part of the owner group returns true - #size - returns the size of the file - .exists? - when the file exists - returns true - when the file does not exist - returns false - .lstat - returns a File::Stat object for the named file - when the named file does not exist - raises an exception - when the named file is a symlink - does not follow the last symbolic link - .grpowned? - when the named file exists - and the effective user group does not own of the file - returns false (PENDING: Temporarily skipped with xit) - and the effective user group owns of the file + when the file is executable by anyone + and the user has no specific right on it returns true + #path + returns the path of the file + .setuid? when the named file does not exist returns false - .write - writes the string to the given file - when +offset+ is provided - raises an error if offset is a string - raises an error if offset is negative - writes the string to the given file when offset is nil - raises an error if offset is a boolean - starts writing from the offset (PENDING: Offsets not yet implemented in IO.write) - writes the string to the given file when offset is 0 - .file? when the named file exists - and it is not a regular file + and the named file does not have the setuid bit set returns false - and it is a regular file + and the named file has the setuid bit set returns true - when the named file does not exist - returns false + .extname + returns the extension of the given path + when the period is the last character in path + returns an empty string + when the given path starts with a period + and the path has no extension + returns an empty string + and the path has an extension + returns the extension .realpath + when the path contains a symlink + and the symlink is the last part + returns the path with the symlink dereferrenced + and the symlink is a middle part + returns the path with the symlink dereferrenced when a part of the given path does not exist raises an exception - when the path does not contain any symlink or useless dots - returns the path itself when the path contains useless dots returns the path with the useless dots interpolated + when the given path is relative + and +dir_string+ is provided + uses the given directory has base directory + and +dir_string+ is not provided + uses the current working directory has base directory + when the path does not contain any symlink or useless dots + returns the path itself + #mtime + returns a Time object + #truncate + truncates the given file to be at most integer bytes long + returns zero + .realdirpath when the path contains a symlink - and the symlink is a middle part - returns the path with the symlink dereferrenced and the symlink is the last part returns the path with the symlink dereferrenced + and the symlink is a middle part + returns the path with the symlink dereferrenced + 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 + when the path contains useless dots + returns the path with the useless dots interpolated + when the last part of the given path does not exist + uses its name in the resulting path + when a middle part of the given path does not exist + raises an exception + when the path does not contain any symlink or useless dots + returns the path itself when the given path is relative and +dir_string+ is not provided uses the current working directory has base directory and +dir_string+ is provided uses the given directory has base directory - .writable? - when the file is not writable by anyone + .umask + returns the current umask value for this process + when the optional argument is given + return the previous value + sets the umask to that value + #<< + writes the given string in the file + can be chained + when the given object is not a string + converts the object to a string with to_s + when the file is not opened for writing + raises an exception + .truncate + truncates the named file to the given size + returns zero + when the named file does not exist + raises an exception + when the given size is negative + it raises an exception + #closed? + returns false when the file is open + returns true when the file is closed + .executable? + when the file is group executable + and the current user is part of the owner group + returns true + when the file is executable by anyone + and the user has no specific right on it + returns true + when the file is not executable by anyone return false when the file does not exist returns false + when the file is user executable + and the current user owns the file + returns true + .chown + returns the number of files + changes owner on the named files (in list) + ignores nil group id + ignores -1 user id + ignores nil user id + ignores -1 group id + changes the group of the named file to the given numeric group id + changes the owner of the named file to the given numeric owner id + when the named entry is a symlink + changes the group on the last target of the link chain + does not change the owner of the symlink + does not change the group of the symlink + changes the owner on the last target of the link chain + .readable? + when the file is not readable by anyone + return false + when the file is user readable + and the current user owns the file + returns true + when the file is readable by anyone + and the user has no specific right on it + returns true + when the file is group readable + and the current user is part of the owner group + returns true + when the file does not exist + returns false + #chars + behaves like aliased method + #each_char + .chardev? + when the name file exists + and it is not a character device + returns false + and it is a character device + returns true + when the name file does not exist + returns false + .link + creates a new name for an existing file using a hard link + returns zero + when +old_name+ does not exist + raises an exception + when +new_name+ already exists + raises an exception + .join + returns a new string formed by joining the strings using File::SEPARATOR + .writable? + when the file is not writable by anyone + return false when the file is user writable and the current user owns the file returns true @@ -1647,809 +1812,462 @@ when the file is group writable and the current user is part of the owner group returns true + when the file does not exist + returns false + #each_char + returns the file itself + calls the given block once for each byte of the file + when the file is not open for reading + raises an exception + when no block is given + does not raise an exception + when no block is given + returns an enumerator + #write + returns the number of bytes written + writes the given string to file + when the file is not opened for writing + raises an exception + when the argument is not a string + will be converted to a string using to_s + #external_encoding + returns the Encoding object representing the file encoding + when the file is open in write mode + and no encoding has been specified + returns nil + and an encoding has been specified + returns the Encoding + #each + calls the block for every line in the file + returns the file itself + when no block is given + returns an enumerator + when the file is not open for reading + raises an exception + when no block is given + does not raise an exception + when a separator is given + uses this separator to split lines + .setgid? + when the named file does not exist + returns false + when the named file exists + and the named file has the setgid bit set + returns true + and the named file does not have the setgid bit set + returns false + .lchmod + when the named file is a symlink + does not change permission bits on the link’s target + changes permission bits on the symlink + when the named file is a regular file + acts like chmod + .rename + returns zero + renames the given file to the new name + .dirname + returns / if file_name is / + returns all components of the filename given in +file_name+ except the last one + #atime + returns a Time object + .fnmatch + when the given path matches against the given pattern + returns true + when the given path does not match against the given pattern + returns false .new resets the file position to the beginning when too many arguments are given raises an exception - when no argument is given - raises an exception when only the filename is provided - and the file exists - returns the open file when the file is a symlink and its target does not exist raises an exception + and the file exists + returns the open file and the file does not exist raises an exception when the mode is provided - and it specifies that the file must be truncated - and the file already exists - truncates its content - and it is an integer - sets the mode to the integer value - and it specifies that the file must be created - and the file already exists - changes the mtime of the file and it is a string + handles the |utf-8 option sets the read+write mode for "r+" + sets the write+create+append mode for "a" sets the read+write+create+append mode for "a+" - handles the |utf-8 option + sets the read+write+create+truncate mode for "w+" + sets the write+create+truncate mode for "w" sets the read mode for "r" handles the :bom|utf-8 option - sets the write+create+append mode for "a" - sets the write+create+truncate mode for "w" - sets the read+write+create+truncate mode for "w+" handles the :bom option - .readable_real? - when the file does not exist + and it specifies that the file must be created + and the file already exists + changes the mtime of the file + and it is an integer + sets the mode to the integer value + and it specifies that the file must be truncated + and the file already exists + truncates its content + when no argument is given + raises an exception + #ctime + returns a Time object + #eof? + when the file is not empty + and the file is read + returns true + and the file is not yet read + returns true + when the file is not empty + and the file is read + returns true + and the file is partly read + returns false + and the file is not yet read + returns false + #pos + returns zero when the file was just opened + returns the reading offset when some of the file has been read + constants + expose ALT_SEPARATOR + expose SEPARATOR + .identical? + when one of the paths does not exist returns false - when the file is readable by anyone + when the two paths are symlinks + and both links point to the same file + returns true + and both links do not point to the same file + returns false + when a path is a symlink + and the linked file is different from the other path + returns false + and the linked file is the same as the other path + returns true + when two paths represent the same path + returns true + when two paths do not represent the same file + returns false + .exist? + behaves like aliased method + #exists? + .writable_real? + when the file is writable by anyone and the user has no specific right on it returns true - when the file is not readable by anyone - return false - when the file is group readable + when the file is group writable and the current user is part of the owner group returns true - when the file is user readable + when the file is user writable and the current user owns the file returns true + when the file is not writable by anyone + return false + when the file does not exist + returns false + .ftype + when the named entry is a regular file + returns "file" + when the named entry has no specific type + returns "unknown" + when the named entry is a directory + returns "directory" + when the named entry is a block device + returns "blockSpecial" + when the named entry is a symlink + returns "link" + when the named entry is a character device + returns "characterSpecial" + #binmode? + returns false by default + when the file is in binmode + returns true .atime - returns the last access time for the named file as a Time object raises an error if the entry does not exist + returns the last access time for the named file as a Time object when the entry is a symlink returns the last access time of the last target of the link chain + #lstat + returns the File::Stat object of the file + when the given file is a symlink + does not follow the last symbolic link + .world_writable? + when file_name is writable by others + returns an integer representing the file permission bits + when file_name is not writable by others + returns nil + .blockdev? + when the name file exists + and it is a block device + returns true + and it is not a block device + returns false + when the name file does not exist + returns false + #eof + behaves like aliased method + #eof? .directory? when the named entry is not a directory returns false when the named entry is a directory returns true - .expand_path - converts a pathname to an absolute pathname - references path from the current working directory - when +dir_string+ is provided - uses +dir_string+ as the stating point - .rename - renames the given file to the new name - returns zero - #stat - returns the +Stat+ object of the file + #read + when a buffer is given + fills the buffer with the read content + when no length is given + returns an empty string if called a second time + returns the content of the named file + when a length is given + returns a string of the given length + returns nil when there is nothing more to read + .fnmatch? + behaves like aliased method + #fnmatch + .pipe? + when the named file is not a pipe + returns false + .lstat + returns a File::Stat object for the named file + when the named file does not exist + raises an exception + when the named file is a symlink + does not follow the last symbolic link + .chmod + changes permission bits on the named file + changes permission bits on the named files (in list) + .zero? + when the named file exists + and does not have a zero size + returns false + and has a zero size + returns true + when the named file does not exist + returns false + .write + writes the string to the given file + when +offset+ is provided + starts writing from the offset (PENDING: Offsets not yet implemented in IO.write) + writes the string to the given file when offset is 0 + raises an error if offset is a boolean + raises an error if offset is negative + raises an error if offset is a string + writes the string to the given file when offset is nil + .world_readable? + when file_name is readable by others + returns an integer representing the file permission bits + when file_name is not readable by others + returns nil + #each_byte + calls the given block once for each byte of the file + returns the file itself + when the file is not open for reading + raises an exception + when no block is given + does not raise an exception + when no block is given + returns an enumerator .absolute_path converts a pathname to an absolute pathname - when +dir_string+ is given - uses it as the starting point when the given pathname starts with a '~' does not expanded - #close_on_exec= - sets the close-on-exec flag on the file - #pos - returns the reading offset when some of the file has been read - returns zero when the file was just opened - .truncate - truncates the named file to the given size - returns zero - when the named file does not exist - raises an exception - when the given size is negative - it raises an exception - .realdirpath - when a middle part of the given path does not exist - raises an exception - when the path contains useless dots - returns the path with the useless dots interpolated - when the path does not contain any symlink or useless dots - returns the path itself - when the path contains a symlink - and the symlink is the last part - returns the path with the symlink dereferrenced - and the symlink is a middle part - returns the path with the symlink dereferrenced - 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 - when the given path is relative - and +dir_string+ is provided - uses the given directory has base directory - and +dir_string+ is not provided - uses the current working directory has base directory - when the last part of the given path does not exist - uses its name in the resulting path - .setuid? + when +dir_string+ is given + uses it as the starting point + .grpowned? when the named file does not exist returns false when the named file exists - and the named file does not have the setuid bit set - returns false - and the named file has the setuid bit set + and the effective user group does not own of the file + returns false (PENDING: Temporarily skipped with xit) + and the effective user group owns of the file returns true - .blockdev? - when the name file does not exist - returns false - when the name file exists - and it is a block device + .owned? + when the named file exists + and the effective user owns of the file returns true - and it is not a block device + and the effective user does not own of the file + returns false (PENDING: Temporarily skipped with xit) + when the named file does not exist + returns false + .sticky? + when the named file exists + returns true if the named file has the sticky bit set + returns false if the named file hasn’t the sticky bit set + when the named file does not exist + returns false + .size? + when the named file does not exist + returns false + when the named file exists + and it is not empty + returns the size of the file + and it is empty returns false + #print + converts any given object to string with to_s + appends the given object to the file + returns nil + when no argument is given + prints $_ (PENDING: I don't know how to test with $_) + when multiple objects are given + appends the given objects to the file + when the output record separator is not nil + inserts it at the end of the output + when the output field separator is not nil + inserts it between the objects + when the output record separator is nil + inserts nothing at the end of the output + when the is not opened for writing + raises an exception + when the output field separator is nil + inserts nothing between the objects #seek returns zero + when +whence+ is not provided + seeks to the absolute location given by +amount+ when +whence+ is IO::SEEK_CUR seeks to +amount+ plus current position + if the position ends up to be less than zero + raises an exception when +whence+ is IO::SEEK_END seeks to +amount+ plus end of stream when +whence+ is IO::SEEK_SET seeks to the absolute location given by +amount+ - if the position ends up to be less than zero - raises an exception - when +whence+ is not provided - seeks to the absolute location given by +amount+ when +whence+ is invalid raises an exception - #write - returns the number of bytes written - writes the given string to file - when the argument is not a string - will be converted to a string using to_s - when the file is not opened for writing - raises an exception - .setgid? + .file? when the named file does not exist returns false when the named file exists - and the named file has the setgid bit set - returns true - and the named file does not have the setgid bit set + and it is not a regular file returns false - #advise - returns nil - behaves like advise working - when the :random advise type is given - does not raise an error - behaves like advise working - when the :noreuse advise type is given - does not raise an error - behaves like advise working - when the :willneed advise type is given - does not raise an error - behaves like advise working - when the :sequential advise type is given - does not raise an error - behaves like advise working - when the :normal advise type is given - does not raise an error - when a wrong advise type is given - raises an exception - behaves like advise working - when the :dontneed advise type is given - does not raise an error - #bytes - behaves like aliased method - #each_byte - .umask - returns the current umask value for this process - when the optional argument is given - sets the umask to that value - return the previous value - .fnmatch? - behaves like aliased method - #fnmatch - .owned? - when the named file exists - and the effective user owns of the file + and it is a regular file returns true - and the effective user does not own of the file - returns false (PENDING: Temporarily skipped with xit) + .symlink + creates a symbolic link named new_name + creates a symbolic link that points to an entry named old_name + returns 0 + when the target does not exist + creates a symbolic link + .stat + always returns a new object + follows the last symbolic link + returns a File::Stat object for the named file + when the named file is a symlink + and its target does not exist + raises an exception when the named file does not exist - returns false - #close - closes the file stream - .dirname - returns all components of the filename given in +file_name+ except the last one - returns / if file_name is / - #<< - can be chained - writes the given string in the file - when the file is not opened for writing raises an exception - when the given object is not a string - converts the object to a string with to_s - #flock - returns zero - .link - creates a new name for an existing file using a hard link - returns zero - when +new_name+ already exists - raises an exception - when +old_name+ does not exist - raises an exception - .executable_real? - when the file is user executable - and the current user owns the file + .readable_real? + when the file is readable by anyone + and the user has no specific right on it returns true - when the file is group executable + when the file is group readable and the current user is part of the owner group returns true - when the file is not executable by anyone + when the file is user readable + and the current user owns the file + returns true + when the file is not readable by anyone return false when the file does not exist returns false - when the file is executable by anyone - and the user has no specific right on it - returns true + #printf + appends the string in the file + converts parameters under control of the format string + returns nil + #size + returns the size of the file + .split + splits the given string into a directory and a file component .socket? when the named file is not a socket returns false - .size? - when the named file exists - and it is empty - returns false - and it is not empty - returns the size of the file - when the named file does not exist - returns false - #puts - does not override the file’s content - appends content to the file - when the file is not writable - raises an exception - .ftype - when the named entry has no specific type - returns "unknown" - when the named entry is a symlink - returns "link" - when the named entry is a character device - returns "characterSpecial" - when the named entry is a block device - returns "blockSpecial" - when the named entry is a regular file - returns "file" - when the named entry is a directory - returns "directory" - -MemFs::FileSystem - #chown - ignores nil group id - ignores nil user id - changes the group of the named file to the given numeric group id - ignores -1 user id - ignores -1 group id - changes the owner of the named file to the given numeric owner id - when the named entry is a symlink - changes the group on the last target of the link chain - changes the owner on the last target of the link chain - doesn't change the group of the symlink - doesn't change the owner of the symlink - #rmdir - removes the given directory - when the directory is not empty - raises an exception - #rename - removes the old file - renames the given file to the new name - can move a file in another directory - #touch - creates a regular file for each named filed - creates an entry only if it doesn't exist - creates a regular file - when the named file already exists - sets the access time of the touched file - sets the modification time of the touched file - #entries - returns an array containing all of the filenames in the given directory - #paths - returns the list of all the existing paths - #clear! - sets the current directory to / - clear the registred entries - #chdir - changes the current working directory - raises an error if directory does not exist - raises an error if the destination is not a directory - when the destination is a symlink - sets current directory as the last link chain target - when a block is given - gets back to previous directory once the block is finished - changes current working directory for the block - #pwd - behaves like aliased method - #getwd - #getwd - returns the current working directory - #find - when the entry for the given path exists - returns the entry - when there is no entry for the given path - returns nil - when a part of the given path is a symlink - and the symlink's target exists - returns the entry - and the symlink's target does not exist - returns nil - #find_parent! - raises an error if the parent directory does not exist - returns the parent directory of the named entry - raises an error if the parent is not a directory - #find_directory! - raises an error if the named entry is not a directory - returns the named directory - #symlink - creates a symbolic link - when +new_name+ already exists - raises an exception - #new - creates the root directory - #find! - when the entry for the given path exists - returns the entry - when there is no entry for the given path - raises an exception - when a part of the given path is a symlink - and the symlink's target exists - returns the entry - and the symlink's target does not exist - raises an exception - #link - does not create a symbolic link - creates a hard link +dest+ that points to +src+ - when +new_name+ already exists - raises an exception - #mkdir - sets directory permissions to default 0777 - creates a directory - when the directory already exists - raises an exception - when a relative path is given - creates a directory in current directory - when permissions are specified - sets directory permission to specified value - #unlink - deletes the named file - when the entry is a directory - raises an exception - #chmod - changes permission bits on the named file - when the named file is a symlink - changes the permission bits on the symlink itself - -MemFs::Dir - is Enumerable - .new - when the given directory doesn't exist - raises an exception - when the given path is not a directory - raises an exception - .delete - behaves like aliased method - #rmdir - #path - returns the path parameter passed to dir's constructor - .home - returns the home directory of the current user (PENDING: Temporarily skipped with xit) - when a username is given - returns the home directory of the given user (PENDING: Temporarily skipped with xit) - .mkdir - creates a directory - sets directory permissions to default 0777 - when permissions are specified - sets directory permissions to specified value - when the directory already exist - raises an exception - .foreach - when no block is given - returns an enumerator - and the given path is not a directory - returns an enumerator - and the directory doesn't exist - returns an enumerator - when a block is given - passes each entry as a parameter to the block - calls the block once for each entry in the named directory - and the directory doesn't exist - raises an exception - and the given path is not a directory - raises an exception - .chroot - returns zero - changes the process's idea of the file system root - when the user is not root - raises an exception - when the given path doesn't exist - raises an exception - when the given path is a file - raises an exception - #read - reads the next entry from dir and returns it - when there are no entries left - returns nil - when calling several times - returns the next entry each time - #close - closes the directory - #pos= - returns the given position - seeks to a particular location in dir - when the location is negative - doesn't change the location - when the location has not been seeked yet - doesn't change the location - .pwd - behaves like aliased method - #getwd - .open - when the given directory doesn't exist - raises an exception - when the given path is not a directory - raises an exception - when no block is given - returns the opened directory - when a block is given - returns nil - calls the block with the opened directory as argument - ensures the directory is closed - .tmpdir - returns /tmp - #to_path - returns the path parameter passed to dir's constructor - .exist? - behaves like aliased method - #exists? - .entries - returns an array containing all of the filenames in the given directory - .chdir - changes the current working directory - raises an error when the folder does not exist - returns zero - when a block is given - changes current working directory for the block - gets back to previous directory once the block is finished - .rmdir - deletes the named directory - when the directory is not empty - raises an exception - .unlink - behaves like aliased method - #rmdir - .exists? - returns true if the given +path+ exists and is a directory - returns false if the given +path+ is not a directory - returns false if the given +path+ does not exist - #each - calls the block once for each entry in this directory - passes the filename of each entry as a parameter to the block - when no block is given - returns an enumerator - #rewind - returns the dir itself - repositions dir to the first entry - .getwd - returns the path to the current working directory - #seek - seeks to a particular location in dir - returns the dir itself - when the location has not been seeked yet - doesn't change the location - when the location is negative - doesn't change the location - [] - when a list of strings is given - acts like calling glob - when a string is given - acts like calling glob - #pos - returns the current position in dir - .glob - behaves like returning matching filenames - with / - behaves like returning matching filenames - with /test* - behaves like returning matching filenames - with /test0 - behaves like returning matching filenames - with /* - behaves like returning matching filenames - with /* - behaves like returning matching filenames - with /test? - when a block is given - calls the block with every matching filenames - returns nil - behaves like returning matching filenames - with /*0 - behaves like returning matching filenames - with /test{1,2} - behaves like returning matching filenames - with /test[^2] - behaves like returning matching filenames - with /*es* - when pattern is an array of patterns - returns the list of files matching any pattern - behaves like returning matching filenames - with / - behaves like returning matching filenames - with /**/file0 - behaves like returning matching filenames - with /test[01] - when a flag is given - uses it to compare filenames - #tell - returns the current position in dir - -MemFs::Fake::File - stores the modification made on its content - #content - returns the file content - when the file is empty - returns an empty string container - #close - sets the file as closed? - #type - when the file is a character device - returns 'characterSpecial' - when the file is a regular file - returns 'file' - when the file is a block device - returns 'blockSpecial' - -MemFs::Fake::Entry - #delete - removes the entry from its parent - .new - extract its name from the path passed as argument - sets an empty string as name if none is given - sets its default uid to the current user's uid - sets the access time - sets the modification time - sets its default gid to the current user's gid - sets atime and mtime to the same value - behaves like it has accessors for - parent - behaves like it has accessors for - atime - #find - raises an error - #dev - returns an integer representing the device on which the entry resides - #dereferenced_path - returns the entry path - #dereferenced_name - returns the entry name - behaves like it has accessors for - gid - #ino - Returns the inode number for the entry - #path - returns the complete path of the entry - behaves like it has accessors for - mode - behaves like it has accessors for - block_device - behaves like it has accessors for - character_device - paths - returns an array containing the entry path - #touch - sets the modification time to now - sets the access time to now - #type - returns 'unknown - behaves like it has accessors for - name - behaves like it has accessors for - uid - #dereferenced - returns the entry itself - behaves like it has accessors for - ctime - behaves like it has accessors for - mtime - -MemFs::Fake::Symlink - #dereferenced_name - when the symlink's target does not exist - returns its target name - when the symlink's target exists - returns its target name - #type - returns 'link' - #find - when the symlink's target does not exist - returns nil - when the symlink's target exists - forwards the search to it - #dereferenced_path - when the symlink's target exists - returns its target path - when the symlink's target does not exist - raises an exception - #dereferenced - returns the target if it's not a symlink - returns the last target of the chain - #target - returns the target of the symlink - #content - returns the target's content - -MemFs::Fake::File::Content - #<< - writes the given string to the contained string - #puts - appends all given strings to the contained string - appends the given string to the contained string - when a line break is present at the end of the given string - doesn't add any line break - when initialized with a string argument - #pos - when the string has not been read - returns 0 - when the string has been read - returns the current offset - #read - reads +length+ bytes from the contained string - when the optional +buffer+ argument is provided - inserts the output in the buffer - when there is nothing else to read - returns nil - #close - responds to close - #write - returns the number of bytes written - writes the given string in content - when the argument is not a string - converts it to a string - when the argument is a non-ascii string - returns the correct number of bytes written - #truncate - truncates the content to length characters - #to_s - when the content is empty - returns an empty string - when the content is not empty - returns the content's string - #initialize - when no argument is given - initialize the contained string to an empty one - when an argument is given - when the argument is not a string - converts it to a string - when the argument is a string - duplicates the original string to prevent modifications on it - initialize the contained string with the given one + .utime + sets the access time of each named file to the first argument + raises en error if the entry does not exist + sets the modification time of each named file to the second argument + returns the number of file names in the argument list MemFs::File::Stat #entry returns the comcerned entry - #readable_real? - when the file is readable by anyone - and the user has no specific right on it - returns true - when the file is group readable - and the current user is part of the owner group - returns true - when the file does not exist + .new + when optional dereference argument is set to true + when the last target of the link chain does not exist + raises an exception + #world_reable? + when +file_name+ is readable by others + returns an integer representing the file permission bits of +file_name+ + when +file_name+ is not readable by others + returns nil + #zero? + when the file does not have a zero size returns false - when the file is not readable by anyone - return false - when the file is user readable - and the current user owns the file - returns true - #symlink? - when dereference is true - when the entry is not a symlink - returns false - when the entry is a symlink - returns false - when dereference is false - when the entry is a symlink - returns true - when the entry is not a symlink - returns false - #grpowned? - when the effective user group owns of the file + when the file has a zero size returns true - when the effective user group does not own of the file - returns false (PENDING: Temporarily skipped with xit) - #readable? - when the file is group readable - and the current user is part of the owner group - returns true - when the file is readable by anyone + #executable? + when the file is executable by anyone and the user has no specific right on it returns true - when the file is not readable by anyone + when the file is not executable by anyone return false - when the file is user readable - and the current user owns the file - returns true - #mode - returns an integer representing the permission bits of stat - #writable_real? when the file does not exist returns false - when the file is not executable by anyone - return false - when the file is executable by anyone - and the user has no specific right on it - returns true when the file is user executable and the current user owns the file returns true when the file is group executable and the current user is part of the owner group returns true - #pipe? - when the file is not a pipe - returns false - #blksize - returns the block size of the file - #dev - returns an integer representing the device on which stat resides - #world_reable? - when +file_name+ is not readable by others - returns nil - when +file_name+ is readable by others - returns an integer representing the file permission bits of +file_name+ - #gid - returns the group id of the named entry - #writable? - when the file is executable by anyone + #ino + returns the inode number for stat. + #readable? + when the file is not readable by anyone + return false + when the file is user readable + and the current user owns the file + returns true + when the file is readable by anyone and the user has no specific right on it returns true - when the file is group executable + when the file is group readable and the current user is part of the owner group returns true - when the file does not exist + #socket? + when the file is not a socket returns false - when the file is user executable - and the current user owns the file - returns true - when the file is not executable by anyone - return false - #setuid? - when the file has the setuid bit set + #sticky? + returns false if the named file hasn't' the sticky bit set + returns true if the named file has the sticky bit set + #grpowned? + when the effective user group does not own of the file + returns false (PENDING: Temporarily skipped with xit) + when the effective user group owns of the file returns true - when the file does not have the setuid bit set + #pipe? + when the file is not a pipe returns false #owned? when the effective user does not own of the file returns false (PENDING: Temporarily skipped with xit) when the effective user owns of the file returns true - #ftype - when the entry is a character device - returns 'characterSpecial' - when the entry has no specific type - returns 'unknown' - when the entry is a block device - returns 'blockSpecial' - when the entry is a regular file - returns 'file' - when the entry is a symlink - returns 'link' - when the entry is a directory - returns 'directory' - #blockdev? - when the file is a block device - returns true - when the file is not a block device - returns false - #ctime + #atime returns the access time of the entry when the entry is a symlink - and the optional dereference argument is true - returns the access time of the last target of the link chain and the optional dereference argument is false returns the access time of the symlink itself - #sticky? - returns true if the named file has the sticky bit set - returns false if the named file hasn't' the sticky bit set - #socket? - when the file is not a socket + and the optional dereference argument is true + returns the access time of the last target of the link chain + #setuid? + when the file does not have the setuid bit set returns false - #world_writable? - when +file_name+ is not writable by others - returns nil - when +file_name+ is writable by others - returns an integer representing the file permission bits of +file_name+ + when the file has the setuid bit set + returns true + #uid + returns the user id of the named entry #directory? when dereference is false + when the entry is a directory + returns true when the entry is not a directory returns false when the entry is a symlink @@ -2457,47 +2275,67 @@ returns false and the last target of the link chain is not a directory returns false - when the entry is a directory - returns true when dereference is true when the entry is not a directory returns false when the entry is a directory returns true when the entry is a symlink - and the last target of the link chain is not a directory - returns false and the last target of the link chain is a directory returns true - #uid - returns the user id of the named entry - #executable_real? + and the last target of the link chain is not a directory + returns false + #writable? when the file is not executable by anyone return false + when the file is group executable + and the current user is part of the owner group + returns true + when the file is executable by anyone + and the user has no specific right on it + returns true + when the file does not exist + returns false when the file is user executable and the current user owns the file returns true + #mode + returns an integer representing the permission bits of stat + #writable_real? when the file does not exist returns false + when the file is executable by anyone + and the user has no specific right on it + returns true + when the file is not executable by anyone + return false when the file is group executable and the current user is part of the owner group returns true + when the file is user executable + and the current user owns the file + returns true + #setgid? + when the file has the setgid bit set + returns true + when the file does not have the setgid bit set + returns false + #dev + returns an integer representing the device on which stat resides + #executable_real? when the file is executable by anyone and the user has no specific right on it returns true - #ino - returns the inode number for stat. - #atime - returns the access time of the entry - when the entry is a symlink - and the optional dereference argument is false - returns the access time of the symlink itself - and the optional dereference argument is true - returns the access time of the last target of the link chain - .new - when optional dereference argument is set to true - when the last target of the link chain does not exist - raises an exception + when the file does not exist + returns false + when the file is group executable + and the current user is part of the owner group + returns true + when the file is user executable + and the current user owns the file + returns true + when the file is not executable by anyone + return false #chardev? when the file is a character device returns true @@ -2506,141 +2344,347 @@ #file? when dereference is false when the entry is a symlink - and the last target of the link chain is not a regular file - returns false and the last target of the link chain is a regular file returns false + and the last target of the link chain is not a regular file + returns false when the entry is a regular file returns true when the entry is not a regular file returns false when dereference is true + when the entry is not a regular file + returns false when the entry is a symlink - and the last target of the link chain is a regular file - returns true and the last target of the link chain is not a regular file returns false + and the last target of the link chain is a regular file + returns true when the entry is a regular file returns true - when the entry is not a regular file - returns false - #zero? - when the file does not have a zero size + #blksize + returns the block size of the file + #blockdev? + when the file is not a block device returns false - when the file has a zero size + when the file is a block device returns true - #executable? - when the file is not executable by anyone + #readable_real? + when the file is not readable by anyone return false - when the file is user executable - and the current user owns the file - returns true when the file does not exist returns false - when the file is executable by anyone + when the file is readable by anyone and the user has no specific right on it returns true - when the file is group executable + when the file is group readable and the current user is part of the owner group returns true - #setgid? - when the file does not have the setgid bit set - returns false - when the file has the setgid bit set - returns true + when the file is user readable + and the current user owns the file + returns true + #symlink? + when dereference is true + when the entry is not a symlink + returns false + when the entry is a symlink + returns false + when dereference is false + when the entry is a symlink + returns true + when the entry is not a symlink + returns false + #ftype + when the entry is a block device + returns 'blockSpecial' + when the entry is a character device + returns 'characterSpecial' + when the entry is a regular file + returns 'file' + when the entry has no specific type + returns 'unknown' + when the entry is a symlink + returns 'link' + when the entry is a directory + returns 'directory' + #gid + returns the group id of the named entry + #ctime + returns the access time of the entry + when the entry is a symlink + and the optional dereference argument is false + returns the access time of the symlink itself + and the optional dereference argument is true + returns the access time of the last target of the link chain + #world_writable? + when +file_name+ is not writable by others + returns nil + when +file_name+ is writable by others + returns an integer representing the file permission bits of +file_name+ -MemFs - .activate! - replaces Ruby File class with a fake one - replaces Ruby Dir class with a fake one - .activate - calls the given block with MemFs activated - resets the original classes once finished - deactivates MemFs even when an exception occurs - .deactivate! - sets back the Ruby File class to the original one - sets back the Ruby Dir class to the original one - .touch - creates the specified file - when the parent folder do not exist - creates them all - when several files are specified - creates every file - .halt - maintains the state of the faked fs - switches back to the original Ruby Dir & File classes - switches back to the faked Dir & File classes no matter what - switches back to the faked Dir & File classes +MemFs::Fake::File::Content + #<< + writes the given string to the contained string + #to_s + when the content is not empty + returns the content's string + when the content is empty + returns an empty string + #initialize + when no argument is given + initialize the contained string to an empty one + when an argument is given + when the argument is not a string + converts it to a string + when the argument is a string + initialize the contained string with the given one + duplicates the original string to prevent modifications on it + #truncate + truncates the content to length characters + #puts + appends the given string to the contained string + appends all given strings to the contained string + when a line break is present at the end of the given string + doesn't add any line break + when initialized with a string argument + #close + responds to close + #read + reads +length+ bytes from the contained string + when the optional +buffer+ argument is provided + inserts the output in the buffer + when there is nothing else to read + returns nil + #pos + when the string has not been read + returns 0 + when the string has been read + returns the current offset + #write + writes the given string in content + returns the number of bytes written + when the argument is not a string + converts it to a string + when the argument is a non-ascii string + returns the correct number of bytes written -MemFs::Fake::Directory +MemFs::Fake::File + stores the modification made on its content #type - returns 'directory' - #paths - returns the path of the directory and its entries recursively - #parent= - sets the parent directory - sets the .. entry in entries list - empty? - returns true if the directory is empty - returns false if the directory is not empty - #add_entry - sets the parent of the added entry - adds the entry to the entries list - #path - returns the directory path - when the directory is / - returns / - #find - calls find on the next directory in the search chain - should remove any trailing / in the path - returns the named entry if it is one of the entries - should remove any leading / in the path - #entry_names - returns the list of the names of the entries in the directory - #remove_entry - removes an entry from the entries list + when the file is a character device + returns 'characterSpecial' + when the file is a block device + returns 'blockSpecial' + when the file is a regular file + returns 'file' + #content + returns the file content + when the file is empty + returns an empty string container + #close + sets the file as closed? + +MemFs::Dir + is Enumerable + .getwd + returns the path to the current working directory + #seek + returns the dir itself + seeks to a particular location in dir + when the location is negative + doesn't change the location + when the location has not been seeked yet + doesn't change the location .new - sets .. in the entries list - sets . in the entries list + when the given path is not a directory + raises an exception + when the given directory doesn't exist + raises an exception + #pos= + seeks to a particular location in dir + returns the given position + when the location is negative + doesn't change the location + when the location has not been seeked yet + doesn't change the location + .rmdir + deletes the named directory + when the directory is not empty + raises an exception + #path + returns the path parameter passed to dir's constructor + #tell + returns the current position in dir + .glob + behaves like returning matching filenames + with /test? + when a block is given + calls the block with every matching filenames + returns nil + behaves like returning matching filenames + with / + behaves like returning matching filenames + with /**/file0 + when pattern is an array of patterns + returns the list of files matching any pattern + behaves like returning matching filenames + with /test[01] + behaves like returning matching filenames + with /*0 + behaves like returning matching filenames + with /* + behaves like returning matching filenames + with /test{1,2} + behaves like returning matching filenames + with /*es* + behaves like returning matching filenames + with /test* + behaves like returning matching filenames + with /* + behaves like returning matching filenames + with /test[^2] + behaves like returning matching filenames + with /test0 + behaves like returning matching filenames + with / + when a flag is given + uses it to compare filenames + #pos + returns the current position in dir + .foreach + when no block is given + returns an enumerator + and the directory doesn't exist + returns an enumerator + and the given path is not a directory + returns an enumerator + when a block is given + calls the block once for each entry in the named directory + passes each entry as a parameter to the block + and the directory doesn't exist + raises an exception + and the given path is not a directory + raises an exception + .entries + returns an array containing all of the filenames in the given directory + .home + returns the home directory of the current user (PENDING: Temporarily skipped with xit) + when a username is given + returns the home directory of the given user (PENDING: Temporarily skipped with xit) + #each + passes the filename of each entry as a parameter to the block + calls the block once for each entry in this directory + when no block is given + returns an enumerator + .chroot + changes the process's idea of the file system root + returns zero + when the user is not root + raises an exception + when the given path is a file + raises an exception + when the given path doesn't exist + raises an exception + #rewind + returns the dir itself + repositions dir to the first entry + .delete + behaves like aliased method + #rmdir + .exists? + returns true if the given +path+ exists and is a directory + returns false if the given +path+ does not exist + returns false if the given +path+ is not a directory + #close + closes the directory + #to_path + returns the path parameter passed to dir's constructor + .tmpdir + returns /tmp + .unlink + behaves like aliased method + #rmdir + .pwd + behaves like aliased method + #getwd + #read + reads the next entry from dir and returns it + when there are no entries left + returns nil + when calling several times + returns the next entry each time + [] + when a list of strings is given + acts like calling glob + when a string is given + acts like calling glob + .exist? + behaves like aliased method + #exists? + .mkdir + sets directory permissions to default 0777 + creates a directory + when permissions are specified + sets directory permissions to specified value + when the directory already exist + raises an exception + .chdir + changes the current working directory + returns zero + raises an error when the folder does not exist + when a block is given + gets back to previous directory once the block is finished + changes current working directory for the block + .open + when a block is given + ensures the directory is closed + calls the block with the opened directory as argument + returns nil + when the given path is not a directory + raises an exception + when the given directory doesn't exist + raises an exception + when no block is given + returns the opened directory Pending: (Failures listed here are expected and do not affect your suite's status) - 1) MemFs::File#print when no argument is given prints $_ - # I don't know how to test with $_ - # ./spec/memfs/file_spec.rb:2550 + 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:1869 2) MemFs::File.grpowned? when the named file exists and the effective user group does not own of the file returns false # Temporarily skipped with xit # ./spec/memfs/file_spec.rb:626 - 3) MemFs::File.write when +offset+ is provided starts writing from the offset - # Offsets not yet implemented in IO.write - # ./spec/memfs/file_spec.rb:1869 - - 4) MemFs::File.owned? when the named file exists and the effective user does not own of the file returns false + 3) MemFs::File.owned? when the named file exists and the effective user does not own of the file returns false # Temporarily skipped with xit # ./spec/memfs/file_spec.rb:943 - 5) MemFs::Dir.home returns the home directory of the current user + 4) MemFs::File#print when no argument is given prints $_ + # I don't know how to test with $_ + # ./spec/memfs/file_spec.rb:2550 + + 5) MemFs::File::Stat#grpowned? when the effective user group does not own of the file returns false # Temporarily skipped with xit - # ./spec/memfs/dir_spec.rb:252 + # ./spec/memfs/file/stat_spec.rb:443 - 6) MemFs::Dir.home when a username is given returns the home directory of the given user + 6) MemFs::File::Stat#owned? when the effective user does not own of the file returns false # Temporarily skipped with xit - # ./spec/memfs/dir_spec.rb:257 + # ./spec/memfs/file/stat_spec.rb:472 - 7) MemFs::File::Stat#grpowned? when the effective user group does not own of the file returns false + 7) MemFs::Dir.home returns the home directory of the current user # Temporarily skipped with xit - # ./spec/memfs/file/stat_spec.rb:443 + # ./spec/memfs/dir_spec.rb:252 - 8) MemFs::File::Stat#owned? when the effective user does not own of the file returns false + 8) MemFs::Dir.home when a username is given returns the home directory of the given user # Temporarily skipped with xit - # ./spec/memfs/file/stat_spec.rb:472 + # ./spec/memfs/dir_spec.rb:257 -Finished in 0.39468 seconds (files took 0.40672 seconds to load) +Finished in 0.57105 seconds (files took 0.78777 seconds to load) 800 examples, 0 failures, 8 pending -Randomized with seed 13535 +Randomized with seed 6643 [Coveralls] Outside the CI environment, not sending data. @@ -2672,12 +2716,14 @@ dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/5743/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/5743/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/49782 and its subdirectories -I: Current time: Thu Jul 16 05:29:34 -12 2020 -I: pbuilder-time-stamp: 1594920574 +I: removing directory /srv/workspace/pbuilder/5743 and its subdirectories +I: Current time: Sat Jun 15 01:20:56 +14 2019 +I: pbuilder-time-stamp: 1560511256