tst-mtrace.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/sh
  2. # Testing the mtrace function.
  3. # Copyright (C) 2000-2026 Free Software Foundation, Inc.
  4. # This file is part of the GNU C Library.
  5. # The GNU C Library is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU Lesser General Public
  7. # License as published by the Free Software Foundation; either
  8. # version 2.1 of the License, or (at your option) any later version.
  9. # The GNU C Library is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. # Lesser General Public License for more details.
  13. # You should have received a copy of the GNU Lesser General Public
  14. # License along with the GNU C Library; if not, see
  15. # <https://www.gnu.org/licenses/>.
  16. set -e
  17. common_objpfx=$1; shift
  18. test_program_prefix_before_env=$1; shift
  19. run_program_env=$1; shift
  20. test_program_prefix_after_env=$1; shift
  21. status=0
  22. trap "rm -f ${common_objpfx}malloc/tst-mtrace.leak; exit 1" 1 2 15
  23. ${test_program_prefix_before_env} \
  24. ${run_program_env} \
  25. MALLOC_TRACE=${common_objpfx}malloc/tst-mtrace.leak \
  26. LD_PRELOAD=${common_objpfx}malloc/libc_malloc_debug.so \
  27. ${test_program_prefix_after_env} \
  28. ${common_objpfx}malloc/tst-mtrace || status=1
  29. if test $status -eq 0 && test -f ${common_objpfx}malloc/mtrace; then
  30. ${common_objpfx}malloc/mtrace ${common_objpfx}malloc/tst-mtrace.leak \
  31. > ${common_objpfx}malloc/tst-mtrace.out|| status=1
  32. fi
  33. rm -f ${common_objpfx}malloc/tst-mtrace.leak
  34. exit $status