blob: 5ebd22e7b6dd68ab5dff643b8e6f4cac83a7a64f [file] [log] [blame]
# Copyright 2023 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
from fuchsia_base_test import fuchsia_base_test
from honeydew.interfaces.device_classes import fuchsia_device
from mobly import asserts, test_runner
from trace_processing import trace_importing, trace_utils, trace_model
class PerfTestTraceEventsTest(fuchsia_base_test.FuchsiaBaseTest):
def setup_test(self) -> None:
super().setup_test()
self.device: fuchsia_device.FuchsiaDevice = self.fuchsia_devices[0]
def test_perftest_library_trace_events(self) -> None:
with self.device.tracing.trace_session(
categories=[
"kernel",
"perftest",
],
buffer_size=36,
download=True,
directory=self.log_path,
trace_file="trace.fxt",
):
self.device.ffx.run_test_component(
"fuchsia-pkg://fuchsia.com/fuchsia_microbenchmarks#meta/fuchsia_microbenchmarks.cm",
test_component_args=[
"-p",
"--quiet",
"--runs",
"4",
"--enable-tracing",
"--filter=^Null$",
],
timeout=None,
capture_output=False,
)
json_trace_file: str = trace_importing.convert_trace_file_to_json(
os.path.join(self.log_path, "trace.fxt")
)
model: trace_model.Model = trace_importing.create_model_from_file_path(
json_trace_file
)
event_names = [
event.name
for event in trace_utils.filter_events(
model.all_events(), category="perftest"
)
]
asserts.assert_equal(
event_names,
[
"test_group",
"test_setup",
"test_run",
"test_run",
"test_run",
"test_run",
"test_teardown",
],
)