libwacom
libwacom copied to clipboard
2.12.2 test suite regression
-
libwacom version: 2.12.2
-
[x] I understand that libwacom does affect whether the device works (see Troubleshooting)
Bug description
I just updated the libwacom package on Solus and noticed that the test suite now fails as of v2.12.2. I bisected the failure to fa92a55028b4dc9073b19e6a79fabe81f600da72.
On Solus we have the following for dependency versions:
- libevdev v1.13.2
- python-libevdev v0.11
- pyudev v0.24.3
And the failed part of the tests:
+ ninja test -j24 -C solusBuildDir
ninja: Entering directory `solusBuildDir'
[0/1] Running all tests.
1/10 libwacom:all+valgrind / test-stylus-validity OK 0.02s
2/10 libwacom:all / test-ltversion OK 0.01s
3/10 libwacom:all+valgrind / test-tablet-validity OK 0.08s
4/10 libwacom:all+valgrind / test-load OK 0.11s
5/10 libwacom:all+valgrind / test-dbverify OK 0.21s
6/10 libwacom:all / pytest test_libwacom.py FAIL 0.46s exit status 1
>>> MESON_SOURCE_ROOT=/home/build/YPKG/root/libwacom/build/libwacom.git UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 LD_LIBRARY_PATH=/home/build/YPKG/root/libwacom/build/libwacom.git/solusBuildDir LIBWACOM_HWDB_FILE=/home/build/YPKG/root/libwacom/build/libwacom.git/solusBuildDir/65-libwacom.hwdb MALLOC_PERTURB_=184 /usr/bin/pytest3 --verbose -rfES --log-level=DEBUG --log-file /home/build/YPKG/root/libwacom/build/libwacom.git/solusBuildDir/meson-logs/pytest.log --log-file-level=DEBUG /home/build/YPKG/root/libwacom/build/libwacom.git/test/test_libwacom.py
―――――――――――――――――――――――――――――――――――――――――――――――――― ✀ ――――――――――――――――――――――――――――――――――――――――――――――――――
Listing only the last 100 lines from a long log.
> assert self.db is not None
E AssertionError
../test/__init__.py:680: AssertionError
______________________ test_new_from_path_known_device[1] ______________________
fallback = <Fallback.GENERIC: 1>
@pytest.mark.parametrize(
"fallback", (WacomDatabase.Fallback.NONE, WacomDatabase.Fallback.GENERIC)
)
def test_new_from_path_known_device(fallback):
name = "Wacom Intuos4 WL"
vid = 0x056A
pid = 0x00BC
uinput = create_uinput(name, vid, pid)
> db = WacomDatabase()
../test/test_libwacom.py:440:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <test.WacomDatabase object at 0x7fc02372da50>, path = None
def __init__(self, path: Optional[Path] = None):
lib = LibWacom.instance()
if path is None:
self.db = lib.database_new() # type: ignore
else:
self.db = lib.database_new_for_path(str(path).encode("utf-8")) # type: ignore
> assert self.db is not None
E AssertionError
../test/__init__.py:680: AssertionError
_____________________ test_new_from_path_unknown_device[0] _____________________
fallback = <Fallback.NONE: 0>
@pytest.mark.parametrize(
"fallback", (WacomDatabase.Fallback.NONE, WacomDatabase.Fallback.GENERIC)
)
def test_new_from_path_unknown_device(fallback):
name = "Unknown device"
vid = 0x1234
pid = 0xABAC
uinput = create_uinput(name, vid, pid)
> db = WacomDatabase()
../test/test_libwacom.py:459:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <test.WacomDatabase object at 0x7fc02367f650>, path = None
def __init__(self, path: Optional[Path] = None):
lib = LibWacom.instance()
if path is None:
self.db = lib.database_new() # type: ignore
else:
self.db = lib.database_new_for_path(str(path).encode("utf-8")) # type: ignore
> assert self.db is not None
E AssertionError
../test/__init__.py:680: AssertionError
_____________________ test_new_from_path_unknown_device[1] _____________________
fallback = <Fallback.GENERIC: 1>
@pytest.mark.parametrize(
"fallback", (WacomDatabase.Fallback.NONE, WacomDatabase.Fallback.GENERIC)
)
def test_new_from_path_unknown_device(fallback):
name = "Unknown device"
vid = 0x1234
pid = 0xABAC
uinput = create_uinput(name, vid, pid)
> db = WacomDatabase()
../test/test_libwacom.py:459:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <test.WacomDatabase object at 0x7fc023404550>, path = None
def __init__(self, path: Optional[Path] = None):
lib = LibWacom.instance()
if path is None:
self.db = lib.database_new() # type: ignore
else:
self.db = lib.database_new_for_path(str(path).encode("utf-8")) # type: ignore
> assert self.db is not None
E AssertionError
../test/__init__.py:680: AssertionError
=========================== short test summary info ============================
FAILED ../test/test_libwacom.py::test_new_from_path_known_device[0] - Asserti...
FAILED ../test/test_libwacom.py::test_new_from_path_known_device[1] - Asserti...
FAILED ../test/test_libwacom.py::test_new_from_path_unknown_device[0] - Asser...
FAILED ../test/test_libwacom.py::test_new_from_path_unknown_device[1] - Asser...
========================= 4 failed, 26 passed in 0.26s =========================
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
7/10 libwacom:all / pytest test_data_files.py OK 1.03s
8/10 libwacom:all / pytest test_svg.py OK 1.03s
9/10 libwacom:all / files-in-git OK 1.14s
10/10 libwacom:all / pytest test_udev_rules.py OK 6.03s
Summary of Failures:
6/10 libwacom:all / pytest test_libwacom.py FAIL 0.46s exit status 1
Ok: 9
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0