public inbox for debugedit@sourceware.org
 help / color / mirror / Atom feed
* [COMMITTED v3] Add basic find-debuginfo script tests
@ 2025-06-20 20:31 Mark Wielaard
  0 siblings, 0 replies; only message in thread
From: Mark Wielaard @ 2025-06-20 20:31 UTC (permalink / raw)
  To: debugedit
  Cc: Frank Ch. Eigler, Martin Cermak, Guinevere Larsen, Mark Wielaard

Covers basic find-debuginfo script functionality. Checks .debug files
are generated by eu-strip, .gnu_debugdata is generated, .gdb_index is
added by gdb-add-index, dwz multi file is created and all debugsources
are found, also does parallel runs. Skips dwz testing if .debug_addr
is generated (since dwz currently doesn't handle that).

    * configure.ac: Check whether -gdwarf-5 produced DWARF5 .debug_addr.
    * tests/atlocal.in: Add DWARF_5_DEBUGADDR.
    * tests/Makefile.am (TESTSUITE_AT): Add find-debuginfo.at.
    * tests/testsuite.at: m4_include find-debuginfo.at.
    * tests/find-debuginfo.at: Add 5 basic variants of find-debuginfo test.

Signed-off-by: Mark Wielaard <mark@klomp.org>
---

V3 Merges with tests/find-debuginfo.at from the ar work by Frank.
-  Add some extra comments
-  Removed duplicated AT_TESTED

 configure.ac            |  13 ++
 tests/atlocal.in        |   1 +
 tests/find-debuginfo.at | 323 +++++++++++++++++++++++++++++++++++++++-
 3 files changed, 332 insertions(+), 5 deletions(-)

diff --git a/configure.ac b/configure.ac
index 47771d4ca807..5b8f96149fa3 100644
*** a/configure.ac
--- b/configure.ac
***************
*** 126,131 ****
--- 126,144 ----
  DWARF_5_DEBUGLINE=$ac_cv_dwarf_5_debugline
  AC_SUBST([DWARF_5_DEBUGLINE])
  
+ AC_CACHE_CHECK([whether -gdwarf-5 produced DWARF5 .debug_addr], ac_cv_dwarf_5_debugaddr, [dnl
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="-gdwarf-5"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i=0;]],[[/* empty main */]])],
+   [if $READELF -S conftest.o 2>&1 | grep -F ".debug_addr" > /dev/null 2>&1; \
+      then ac_cv_dwarf_5_debugaddr=yes; \
+      else ac_cv_dwarf_5_debugaddr=no; fi],
+   ac_cv_dwarf_5_debugaddr=no)
+ CFLAGS="$save_CFLAGS"
+ ])
+ DWARF_5_DEBUGADDR=$ac_cv_dwarf_5_debugaddr
+ AC_SUBST([DWARF_5_DEBUGADDR])
+ 
  AC_CACHE_CHECK([whether gcc supports -gz=none], ac_cv_gz_none, [dnl
  save_CFLAGS="$CFLAGS"
  CFLAGS="-gz=none"
diff --git a/tests/atlocal.in b/tests/atlocal.in
index 2f2ff4a80646..51feadbef691 100644
*** a/tests/atlocal.in
--- b/tests/atlocal.in
***************
*** 17,20 ****
--- 17,21 ----
  GZ_NONE_FLAG=@GZ_NONE_FLAG@
  GZ_ZLIB_FLAG=@GZ_ZLIB_FLAG@
  DWARF_5_DEBUGLINE=@DWARF_5_DEBUGLINE@
+ DWARF_5_DEBUGADDR=@DWARF_5_DEBUGADDR@
  DEBUG_MACRO_FLAG=@DEBUG_MACRO_FLAG@
diff --git a/tests/find-debuginfo.at b/tests/find-debuginfo.at
index a0c098823867..5552ce17fe58 100644
*** a/tests/find-debuginfo.at
--- b/tests/find-debuginfo.at
***************
*** 1,6 ****
! # debugedit.at: Tests for the find-debuginfo tool
  #
  # Copyright (C) 2025 Red Hat Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,7 ----
! # find-debuginfo.at: Tests for the find-debuginfo script
  #
  # Copyright (C) 2025 Red Hat Inc.
+ # Copyright (C) 2025 Mark J. Wielaard <mark@klomp.org>
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
***************
*** 18,24 ****
--- 19,28 ----
  # Recommended usage for verbose logging to the console:
  # make check TESTSUITEFLAGS=-v
  
+ # Tests for scripts/find-debuginfo.in
  AT_BANNER([find-debuginfo])
+ 
+ # Show which find-debuginfo script we are testing
  AT_TESTED([find-debuginfo])
  
  m4_define([BUILDO],[[
***************
*** 29,36 ****
  ]])
  
  
  AT_SETUP([find-debuginfo help])
! AT_KEYWORDS([find-debuginfo] [find-debuginfo])
  AT_CHECK([find-debuginfo --help],[0],[ignore],[ignore])
  AT_CLEANUP
  
--- 33,41 ----
  ]])
  
  
