Browse Source

Merge pull request #610 from trapexit/tests

create integration tests
pull/611/head
trapexit 6 years ago
committed by GitHub
parent
commit
726c1c850c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      tests/TEST_no_fuse_hidden
  2. 15
      tests/TEST_use_fchmod_after_unlink
  3. 15
      tests/TEST_use_fchown_after_unlink
  4. 15
      tests/TEST_use_fstat_after_unlink
  5. 31
      tests/run-tests

19
tests/TEST_no_fuse_hidden

@ -0,0 +1,19 @@
#!/usr/bin/env python3
import os
import sys
import tempfile
(fd,filepath) = tempfile.mkstemp(dir=sys.argv[1])
ino = os.fstat(fd).st_ino
os.unlink(filepath)
for entry in os.scandir(sys.argv[1]):
if entry.inode() == ino:
print("found .fuse_hidden file {}".format(entry.name),end='')
os.close(fd)
sys.exit(1)
os.close(fd)

15
tests/TEST_use_fchmod_after_unlink

@ -0,0 +1,15 @@
#!/usr/bin/env python3
import os
import sys
import tempfile
(fd,filepath) = tempfile.mkstemp(dir=sys.argv[1])
os.fchmod(fd,0o777)
os.unlink(filepath)
os.fchmod(fd,0o777)
os.close(fd)

15
tests/TEST_use_fchown_after_unlink

@ -0,0 +1,15 @@
#!/usr/bin/env python3
import os
import sys
import tempfile
(fd,filepath) = tempfile.mkstemp(dir=sys.argv[1])
os.fchown(fd,os.getuid(),os.getgid())
os.unlink(filepath)
os.fchown(fd,os.getuid(),os.getgid())
os.close(fd)

15
tests/TEST_use_fstat_after_unlink

@ -0,0 +1,15 @@
#!/usr/bin/env python3
import os
import sys
import tempfile
(fd,filepath) = tempfile.mkstemp(dir=sys.argv[1])
os.fstat(fd)
os.unlink(filepath)
os.fstat(fd)
os.close(fd)

31
tests/run-tests

@ -0,0 +1,31 @@
#!/usr/bin/env python3
import os
import sys
import subprocess
if len(sys.argv) != 2:
print('usage: run-test <mergerfs-path>\n',file=sys.stderr)
sys.exit(1)
test_path = os.path.realpath(sys.argv[0])
test_path = os.path.dirname(test_path)
for entry in os.scandir(test_path):
if not entry.name.startswith('TEST_'):
continue
try:
print(entry.name + ': ',end='')
fullpath = os.path.join(test_path,entry.name)
args = [fullpath,sys.argv[1]]
rv = subprocess.Popen(args,stdout=subprocess.PIPE)
rv.wait(timeout=10000)
if rv.returncode:
output = rv.stdout.read().decode()
print('FAIL - {}'.format(output))
else:
print('PASS')
except Exception as e:
print('FAIL - {}'.format(e))
Loading…
Cancel
Save