summaryrefslogtreecommitdiffstats
path: root/lang/python/python-pyfuse3/test.sh
blob: 5481fe178ab8fb6339d21657d2e30e19acd52305 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh

[ "$1" = python3-pyfuse3 ] || exit 0

python3 - << 'EOF'
import pyfuse3

# Verify key attributes are accessible
assert hasattr(pyfuse3, "Operations")
assert hasattr(pyfuse3, "EntryAttributes")
assert hasattr(pyfuse3, "FUSEError")
assert hasattr(pyfuse3, "ROOT_INODE")
assert pyfuse3.ROOT_INODE == 1

# Verify EntryAttributes can be instantiated
attrs = pyfuse3.EntryAttributes()
assert attrs is not None

# Verify FUSEError can be raised
import errno
try:
    raise pyfuse3.FUSEError(errno.ENOENT)
except pyfuse3.FUSEError as e:
    assert e.errno == errno.ENOENT

from pyfuse3 import Operations, EntryAttributes, FUSEError, FileInfo, StatvfsData

# Verify key constants
assert isinstance(pyfuse3.ROOT_INODE, int), "ROOT_INODE should be an int"

# Verify exception hierarchy
assert issubclass(FUSEError, Exception)
e = FUSEError(2)  # ENOENT
assert e.errno == 2

# Verify EntryAttributes can be instantiated and fields set
attr = EntryAttributes()
attr.st_ino = 1
attr.st_size = 0
attr.st_mode = 0o755 | 0o040000  # S_IFDIR
assert attr.st_ino == 1

# Verify a minimal Operations subclass can be defined
class MinimalFS(Operations):
    pass

fs = MinimalFS()
assert isinstance(fs, Operations)

print("python3-pyfuse3 OK")
EOF