aboutsummaryrefslogtreecommitdiffstats
path: root/test
AgeCommit message (Collapse)AuthorLines
2020-06-22Typo fixed. (#520)Seunghoon Yeon-1/+1
2020-05-15fix format in test (#515)Rosen Penev-1/+1
Fixes warning under 32-bit.
2020-03-13State GPL version in comment (#485)Dr. David Alan Gilbert-2/+2
IN a bunch of comments we say 'under the terms of the GNU GPL', make it clear this is GPLv2 (as LICENSE says). Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2020-02-24Travis-CI: Fix ImportError: No module named 'zipp' (#502)philmd-0/+1
Upgrade pip to fix [*]: [66/66] Linking target example/passthrough_hp. Traceback (most recent call last): File "/usr/lib/python3.5/runpy.py", line 174, in _run_module_as_main mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "/usr/lib/python3.5/runpy.py", line 133, in _get_module_details return _get_module_details(pkg_main_name, error) File "/usr/lib/python3.5/runpy.py", line 109, in _get_module_details __import__(pkg_name) File "/usr/local/lib/python3.5/dist-packages/pytest/__init__.py", line 6, in <module> from _pytest.assertion import register_assert_rewrite File "/usr/local/lib/python3.5/dist-packages/_pytest/assertion/__init__.py", line 7, in <module> from _pytest.assertion import rewrite File "/usr/local/lib/python3.5/dist-packages/_pytest/assertion/rewrite.py", line 24, in <module> from _pytest.assertion import util File "/usr/local/lib/python3.5/dist-packages/_pytest/assertion/util.py", line 14, in <module> import _pytest._code File "/usr/local/lib/python3.5/dist-packages/_pytest/_code/__init__.py", line 2, in <module> from .code import Code # noqa File "/usr/local/lib/python3.5/dist-packages/_pytest/_code/code.py", line 28, in <module> import pluggy File "/usr/local/lib/python3.5/dist-packages/pluggy/__init__.py", line 16, in <module> from .manager import PluginManager, PluginValidationError File "/usr/local/lib/python3.5/dist-packages/pluggy/manager.py", line 11, in <module> import importlib_metadata File "/usr/local/lib/python3.5/dist-packages/importlib_metadata/__init__.py", line 9, in <module> import zipp ImportError: No module named 'zipp' The command "test/travis-build.sh" exited with 1. [*] https://travis-ci.org/libfuse/libfuse/builds/651523034 Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2020-01-25Fixes 477, optional src_dir in tst_(rmdir,unlink) (#493)Anthony Rebello-8/+20
tst_rmdir and tst_unlink now pass for passthrough_hp. Previously, tst_rmdir and tst_unlink created the directory / file using src_dir, causing the test to fail as the cache was stale. Now, the src_dir is optional. When cache is enabled, tst_rmdir and tst_unlink do not provide a src_dir, forcing the test to use mnt_dir itself.
2019-11-20Invoke cleanup() with right arguments.Nikolaus Rath-1/+1
This currently causes hangs if the test fails, cf issue #459.
2019-08-29Avoid gcc 9.1 strncpy(3) warnings (#447)Stefan Hajnoczi-1/+2
Recent GCC releases have warnings related to common strncpy(3) bugs. These warnings can be avoided by explicitly NUL-terminating the buffer or using memcpy(3) when the intention is to copy just the characters without the NUL terminator. This commit fixes the following warnings: [1/27] Compiling C object 'test/9f86d08@@test_syscalls@exe/test_syscalls.c.o'. In function ‘test_socket’, inlined from ‘main’ at ../test/test_syscalls.c:1899:9: ../test/test_syscalls.c:1760:2: warning: ‘strncpy’ output may be truncated copying 108 bytes from a string of length 1023 [-Wstringop-truncation] 1760 | strncpy(su.sun_path, testsock, sizeof(su.sun_path)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [2/27] Compiling C object 'lib/76b5a35@@fuse3@sha/fuse.c.o'. ../lib/fuse.c: In function ‘add_name’: ../lib/fuse.c:968:2: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] 968 | strncpy(s, name, len); | ^~~~~~~~~~~~~~~~~~~~~ ../lib/fuse.c:944:15: note: length computed here 944 | size_t len = strlen(name); | ^~~~~~~~~~~~ [3/27] Compiling C object 'lib/76b5a35@@fuse3@sha/fuse_lowlevel.c.o'. ../lib/fuse_lowlevel.c: In function ‘fuse_add_direntry’: ../lib/fuse_lowlevel.c:288:2: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] 288 | strncpy(dirent->name, name, namelen); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../lib/fuse_lowlevel.c:276:12: note: length computed here 276 | namelen = strlen(name); | ^~~~~~~~~~~~ ../lib/fuse_lowlevel.c: In function ‘fuse_add_direntry_plus’: ../lib/fuse_lowlevel.c:381:2: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] 381 | strncpy(dirent->name, name, namelen); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../lib/fuse_lowlevel.c:366:12: note: length computed here 366 | namelen = strlen(name); | ^~~~~~~~~~~~ Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-07-09Do not run passthrough test when caching is active.Nikolaus Rath-1/+2
Readdir caching means that direct modifications to the source directory will not be seen immediately, so the test becomes flaky. Fixes: #416.
2019-07-05test_cuse: fix runtime errorNikolaus Rath-4/+4
We are no longer using the capfd mechanism.
2019-07-04Fix output checking in test casesNikolaus Rath-95/+114
py.test's capture plugin does not work reliably when used by other fixtures. Therefore, implement our own version.
2019-05-15passthrough: fix unix-domain sockets on FreeBSD (#413)Alan Somers-8/+76
FreeBSD doesn't allow creating sockets using mknod(2). Instead, one has to use socket(2) and bind(2). Add appropriate logic to the examples and add a test case.
2019-05-09Added new example filesystemNikolaus Rath-6/+68
passthrough_hp puts emphasis and performance and correctness, rather than simplicity.
2019-03-11Define ALLPERMS for musl libc systems. (#379)maxice8-0/+4
2019-03-09Work around -Wformat-truncation=/-Wformat-overflow= warnings (#356)Tomohiro Kusumi-5/+5
sprintf(3)/snprintf(3) destination buffers need to be large enough so that gcc doesn't warn -Wformat-truncation= or -Wformat-overflow= when source buffer size is 1024 bytes. -- ../test/test_syscalls.c:1445:47: warning: '%s' directive output may be truncated writing 1 byte into a region of size between 0 and 1023 [-Wformat-truncation=] #define PATH(p) (snprintf(path, sizeof path, "%s/%s", testdir, p), path) ^~~~~~~ ../test/test_syscalls.c:1458:19: res = mkdir(PATH("a"), 0755); ~~~ Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
2019-03-08Document fuse_fsync_in.fsync_flags and remove magic numbers (#375)Alan Somers-6/+8
2019-02-27Travis CI: Use Xenial instead of Trusty.Nikolaus Rath-5/+0
2018-11-24Added testcase for "big" readdir.Nikolaus Rath-0/+26
2018-11-24Kill filesystem process on test cleanup.Nikolaus Rath-8/+13
2018-11-19tests: add copy_file_range() to the syscall testsNiels de Vos-0/+99
2018-11-06Update CI build scriptNikolaus Rath-2/+2
There is no gcc-6 package anymore.
2018-10-19Do not fail "ninja test" when running as subprojectAhmed Masud-3/+16
2018-10-10Enable more tests for passthrough_llNikolaus Rath-48/+18
2018-10-09Add unprivileged option in `mount.fuse3`Mattias Nissler-16/+56
The unprivileged option allows to run the FUSE file system process without privileges by dropping capabilities and preventing them from being re-acquired via setuid / fscaps etc. To accomplish this, mount.fuse sets up the `/dev/fuse` file descriptor and mount itself and passes the file descriptor via the `/dev/fd/%u` mountpoint syntax to the FUSE file system.
2018-09-27Fix unlink errno checkScott Worley-1/+1
2018-07-23test_write_cache: Use fuse_session_exit() to stop filesystem threadRostislav Skudnov-2/+3
Using fuse_session_exit() followed by fuse_session_unmount() ensures that a proper cleanup and shutdown is performed.
2018-07-23test_write_cache: Fix memory leaksRostislav Skudnov-0/+3
2018-07-21Fix readdir() bug when a non-zero offset is specified in filler (#269)Rostislav-0/+61
The bug occurs when a filesystem client reads a directory until the end, seeks using seekdir() to some valid non-zero position and calls readdir(). A valid 'struct dirent *' is expected, but NULL is returned instead. Pseudocode demonstrating the bug: DIR *dp = opendir("some_dir"); struct dirent *de = readdir(dp); /* Get offset of the second entry */ long offset = telldir(dp); /* Read directory until the end */ while (de) de = readdir(de); seekdir(dp, offset); de = readdir(dp); /* de must contain the second entry, but NULL is returned instead */ The reason of the bug is that when the end of directory is reached, the kernel calls FUSE_READDIR op with an offset at the end of directory, so the filesystem's .readdir callback never calls the filler function, and we end up with dh->filled set to 1. After seekdir(), FUSE_READDIR is called again with a new offset, but this time the filesystem's .readdir callback is never called, and an empty reply is returned. Fix by setting dh->filled to 1 only when zero offsets are given to filler function.
2018-07-11Don't assume sub-second resolution for st_atime/st_mtime.Nikolaus Rath-2/+2
Fixes: #224
2018-05-18rename: perform user mode dir loop check when not done in kernelBill Zissimooulos-0/+216
Linux performs the dir loop check (rename(a, a/b/c) or rename(a/b/c, a), etc.) in kernel. Unfortunately other systems do not perform this check (e.g. FreeBSD). This results in a deadlock in get_path2, because libfuse did not expect to handle such cases. We add a check_dir_loop function that performs the dir loop check in user mode and enable it on systems that need it.
2018-04-13Fix path to pytest cache directory.Nikolaus Rath-1/+1
2018-03-31Travis: remove root-owned cache files.Nikolaus Rath-0/+3
2018-03-31Fix Travis build environmentNikolaus Rath-1/+2
Newest Meson requires Python 3.5 which isn't available in Trusty. Pip version pin no longer necessary.
2018-03-28Fix build error on DragonFlyBSD (sync with other *BSD) (#240)Tomohiro Kusumi-3/+3
DragonFlyBSD has no "bsd" in uname, so add 'dragonfly' to conditionals. -- e.g. uname(1) in DragonFlyBSD [root@ ~]# uname DragonFly [root@ ~]# python -c "import sys; print(sys.platform)" dragonfly5
2017-09-20Travis CI: Don't use deprecated environmentNikolaus Rath-1/+0
Travis support recommends to install specific pip version to work around problems in new environment.
2017-08-25example/ioctl: build on FreeBSD, but add protocol check instead.Nikolaus Rath-0/+2
2017-08-25Fix writeback capability check.Nikolaus Rath-1/+1
2017-08-25examples/{ioctl,null}: don't build under FreeBSD instead of skipping tests.Nikolaus Rath-20/+15
2017-08-24Skip testing null and ioctl examples under FreeBSD.Nikolaus Rath-0/+10
This seems to be unsupported. However, me may also be doing it wrong. I've asked on the freebsd-fs list for help.
2017-08-24Removed unused import.Nikolaus Rath-1/+1
2017-08-24Don't use -o auto_unmount under FreeBSD.Nikolaus Rath-0/+4
2017-08-24Dropped support for building with autotoolsNikolaus Rath-18/+0
It's just too much pain to keep it working.
2017-08-24Use printcap() to control test executionNikolaus Rath-15/+54
That way, we run only tests that are supported by the running kernel.
2017-08-24Added testcase for examples/printcapNikolaus Rath-0/+6
2017-08-24Renamed notify_inval_inode_fh to invalidate_pathNikolaus Rath-2/+2
The previous name didn't make much sense.
2017-08-24Allow inode cache invalidation in high-level APISławek Rudnicki-2/+26
We re-introduce the functionality of invalidating the caches for an inode specified by path by adding a new routine fuse_invalidate_path. This is useful for network-based file systems which use the high-level API, enabling them to notify the kernel about external changes. This is a revival of Miklos Szeredi's original code for the fuse_invalidate routine.
2017-08-11Skip tests that aren't supported under FreeBSD.Nikolaus Rath-8/+25
2017-08-11Don't attempt to run fusermount3 under BSD.Nikolaus Rath-10/+21
2017-08-11Call cp with -p instead of --preserve=modeNikolaus Rath-1/+1
Preserving other attributes doesn't hurt, and --preserve is not supported under FreeBSD.
2017-08-11Don't pass --update to cpNikolaus Rath-1/+1
Doesn't work on FreeBSD, and not strictly necessary.
2017-08-11Don't build passthrough_ll under BSD.Nikolaus Rath-0/+3