Hello community,

here is the log from the commit of package bindfs for openSUSE:Factory checked 
in at 2016-03-21 12:45:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bindfs (Old)
 and      /work/SRC/openSUSE:Factory/.bindfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bindfs"

Changes:
--------
--- /work/SRC/openSUSE:Factory/bindfs/bindfs.changes    2015-11-15 
12:48:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.bindfs.new/bindfs.changes       2016-03-21 
12:45:34.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Mar 12 21:10:37 UTC 2016 - jeng...@inai.de
+
+- Update to new upstream release 1.13.1
+* Fixed an issue that some users had with reading large directories.
+* Source directory now shown in /etc/mtab.
+* Fixed some test suite compatibility issues with Fedora.
+* Rate limits are now expressed as 64-bit ints.
+
+-------------------------------------------------------------------

Old:
----
  bindfs-1.13.0.tar.gz

New:
----
  bindfs-1.13.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bindfs.spec ++++++
--- /var/tmp/diff_new_pack.iTmvWX/_old  2016-03-21 12:45:35.000000000 +0100
+++ /var/tmp/diff_new_pack.iTmvWX/_new  2016-03-21 12:45:35.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package bindfs
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           bindfs
-Version:        1.13.0
+Version:        1.13.1
 Release:        0
 Summary:        Mount Directories to other Locations and alter Permission Bits
 License:        GPL-2.0+