+ # Check find-debuginfo --help doesn't crash and burn
  AT_SETUP([find-debuginfo help])
! AT_KEYWORDS([find-debuginfo] [help])
  AT_CHECK([find-debuginfo --help],[0],[ignore],[ignore])
  AT_CLEANUP
  
***************
*** 60,68 ****
  # expect original source tree refs
  AT_CHECK([$READELF --debug-dump=line subdir_build/dupes.a | grep `pwd`], [0], [stdout], [ignore])
  
- # (which is not everpresent)
- AT_TESTED([find-debuginfo])
- 
  # run conversion, under bash -x tracing for fuller testing log
  AT_CHECK([[env RPM_BUILD_DIR=${PWD} RPM_BUILD_ROOT=${PWD} RPM_PACKAGE_NAME=pkg RPM_PACKAGE_VERSION=ver RPM_PACKAGE_RELEASE=rel RPM_ARCH=arch \
                 bash -x `type -p find-debuginfo` -S sourcefiles.list -v ${PWD}/subdir_build]], [0], [stdout], [ignore])
--- 65,70 ----
***************
*** 79,83 ****
--- 81,396 ----
  
  # no traces of old source tree
  AT_CHECK([$READELF --debug-dump=line subdir_build/dupes.a | grep `pwd`], [1], [stdout], [stderr])
+ AT_CLEANUP
+ 
+ # Helper to create some test binaries
+ m4_define([FIND_DEBUGINFO_PKG_BUILD_SETUP],[[
+ mkdir subdir_build
+ cp "${abs_srcdir}"/data/SOURCES/foo.c subdir_build
+ cp "${abs_srcdir}"/data/SOURCES/bar.c subdir_build
+ cp "${abs_srcdir}"/data/SOURCES/foobar.h subdir_build
+ cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build
+ cd subdir_build
+ # Three almost identical binaries
+ # so dwz has something to put into the alt file
+ $CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c
+ $CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c
+ $CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c
+ cd ..
+ ]])
  
