diff mbox series

[lttng-tools] fix: check for dtrace and sdt.h before enabling SDT uprobe tests

Message ID 20191031201246.5944-1-mjeanson@efficios.com
State Accepted, archived
Headers show
Series [lttng-tools] fix: check for dtrace and sdt.h before enabling SDT uprobe tests | expand

Commit Message

Michael Jeanson Oct. 31, 2019, 8:12 p.m. UTC
Add a configure switch '--enable-sdt-uprobe / --disable-sdt-uprobe', the
default behavior of enabling the test if the requirements are found is
kept but it's now possible to explicitly disable it.

Also add the detection of the dtrace binary and its override trough the
DTRACE environment variable.

Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
---
 configure.ac                                  | 37 +++++++++++++++++--
 tests/utils/testapp/Makefile.am               |  4 +-
 .../userspace-probe-sdt-binary/Makefile.am    |  8 +++-
 3 files changed, 42 insertions(+), 7 deletions(-)

Comments

Jérémie Galarneau Nov. 5, 2019, 3:30 a.m. UTC | #1
Merged in master and stable-2.11.

Thanks!
J?r?mie

On Thu, Oct 31, 2019 at 04:12:46PM -0400, Michael Jeanson wrote:
> Add a configure switch '--enable-sdt-uprobe / --disable-sdt-uprobe', the
> default behavior of enabling the test if the requirements are found is
> kept but it's now possible to explicitly disable it.
> 
> Also add the detection of the dtrace binary and its override trough the
> DTRACE environment variable.
> 
> Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
> ---
>  configure.ac                                  | 37 +++++++++++++++++--
>  tests/utils/testapp/Makefile.am               |  4 +-
>  .../userspace-probe-sdt-binary/Makefile.am    |  8 +++-
>  3 files changed, 42 insertions(+), 7 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 8c0683fe2..ab0a15b2d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -25,9 +25,6 @@ AC_PROG_CXX
>  RW_PROG_CXX_WORKS
>  AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"])
>  
> -LTTNG_CHECK_SDT_WORKS
> -AM_CONDITIONAL([SDT_WORKS], [test "x$lttng_cv_sdt_works" = "xyes"])
> -
>  # Checks for programs.
>  AC_PROG_GREP
>  AC_PROG_MAKE_SET
> @@ -815,6 +812,36 @@ AC_SUBST([RUN_PYTHON_AGENT_TEST])
>  AC_SUBST([PYTHON2_AGENT])
>  AC_SUBST([PYTHON3_AGENT])
>  
> +AC_ARG_ENABLE([test-sdt-uprobe],
> +  [AS_HELP_STRING([--enable-test-sdt-uprobe], [enable the LTTng UST SDT uprobe tests [default=autodetect]])],
> +  [test_sdt_uprobe="$enableval"],
> +  [test_sdt_uprobe=autodetect]
> +)
> +
> +AS_IF([test "$test_sdt_uprobe" != "no"], [
> +  LTTNG_CHECK_SDT_WORKS
> +  AC_PATH_PROG([DTRACE], [dtrace])
> +])
> +
> +AS_IF([test "$test_sdt_uprobe" = "yes"], [
> +  AS_IF([test "$lttng_cv_sdt_works" = "no"], [
> +    AC_MSG_ERROR([Cannot find 'sys/sdt.h'.])
> +  ])
> +  AS_IF([test "x$DTRACE" = "x"], [
> +    AC_MSG_ERROR([Cannot find SystemTap dtrace. You can set the DTRACE variable to override automatic detection.])
> +  ])
> +])
> +
> +AS_IF([test "$test_sdt_uprobe" = "autodetect"], [
> +  AS_IF([test "$lttng_cv_sdt_works" = "yes"], [
> +    AS_IF([test "x$DTRACE" != "x"], [
> +      test_sdt_uprobe=yes
> +    ])
> +  ])
> +])
> +
> +AM_CONDITIONAL([TEST_SDT_UPROBE], [test "$test_sdt_uprobe" = "yes"])
> +
>  # Arguments for binaries build exclusion
>  AC_ARG_ENABLE([bin-lttng], AS_HELP_STRING([--disable-bin-lttng],[Disable the build of lttng binaries]))
>  AC_ARG_ENABLE([bin-lttng-consumerd], AS_HELP_STRING([--disable-bin-lttng-consumerd],
> @@ -1243,6 +1270,10 @@ PPRINT_PROP_BOOL([LTTng-UST Python2 agent tests], $value)
>  test ! -z "$PYTHON3_AGENT" && value=1 || value=0
>  PPRINT_PROP_BOOL([LTTng-UST Python3 agent tests], $value)
>  
> +# LTTng UST Java agent Log4j tests enabled/disabled
> +test "x$test_sdt_uprobe" = "xyes" && value=1 || value=0
> +PPRINT_PROP_BOOL([LTTng-UST SDT uprobe tests], $value)
> +
>  #Python binding enabled/disabled
>  test "x$enable_python_binding" = xyes && value=1 || value=0
>  AS_ECHO
> diff --git a/tests/utils/testapp/Makefile.am b/tests/utils/testapp/Makefile.am
> index 2a4cf5c7b..e2ad1f235 100644
> --- a/tests/utils/testapp/Makefile.am
> +++ b/tests/utils/testapp/Makefile.am
> @@ -12,9 +12,9 @@ if CXX_WORKS
>  SUBDIRS += userspace-probe-elf-cxx-binary
>  endif # CXX_WORKS
>  
> -if SDT_WORKS
> +if TEST_SDT_UPROBE
>  SUBDIRS += userspace-probe-sdt-binary
> -endif # SDT_WORKS
> +endif # TEST_SDT_UPROBE
>  
>  if HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT
>  SUBDIRS += gen-syscall-events-callstack
> diff --git a/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am b/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
> index d79ce0ea3..591f4aa6c 100644
> --- a/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
> +++ b/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
> @@ -26,10 +26,14 @@ libzzz_la_CFLAGS = -I$(abs_builddir)
>  libzzz_la_LDFLAGS = -module -shared -avoid-version -rpath $(abs_builddir)/.libs/
>  nodist_libzzz_la_SOURCES = $(abs_builddir)/foobar_provider.h
>  
> +dtrace_verbose = $(dtrace_verbose_ at AM_V@)
> +dtrace_verbose_ = $(dtrace_verbose_ at AM_DEFAULT_V@)
> +dtrace_verbose_0 = @echo "  DTRACE  " $@;
> +
>  foobar_provider.h: foobar_provider.d
> -	dtrace -s $< -o $@ -h
> +	$(dtrace_verbose)$(DTRACE) -s $< -o $@ -h
>  
>  foobar_provider.o: foobar_provider.d
> -	dtrace -s $< -o $@ -G
> +	$(dtrace_verbose)$(DTRACE) -s $< -o $@ -G
>  
>  CLEANFILES = foobar_provider.h
> -- 
> 2.17.1
>
diff mbox series

Patch

diff --git a/configure.ac b/configure.ac
index 8c0683fe2..ab0a15b2d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,9 +25,6 @@  AC_PROG_CXX
 RW_PROG_CXX_WORKS
 AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"])
 
-LTTNG_CHECK_SDT_WORKS
-AM_CONDITIONAL([SDT_WORKS], [test "x$lttng_cv_sdt_works" = "xyes"])
-
 # Checks for programs.
 AC_PROG_GREP
 AC_PROG_MAKE_SET
@@ -815,6 +812,36 @@  AC_SUBST([RUN_PYTHON_AGENT_TEST])
 AC_SUBST([PYTHON2_AGENT])
 AC_SUBST([PYTHON3_AGENT])
 
+AC_ARG_ENABLE([test-sdt-uprobe],
+  [AS_HELP_STRING([--enable-test-sdt-uprobe], [enable the LTTng UST SDT uprobe tests [default=autodetect]])],
+  [test_sdt_uprobe="$enableval"],
+  [test_sdt_uprobe=autodetect]
+)
+
+AS_IF([test "$test_sdt_uprobe" != "no"], [
+  LTTNG_CHECK_SDT_WORKS
+  AC_PATH_PROG([DTRACE], [dtrace])
+])
+
+AS_IF([test "$test_sdt_uprobe" = "yes"], [
+  AS_IF([test "$lttng_cv_sdt_works" = "no"], [
+    AC_MSG_ERROR([Cannot find 'sys/sdt.h'.])
+  ])
+  AS_IF([test "x$DTRACE" = "x"], [
+    AC_MSG_ERROR([Cannot find SystemTap dtrace. You can set the DTRACE variable to override automatic detection.])
+  ])
+])
+
+AS_IF([test "$test_sdt_uprobe" = "autodetect"], [
+  AS_IF([test "$lttng_cv_sdt_works" = "yes"], [
+    AS_IF([test "x$DTRACE" != "x"], [
+      test_sdt_uprobe=yes
+    ])
+  ])
+])
+
+AM_CONDITIONAL([TEST_SDT_UPROBE], [test "$test_sdt_uprobe" = "yes"])
+
 # Arguments for binaries build exclusion
 AC_ARG_ENABLE([bin-lttng], AS_HELP_STRING([--disable-bin-lttng],[Disable the build of lttng binaries]))
 AC_ARG_ENABLE([bin-lttng-consumerd], AS_HELP_STRING([--disable-bin-lttng-consumerd],
@@ -1243,6 +1270,10 @@  PPRINT_PROP_BOOL([LTTng-UST Python2 agent tests], $value)
 test ! -z "$PYTHON3_AGENT" && value=1 || value=0
 PPRINT_PROP_BOOL([LTTng-UST Python3 agent tests], $value)
 
+# LTTng UST Java agent Log4j tests enabled/disabled
+test "x$test_sdt_uprobe" = "xyes" && value=1 || value=0
+PPRINT_PROP_BOOL([LTTng-UST SDT uprobe tests], $value)
+
 #Python binding enabled/disabled
 test "x$enable_python_binding" = xyes && value=1 || value=0
 AS_ECHO
diff --git a/tests/utils/testapp/Makefile.am b/tests/utils/testapp/Makefile.am
index 2a4cf5c7b..e2ad1f235 100644
--- a/tests/utils/testapp/Makefile.am
+++ b/tests/utils/testapp/Makefile.am
@@ -12,9 +12,9 @@  if CXX_WORKS
 SUBDIRS += userspace-probe-elf-cxx-binary
 endif # CXX_WORKS
 
-if SDT_WORKS
+if TEST_SDT_UPROBE
 SUBDIRS += userspace-probe-sdt-binary
-endif # SDT_WORKS
+endif # TEST_SDT_UPROBE
 
 if HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT
 SUBDIRS += gen-syscall-events-callstack
diff --git a/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am b/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
index d79ce0ea3..591f4aa6c 100644
--- a/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
+++ b/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
@@ -26,10 +26,14 @@  libzzz_la_CFLAGS = -I$(abs_builddir)
 libzzz_la_LDFLAGS = -module -shared -avoid-version -rpath $(abs_builddir)/.libs/
 nodist_libzzz_la_SOURCES = $(abs_builddir)/foobar_provider.h
 
+dtrace_verbose = $(dtrace_verbose_ at AM_V@)
+dtrace_verbose_ = $(dtrace_verbose_ at AM_DEFAULT_V@)
+dtrace_verbose_0 = @echo "  DTRACE  " $@;
+
 foobar_provider.h: foobar_provider.d
-	dtrace -s $< -o $@ -h
+	$(dtrace_verbose)$(DTRACE) -s $< -o $@ -h
 
 foobar_provider.o: foobar_provider.d
-	dtrace -s $< -o $@ -G
+	$(dtrace_verbose)$(DTRACE) -s $< -o $@ -G
 
 CLEANFILES = foobar_provider.h