linux/tools/perf/tests
PVS Narasimha Rao 6ae6fb96cc perf test sample-parsing: Validate PERF_FORMAT_GROUP values without LOST
The sample parsing test only validates grouped read values when
PERF_FORMAT_LOST is present.

For PERF_FORMAT_GROUP without PERF_FORMAT_LOST, the contents of
read.group.values[] are not validated, allowing corruption of the parsed
value and id fields to go undetected.

The values are also handed to the synthesis as a plain array of struct
sample_read_value, which always has a 24-byte stride, while
read.group.values is expected to be packed according to read_format --
evsel__parse_sample() points it into the event data.  Without
PERF_FORMAT_LOST the stride is 16, so both the synthesis and the
comparison walk overlapping bytes and the test passes regardless of the
contents.

Validate value and id for grouped reads and continue to validate lost
when PERF_FORMAT_LOST is present, walking the entries with
next_sample_read_value().  Also build the input packed using
sample_read_value_size() so the compared fields are the real ones.

Verified with a deliberate stride bug in copy_read_group_values(): the
test still passes without this change and fails at read_format 0xc with
it applied.

Signed-off-by: PVS Narasimha Rao <venkatasuryapala@gmail.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-08-15 06:37:18 -07:00
..
config-fragments perf tools: Enable configs required for test_uprobe_from_different_cu.sh 2024-04-17 12:21:39 -03:00
shell perf sched latency: Add histogram and time interval options 2026-08-07 10:56:23 -07:00
workloads perf test: Add Arm CoreSight callchain test 2026-07-03 16:52:00 -07:00
api-io.c perf tests api-io: Use zfree() to reduce chances of use after free 2023-04-12 10:14:58 -03:00
backward-ring-buffer.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
bitmap.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
bp_account.c perf tests bp_account: Fix leaked file descriptor 2025-07-11 12:05:02 -07:00
bp_signal_overflow.c perf parse-events: Add default_breakpoint_len helper 2024-09-04 09:49:09 -03:00
bp_signal.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
Build perf tests: Add test for uncore event sorting 2026-05-20 18:23:55 -03:00
builtin-test.c perf test: Fix skiplist leak in cmd_test 2026-08-09 21:58:11 -07:00
code-reading.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
cpumap.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
demangle-java-test.c perf test demangle-java: Don't segv if demangling fails 2025-05-28 10:12:47 -03:00
demangle-ocaml-test.c perf test demangle-ocaml: Switch to using dso__demangle_sym() 2025-05-09 17:03:09 -03:00
demangle-rust-v0-test.c perf test demangle-rust: Add Rust demangling test 2025-05-09 17:01:57 -03:00
dlfilter-test.c perf event: Fix size of synthesized sample with branch stacks 2026-05-20 16:11:30 -03:00
dso-data.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00
dwarf-unwind.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
event_groups.c perf test: Update event_groups test to use instructions 2025-01-18 10:32:57 -08:00
event_update.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
event-times.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
evsel-roundtrip-name.c perf evlist: Add reference count 2026-06-30 10:17:10 -07:00
evsel-tp-sched.c perf evsel: Add reference count 2026-06-30 10:17:11 -07:00
expand-cgroup.c perf parse-events: Restrict core PMU bypass to --cputype option 2026-06-30 17:09:13 -07:00
expr.c perf test expr: Fix system_tsc_freq for only x86 2024-12-11 09:19:44 -08:00
fdarray.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
genelf.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
hists_common.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
hists_common.h
hists_cumulate.c perf evlist: Add reference count 2026-06-30 10:17:10 -07:00
hists_filter.c perf evlist: Add reference count 2026-06-30 10:17:10 -07:00
hists_link.c perf evlist: Add reference count 2026-06-30 10:17:10 -07:00
hists_output.c perf evlist: Add reference count 2026-06-30 10:17:10 -07:00
hwmon_pmu.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
is_printable_array.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
kallsyms-split.c perf machine: Propagate machine__init() error to callers 2026-06-17 09:21:03 -03:00
keep-tracking.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
kmod-path.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
make perf data ctf: replace libbabeltrace with babeltrace2-ctf-writer 2026-06-04 17:34:52 -03:00
maps.c perf test maps: Additional maps__fixup_overlap_and_insert tests 2025-11-19 16:20:15 -08:00
mem.c perf mem-info: Add reference count checking 2024-05-07 18:06:44 -03:00
mem2node.c libperf cpumap: Make index and nr types unsigned 2026-04-01 14:50:53 -07:00
mmap-basic.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
mmap-thread-lookup.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
openat-syscall-all-cpus.c perf evsel: Add reference count 2026-06-30 10:17:11 -07:00
openat-syscall-tp-fields.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
openat-syscall.c perf evsel: Add reference count 2026-06-30 10:17:11 -07:00
parse-events.c perf parse-events: Restrict core PMU bypass to --cputype option 2026-06-30 17:09:13 -07:00
parse-metric.c perf parse-events: Restrict core PMU bypass to --cputype option 2026-06-30 17:09:13 -07:00
parse-no-sample-id-all.c perf evlist: Add reference count 2026-06-30 10:17:10 -07:00
pe-file-parsing.c perf tools: Don't read build-ids from non-regular files 2025-11-26 10:13:38 -08:00
pe-file.c perf tests: Add test for PE binary format support 2020-09-04 14:38:15 -03:00
pe-file.exe perf tests: Add test for PE binary format support 2020-09-04 14:38:15 -03:00
pe-file.exe.debug perf tests: Add test for PE binary format support 2020-09-04 14:38:15 -03:00
perf-hooks.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
perf-record.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
perf-targz-src-pkg perf test: Change all remaining #!/bin/sh to #!/bin/bash 2025-06-26 10:31:05 -07:00
perf-time-to-tsc.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
pfm.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
pmu-events.c perf parse-events: Restrict core PMU bypass to --cputype option 2026-06-30 17:09:13 -07:00
pmu.c perf evlist: Add reference count 2026-06-30 10:17:10 -07:00
sample-parsing.c perf test sample-parsing: Validate PERF_FORMAT_GROUP values without LOST 2026-08-15 06:37:18 -07:00
sdt.c perf tools: Don't read build-ids from non-regular files 2025-11-26 10:13:38 -08:00
sigtrap.c perf btf: Make the sigtrap test helper to find a member by name widely available 2024-12-09 17:52:41 -03:00
stat.c perf stat: Move stat_config into config.c 2024-12-18 16:24:32 -03:00
subcmd-help.c perf test subcmd help: Add exclude disjoint subcmd names 2026-01-12 15:57:23 -03:00
sw-clock.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
switch-tracking.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
symbols.c perf symbol: Add setters for bitfields sharing a byte to avoid concurrent update issues 2026-06-03 16:53:45 -03:00
task-exit.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
tests-scripts.c perf test: Skip shebang and SPDX comments in shell test descriptions 2026-06-04 11:40:36 -03:00
tests-scripts.h perf tests: Run time generate shell test suites 2024-02-22 09:13:06 -08:00
tests.h perf test: Add Arm CoreSight callchain test 2026-07-03 16:52:00 -07:00
thread-map.c perf tools: Use calloc() where applicable 2026-04-08 19:21:05 -07:00
thread-maps-share.c perf machine: Propagate machine__init() error to callers 2026-06-17 09:21:03 -03:00
time-utils-test.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
tool_pmu.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
topology.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
uncore-event-sorting.c perf evlist: Add reference count checking 2026-06-30 10:17:11 -07:00
unit_number__scnprintf.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
util.c perf test: Split monolithic 'util' test suite into sub-tests 2026-06-04 11:40:51 -03:00
vmlinux-kallsyms.c perf machine: Propagate machine__init() error to callers 2026-06-17 09:21:03 -03:00
wp.c perf tools: Make more global variables static 2026-04-08 19:21:04 -07:00