File tree Expand file tree Collapse file tree 2 files changed +33
-7
lines changed Expand file tree Collapse file tree 2 files changed +33
-7
lines changed Original file line number Diff line number Diff line change 9898 if : matrix.os == 'ubuntu-24.04'
9999 run : |
100100 make clean
101- make -j$(nproc)
101+ make -j$(nproc) CXXOPTS="-O1"
102102 valgrind --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --gen-suppressions=all --error-exitcode=42 ./testrunner
103- valgrind --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --gen-suppressions=all --error-exitcode=42 ./simplecpp simplecpp.cpp -e
103+ # TODO: run Python tests with valgrind
104+ VALGRIND_TOOL=memcheck ./selfcheck.sh
104105
105106 - name : Run with libstdc++ debug mode
106107 if : matrix.os == 'ubuntu-24.04' && matrix.compiler == 'g++'
@@ -144,10 +145,13 @@ jobs:
144145 tar xvf 1.5.1.tar.gz
145146 make clean
146147 make -j$(nproc) CXXOPTS="-O2 -g3"
147- valgrind --tool =callgrind ./ simplecpp -e simplecpp- 1.5.1/simplecpp.cpp 2 >callgrind.log || (cat callgrind.log && false)
148+ VALGRIND_TOOL =callgrind SIMPLECPP_PATH= simplecpp- 1.5.1 ./selfcheck.sh >callgrind.log || (cat callgrind.log && false)
148149 cat callgrind.log
149- callgrind_annotate --auto=no > callgrind.annotated.log
150- head -50 callgrind.annotated.log
150+ for f in callgrind.out.*;
151+ do
152+ callgrind_annotate --auto=no $f > $f.annotated.log
153+ head -50 $f.annotated.log
154+ done
151155
152156 - uses : actions/upload-artifact@v4
153157 if : matrix.os == 'ubuntu-24.04'
Original file line number Diff line number Diff line change 11#! /bin/bash
22
3- output=$( ./simplecpp simplecpp.cpp -e -f 2>&1 )
3+ if [ -z " $SIMPLECPP_PATH " ]; then
4+ SIMPLECPP_PATH=.
5+ fi
6+
7+ if [ -n " $VALGRIND_TOOL " ]; then
8+ if [ " $VALGRIND_TOOL " = " memcheck" ]; then
9+ VALGRIND_OPTS=" --error-limit=yes --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --gen-suppressions=all --error-exitcode=42"
10+ elif [ " $VALGRIND_TOOL " = " callgrind" ]; then
11+ VALGRIND_OPTS=" --tool=callgrind"
12+ else
13+ echo " unsupported valgrind tool '$VALGRIND_TOOL '"
14+ exit 1
15+ fi
16+ VALGRIND_CMD=" valgrind --tool=$VALGRIND_TOOL --log-fd=9 $VALGRIND_OPTS "
17+ VALGRIND_REDIRECT=" valgrind_$VALGRIND_TOOL .log"
18+ else
19+ VALGRIND_CMD=
20+ VALGRIND_REDIRECT=" /dev/null"
21+ fi
22+
23+ output=$( $VALGRIND_CMD ./simplecpp " $SIMPLECPP_PATH /simplecpp.cpp" -e -f 2>&1 9> " $VALGRIND_REDIRECT " )
424ec=$?
25+ cat " $VALGRIND_REDIRECT "
526errors=$( echo " $output " | grep -v ' Header not found: <' )
627if [ $ec -ne 0 ]; then
728 # only fail if we got errors which do not refer to missing system includes
104125fi
105126
106127# run with -std=gnuc++* so __has_include(...) is available
107- ./simplecpp simplecpp.cpp -e -f -std=gnu++11 $defs $inc
128+ $VALGRIND_CMD ./simplecpp " $SIMPLECPP_PATH / simplecpp.cpp" -e -f -std=gnu++11 $defs $inc 9> " $VALGRIND_REDIRECT "
108129ec=$?
130+ cat " $VALGRIND_REDIRECT "
109131if [ $ec -ne 0 ]; then
110132 exit $ec
111133fi
You can’t perform that action at this time.
0 commit comments