From b32f00ebe32fd57264a1527641cfb7cd0844e81f Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Tue, 7 Jun 2011 10:06:58 -0700 Subject: [PATCH] coverage: add ceph-coverage to run something with the right GCOV_PREFIX_STRIP Signed-off-by: Josh Durgin --- configure.ac | 1 + src/.gitignore | 1 + src/Makefile.am | 10 +++++++--- src/ceph-coverage.in | 25 +++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 src/ceph-coverage.in diff --git a/configure.ac b/configure.ac index 3d32d1ceab674..0c109c67bd224 100644 --- a/configure.ac +++ b/configure.ac @@ -147,6 +147,7 @@ AC_ARG_ENABLE([coverage], [], [enable_coverage=no]) AM_CONDITIONAL(ENABLE_COVERAGE, test "x$enable_coverage" != xno) +AC_SUBST(GCOV_PREFIX_STRIP, `echo $(pwd)/src | tr -dc / | wc -c`) # radosgw? AC_ARG_WITH([radosgw], diff --git a/src/.gitignore b/src/.gitignore index 710787e4a6e7f..21d5fa803573a 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -58,6 +58,7 @@ crush/CrushWrapper_wrap.cxx /cconf /cdebugpack /cephfs +/ceph-coverage /dumpjournal /gceph /init-ceph diff --git a/src/Makefile.am b/src/Makefile.am index acea1d89661d6..e95d4dca77d4a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -462,9 +462,10 @@ editpaths = sed \ -e 's|@libdir[@]|$(libdir)|g' \ -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ -e 's|@datadir[@]|$(pkgdatadir)|g' \ - -e 's|@prefix[@]|$(prefix)|g' + -e 's|@prefix[@]|$(prefix)|g' \ + -e 's|@@GCOV_PREFIX_STRIP[@][@]|$(GCOV_PREFIX_STRIP)|g' -init-ceph mkcephfs cdebugpack: init-ceph.in mkcephfs.in Makefile cdebugpack.in +init-ceph mkcephfs cdebugpack ceph-coverage: init-ceph.in mkcephfs.in Makefile cdebugpack.in ceph-coverage.in rm -f $@ $@.tmp $(editpaths) '$(srcdir)/$@.in' >$@.tmp chmod +x $@.tmp @@ -476,13 +477,15 @@ sbin_SCRIPTS += mkcephfs bin_SCRIPTS += obsync/obsync bin_SCRIPTS += obsync/boto_tool +bin_SCRIPTS += ceph-coverage CLEANFILES += \ cdebugpack \ ceph_ver.h \ init-ceph \ mkcephfs \ - sample.fetch_config + sample.fetch_config \ + ceph-coverage ## @@ -524,6 +527,7 @@ noinst_LIBRARIES += #libcephclient_so.a EXTRA_DIST = $(srcdir)/verify-mds-journal.sh $(srcdir)/vstart.sh $(srcdir)/stop.sh \ crun $(srcdir)/ceph_common.sh $(srcdir)/init-ceph.in $(srcdir)/mkcephfs.in \ $(srcdir)/cdebugpack.in \ + $(srcdir)/ceph-coverage.in \ $(srcdir)/cclsinfo $(srcdir)/make_version $(srcdir)/check_version \ $(srcdir)/.git_version \ $(srcdir)/crbdnamer \ diff --git a/src/ceph-coverage.in b/src/ceph-coverage.in new file mode 100644 index 0000000000000..85e833955bbb0 --- /dev/null +++ b/src/ceph-coverage.in @@ -0,0 +1,25 @@ +#!/bin/sh +set -e + +export GCOV_PREFIX_STRIP=@@GCOV_PREFIX_STRIP@@ + +usage () { + printf '%s: usage: %s OUTPUTDIR COMMAND [ARGS..]\n' "$(basename "$0")" "$(basename "$0")" 1>&2 + exit 1 +} + +export GCOV_PREFIX="$1" +[ -n "$GCOV_PREFIX" ] || usage +shift + +case "$GCOV_PREFIX" in + /*) + # absolute path -> ok + ;; + *) + # make it absolute + GCOV_PREFIX="$PWD/$GCOV_PREFIX" + ;; +esac + +exec "$@" -- 2.39.5