++++++ bindfs-1.13.0.tar.gz -> bindfs-1.13.1.tar.gz ++++++
++++ 1752 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/.travis.yml new/bindfs-1.13.1/.travis.yml
--- old/bindfs-1.13.0/.travis.yml       1970-01-01 01:00:00.000000000 +0100
+++ new/bindfs-1.13.1/.travis.yml       2016-02-17 04:52:01.000000000 +0100
@@ -0,0 +1,11 @@
+language: c
+sudo: required
+dist: trusty
+compiler:
+  - clang
+  - gcc
+script: ./autogen.sh -d && make && sudo make check
+before_install:
+  - sudo apt-get update
+  - sudo apt-get install -qq fuse libfuse-dev valgrind
+  - sudo /bin/sh -c 'echo user_allow_other > /etc/fuse.conf'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/ChangeLog new/bindfs-1.13.1/ChangeLog
--- old/bindfs-1.13.0/ChangeLog 2015-09-27 00:11:40.000000000 +0200
+++ new/bindfs-1.13.1/ChangeLog 2016-02-17 04:52:01.000000000 +0100
@@ -1,6 +1,15 @@
+2016-02-17  Martin Pärtel <martin dot partel at gmail dot com>
+
+       * Fixed an issue that some users had with reading large
+         directories (#28). Thanks to reporters!
+       * Source directory now shown in /etc/mtab.
+       * Fixed some test suite compatibility issues with Fedora. Thanks @tyll!
+       * Rate limits are now expressed as 64-bit ints.
+       * Released 1.13.1
+
 2015-09-26  Martin Pärtel <martin dot partel at gmail dot com>
 
-       * Merged --resolve-symlinks by hstern@ (#23). Thanks!
+       * Merged --resolve-symlinks by @hstern (#23). Thanks!
        * Implemented --resolved-symlink-deletion.
        * Released 1.13.0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/README new/bindfs-1.13.1/README
--- old/bindfs-1.13.0/README    2015-09-27 00:11:40.000000000 +0200
+++ new/bindfs-1.13.1/README    1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-
-bindfs  -  http://bindfs.org/
-
--- Overview --
-
-bindfs is a FUSE filesystem for mirroring a directory to another
-directory, similarly to mount --bind. The permissions of the mirrored
-directory can be altered in various ways.
-
-Some things bindfs can be used for:
- - Making a directory read-only.
- - Making all executables non-executable.
- - Sharing a directory with a list of users (or groups).
- - Modifying permission bits using rules with chmod-like syntax.
- - Changing the permissions with which files are created.
-
-Non-root users can use almost all features, but most interesting
-use-cases need user_allow_other to be defined in /etc/fuse.conf
-
-
--- Installation --
-
-Make sure fuse 2.6.0 or above is installed (http://fuse.sf.net/).
-Then compile and install as usual:
-./configure
-make
-make install
-
-If you want the mounts made by non-root users to be visible to other users,
-you may have to add the line user_allow_other to /etc/fuse.conf.
-
-
--- Usage --
-
-See the bindfs --help or the man-page for instructions and examples.
-
--- OS X note --
-
-The following extra options may be useful under osxfuse:
--o local,allow_other,extended_security,noappledouble
-
-See https://github.com/osxfuse/osxfuse/wiki/Mount-options for details.
-
--- License --
-
-GNU General Public License version 2 or any later version.
-See the file COPYING.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/README.md new/bindfs-1.13.1/README.md
--- old/bindfs-1.13.0/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/bindfs-1.13.1/README.md 2016-02-17 04:52:01.000000000 +0100
@@ -0,0 +1,67 @@
+
+## Overview ##
+
+bindfs  -  http://bindfs.org/
+
+bindfs is a FUSE filesystem for mirroring a directory to another
+directory, similarly to `mount --bind`. The permissions of the mirrored
+directory can be altered in various ways.
+
+Some things bindfs can be used for:
+- Making a directory read-only.
+- Making all executables non-executable.
+- Sharing a directory with a list of users (or groups).
+- Modifying permission bits using rules with chmod-like syntax.
+- Changing the permissions with which files are created.
+
+Non-root users can use almost all features, but most interesting
+use-cases need `user_allow_other` to be defined in `/etc/fuse.conf`.
+
+
+## Installation ##
+
+Make sure FUSE 2.6.0 or above is installed (http://fuse.sf.net/).
+Then compile and install as usual:
+
+    ./configure
+    make
+    make install
+
+If you want the mounts made by non-root users to be visible to other users,
+you may have to add the line `user_allow_other` to `/etc/fuse.conf`.
+
+In Linux-based OSes, you may have to add your user to the `fuse` group.
+
+
+## Usage ##
+
+See the `bindfs --help` or the man-page for instructions and examples.
+
+
+## OS X note ##
+
+The following extra options may be useful under osxfuse:
+
+    -o local,allow_other,extended_security,noappledouble
+
+See https://github.com/osxfuse/osxfuse/wiki/Mount-options for details.
+
+
+## Test suite ##
+
+[![Build 
Status](https://travis-ci.org/mpartel/bindfs.svg?branch=master)](https://travis-ci.org/mpartel/bindfs)
+
+Bindfs comes with a (somewhat brittle and messy) test suite.
+The test suite has two kinds of tests: those that have to be run as root and
+those that have to be run as non-root. To run all of the tests, do
+`make check` both as root and as non-root.
+
+The test suite requires Ruby 2.0+ (1.9+ might also work). If you're using
+[RVM](https://rvm.io/) then you may need to use `rvmsudo` instead of plain
+`sudo` to run the root tests.
+
+
+## License ##
+
+GNU General Public License version 2 or any later version.
+See the file COPYING.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/configure.ac new/bindfs-1.13.1/configure.ac
--- old/bindfs-1.13.0/configure.ac      2015-09-27 00:11:40.000000000 +0200
+++ new/bindfs-1.13.1/configure.ac      2016-02-17 04:52:01.000000000 +0100
@@ -1,6 +1,6 @@
-AC_INIT([bindfs],[1.13.0],[martin.par...@gmail.com])
+AC_INIT([bindfs],[1.13.1],[martin.par...@gmail.com])
 
-AM_INIT_AUTOMAKE([foreign])
+AM_INIT_AUTOMAKE([foreign serial-tests])
 AC_CONFIG_HEADERS([config.h])
 
 AC_PROG_CC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/src/bindfs.c new/bindfs-1.13.1/src/bindfs.c
--- old/bindfs-1.13.0/src/bindfs.c      2015-09-27 00:11:40.000000000 +0200
+++ new/bindfs-1.13.1/src/bindfs.c      2016-02-17 04:52:01.000000000 +0100
@@ -36,6 +36,8 @@
 
 /* For stat() nanosecond precision and lutimes() */
 #define _BSD_SOURCE
+/* The new non-deprecated version of _BSD_SOURCE */
+#define _DEFAULT_SOURCE
 
 #include <stdlib.h>
 #include <stddef.h>
@@ -606,8 +608,17 @@
         memset(&st, 0, sizeof(st));
         st.st_ino = de->d_ino;
         st.st_mode = de->d_type << 12;
-        if (filler(buf, de->d_name, &st, telldir(dp)))
+
+        // See issue #28 for why we pass a 0 offset to `filler`.
+        // Given a 0 offset, `filler` should never return non-zero, so we
+        // consider it an error if it does. It is undocumented whether it sets
+        // errno in that case, so we zero it first and set it ourself if it
+        // doesn't.
+        errno = 0;
+        if (filler(buf, de->d_name, &st, 0) != 0) {
+            result = errno != 0 ? -errno : -EIO;
             break;
+        }
     }
 
     free(de_buf);
@@ -1991,6 +2002,13 @@
     fuse_opt_add_arg(&args, "-ouse_ino");
     fuse_opt_add_arg(&args, "-oreaddir_ino");
 
+    /* Show the source dir in the first field on /etc/mtab. */
+    {
+        char *tmp = sprintf_new("-ofsname=%s", settings.mntsrc);
+        fuse_opt_add_arg(&args, tmp);
+        free(tmp);
+    }
+
     /* We need to disable the attribute cache whenever two users
        can see different attributes. For now, only mirroring can do that. */
     if (is_mirroring_enabled()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/src/misc.c new/bindfs-1.13.1/src/misc.c
--- old/bindfs-1.13.0/src/misc.c        2015-09-27 00:11:40.000000000 +0200
+++ new/bindfs-1.13.1/src/misc.c        2016-02-17 04:52:01.000000000 +0100
@@ -18,6 +18,8 @@
 */
 
 #include "misc.h"
+#include <stdarg.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -68,6 +70,31 @@
     }
 }
 
+char *sprintf_new(const char *format, ...)
+{
+    va_list ap;
+    size_t buffer_size = strlen(format) + 32;
+    char *buffer = malloc(buffer_size);
+    if (buffer == NULL) {
+        return NULL;
+    }
+
+    while (1) {
+        va_start(ap, format);
+        size_t len = (size_t)vsnprintf(buffer, buffer_size, format, ap);
+        va_end(ap);
+        if (len < buffer_size) {
+            return buffer;
+        }
+        free(buffer);
+        buffer_size *= 2;
+        buffer = malloc(buffer_size);
+        if (buffer == NULL) {
+            return NULL;
+        }
+    }
+}
+
 const char *my_basename(const char *path)
 {
     const char *p;
@@ -125,7 +152,7 @@
 {
     char* end;
     double base = strtod(str, &end);
-    long mul = 1;
+    long long mul = 1;
     if (*end == '\0') {
         mul = 1L;
     } else if (strcmp(end, "k") == 0) {
@@ -135,7 +162,7 @@
     } else if (strcmp(end, "G") == 0) {
         mul = 1024L * 1024L * 1024L;
     } else if (strcmp(end, "T") == 0) {
-        mul = 1024L * 1024L * 1024L * 1024L;
+        mul = 1024LL * 1024LL * 1024LL * 1024LL;
     } else {
         return 0;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/src/misc.h new/bindfs-1.13.1/src/misc.h
--- old/bindfs-1.13.0/src/misc.h        2015-09-27 00:11:40.000000000 +0200
+++ new/bindfs-1.13.1/src/misc.h        2016-02-17 04:52:01.000000000 +0100
@@ -31,6 +31,9 @@
    an end character is reached. */
 char *strdup_until(const char *s, const char *endchars);
 
+/* Like sprintf but writes to an automatically malloc'ed buffer. */
+char *sprintf_new(const char *format, ...);
+
 /* Returns a pointer to the first character after the
    final slash of path, or path itself if it contains no slashes.
    If the path ends with a slash, then the result is an empty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/test-driver new/bindfs-1.13.1/test-driver
--- old/bindfs-1.13.0/test-driver       2015-09-27 00:11:43.000000000 +0200
+++ new/bindfs-1.13.1/test-driver       1970-01-01 01:00:00.000000000 +0100
@@ -1,139 +0,0 @@
-#! /bin/sh
-# test-driver - basic testsuite driver script.
-
-scriptversion=2013-07-13.22; # UTC
-
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-autom...@gnu.org> or send patches to
-# <automake-patc...@gnu.org>.
-
-# Make unconditional expansion of undefined variables an error.  This
-# helps a lot in preventing typo-related bugs.
-set -u
-
-usage_error ()
-{
-  echo "$0: $*" >&2
-  print_usage >&2
-  exit 2
-}
-
-print_usage ()
-{
-  cat <<END
-Usage:
-  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
-              [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--]
-              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
-The '--test-name', '--log-file' and '--trs-file' options are mandatory.
-END
-}
-
-test_name= # Used for reporting.
-log_file=  # Where to save the output of the test script.
-trs_file=  # Where to save the metadata of the test run.
-expect_failure=no
-color_tests=no
-enable_hard_errors=yes
-while test $# -gt 0; do
-  case $1 in
-  --help) print_usage; exit $?;;
-  --version) echo "test-driver $scriptversion"; exit $?;;
-  --test-name) test_name=$2; shift;;
-  --log-file) log_file=$2; shift;;
-  --trs-file) trs_file=$2; shift;;
-  --color-tests) color_tests=$2; shift;;
-  --expect-failure) expect_failure=$2; shift;;
-  --enable-hard-errors) enable_hard_errors=$2; shift;;
-  --) shift; break;;
-  -*) usage_error "invalid option: '$1'";;
-   *) break;;
-  esac
-  shift
-done
-
-missing_opts=
-test x"$test_name" = x && missing_opts="$missing_opts --test-name"
-test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
-test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
-if test x"$missing_opts" != x; then
-  usage_error "the following mandatory options are missing:$missing_opts"
-fi
-
-if test $# -eq 0; then
-  usage_error "missing argument"
-fi
-
-if test $color_tests = yes; then
-  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
-  red='' # Red.
-  grn='' # Green.
-  lgn='' # Light green.
-  blu='' # Blue.
-  mgn='' # Magenta.
-  std=''     # No color.
-else
-  red= grn= lgn= blu= mgn= std=
-fi
-
-do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
-trap "st=129; $do_exit" 1
-trap "st=130; $do_exit" 2
-trap "st=141; $do_exit" 13
-trap "st=143; $do_exit" 15
-
-# Test script is run here.
-"$@" >$log_file 2>&1
-estatus=$?
-if test $enable_hard_errors = no && test $estatus -eq 99; then
-  estatus=1
-fi
-
-case $estatus:$expect_failure in
-  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
-  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
-  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
-  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
-  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
-  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
-esac
-
-# Report outcome to console.
-echo "${col}${res}${std}: $test_name"
-
-# Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trs_file
-echo ":global-test-result: $res" >> $trs_file
-echo ":recheck: $recheck" >> $trs_file
-echo ":copy-in-global-log: $gcopy" >> $trs_file
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/tests/internals/test_internals.c 
new/bindfs-1.13.1/tests/internals/test_internals.c
--- old/bindfs-1.13.0/tests/internals/test_internals.c  2015-09-27 
00:11:40.000000000 +0200
+++ new/bindfs-1.13.1/tests/internals/test_internals.c  2016-02-17 
04:52:01.000000000 +0100
@@ -52,4 +52,21 @@
     test_my_dirname(buf, "..");
 }
 
-TEST_MAIN(my_dirname_suite);
+void sprintf_new_suite() {
+    char *result;
+
+    result = sprintf_new("Hello %d %s", 123, "World");
+    TEST_ASSERT(strcmp(result, "Hello 123 World") == 0);
+    free(result);
+
+    result = sprintf_new("A %s", "loooooooooooooooooooooooooong result");
+    TEST_ASSERT(strcmp(result, "A loooooooooooooooooooooooooong result") == 0);
+    free(result);
+}
+
+void test_internal_suite() {
+    my_dirname_suite();
+    sprintf_new_suite();
+}
+
+TEST_MAIN(test_internal_suite);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/tests/test_bindfs.rb new/bindfs-1.13.1/tests/test_bindfs.rb
--- old/bindfs-1.13.0/tests/test_bindfs.rb      2015-09-27 00:11:40.000000000 
+0200
+++ new/bindfs-1.13.1/tests/test_bindfs.rb      2016-02-17 04:52:01.000000000 
+0100
@@ -36,7 +36,8 @@
 
 # Some useful shorthands
 $nobody_uid = nobody_uid = Etc.getpwnam('nobody').uid
-$nogroup_gid = nogroup_gid = Etc.getgrnam('nogroup').gid
+$nobody_gid = nobody_gid = Etc.getpwnam('nobody').gid
+$nobody_group = nobody_group = Etc.getgrgid(nobody_gid).name
 
 $tests_dir = File.dirname(File.realpath(__FILE__))
 
@@ -45,11 +46,11 @@
     assert { File.basename(pwd) == TESTDIR_NAME }
 end
 
-testenv("-u nobody -g nogroup") do
+testenv("-u nobody -g #{nobody_group}") do
     touch('src/file')
 
     assert { File.stat('mnt/file').uid == nobody_uid }
-    assert { File.stat('mnt/file').gid == nogroup_gid }
+    assert { File.stat('mnt/file').gid == nobody_gid }
 end
 
 testenv("-p 0600:u+D") do
@@ -73,24 +74,24 @@
 
 root_testenv("", :title => "--create-as-user should be default for root") do
   chmod(0777, 'src')
-  `sudo -u nobody -g nogroup touch mnt/file`
-  `sudo -u nobody -g nogroup mkdir mnt/dir`
-  `sudo -u nobody -g nogroup ln -sf /tmp/foo mnt/lnk`
+  `sudo -u nobody -g #{nobody_group} touch mnt/file`
+  `sudo -u nobody -g #{nobody_group} mkdir mnt/dir`
+  `sudo -u nobody -g #{nobody_group} ln -sf /tmp/foo mnt/lnk`
 
   assert { File.stat('mnt/file').uid == nobody_uid }
-  assert { File.stat('mnt/file').gid == nogroup_gid }
+  assert { File.stat('mnt/file').gid == nobody_gid }
   assert { File.stat('src/file').uid == nobody_uid }
-  assert { File.stat('src/file').gid == nogroup_gid }
+  assert { File.stat('src/file').gid == nobody_gid }
 
   assert { File.stat('mnt/dir').uid == nobody_uid }
-  assert { File.stat('mnt/dir').gid == nogroup_gid }
+  assert { File.stat('mnt/dir').gid == nobody_gid }
   assert { File.stat('src/dir').uid == nobody_uid }
-  assert { File.stat('src/dir').gid == nogroup_gid }
+  assert { File.stat('src/dir').gid == nobody_gid }
 
   assert { File.lstat('mnt/lnk').uid == nobody_uid }
-  assert { File.lstat('mnt/lnk').gid == nogroup_gid }
+  assert { File.lstat('mnt/lnk').gid == nobody_gid }
   assert { File.lstat('src/lnk').uid == nobody_uid }
-  assert { File.lstat('src/lnk').gid == nogroup_gid }
+  assert { File.lstat('src/lnk').gid == nobody_gid }
 end
 
 testenv("--create-with-perms=og=r:ogd+x") do
@@ -168,8 +169,8 @@
     mntfile = 'mnt/file'
     tests = [
         lambda { chown('nobody', nil, mntfile) },
-        lambda { chown(nil, 'nogroup', mntfile) },
-        lambda { chown('nobody', 'nogroup', mntfile) }
+        lambda { chown(nil, $nobody_group, mntfile) },
+        lambda { chown('nobody', $nobody_group, mntfile) }
     ]
 
     for testcase, expect in tests.zip expectations
@@ -185,16 +186,16 @@
                 case expect
                 when :uid
                     assert { uid == $nobody_uid }
-                    assert { gid != $nogroup_gid }
+                    assert { gid != $nobody_gid }
                 when :gid
                     assert { uid != $nobody_uid }
-                    assert { gid == $nogroup_gid }
+                    assert { gid == $nobody_gid }
                 when :both
                     assert { uid == $nobody_uid }
-                    assert { gid == $nogroup_gid }
+                    assert { gid == $nobody_gid }
                 when nil
                     assert { uid != $nobody_uid }
-                    assert { gid != $nogroup_gid }
+                    assert { gid != $nobody_gid }
                 end
             end
         end
@@ -211,16 +212,16 @@
     touch('src/file')
 
     assert_exception(EPERM) { chown('nobody', nil, 'mnt/file') }
-    assert_exception(EPERM) { chown('nobody', 'nogroup', 'mnt/file') }
-    chown(nil, 'nogroup', 'mnt/file')
+    assert_exception(EPERM) { chown('nobody', nobody_group, 'mnt/file') }
+    chown(nil, nobody_group, 'mnt/file')
 end
 
 root_testenv("--mirror=root") do
     touch('src/file')
-    chown('nobody', 'nogroup', 'src/file')
+    chown('nobody', nobody_group, 'src/file')
 
     assert { File.stat('mnt/file').uid == 0 }
-    assert { File.stat('mnt/file').gid == $nogroup_gid }
+    assert { File.stat('mnt/file').gid == $nobody_gid }
 end
 
 testenv("--chmod-allow-x --chmod-ignore") do
@@ -265,9 +266,9 @@
     assert { File.stat('src/file').mode & 0777 == 0640 }
 end
 
-root_testenv("--map=nobody/root:@nogroup/@root") do
+root_testenv("--map=nobody/root:@#{nobody_group}/@root") do
     touch('src/file')
-    chown('nobody', 'nogroup', 'src/file')
+    chown('nobody', nobody_group, 'src/file')
 
     assert { File.stat('mnt/file').uid == 0 }
     assert { File.stat('mnt/file').gid == 0 }
@@ -276,9 +277,9 @@
     mkdir('mnt/newdir')
 
     assert { File.stat('src/newfile').uid == $nobody_uid }
-    assert { File.stat('src/newfile').gid == $nogroup_gid }
+    assert { File.stat('src/newfile').gid == $nobody_gid }
     assert { File.stat('src/newdir').uid == $nobody_uid }
-    assert { File.stat('src/newdir').gid == $nogroup_gid }
+    assert { File.stat('src/newdir').gid == $nobody_gid }
 
     assert { File.stat('mnt/newfile').uid == 0 }
     assert { File.stat('mnt/newfile').gid == 0 }
@@ -286,9 +287,9 @@
     assert { File.stat('mnt/newdir').gid == 0 }
 end
 
-root_testenv("--map=@nogroup/@root") do
+root_testenv("--map=@#{nobody_group}/@root") do
     touch('src/file')
-    chown('nobody', 'nogroup', 'src/file')
+    chown('nobody', nobody_group, 'src/file')
 
     assert { File.stat('mnt/file').gid == 0 }
 end
@@ -360,14 +361,14 @@
 root_testenv("", :title => "setgid directories") do
     mkdir('mnt/dir')
     chmod("g+s", 'mnt/dir')
-    chown(nil, $nogroup_gid, 'mnt/dir')
+    chown(nil, $nobody_gid, 'mnt/dir')
 
     touch('mnt/dir/file')
 
     assert { File.stat('src/dir').mode & 07000 == 02000 }
-    assert { File.stat('src/dir/file').gid == $nogroup_gid }
+    assert { File.stat('src/dir/file').gid == $nobody_gid }
     assert { File.stat('mnt/dir').mode & 07000 == 02000 }
-    assert { File.stat('mnt/dir/file').gid == $nogroup_gid }
+    assert { File.stat('mnt/dir/file').gid == $nobody_gid }
 end
 
 testenv("", :title => "utimens on symlinks") do
@@ -558,6 +559,18 @@
   end
 end
 
+# Issue #28 reproduction attempt.
+testenv("", :title => "many files in a directory") do
+  mkdir('src/dir')
+  expected_entries = ['.', '..']
+  10000.times do |i|
+    touch("src/dir/#{i}")
+    expected_entries << i.to_s
+  end
+
+  assert { Dir.entries('mnt/dir').sort == expected_entries.sort }
+end
+
 # FIXME: this stuff around testenv is a hax, and testenv may also exit(), 
which defeats the 'ensure' below.
 # the test setup ought to be refactored. It might well use MiniTest or 
something.
 if Process.uid == 0
@@ -570,7 +583,7 @@
             chown('nobody', nil, 'src/file')
 
             assert { File.stat('mnt/file').uid == $nobody_uid }
-            `adduser root bindfs_test_group`
+            `usermod root -G bindfs_test_group -a`
             raise "Failed to add root to test group" if !$?.success?
 
             # Cache not refreshed yet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/bindfs-1.13.0/tests/utimens_nofollow.c 
new/bindfs-1.13.1/tests/utimens_nofollow.c
--- old/bindfs-1.13.0/tests/utimens_nofollow.c  2015-09-27 00:11:40.000000000 
+0200
+++ new/bindfs-1.13.1/tests/utimens_nofollow.c  2016-02-17 04:52:01.000000000 
+0100
@@ -1,5 +1,8 @@
 
-#define _BSD_SOURCE /* For atoll and lutimes */
+/* For atoll and lutimes */
+#define _BSD_SOURCE
+/* The new non-deprecated version of _BSD_SOURCE */
+#define _DEFAULT_SOURCE
 
 #include <config.h>
 #include <stdlib.h>


Reply via email to