source: git/tests/smoke.tst

walls-data
Last change on this file was 43e8c72, checked in by Olly Betts <olly@…>, 3 years ago

Suppress lsan leak checking on exit

If the tree is built with LeakSanitiser? then some tests fail due to
us not releasing all memory explicitly on exit (doing so would mean
extra work for no reason as the OS reclaims all memory when the
process exits). If LeakSanitiser? isn't in use then setting LSAN_OPTIONS
should be harmless.

  • Property mode set to 100755
File size: 2.0 KB
Line 
1#!/bin/sh
2#
3# Survex test suite - smoke tests
4# Copyright (C) 1999-2021 Olly Betts
5#
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
20testdir=`echo $0 | sed 's!/[^/]*$!!' || echo '.'`
21
22test -x "$testdir"/../src/cavern || testdir=.
23
24# Ensure that --version and --help work without an X display.
25DISPLAY=
26export DISPLAY
27
28PROGS="cavern diffpos extend sorterr survexport aven"
29
30# Suppress checking for leaks on exit if we're build with lsan - we don't
31# generally waste effort to free all allocations as the OS will reclaim
32# memory on exit.
33LSAN_OPTIONS=leak_check_at_exit=0
34export LSAN_OPTIONS
35
36vgrun=
37vg_error=123
38vg_log=vg.log
39if [ -n "$VALGRIND" ] ; then
40  rm -f "$vg_log"
41  vgrun="$VALGRIND --log-file=$vg_log --error-exitcode=$vg_error"
42fi
43
44for p in ${PROGS}; do
45  echo $p
46  for o in version help ; do
47    if test -n "$VERBOSE"; then
48      $vgrun "$testdir/../src/$p" --$o
49      exitcode=$?
50    else
51      $vgrun "$testdir/../src/$p" --$o > /dev/null
52      exitcode=$?
53    fi 2> stderr.log
54    if [ -s stderr.log ] ; then
55      echo "$p --$o produced output on stderr:"
56      cat stderr.log
57      rm stderr.log
58      exit 1
59    fi
60    rm stderr.log
61    if [ -n "$VALGRIND" ] ; then
62      if [ $exitcode = "$vg_error" ] ; then
63        cat "$vg_log"
64        rm "$vg_log"
65        exit 1
66      fi
67      rm "$vg_log"
68    fi
69    [ "$exitcode" = 0 ] || exit 1
70  done
71done
72
73test -n "$VERBOSE" && echo "Test passed"
74exit 0
Note: See TracBrowser for help on using the repository browser.