[PATCH dwarves 2/2] tests: add decl tag struct member test
Alan Maguire <[email protected]> Fri, 19 Jun 2026 16:21:03 +0100
| Newsgroups | org.kernel.vger.dwarves |
|---|---|
| Message-ID | <[email protected]> |
Extend the decl-tag selftest with a tagged member and verify it is displayed. Signed-off-by: Alan Maguire <[email protected]> --- tests/pfunct-btf-decl-tags.sh | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/tests/pfunct-btf-decl-tags.sh b/tests/pfunct-btf-decl-tags.sh index 520148b..89050d1 100755 --- a/tests/pfunct-btf-decl-tags.sh +++ b/tests/pfunct-btf-decl-tags.sh @@ -43,6 +43,12 @@ __tag(a) __tag(b) void bar(void) {} __tag(a) void buz(void) {} void qux(int __tag(param_a) arg) {} +struct tagged { + int __tag(member_tag) member; +}; + +struct tagged tagged_global; + EOF ) @@ -72,18 +78,18 @@ void qux(param_a int arg); EOF ) +expected_member="member_tag int member;" + run_test() { local compiler=$1 local tmpobj=$2 + local member_out info_log "Testing with $compiler" out=$(pfunct -P -F btf $tmpobj | awk "$sort_tags" | sort) d=$(diff -u <(echo "$expected") <(echo "$out")) - if [[ "$d" == "" ]]; then - info_log " passed" - return 0 - else + if [[ "$d" != "" ]]; then error_log "pfunct output does not match expected ($compiler):" info_log "$d" info_log @@ -91,6 +97,23 @@ run_test() { info_log "$out" return 1 fi + + member_out=$(pahole -F btf $tmpobj | awk ' + /member_tag/ { + sub(/;.*/, ";"); + gsub(/[[:space:]]+/, " "); + sub(/^ /, ""); + print; + }') + if [[ "$member_out" != "$expected_member" ]]; then + error_log "pahole member decl tag output does not match expected ($compiler):" + info_log "expected: $expected_member" + info_log "got: $member_out" + return 1 + fi + + info_log " passed" + return 0 } failed=0 -- 2.43.5