tools/testing/selftests/hid/tests/test_hid_core.py

Source file repositories/reference/linux-study-clean/tools/testing/selftests/hid/tests/test_hid_core.py

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/hid/tests/test_hid_core.py
Extension
.py
Size
7302 bytes
Lines
155
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/bin/env python3
# SPDX-License-Identifier: GPL-2.0
# -*- coding: utf-8 -*-
#
# Copyright (c) 2017 Benjamin Tissoires <benjamin.tissoires@gmail.com>
# Copyright (c) 2017 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

# This is for generic devices

from . import base
import logging

logger = logging.getLogger("hidtools.test.hid")


class TestCollectionOverflow(base.BaseTestCase.TestUhid):
    """
    Test class to test re-allocation of the HID collection stack in
    hid-core.c.
    """

    def create_device(self):
        # fmt: off
        report_descriptor = [
            0x05, 0x01,         # .Usage Page (Generic Desktop)
            0x09, 0x02,         # .Usage (Mouse)
            0xa1, 0x01,         # .Collection (Application)
            0x09, 0x02,         # ..Usage (Mouse)
            0xa1, 0x02,         # ..Collection (Logical)
            0x09, 0x01,         # ...Usage (Pointer)
            0xa1, 0x00,         # ...Collection (Physical)
            0x05, 0x09,         # ....Usage Page (Button)
            0x19, 0x01,         # ....Usage Minimum (1)
            0x29, 0x03,         # ....Usage Maximum (3)
            0x15, 0x00,         # ....Logical Minimum (0)
            0x25, 0x01,         # ....Logical Maximum (1)
            0x75, 0x01,         # ....Report Size (1)
            0x95, 0x03,         # ....Report Count (3)
            0x81, 0x02,         # ....Input (Data,Var,Abs)
            0x75, 0x05,         # ....Report Size (5)
            0x95, 0x01,         # ....Report Count (1)
            0x81, 0x03,         # ....Input (Cnst,Var,Abs)
            0xa1, 0x02,         # ....Collection (Logical)
            0x09, 0x01,         # .....Usage (Pointer)
            0xa1, 0x02,         # ....Collection (Logical)
            0x09, 0x01,         # .....Usage (Pointer)
            0xa1, 0x02,         # ....Collection (Logical)
            0x09, 0x01,         # .....Usage (Pointer)
            0xa1, 0x02,         # ....Collection (Logical)
            0x09, 0x01,         # .....Usage (Pointer)
            0xa1, 0x02,         # ....Collection (Logical)
            0x09, 0x01,         # .....Usage (Pointer)
            0xa1, 0x02,         # ....Collection (Logical)
            0x09, 0x01,         # .....Usage (Pointer)
            0xa1, 0x02,         # ....Collection (Logical)
            0x09, 0x01,         # .....Usage (Pointer)

Annotation

Implementation Notes