]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
coverage: add ceph-coverage to run something with the right GCOV_PREFIX_STRIP
authorJosh Durgin <josh.durgin@dreamhost.com>
Tue, 7 Jun 2011 17:06:58 +0000 (10:06 -0700)
committerJosh Durgin <josh.durgin@dreamhost.com>
Tue, 7 Jun 2011 20:29:21 +0000 (13:29 -0700)
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
configure.ac
src/.gitignore
src/Makefile.am
src/ceph-coverage.in [new file with mode: 0644]

index 3d32d1ceab674666bb57a3ef2b6497499a190db2..0c109c67bd2245eebf75a5f1fa5dc81c908fe33d 100644 (file)
@@ -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],
index 710787e4a6e7fa0781c7c015527919d0d11403ad..21d5fa803573a0bee871ebd92b3de44ef7a521f0 100644 (file)
@@ -58,6 +58,7 @@ crush/CrushWrapper_wrap.cxx
 /cconf
 /cdebugpack
 /cephfs
+/ceph-coverage
 /dumpjournal
 /gceph
 /init-ceph
index acea1d89661d6a7e93aa51a604bd18b778caed1a..e95d4dca77d4a743faaa017c77ae5c453a58aed6 100644 (file)
@@ -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 (file)
index 0000000..85e8339
--- /dev/null
@@ -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 "$@"