13920fd1187a789905b9b18eed38926e984469064Garrett Cooper#!/usr/bin/awk -f
23920fd1187a789905b9b18eed38926e984469064Garrett Cooper#
33920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    Script for adding necessary valgrind calls before commands.
43920fd1187a789905b9b18eed38926e984469064Garrett Cooper#
53920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    Copyright (C) 2012, Linux Test Project.
63920fd1187a789905b9b18eed38926e984469064Garrett Cooper#
73920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    This program is free software; you can redistribute it and/or modify
83920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    it under the terms of the GNU General Public License as published by
93920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    the Free Software Foundation; either version 2 of the License, or
103920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    (at your option) any later version.
113920fd1187a789905b9b18eed38926e984469064Garrett Cooper#
123920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    This program is distributed in the hope that it will be useful,
133920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    but WITHOUT ANY WARRANTY; without even the implied warranty of
143920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
153920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    GNU General Public License for more details.
163920fd1187a789905b9b18eed38926e984469064Garrett Cooper#
173920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    You should have received a copy of the GNU General Public License along
183920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    with this program; if not, write to the Free Software Foundation, Inc.,
193920fd1187a789905b9b18eed38926e984469064Garrett Cooper#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
203920fd1187a789905b9b18eed38926e984469064Garrett Cooper#
213920fd1187a789905b9b18eed38926e984469064Garrett Cooper# Garrett Cooper, April 2012
223920fd1187a789905b9b18eed38926e984469064Garrett Cooper#
233920fd1187a789905b9b18eed38926e984469064Garrett Cooper
243920fd1187a789905b9b18eed38926e984469064Garrett Cooper# XXX: this script doesn't handle items that would be executed via pan with
253920fd1187a789905b9b18eed38926e984469064Garrett Cooper# /bin/sh properly.
263920fd1187a789905b9b18eed38926e984469064Garrett CooperNF && ! /^#/ {
273920fd1187a789905b9b18eed38926e984469064Garrett Cooper	print
283920fd1187a789905b9b18eed38926e984469064Garrett Cooper	if (CHECK_LEVEL == 1 || CHECK_LEVEL == 3) {
293920fd1187a789905b9b18eed38926e984469064Garrett Cooper		s=$1 "_valgrind_memory_leak_check  valgrind -q --leak-check=full --trace-children=yes"
303920fd1187a789905b9b18eed38926e984469064Garrett Cooper		for (i = 2; i <= NF; i++) {
313920fd1187a789905b9b18eed38926e984469064Garrett Cooper			s = s " " $i
323920fd1187a789905b9b18eed38926e984469064Garrett Cooper		}
333920fd1187a789905b9b18eed38926e984469064Garrett Cooper		print s
343920fd1187a789905b9b18eed38926e984469064Garrett Cooper	}
353920fd1187a789905b9b18eed38926e984469064Garrett Cooper	if (CHECK_LEVEL == 2 || CHECK_LEVEL == 3) {
363920fd1187a789905b9b18eed38926e984469064Garrett Cooper		s=$1 "_valgrind_thread_concurrency_check  valgrind -q --tool=helgrind --trace-children=yes"
373920fd1187a789905b9b18eed38926e984469064Garrett Cooper		for (i = 2; i <= NF; i++) {
383920fd1187a789905b9b18eed38926e984469064Garrett Cooper			s = s " " $i
393920fd1187a789905b9b18eed38926e984469064Garrett Cooper		}
403920fd1187a789905b9b18eed38926e984469064Garrett Cooper		print s
413920fd1187a789905b9b18eed38926e984469064Garrett Cooper	}
423920fd1187a789905b9b18eed38926e984469064Garrett Cooper}
43