tools/testing/selftests/drivers/sdsi/sdsi_test.py

Source file repositories/reference/linux-study-clean/tools/testing/selftests/drivers/sdsi/sdsi_test.py

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/drivers/sdsi/sdsi_test.py
Extension
.py
Size
7229 bytes
Lines
227
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

#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0

from struct import pack
from time import sleep

import errno
import glob
import os
import subprocess

try:
    import pytest
except ImportError:
    print("Unable to import pytest python module.")
    print("\nIf not already installed, you may do so with:")
    print("\t\tpip3 install pytest")
    exit(1)

SOCKETS = glob.glob('/sys/bus/auxiliary/devices/intel_vsec.sdsi.*')
NUM_SOCKETS = len(SOCKETS)

MODULE_NAME = 'intel_sdsi'
DEV_PREFIX = 'intel_vsec.sdsi'
CLASS_DIR = '/sys/bus/auxiliary/devices'
GUID = "0x6dd191"

def read_bin_file(file):
    with open(file, mode='rb') as f:
        content = f.read()
    return content

def get_dev_file_path(socket, file):
    return CLASS_DIR + '/' + DEV_PREFIX + '.' + str(socket) + '/' + file

def kmemleak_enabled():
    kmemleak = "/sys/kernel/debug/kmemleak"
    return os.path.isfile(kmemleak)

class TestSDSiDriver:
    def test_driver_loaded(self):
        lsmod_p = subprocess.Popen(('lsmod'), stdout=subprocess.PIPE)
        result = subprocess.check_output(('grep', '-q', MODULE_NAME), stdin=lsmod_p.stdout)

@pytest.mark.parametrize('socket', range(0, NUM_SOCKETS))
class TestSDSiFilesClass:

    def read_value(self, file):
        f = open(file, "r")
        value = f.read().strip("\n")
        return value

    def get_dev_folder(self, socket):
        return CLASS_DIR + '/' + DEV_PREFIX + '.' + str(socket) + '/'

    def test_sysfs_files_exist(self, socket):
        folder = self.get_dev_folder(socket)
        print (folder)
        assert os.path.isfile(folder + "guid") == True
        assert os.path.isfile(folder + "provision_akc") == True
        assert os.path.isfile(folder + "provision_cap") == True
        assert os.path.isfile(folder + "state_certificate") == True
        assert os.path.isfile(folder + "registers") == True

    def test_sysfs_file_permissions(self, socket):
        folder = self.get_dev_folder(socket)
        mode = os.stat(folder + "guid").st_mode & 0o777
        assert mode == 0o444    # Read all
        mode = os.stat(folder + "registers").st_mode & 0o777
        assert mode == 0o400    # Read owner

Annotation

Implementation Notes