From 29048c51dbe43d14fada0d60cdccf0082c7d108d Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Tue, 6 Jul 2021 22:40:59 +0200 Subject: [PATCH] tests: Add elanmoc CI test --- tests/elanmoc/custom.pcapng | Bin 0 -> 29940 bytes tests/elanmoc/custom.py | 83 ++++++++++++++ tests/elanmoc/device | 223 ++++++++++++++++++++++++++++++++++++ tests/meson.build | 1 + 4 files changed, 307 insertions(+) create mode 100644 tests/elanmoc/custom.pcapng create mode 100755 tests/elanmoc/custom.py create mode 100644 tests/elanmoc/device diff --git a/tests/elanmoc/custom.pcapng b/tests/elanmoc/custom.pcapng new file mode 100644 index 0000000000000000000000000000000000000000..63d2a4588c268cb0daee4036358410507c2d0329 GIT binary patch literal 29940 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 literal 0 HcmV?d00001 diff --git a/tests/elanmoc/custom.py b/tests/elanmoc/custom.py new file mode 100755 index 00000000..c64414cb --- /dev/null +++ b/tests/elanmoc/custom.py @@ -0,0 +1,83 @@ +#!/usr/bin/python3 + +import gi +gi.require_version('FPrint', '2.0') +from gi.repository import FPrint, GLib + +ctx = GLib.main_context_default() + +c = FPrint.Context() +c.enumerate() +devices = c.get_devices() + +d = devices[0] +del devices + +assert d.get_driver() == "elanmoc" +assert not d.has_feature(FPrint.DeviceFeature.CAPTURE) +assert d.has_feature(FPrint.DeviceFeature.IDENTIFY) +assert d.has_feature(FPrint.DeviceFeature.VERIFY) +assert not d.has_feature(FPrint.DeviceFeature.DUPLICATES_CHECK) +assert d.has_feature(FPrint.DeviceFeature.STORAGE) +assert d.has_feature(FPrint.DeviceFeature.STORAGE_LIST) +assert d.has_feature(FPrint.DeviceFeature.STORAGE_DELETE) +assert not d.has_feature(FPrint.DeviceFeature.STORAGE_CLEAR) + +d.open_sync() + +template = FPrint.Print.new(d) + +def enroll_progress(*args): + #assert d.get_finger_status() == FPrint.FingerStatusFlags.NEEDED + print("finger status: ", d.get_finger_status()) + print('enroll progress: ' + str(args)) + +def identify_done(dev, res): + global identified + identified = True + identify_match, identify_print = dev.identify_finish(res) + print('indentification_done: ', identify_match, identify_print) + assert identify_match.equal(identify_print) + +# List, enroll, list, verify, identify, delete +print("enrolling") +assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE +p = d.enroll_sync(template, None, enroll_progress, None) +assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE +print("enroll done") + +print("listing") +stored = d.list_prints_sync() +print("listing done") +assert len(stored) == 1 +assert stored[0].equal(p) +print("verifying") +assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE +verify_res, verify_print = d.verify_sync(p) +assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE +print("verify done") +del p +assert verify_res == True + +identified = False +deserialized_prints = [] +for p in stored: + deserialized_prints.append(FPrint.Print.deserialize(p.serialize())) + assert deserialized_prints[-1].equal(p) +del stored + +print('async identifying') +d.identify(deserialized_prints, callback=identify_done) +del deserialized_prints + +while not identified: + ctx.iteration(True) + +print("deleting") +d.delete_print_sync(p) +print("delete done") + +d.close_sync() + +del d +del c diff --git a/tests/elanmoc/device b/tests/elanmoc/device new file mode 100644 index 00000000..8876b8cc --- /dev/null +++ b/tests/elanmoc/device @@ -0,0 +1,223 @@ +P: /devices/pci0000:00/0000:00:14.0/usb1/1-3 +N: bus/usb/001/017=1201000200000040F3047E0C06030102000109025300010100A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 +E: DEVNAME=/dev/bus/usb/001/017 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=4f3/c7e/306 +E: TYPE=0/0/0 +E: BUSNUM=001 +E: DEVNUM=017 +E: MAJOR=189 +E: MINOR=16 +E: SUBSYSTEM=usb +E: ID_VENDOR=ELAN +E: ID_VENDOR_ENC=ELAN +E: ID_VENDOR_ID=04f3 +E: ID_MODEL=ELAN:ARM-M4 +E: ID_MODEL_ENC=ELAN:ARM-M4 +E: ID_MODEL_ID=0c7e +E: ID_REVISION=0306 +E: ID_SERIAL=ELAN_ELAN:ARM-M4 +E: ID_BUS=usb +E: ID_USB_INTERFACES=:ff0000: +E: ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp. +E: ID_PATH=pci-0000:00:14.0-usb-0:3 +E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3 +E: ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_3 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=00\n +A: bDeviceProtocol=00\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=100mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0306\n +A: bmAttributes=a0\n +A: busnum=1\n +A: configuration= +H: descriptors=1201000200000040F3047E0C06030102000109025300010100A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 +A: dev=189:16\n +A: devnum=17\n +A: devpath=3\n +L: driver=../../../../../bus/usb/drivers/usb +L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d/device:20 +A: idProduct=0c7e\n +A: idVendor=04f3\n +A: ltm_capable=no\n +A: manufacturer=ELAN\n +A: maxchild=0\n +L: port=../1-0:1.0/usb1-port3 +A: power/active_duration=2748\n +A: power/autosuspend=2\n +A: power/autosuspend_delay_ms=2000\n +A: power/connected_duration=18266\n +A: power/control=auto\n +A: power/level=auto\n +A: power/persist=1\n +A: power/runtime_active_time=2603\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=15422\n +A: power/wakeup=disabled\n +A: power/wakeup_abort_count=\n +A: power/wakeup_active=\n +A: power/wakeup_active_count=\n +A: power/wakeup_count=\n +A: power/wakeup_expire_count=\n +A: power/wakeup_last_time_ms=\n +A: power/wakeup_max_time_ms=\n +A: power/wakeup_total_time_ms=\n +A: product=ELAN:ARM-M4\n +A: quirks=0x0\n +A: removable=removable\n +A: rx_lanes=1\n +A: speed=12\n +A: tx_lanes=1\n +A: urbnum=12\n +A: version= 2.00\n + +P: /devices/pci0000:00/0000:00:14.0/usb1 +N: bus/usb/001/001=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C +E: DEVNAME=/dev/bus/usb/001/001 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=1d6b/2/512 +E: TYPE=9/0/1 +E: BUSNUM=001 +E: DEVNUM=001 +E: MAJOR=189 +E: MINOR=0 +E: SUBSYSTEM=usb +E: ID_VENDOR=Linux_5.12.12-300.fc34.x86_64_xhci-hcd +E: ID_VENDOR_ENC=Linux\x205.12.12-300.fc34.x86_64\x20xhci-hcd +E: ID_VENDOR_ID=1d6b +E: ID_MODEL=xHCI_Host_Controller +E: ID_MODEL_ENC=xHCI\x20Host\x20Controller +E: ID_MODEL_ID=0002 +E: ID_REVISION=0512 +E: ID_SERIAL=Linux_5.12.12-300.fc34.x86_64_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 +E: ID_SERIAL_SHORT=0000:00:14.0 +E: ID_BUS=usb +E: ID_USB_INTERFACES=:090000: +E: ID_VENDOR_FROM_DATABASE=Linux Foundation +E: ID_AUTOSUSPEND=1 +E: ID_MODEL_FROM_DATABASE=2.0 root hub +E: ID_PATH=pci-0000:00:14.0 +E: ID_PATH_TAG=pci-0000_00_14_0 +E: ID_FOR_SEAT=usb-pci-0000_00_14_0 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: authorized_default=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=09\n +A: bDeviceProtocol=01\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=0mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0512\n +A: bmAttributes=e0\n +A: busnum=1\n +A: configuration= +H: descriptors=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C +A: dev=189:0\n +A: devnum=1\n +A: devpath=0\n +L: driver=../../../../bus/usb/drivers/usb +L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d +A: idProduct=0002\n +A: idVendor=1d6b\n +A: interface_authorized_default=1\n +A: ltm_capable=no\n +A: manufacturer=Linux 5.12.12-300.fc34.x86_64 xhci-hcd\n +A: maxchild=12\n +A: power/active_duration=187216979\n +A: power/autosuspend=0\n +A: power/autosuspend_delay_ms=0\n +A: power/connected_duration=187239996\n +A: power/control=auto\n +A: power/level=auto\n +A: power/runtime_active_time=187220224\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: power/wakeup=disabled\n +A: power/wakeup_abort_count=\n +A: power/wakeup_active=\n +A: power/wakeup_active_count=\n +A: power/wakeup_count=\n +A: power/wakeup_expire_count=\n +A: power/wakeup_last_time_ms=\n +A: power/wakeup_max_time_ms=\n +A: power/wakeup_total_time_ms=\n +A: product=xHCI Host Controller\n +A: quirks=0x0\n +A: removable=unknown\n +A: rx_lanes=1\n +A: serial=0000:00:14.0\n +A: speed=480\n +A: tx_lanes=1\n +A: urbnum=3372\n +A: version= 2.00\n + +P: /devices/pci0000:00/0000:00:14.0 +E: DRIVER=xhci_hcd +E: PCI_CLASS=C0330 +E: PCI_ID=8086:9DED +E: PCI_SUBSYS_ID=17AA:2292 +E: PCI_SLOT_NAME=0000:00:14.0 +E: MODALIAS=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30 +E: SUBSYSTEM=pci +E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller +E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller +E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI +E: ID_VENDOR_FROM_DATABASE=Intel Corporation +E: ID_AUTOSUSPEND=1 +E: ID_MODEL_FROM_DATABASE=Cannon Point-LP USB 3.1 xHCI Controller +A: ari_enabled=0\n +A: broken_parity_status=0\n +A: class=0x0c0330\n +H: config=8680ED9D060490021130030C00008000040022EA000000000000000000000000000000000000000000000000AA179222000000007000000000000000FF010000 +A: consistent_dma_mask_bits=64\n +A: d3cold_allowed=1\n +A: dbc=disabled\n +A: device=0x9ded\n +A: dma_mask_bits=64\n +L: driver=../../../bus/pci/drivers/xhci_hcd +A: driver_override=(null)\n +A: enable=1\n +L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c +A: irq=128\n +A: local_cpulist=0-7\n +A: local_cpus=ff\n +A: modalias=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30\n +A: msi_bus=1\n +A: msi_irqs/128=msi\n +A: numa_node=-1\n +A: pools=poolinfo - 0.1\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 0 128 0\nbuffer-32 0 0 32 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 11 12 2112 12\nxHCI ring segments 58 62 4096 62\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 6 32 128 1\nbuffer-32 0 0 32 0\n +A: power/control=on\n +A: power/runtime_active_time=187221117\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: power/wakeup=enabled\n +A: power/wakeup_abort_count=0\n +A: power/wakeup_active=0\n +A: power/wakeup_active_count=0\n +A: power/wakeup_count=0\n +A: power/wakeup_expire_count=0\n +A: power/wakeup_last_time_ms=0\n +A: power/wakeup_max_time_ms=0\n +A: power/wakeup_total_time_ms=0\n +A: power_state=D0\n +A: resource=0x00000000ea220000 0x00000000ea22ffff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n +A: revision=0x11\n +A: subsystem_device=0x2292\n +A: subsystem_vendor=0x17aa\n +A: vendor=0x8086\n + diff --git a/tests/meson.build b/tests/meson.build index f2089204..394ded23 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -24,6 +24,7 @@ envs.set('NO_AT_BRIDGE', '1') drivers_tests = [ 'aes3500', 'elan', + 'elanmoc', 'elanspi', 'synaptics', 'vfs0050',