From d9ec8b9b2a3880a1a2b68e57a25833486c3b164d Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Fri, 15 Sep 2017 10:24:13 -0700 Subject: [PATCH] Add configure option to enable gcov analysis * Add configure option to enable gcov analysis. * Includes a few minor ctime fixes. * Add codecov.yml configuration. Reviewed-by: Prakash Surya Signed-off-by: Brian Behlendorf Closes #6642 --- .github/codecov.yml | 9 ++++++ .gitignore | 2 ++ Makefile.am | 3 +- config/zfs-build.m4 | 31 +++++++++++++++++++ configure.ac | 1 + .../tests/functional/ctime/.gitignore | 2 +- .../tests/functional/ctime/ctime_001_pos.ksh | 0 7 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 .github/codecov.yml mode change 100644 => 100755 tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh diff --git a/.github/codecov.yml b/.github/codecov.yml new file mode 100644 index 0000000000..f36be39cb2 --- /dev/null +++ b/.github/codecov.yml @@ -0,0 +1,9 @@ +codecov: + strict_yaml_branch: master # only use the latest copy on master branch + +comment: off + +coverage: + status: + project: off + patch: off diff --git a/.gitignore b/.gitignore index 29437b58c8..bfce0902fe 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,8 @@ *.mod.c *~ *.swp +*.gcno +*.gcda .deps .libs .dirstamp diff --git a/Makefile.am b/Makefile.am index e6e19d6a23..ed753c81a2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,7 +31,8 @@ distclean-local:: -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ -o -name '.*.rej' -o -size 0 -o -name '*%' -o -name '.*.cmd' \ -o -name 'core' -o -name 'Makefile' -o -name 'Module.symvers' \ - -o -name '*.order' -o -name '*.markers' \) \ + -o -name '*.order' -o -name '*.markers' -o -name '*.gcda' \ + -o -name '*.gcno' \) \ -type f -print | xargs $(RM) dist-hook: diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index a8609b8299..b84658a648 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -75,6 +75,37 @@ AC_DEFUN([ZFS_AC_DEBUGINFO], [ AC_MSG_RESULT([$enable_debuginfo]) ]) +AC_DEFUN([ZFS_AC_GCOV_KERNEL], [ +]) + +AC_DEFUN([ZFS_AC_GCOV_USER], [ + DEBUG_CFLAGS="$DEBUG_CFLAGS -fprofile-arcs -ftest-coverage" +]) + +AC_DEFUN([ZFS_AC_GCOV], [ + AC_MSG_CHECKING([whether gcov profiling will be enabled]) + AC_ARG_ENABLE([gcov], + [AS_HELP_STRING([--enable-gcov], + [Enable gcov profiling @<:@default=no@:>@])], + [], + [enable_gcov=no]) + + AS_CASE(["x$enable_gcov"], + ["xyes"], + [ZFS_AC_GCOV_KERNEL + ZFS_AC_GCOV_USER], + ["xkernel"], + [ZFS_AC_GCOV_KERNEL], + ["xuser"], + [ZFS_AC_GCOV_USER], + ["xno"], + [], + [AC_MSG_ERROR([Unknown option $enable_gcov])]) + + AC_SUBST(DEBUG_CFLAGS) + AC_MSG_RESULT([$enable_gcov]) +]) + AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [ ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE ZFS_AC_CONFIG_ALWAYS_NO_BOOL_COMPARE diff --git a/configure.ac b/configure.ac index 0e7686fab4..ae03d1bf7f 100644 --- a/configure.ac +++ b/configure.ac @@ -56,6 +56,7 @@ ZFS_AC_PACKAGE ZFS_AC_CONFIG ZFS_AC_DEBUG ZFS_AC_DEBUGINFO +ZFS_AC_GCOV AC_CONFIG_FILES([ Makefile diff --git a/tests/zfs-tests/tests/functional/ctime/.gitignore b/tests/zfs-tests/tests/functional/ctime/.gitignore index ead826c04b..9e4539d5fe 100644 --- a/tests/zfs-tests/tests/functional/ctime/.gitignore +++ b/tests/zfs-tests/tests/functional/ctime/.gitignore @@ -1 +1 @@ -/ctime_001_pos +/ctime diff --git a/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh b/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh old mode 100644 new mode 100755