2024-04-09 20:49:16 +05:30
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
|
|
import csv
|
|
|
|
|
import pytest
|
2024-05-22 00:53:42 -05:00
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
from rocprofiler_sdk.pytest_utils.dotdict import dotdict
|
|
|
|
|
from rocprofiler_sdk.pytest_utils import collapse_dict_list
|
2024-05-22 15:51:12 -05:00
|
|
|
from rocprofiler_sdk.pytest_utils.perfetto_reader import PerfettoReader
|
2024-04-09 20:49:16 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
def pytest_addoption(parser):
|
|
|
|
|
parser.addoption(
|
|
|
|
|
"--hsa-trace-input",
|
|
|
|
|
action="store",
|
|
|
|
|
help="Path to HSA API tracing CSV file.",
|
|
|
|
|
)
|
|
|
|
|
parser.addoption(
|
|
|
|
|
"--kernel-trace-input",
|
|
|
|
|
action="store",
|
|
|
|
|
help="Path to Kernel API tracing CSV file.",
|
|
|
|
|
)
|
2024-05-22 00:53:42 -05:00
|
|
|
parser.addoption(
|
|
|
|
|
"--json-input",
|
|
|
|
|
action="store",
|
|
|
|
|
help="Path to JSON file.",
|
|
|
|
|
)
|
2024-05-22 15:51:12 -05:00
|
|
|
parser.addoption(
|
|
|
|
|
"--pftrace-input",
|
|
|
|
|
action="store",
|
|
|
|
|
help="Path to Perfetto trace file.",
|
|
|
|
|
)
|
2024-04-09 20:49:16 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def hsa_trace_input_data(request):
|
|
|
|
|
filename = request.config.getoption("--hsa-trace-input")
|
|
|
|
|
data = []
|
|
|
|
|
with open(filename, "r") as inp:
|
|
|
|
|
reader = csv.DictReader(inp)
|
|
|
|
|
for row in reader:
|
|
|
|
|
data.append(row)
|
|
|
|
|
|
|
|
|
|
return data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def kernel_trace_input_data(request):
|
|
|
|
|
filename = request.config.getoption("--kernel-trace-input")
|
|
|
|
|
data = []
|
|
|
|
|
with open(filename, "r") as inp:
|
|
|
|
|
reader = csv.DictReader(inp)
|
|
|
|
|
for row in reader:
|
|
|
|
|
data.append(row)
|
|
|
|
|
|
|
|
|
|
return data
|
2024-05-22 00:53:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def json_data(request):
|
|
|
|
|
filename = request.config.getoption("--json-input")
|
|
|
|
|
with open(filename, "r") as inp:
|
|
|
|
|
return dotdict(collapse_dict_list(json.load(inp)))
|
2024-05-22 15:51:12 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def pftrace_data(request):
|
|
|
|
|
filename = request.config.getoption("--pftrace-input")
|
|
|
|
|
return PerfettoReader(filename).read()[0]
|