+ # Run find-debuginfo on a small build without any fancy options
+ AT_SETUP([find-debuginfo sources])
+ AT_KEYWORDS([find-debuginfo] [sources])
+ FIND_DEBUGINFO_PKG_BUILD_SETUP
+ # Sanity check the binaries have debug sections
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+ # We need to set some environment variables for running find-debuginfo
+ # normally set by rpmbuild.
+ #
+ # run debugedit and collect source files for binaries in subdir_build
+ AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+               RPM_BUILD_ROOT=${PWD} \
+               RPM_PACKAGE_NAME=pkg \
+               RPM_PACKAGE_VERSION=ver \
+               RPM_PACKAGE_RELEASE=rel \
+               RPM_ARCH=arch \
+           find-debuginfo ${PWD}/subdir_build],
+          [0], [stdout], [])
+ # Make sure all three binaries are processed
+ AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+ # debug sections should have been removed
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+ # Now there are .debug files with those .debug_ sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+          [0], [ignore], [])
+ # Check all sources are listed in debugsources.list
+ AT_DATA([expout],
+ [subdir_build/
+ subdir_build/bar.c
+ subdir_build/baz.c
+ subdir_build/foo.c
+ subdir_build/foobar.h
+ ])
+ AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+          [0], [expout], [])
+ AT_CLEANUP
+ 
+ # Run find-debuginfo on a small build and check all parts ran
+ AT_SETUP([find-debuginfo sources debugdata gdb-index])
+ AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index])
+ FIND_DEBUGINFO_PKG_BUILD_SETUP
+ # Sanity check the binaries have debug sections
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+ # We need to set some environment variables for running find-debuginfo
+ # normally set by rpmbuild.
+ #
+ # generate .gnu_debugdata (-m), .gdb_index (-i) for binaries in subdir_build.
+ AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+               RPM_BUILD_ROOT=${PWD} \
+               RPM_PACKAGE_NAME=pkg \
+               RPM_PACKAGE_VERSION=ver \
+               RPM_PACKAGE_RELEASE=rel \
+               RPM_ARCH=arch \
+           find-debuginfo -m -i ${PWD}/subdir_build],
+          [0], [stdout], [])
+ # Make sure all three binaries are processed
+ AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+ # debug sections should have been removed
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+ # But they now have a .gnu_debugdata section
+ AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+          [0], [ignore], [])
+ # There are .debug files with those .debug_ sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+          [0], [ignore], [])
+ # The .debug files should also have a .gdb_index sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+          [0], [ignore], [])
+ # Check all sources are listed in debugsources.list
+ AT_DATA([expout],
+ [subdir_build/
+ subdir_build/bar.c
+ subdir_build/baz.c
+ subdir_build/foo.c
+ subdir_build/foobar.h
+ ])
+ AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+          [0], [expout], [])
+ AT_CLEANUP
+ 
+ # Run find-debuginfo on a small build and check all parts ran
+ # Same as above but run in parallel (-j)
+ AT_SETUP([find-debuginfo sources debugdata gdb-index jobs])
+ AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index] [jobs])
+ FIND_DEBUGINFO_PKG_BUILD_SETUP
+ # Sanity check the binaries have debug sections
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+ # We need to set some environment variables for running find-debuginfo
+ # normally set by rpmbuild.
+ #
+ # generate .gnu_debugdata (-m), .gdb_index (-i) for binaries in subdir_build.
+ AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+               RPM_BUILD_ROOT=${PWD} \
+               RPM_PACKAGE_NAME=pkg \
+               RPM_PACKAGE_VERSION=ver \
+               RPM_PACKAGE_RELEASE=rel \
+               RPM_ARCH=arch \
+           find-debuginfo -m -i -j6 ${PWD}/subdir_build],
+          [0], [stdout], [])
+ # Make sure all three binaries are processed
+ AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+ # debug sections should have been removed
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+ # But they now have a .gnu_debugdata section
+ AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+          [0], [ignore], [])
+ # There are .debug files with those .debug_ sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+          [0], [ignore], [])
+ # The .debug files should also have a .gdb_index sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+          [0], [ignore], [])
+ # Check all sources are listed in debugsources.list
+ AT_DATA([expout],
+ [subdir_build/
+ subdir_build/bar.c
+ subdir_build/baz.c
+ subdir_build/foo.c
+ subdir_build/foobar.h
+ ])
+ AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+          [0], [expout], [])
+ AT_CLEANUP
+ 
+ # Run find-debuginfo on a small build and check all parts ran
+ # Same as above, but now with dwz (but without -j)
+ AT_SETUP([find-debuginfo sources debugdata gdb-index dwz])
+ AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index] [dwz])
+ # At the moment dwz doesn't support .debug_addr
+ AT_SKIP_IF([test "$DWARF_5_DEBUGADDR" = "yes"])
+ FIND_DEBUGINFO_PKG_BUILD_SETUP
+ # Sanity check the binaries have debug sections
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+ # We need to set some environment variables for running find-debuginfo
+ # normally set by rpmbuild.
+ #
+ # generate .gnu_debugdata (-m), .gdb_index (-i) and run dwz (--run-dwz)
+ # for binaries in subdir_build.
+ AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+               RPM_BUILD_ROOT=${PWD} \
+               RPM_PACKAGE_NAME=pkg \
+               RPM_PACKAGE_VERSION=ver \
+               RPM_PACKAGE_RELEASE=rel \
+               RPM_ARCH=arch \
+           find-debuginfo -m -i --run-dwz ${PWD}/subdir_build],
+          [0], [stdout], [])
+ # Make sure all three binaries are processed
+ AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+ AT_CHECK([grep "DWARF-compressing 3 files" stdout], [0], [ignore], [])
+ # debug sections should have been removed
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+ # But they now have a .gnu_debugdata section
+ AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+          [0], [ignore], [])
+ # There are .debug files with those .debug_ sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+          [0], [ignore], [])
+ # The .debug files should also have a .gdb_index sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+          [0], [ignore], [])
+ # There should also be a dwz multi file now
+ AT_CHECK([test -f usr/lib/debug/.dwz/pkg-ver-rel.arch], [0], [], [])
+ # Check all sources are listed in debugsources.list
+ AT_DATA([expout],
+ [subdir_build/
+ subdir_build/bar.c
+ subdir_build/baz.c
+ subdir_build/foo.c
+ subdir_build/foobar.h
+ ])
+ AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+          [0], [expout], [])
+ AT_CLEANUP
+ 
+ # Run find-debuginfo on a small build and check all parts ran
+ # Same as above plus doing -j jobs
+ AT_SETUP([find-debuginfo sources debugdata gdb-index dwz jobs])
+ AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index] [dwz] [jobs])
+ # At the moment dwz doesn't support .debug_addr
+ AT_SKIP_IF([test "$DWARF_5_DEBUGADDR" = "yes"])
+ FIND_DEBUGINFO_PKG_BUILD_SETUP
+ # Sanity check the binaries have debug sections
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+ # We need to set some environment variables for running find-debuginfo
+ # normally set by rpmbuild.
+ #
+ # generate .gnu_debugdata (-m), .gdb_index (-i) and run dwz (--run-dwz)
+ # in parallel (-j6) for binaries in subdir_build.
+ AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+               RPM_BUILD_ROOT=${PWD} \
+               RPM_PACKAGE_NAME=pkg \
+               RPM_PACKAGE_VERSION=ver \
+               RPM_PACKAGE_RELEASE=rel \
+               RPM_ARCH=arch \
+           find-debuginfo -m -i --run-dwz -j6 ${PWD}/subdir_build],
+          [0], [stdout], [])
+ # Make sure all three binaries are processed
+ AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+ AT_CHECK([grep "DWARF-compressing 3 files" stdout], [0], [ignore], [])
+ # debug sections should have been removed
+ AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+ # But they now have a .gnu_debugdata section
+ AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+          [0], [ignore], [])
+ # There are .debug files with those .debug_ sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+          [0], [ignore], [])
+ # The .debug files should also have a .gdb_index sections
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+          [0], [ignore], [])
+ AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+          [0], [ignore], [])
+ # There should also be a dwz multi file now
+ AT_CHECK([test -f usr/lib/debug/.dwz/pkg-ver-rel.arch], [0], [], [])
+ # Check all sources are listed in debugsources.list
+ AT_DATA([expout],
+ [subdir_build/
+ subdir_build/bar.c
+ subdir_build/baz.c
+ subdir_build/foo.c
+ subdir_build/foobar.h
+ ])
+ AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+          [0], [expout], [])
  AT_CLEANUP
-- 
2.49.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-06-20 20:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-20 20:31 [COMMITTED v3] Add basic find-debuginfo script tests Mark Wielaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).