libwacom icon indicating copy to clipboard operation
libwacom copied to clipboard

2.12.2 test suite regression

Open ReillyBrogan opened this issue 1 year ago • 0 comments

  • 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   

ReillyBrogan avatar Jun 28 '24 18:06 ReillyBrogan