Kill filesystem process on test cleanup.

This commit is contained in:
Nikolaus Rath 2018-11-18 17:11:13 +00:00
parent 0c73b8389a
commit 68f177d238
3 changed files with 13 additions and 8 deletions

View File

@ -64,7 +64,7 @@ def test_notify1(tmpdir, name, notify):
else:
assert read1 == read2
except:
cleanup(mnt_dir)
cleanup(mount_process, mnt_dir)
raise
else:
umount(mount_process, mnt_dir)

View File

@ -76,7 +76,7 @@ def test_hello(tmpdir, name, options, cmdline_builder):
open(filename + 'does-not-exist', 'r+')
assert exc_info.value.errno == errno.ENOENT
except:
cleanup(mnt_dir)
cleanup(mount_process, mnt_dir)
raise
else:
umount(mount_process, mnt_dir)
@ -147,7 +147,7 @@ def test_passthrough(tmpdir, name, debug, capfd, writeback):
syscall_test_cmd.append('-52')
subprocess.check_call(syscall_test_cmd)
except:
cleanup(mnt_dir)
cleanup(mount_process, mnt_dir)
raise
else:
umount(mount_process, mnt_dir)
@ -177,7 +177,7 @@ def test_ioctl(tmpdir):
with open(testfile, 'rb') as fh:
assert fh.read()== b'foo'
except:
cleanup(mnt_dir)
cleanup(mount_process, mnt_dir)
raise
else:
umount(mount_process, mnt_dir)
@ -193,7 +193,7 @@ def test_poll(tmpdir):
[ pjoin(basename, 'example', 'poll_client') ]
subprocess.check_call(cmdline, cwd=mnt_dir)
except:
cleanup(mnt_dir)
cleanup(mount_process, mnt_dir)
raise
else:
umount(mount_process, mnt_dir)
@ -217,7 +217,7 @@ def test_null(tmpdir):
with open(mnt_file, 'wb') as fh:
fh.write(b'whatever')
except:
cleanup(mnt_file)
cleanup(mount_process, mnt_file)
raise
else:
umount(mount_process, mnt_file)
@ -253,7 +253,7 @@ def test_notify_inval_entry(tmpdir, notify):
with pytest.raises(FileNotFoundError):
os.stat(fname)
except:
cleanup(mnt_dir)
cleanup(mount_process, mnt_dir)
raise
else:
umount(mount_process, mnt_dir)

View File

@ -44,7 +44,7 @@ def wait_for_mount(mount_process, mnt_dir,
elapsed += 0.1
pytest.fail("mountpoint failed to come up")
def cleanup(mnt_dir):
def cleanup(mount_process, mnt_dir):
# Don't bother trying Valgrind if things already went wrong
if 'bsd' in sys.platform or 'dragonfly' in sys.platform:
@ -54,6 +54,11 @@ def cleanup(mnt_dir):
'-z', '-u', mnt_dir]
subprocess.call(cmd, stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT)
mount_process.terminate()
try:
mount_process.wait(1)
except subprocess.TimeoutExpired:
mount_process.kill()
def umount(mount_process, mnt_dir):