diff --git a/datadog-setup.php b/datadog-setup.php index 6829093d86..89f9532dd4 100644 --- a/datadog-setup.php +++ b/datadog-setup.php @@ -221,6 +221,17 @@ function install($options) // Writing the ini file if ($phpProperties[INI_SCANDIR]) { $iniFileName = '98-ddtrace.ini'; + // Search for pre-existing files with extension = ddtrace.so to avoid conflicts + // See issue https://github.com/DataDog/dd-trace-php/issues/1833 + foreach (scandir($phpProperties[INI_SCANDIR]) as $ini) { + $path = "{$phpProperties[INI_SCANDIR]}/$ini"; + if (is_file($path)) { + if (preg_match('(^\s*extension\s*=.+ddtrace\.so)m', file_get_contents($path))) { + $iniFileName = $ini; + } + } + } + $iniFilePaths = [$phpProperties[INI_SCANDIR] . '/' . $iniFileName]; if (\strpos($phpProperties[INI_SCANDIR], '/cli/conf.d') !== false) { @@ -270,7 +281,7 @@ function install($options) */ execute_or_exit( 'Impossible to update the INI settings file.', - "sed -i 's@extension \?= \?.*ddtrace.*\(.*\)@extension = ddtrace.so@g' " + "sed -i 's@ \?;\? \?extension \?= \?.*ddtrace.*\(.*\)@extension = ddtrace.so@g' " . escapeshellarg($iniFilePath) ); @@ -308,12 +319,6 @@ function install($options) // phpcs:disable Generic.Files.LineLength.TooLong if ($shouldInstallAppsec) { - // Appsec crashes with missing symbols if tracing is not loaded - execute_or_exit( - 'Impossible to update the INI settings file.', - "sed -i 's@ \?; \?extension \?= \?ddtrace.so@extension = ddtrace.so@g' " - . escapeshellarg($iniFilePath) - ); execute_or_exit( 'Impossible to update the INI settings file.', "sed -i 's@ \?; \?extension \?= \?ddappsec.so@extension = ddappsec.so@g' " diff --git a/dockerfiles/verify_packages/Makefile b/dockerfiles/verify_packages/Makefile index 1d02a9a1bf..5fd501e123 100644 --- a/dockerfiles/verify_packages/Makefile +++ b/dockerfiles/verify_packages/Makefile @@ -72,6 +72,7 @@ test_first_install.sh \ test_install_no_ldconfig_in_path.sh \ test_install_without_scan_dir.sh \ test_install_add_missing_ini_settings.sh \ +test_install_custom_ini_name.sh \ test_install_custom_installation_directory.sh \ test_install_custom_installation_root.sh \ test_install_non_root_user.sh \ diff --git a/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_no_curl_cli.sh b/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_no_curl_cli.sh index 7a75a5dd2b..ae3a9897cc 100644 --- a/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_no_curl_cli.sh +++ b/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_no_curl_cli.sh @@ -10,7 +10,7 @@ apk add php7 php7-json libcurl libexecinfo php7-openssl assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_yes_curl_cli.sh b/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_yes_curl_cli.sh index 5699b0e189..18aa3c43ab 100644 --- a/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_yes_curl_cli.sh +++ b/dockerfiles/verify_packages/installer/test_alpine_install_no_ext_curl_yes_curl_cli.sh @@ -10,7 +10,7 @@ apk add php7 php7-json libcurl libexecinfo curl assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_alpine_no_ext_json.sh b/dockerfiles/verify_packages/installer/test_alpine_no_ext_json.sh index 1445e7f0eb..40ec0b1dd1 100644 --- a/dockerfiles/verify_packages/installer/test_alpine_no_ext_json.sh +++ b/dockerfiles/verify_packages/installer/test_alpine_no_ext_json.sh @@ -10,7 +10,7 @@ apk add php7 curl assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" set +e diff --git a/dockerfiles/verify_packages/installer/test_alpine_no_libcurl.sh b/dockerfiles/verify_packages/installer/test_alpine_no_libcurl.sh index ae24d74926..836f7ae716 100644 --- a/dockerfiles/verify_packages/installer/test_alpine_no_libcurl.sh +++ b/dockerfiles/verify_packages/installer/test_alpine_no_libcurl.sh @@ -10,7 +10,7 @@ apk add php7 assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" set +e diff --git a/dockerfiles/verify_packages/installer/test_appsec_install_disabled.sh b/dockerfiles/verify_packages/installer/test_appsec_install_disabled.sh index 57de63bc31..3238043bf8 100644 --- a/dockerfiles/verify_packages/installer/test_appsec_install_disabled.sh +++ b/dockerfiles/verify_packages/installer/test_appsec_install_disabled.sh @@ -4,16 +4,20 @@ set -e . "$(dirname ${0})/utils.sh" +if ! is_appsec_installable; then + exit 0 +fi + # Initially no ddtrace assert_no_ddtrace # Install using the php installer -new_version="0.75.0" +new_version="0.79.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" -assert_appsec_version 0.3.2 +assert_appsec_version 0.4.0 assert_appsec_disabled assert_file_exists "$(get_php_extension_dir)"/ddappsec.so diff --git a/dockerfiles/verify_packages/installer/test_appsec_install_enabled.sh b/dockerfiles/verify_packages/installer/test_appsec_install_enabled.sh index 0cda4abb1b..cee140fe58 100644 --- a/dockerfiles/verify_packages/installer/test_appsec_install_enabled.sh +++ b/dockerfiles/verify_packages/installer/test_appsec_install_enabled.sh @@ -4,15 +4,19 @@ set -e . "$(dirname ${0})/utils.sh" +if ! is_appsec_installable; then + exit 0 +fi + # Initially no ddtrace assert_no_ddtrace # Install using the php installer -new_version="0.75.0" +new_version="0.79.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php --enable-appsec assert_ddtrace_version "${new_version}" -assert_appsec_version 0.3.2 +assert_appsec_version 0.4.0 assert_appsec_enabled assert_file_exists "$(get_php_extension_dir)"/ddappsec.so diff --git a/dockerfiles/verify_packages/installer/test_first_install.sh b/dockerfiles/verify_packages/installer/test_first_install.sh index 28d2756f51..f410abcab7 100644 --- a/dockerfiles/verify_packages/installer/test_first_install.sh +++ b/dockerfiles/verify_packages/installer/test_first_install.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_first_install_alpine.sh b/dockerfiles/verify_packages/installer/test_first_install_alpine.sh index 5699b0e189..18aa3c43ab 100644 --- a/dockerfiles/verify_packages/installer/test_first_install_alpine.sh +++ b/dockerfiles/verify_packages/installer/test_first_install_alpine.sh @@ -10,7 +10,7 @@ apk add php7 php7-json libcurl libexecinfo curl assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_first_install_php_debug.sh b/dockerfiles/verify_packages/installer/test_first_install_php_debug.sh index e9ea59a3c5..31295fe30e 100644 --- a/dockerfiles/verify_packages/installer/test_first_install_php_debug.sh +++ b/dockerfiles/verify_packages/installer/test_first_install_php_debug.sh @@ -13,7 +13,7 @@ sudo chmod a+w ./build/packages/* assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_first_install_php_debugzts.sh b/dockerfiles/verify_packages/installer/test_first_install_php_debugzts.sh index 409799a96c..242ea9744e 100644 --- a/dockerfiles/verify_packages/installer/test_first_install_php_debugzts.sh +++ b/dockerfiles/verify_packages/installer/test_first_install_php_debugzts.sh @@ -13,7 +13,7 @@ switch-php debug-zts-asan assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" set +e diff --git a/dockerfiles/verify_packages/installer/test_first_install_php_zts.sh b/dockerfiles/verify_packages/installer/test_first_install_php_zts.sh index 12b454a34d..21bdafcca4 100644 --- a/dockerfiles/verify_packages/installer/test_first_install_php_zts.sh +++ b/dockerfiles/verify_packages/installer/test_first_install_php_zts.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_fpm.sh b/dockerfiles/verify_packages/installer/test_fpm.sh index efdbf4e821..e32166f37b 100644 --- a/dockerfiles/verify_packages/installer/test_fpm.sh +++ b/dockerfiles/verify_packages/installer/test_fpm.sh @@ -11,7 +11,7 @@ extension_dir="$(php -i | grep '^extension_dir' | awk '{ print $NF }')" ini_dir="$(php -i | grep '^Scan' | awk '{ print $NF }')" # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php-fpm assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_install_add_missing_ini_settings.sh b/dockerfiles/verify_packages/installer/test_install_add_missing_ini_settings.sh index 083901cf0d..f63c1952ec 100644 --- a/dockerfiles/verify_packages/installer/test_install_add_missing_ini_settings.sh +++ b/dockerfiles/verify_packages/installer/test_install_add_missing_ini_settings.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_install_custom_ini_name.sh b/dockerfiles/verify_packages/installer/test_install_custom_ini_name.sh new file mode 100644 index 0000000000..0323e7bc2b --- /dev/null +++ b/dockerfiles/verify_packages/installer/test_install_custom_ini_name.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env sh + +set -e + +. "$(dirname ${0})/utils.sh" + +# Initially no ddtrace +assert_no_ddtrace + +# Install using the php installer +new_version="0.78.0" +generate_installers "${new_version}" +php ./build/packages/datadog-setup.php --php-bin php +assert_ddtrace_version "${new_version}" + +ini_file="$(get_php_conf_dir)/98-ddtrace.ini" +custom_ini_file="$(get_php_conf_dir)/40-ddtrace.ini" + +# remove an INI to see that indeed that ini is changed +assert_file_contains "${ini_file}" 'datadog.version' +sed -i 's/datadog\.version.*//g' "${ini_file}" +assert_file_not_contains "${ini_file}" 'datadog.version' + +mv "$ini_file" "$custom_ini_file" + +php ./build/packages/datadog-setup.php --php-bin php + +assert_file_contains "${custom_ini_file}" 'datadog.version' + +assert_file_not_exists "${ini_file}" + +assert_request_init_hook_exists diff --git a/dockerfiles/verify_packages/installer/test_install_custom_installation_directory.sh b/dockerfiles/verify_packages/installer/test_install_custom_installation_directory.sh index 0d90687648..a7ec1b38ea 100644 --- a/dockerfiles/verify_packages/installer/test_install_custom_installation_directory.sh +++ b/dockerfiles/verify_packages/installer/test_install_custom_installation_directory.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php --install-dir /custom/dd assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_install_custom_installation_root.sh b/dockerfiles/verify_packages/installer/test_install_custom_installation_root.sh index 9cf70df674..cb013431c5 100644 --- a/dockerfiles/verify_packages/installer/test_install_custom_installation_root.sh +++ b/dockerfiles/verify_packages/installer/test_install_custom_installation_root.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" # Verify that wrong installation dir (e.g. /) does not delete all files in root diff --git a/dockerfiles/verify_packages/installer/test_install_no_ldconfig_in_path.sh b/dockerfiles/verify_packages/installer/test_install_no_ldconfig_in_path.sh index 0ead22f89c..f4006e4a84 100644 --- a/dockerfiles/verify_packages/installer/test_install_no_ldconfig_in_path.sh +++ b/dockerfiles/verify_packages/installer/test_install_no_ldconfig_in_path.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" PHP=$(which php) diff --git a/dockerfiles/verify_packages/installer/test_install_non_binary.sh b/dockerfiles/verify_packages/installer/test_install_non_binary.sh index e267c1ae9e..d039af4315 100644 --- a/dockerfiles/verify_packages/installer/test_install_non_binary.sh +++ b/dockerfiles/verify_packages/installer/test_install_non_binary.sh @@ -5,7 +5,7 @@ set -e . "$(dirname ${0})/utils.sh" # Install using the php installer -new_version="0.75.0" +new_version="0.79.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin=all diff --git a/dockerfiles/verify_packages/installer/test_install_non_root_user.sh b/dockerfiles/verify_packages/installer/test_install_non_root_user.sh index 42ea7521a3..a802161aed 100644 --- a/dockerfiles/verify_packages/installer/test_install_non_root_user.sh +++ b/dockerfiles/verify_packages/installer/test_install_non_root_user.sh @@ -10,7 +10,7 @@ assert_no_ddtrace useradd -m datadog -p datadog usermod -a -G datadog datadog -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" set +e diff --git a/dockerfiles/verify_packages/installer/test_install_subdir_from_file.sh b/dockerfiles/verify_packages/installer/test_install_subdir_from_file.sh index 5ac7853ed6..9fecdfcdcc 100644 --- a/dockerfiles/verify_packages/installer/test_install_subdir_from_file.sh +++ b/dockerfiles/verify_packages/installer/test_install_subdir_from_file.sh @@ -12,10 +12,13 @@ if [ "$CIRCLECI" = "true" ]; then exit 0 fi -new_version="0.74.0" +uname=$(uname -a) +arch=$(if [ -z "${uname##*arm*}" ] || [ -z "${uname##*aarch*}" ]; then echo aarch64; else echo x86_64; fi) + +new_version="0.78.0" generate_installers "${new_version}" repo_url=${DD_TEST_INSTALLER_REPO:-"https://github.com/DataDog/dd-trace-php"} -curl -L -o /tmp/downloaded.tar.gz "${repo_url}/releases/download/${new_version}/dd-library-php-${new_version}-x86_64-linux-gnu.tar.gz" +curl -L -o /tmp/downloaded.tar.gz "${repo_url}/releases/download/${new_version}/dd-library-php-${new_version}-${arch}-linux-gnu.tar.gz" # Install using the php installer php ./build/packages/datadog-setup.php --php-bin php --file /tmp/downloaded.tar.gz diff --git a/dockerfiles/verify_packages/installer/test_install_subdir_from_version.sh b/dockerfiles/verify_packages/installer/test_install_subdir_from_version.sh index 7fd58d5f30..efe4af66f7 100644 --- a/dockerfiles/verify_packages/installer/test_install_subdir_from_version.sh +++ b/dockerfiles/verify_packages/installer/test_install_subdir_from_version.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php diff --git a/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer.sh b/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer.sh index 4fb65fd107..f0d26f7b3c 100644 --- a/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer.sh +++ b/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer.sh @@ -11,7 +11,7 @@ extension_dir="$(php -i | grep '^extension_dir' | awk '{ print $NF }')" ini_dir="$(php -i | grep '^Scan' | awk '{ print $NF }')" # Install using the php installer -new_version="0.75.0" +new_version="0.79.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php diff --git a/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_appsec.sh b/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_appsec.sh index 8c5c3da5f1..de632b2067 100644 --- a/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_appsec.sh +++ b/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_appsec.sh @@ -4,6 +4,10 @@ set -e . "$(dirname ${0})/utils.sh" +if ! is_appsec_installable; then + exit 0 +fi + # Initially no ddtrace assert_no_ddtrace @@ -11,7 +15,7 @@ extension_dir="$(php -i | grep '^extension_dir' | awk '{ print $NF }')" ini_dir="$(php -i | grep '^Scan' | awk '{ print $NF }')" # Install using the php installer -new_version="0.75.0" +new_version="0.79.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php @@ -22,7 +26,7 @@ assert_no_appsec assert_no_profiler php ./build/packages/datadog-setup.php --enable-appsec --php-bin php -assert_appsec_version 0.3.2 +assert_appsec_version 0.4.0 assert_appsec_enabled # Appsec requires ddtrace to be enabled, otherwise it crashes with missing symbols. diff --git a/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_profiling.sh b/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_profiling.sh index 80ab8bd1aa..4ffda832bb 100644 --- a/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_profiling.sh +++ b/dockerfiles/verify_packages/installer/test_install_uninstall_install_tracer_profiling.sh @@ -4,6 +4,12 @@ set -e . "$(dirname ${0})/utils.sh" +# 0.75.0 doesn't exist on arm +uname=$(uname -a) +if [ -z "${uname##*arm*}" ] || [ -z "${uname##*aarch*}" ]; then + exit 0 +fi + # Initially no ddtrace assert_no_ddtrace diff --git a/dockerfiles/verify_packages/installer/test_install_without_scan_dir.sh b/dockerfiles/verify_packages/installer/test_install_without_scan_dir.sh index a17c00adbe..b049a85955 100644 --- a/dockerfiles/verify_packages/installer/test_install_without_scan_dir.sh +++ b/dockerfiles/verify_packages/installer/test_install_without_scan_dir.sh @@ -22,7 +22,7 @@ SCANDIR chmod +x $(dirname "$(which php)")/php-without-scan-dir # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php-without-scan-dir assert_ddtrace_version "${new_version}" php-without-scan-dir diff --git a/dockerfiles/verify_packages/installer/test_profiler_install_disabled.sh b/dockerfiles/verify_packages/installer/test_profiler_install_disabled.sh index 7d4afc8855..453b4f8a35 100644 --- a/dockerfiles/verify_packages/installer/test_profiler_install_disabled.sh +++ b/dockerfiles/verify_packages/installer/test_profiler_install_disabled.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_profiler_install_enabled.sh b/dockerfiles/verify_packages/installer/test_profiler_install_enabled.sh index f2b3235a60..03cbb8389b 100644 --- a/dockerfiles/verify_packages/installer/test_profiler_install_enabled.sh +++ b/dockerfiles/verify_packages/installer/test_profiler_install_enabled.sh @@ -4,15 +4,23 @@ set -e . "$(dirname ${0})/utils.sh" +uname=$(uname -a) +arch=$(if [ -z "${uname##*arm*}" ] || [ -z "${uname##*aarch*}" ]; then echo aarch64; else echo x86_64; fi) + # Initially no ddtrace assert_no_ddtrace # Install using the php installer trace_version=$(parse_trace_version) profiling_version=$(parse_profiling_version) +file="./build/packages/dd-library-php-${trace_version}-${arch}-linux-gnu.tar.gz" +if ! [ -f $file ]; then + trace_version="0.79.0" + profiling_version="0.10.0" +fi generate_installers "$trace_version" php ./build/packages/datadog-setup.php --php-bin php --enable-profiling \ - --file "./build/packages/dd-library-php-${trace_version}-x86_64-linux-gnu.tar.gz" + $(! [ -f $file ] || echo --file "$file") assert_ddtrace_version "${trace_version}" assert_file_exists "$(get_php_extension_dir)"/datadog-profiling.so diff --git a/dockerfiles/verify_packages/installer/test_profiler_install_unsupported.sh b/dockerfiles/verify_packages/installer/test_profiler_install_unsupported.sh index 1da0ff9994..02a6e147cf 100644 --- a/dockerfiles/verify_packages/installer/test_profiler_install_unsupported.sh +++ b/dockerfiles/verify_packages/installer/test_profiler_install_unsupported.sh @@ -8,7 +8,7 @@ set -e assert_no_ddtrace # Install using the php installer -new_version="0.75.0" +new_version="0.79.0" generate_installers "${new_version}" set +e diff --git a/dockerfiles/verify_packages/installer/test_uninstall.sh b/dockerfiles/verify_packages/installer/test_uninstall.sh index b35a4a0d5a..a630d108cf 100644 --- a/dockerfiles/verify_packages/installer/test_uninstall.sh +++ b/dockerfiles/verify_packages/installer/test_uninstall.sh @@ -10,22 +10,23 @@ assert_no_ddtrace extension_dir="$(php -i | grep '^extension_dir' | awk '{ print $NF }')" ini_dir="$(php -i | grep '^Scan' | awk '{ print $NF }')" +appsec=$(is_appsec_installable && echo 1 || true) + # Install using the php installer -version="0.75.0" -sha256sum="76506c5ec222b2975333e1bae85f8b91d7c02eb9ccd4dcc807cdf2f23c667785" +version="0.79.0" +sha256sum="35532a2b78fae131f61f89271e951b8c050a459e7d10fd579665c2669be8fdad" destdir="/tmp" fetch_setup_for_version "$version" "$sha256sum" "$destdir" -php "$destdir/datadog-setup.php" --php-bin php --enable-profiling --enable-appsec +php "$destdir/datadog-setup.php" --php-bin php --enable-profiling $([ -n "$appsec" ] && echo --enable-appsec) rm -v "$destdir/datadog-setup.php" assert_ddtrace_version "${version}" -assert_appsec_version "0.3.2" -assert_profiler_version "0.6.1" +if [ -n "$appsec" ]; then + assert_appsec_version "0.4.0" +fi +assert_profiler_version "0.10.0" # Uninstall -trace_version="$(parse_trace_version)" -generate_installers "$trace_version" -php ./build/packages/datadog-setup.php --php-bin php --uninstall \ - --file "./build/packages/dd-library-php-${trace_version}-x86_64-linux-gnu.tar.gz" +php ./build/packages/datadog-setup.php --php-bin php --uninstall assert_no_ddtrace assert_no_appsec @@ -44,7 +45,7 @@ if [ -f "${extension_dir}/datadog-profiling.so" ]; then else echo "Ok: File ${extension_dir}/datadog-profiling.so has been removed." fi -if [ -f "${extension_dir}/ddappsec.so" ]; then +if [ -n "$appsec" ] && [ -f "${extension_dir}/ddappsec.so" ]; then echo "Error. File ${extension_dir}/ddappsec.so should not exist." exit 1 else @@ -61,5 +62,7 @@ fi # extension=... in the INI file should be commented out assert_file_contains "${ini_dir}/98-ddtrace.ini" ";extension = ddtrace.so" -assert_file_contains "${ini_dir}/98-ddtrace.ini" ";zend_extension = datadog-profiling.so" -assert_file_contains "${ini_dir}/98-ddtrace.ini" ";extension = ddappsec.so" +assert_file_contains "${ini_dir}/98-ddtrace.ini" ";extension = datadog-profiling.so" +if [ -n "$appsec" ]; then + assert_file_contains "${ini_dir}/98-ddtrace.ini" ";extension = ddappsec.so" +fi diff --git a/dockerfiles/verify_packages/installer/test_upgrade_from_legacy.sh b/dockerfiles/verify_packages/installer/test_upgrade_from_legacy.sh index f261764efb..e7e82c5385 100644 --- a/dockerfiles/verify_packages/installer/test_upgrade_from_legacy.sh +++ b/dockerfiles/verify_packages/installer/test_upgrade_from_legacy.sh @@ -4,6 +4,12 @@ set -e . "$(dirname ${0})/utils.sh" +# 0.74.0 doesn't exist on arm +uname=$(uname -a) +if [ -z "${uname##*arm*}" ] || [ -z "${uname##*aarch*}" ]; then + exit 0 +fi + # Initially no ddtrace assert_no_ddtrace @@ -13,7 +19,7 @@ install_legacy_ddtrace "${old_version}" assert_ddtrace_version "${old_version}" # Upgrade using the php installer -new_version="0.74.0" +new_version="0.78.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/test_upgrade_from_php_installer.sh b/dockerfiles/verify_packages/installer/test_upgrade_from_php_installer.sh index 0b21a716fb..1807de7990 100644 --- a/dockerfiles/verify_packages/installer/test_upgrade_from_php_installer.sh +++ b/dockerfiles/verify_packages/installer/test_upgrade_from_php_installer.sh @@ -8,13 +8,13 @@ set -e assert_no_ddtrace # Install using the php installer -old_version="0.74.0" +old_version="0.78.0" generate_installers "${old_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${old_version}" # Upgrade using the php installer -new_version="0.75.0" +new_version="0.79.0" generate_installers "${new_version}" php ./build/packages/datadog-setup.php --php-bin php assert_ddtrace_version "${new_version}" diff --git a/dockerfiles/verify_packages/installer/utils.sh b/dockerfiles/verify_packages/installer/utils.sh index f97a611a51..2b72552a6e 100755 --- a/dockerfiles/verify_packages/installer/utils.sh +++ b/dockerfiles/verify_packages/installer/utils.sh @@ -116,6 +116,16 @@ assert_file_exists() { fi } +assert_file_not_exists() { + file="${1}" + if ! [ -f "${file}" ]; then + echo "Ok: File '${file}' does not exist\n" + else + echo "Error: File '${file}' exists\n" + exit 1 + fi +} + install_legacy_ddtrace() { version=$1 curl -L --output "/tmp/legacy-${version}.tar.gz" \ @@ -170,3 +180,9 @@ dashed_print() { printf '%s\n---\n' "$line" done } + +is_appsec_installable() { + uname=$(uname -a) + [ -n "${uname##*arm*}" ] && [ -n "${uname##*aarch*}" ] +} + diff --git a/tests/internal-api-stress-test.php b/tests/internal-api-stress-test.php index 1fcf2e9314..4487e588a9 100644 --- a/tests/internal-api-stress-test.php +++ b/tests/internal-api-stress-test.php @@ -47,7 +47,7 @@ function ensure_bounded_nesting_depth() } } - if ($depth >= 10) { + if ($depth >= 8) { ini_set("datadog.trace.enabled", "0"); ini_set("datadog.trace.enabled", "1"); } diff --git a/tests/randomized/README.md b/tests/randomized/README.md index 541d5f5237..df0add9d9c 100644 --- a/tests/randomized/README.md +++ b/tests/randomized/README.md @@ -139,9 +139,9 @@ docker run --rm -ti datadog/dd-trace-ci:php-randomizedtests-centos7-8.0 bash Install the specific version of the tracer from `CircleCI` > `build_packages` > `package extension` > `ARTIFACTS` ``` -curl -L -o /tmp/ddtrace-test.tar.gz https://557109-119990860-gh.circle-artifacts.com/0/datadog-php-tracer-1.0.0-nightly.x86_64.tar.gz -tar -xf /tmp/ddtrace-test.tar.gz -C / -bash /opt/datadog-php/bin/post-install.sh +curl -L -o /tmp/datadog-setup.php https://557109-119990860-gh.circle-artifacts.com/0/datadog-setup.php +curl -L -o /tmp/ddtrace-test.tar.gz https://557109-119990860-gh.circle-artifacts.com/0/dd-library-php-1.0.0-nightly-aarch64-linux-gnu.tar.gz +php /tmp/datadog-setup.php --php-bin all --file /tmp/ddtrace-test.tar.gz --enable-profiling ``` Download the generated core dump from `CircleCI` > `build_packages` > `randomized_tests-XX` > `ARTIFACTS` (search in artifact for the scenario that is failing based on the build report, the core dump file is called `core`):