diff --git a/.circleci/config.yml b/.circleci/config.yml index 26794709d..6bed6baba 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -314,6 +314,9 @@ jobs: xfail_list: type: string default: none + php_src_dir: + type: string + default: /usr/src/php working_directory: ~/datadog environment: DDAGENT_HOSTNAME: 127.0.0.1 @@ -329,15 +332,17 @@ jobs: - run: name: Run tests command: | + mkdir -p <> docker-php-source extract if [[ ! "<>" == "none" ]]; then - cp "<>" /usr/src/php/xfail_tests.list + cp "<>" <>/xfail_tests.list ( - cd /usr/src/php - cat xfail_tests.list | xargs -n 1 sed -i -e $'s/\(--FILE.*--\)/--XFAIL--\\\nvar_dump missmatch\\\n\\1/g' + cd <> + cat xfail_tests.list | xargs -n 1 grep -L '\-\-SKIPIF\-\-' | xargs -n 1 -r sed -i -e $'s/\(--FILE.*--\)/--SKIPIF--\\\n\\1/g' || true + cat xfail_tests.list | xargs -n 1 sed -i -e $'s/\(--SKIPIF--\)/\\1\\\nskip Unreliable output or flaky test/g' ) fi - cd /usr/src/php + cd <> export SIGNALFX_TRACING_CLI_ENABLED=true export REPORT_EXIT_STATUS=1 export TEST_PHP_JUNIT=/tmp/artifacts/tests/php-tests.xml @@ -348,7 +353,7 @@ jobs: -d ddtrace.request_init_hook=/home/circleci/datadog/bridge/dd_wrap_autoloader.php - run: command: | - cd /usr/src/php + cd <> mkdir -p /tmp/artifacts/core_dumps find ./ -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps when: on_fail @@ -583,6 +588,12 @@ workflows: lib_curl_command: yum -y install libcurl-devel docker_image: "datadog/docker-library:ddtrace_centos_7_php_73" so_suffix: "20180731" + - compile_extension: + requires: [ 'Code Checkout' ] + name: "Compile PHP 74" + lib_curl_command: yum -y install libcurl-devel + docker_image: "datadog/dd-trace-ci:php-7.4-centos-7" + so_suffix: "20190902" - compile_extension: requires: [ 'Code Checkout' ] name: "Compile PHP 56-zts" @@ -613,6 +624,12 @@ workflows: docker_image: "circleci/php:7.3-zts" lib_curl_command: sudo apt update; sudo apt -y install libcurl4-nss-dev so_suffix: "20180731-zts" + - compile_extension: + requires: [ 'Code Checkout' ] + name: "Compile PHP 74-zts" + docker_image: "circleci/php:7.4-zts" + lib_curl_command: sudo apt update; sudo apt -y install libcurl4-nss-dev + so_suffix: "20190902-zts" - "package extension": requires: - "Compile PHP 54" @@ -621,11 +638,13 @@ workflows: - "Compile PHP 71" - "Compile PHP 72" - "Compile PHP 73" + - "Compile PHP 74" - "Compile PHP 56-zts" - "Compile PHP 70-zts" - "Compile PHP 71-zts" - "Compile PHP 72-zts" - "Compile PHP 73-zts" + - "Compile PHP 74-zts" - "package verification": requires: - "package extension" @@ -695,6 +714,18 @@ workflows: name: "PHP 73 language tests" xfail_list: dockerfiles/ci/xfail_tests/7.3.list docker_image: "datadog/dd-trace-php:7.3-buster-debug" + - unit_tests: + requires: [ 'Code Checkout' ] + name: "PHP 74 Unit tests" + docker_image: "datadog/dd-trace-ci:php-7.4-debug-alpine-3.11" + valgrind_config: 7_4_musl + lib_curl_command: sudo apk update ; sudo apk add curl-dev + - php_language_tests: + requires: [ 'Language tests' ] + name: "PHP 74 language tests" + xfail_list: dockerfiles/ci/xfail_tests/7.4.list + docker_image: "datadog/dd-trace-ci:php-7.4-debug-buster" + php_src_dir: "/usr/local/src/php" - php_language_tests: requires: [ 'Language tests' ] name: "PHP 72 language tests" @@ -756,6 +787,12 @@ workflows: integration_testsuite: "test-integrations-73" docker_image: "datadog/docker-library:ddtrace_alpine_php-7.3-debug" lib_curl_command: sudo apk update ; sudo apk add curl-dev + - integration_tests: + requires: [ 'Code Checkout' ] + name: "PHP 74 Integration tests" + integration_testsuite: "test-integrations-74" + docker_image: "datadog/dd-trace-ci:php-7.4-debug-alpine-3.11" + lib_curl_command: sudo apk update ; sudo apk add curl-dev - integration_tests: requires: [ 'Code Checkout' ] name: "PHP 54 Web integration tests" @@ -793,6 +830,13 @@ workflows: integration_testsuite: "test-web-73" docker_image: "datadog/docker-library:ddtrace_alpine_php-7.3-debug" lib_curl_command: sudo apk update ; sudo apk add curl-dev + - integration_tests: + requires: [ 'Code Checkout' ] + name: "PHP 74 Web integration tests" + resource_class: medium+ + integration_testsuite: "test-web-74" + docker_image: "datadog/dd-trace-ci:php-dev-7.4" + lib_curl_command: sudo apt update ; sudo apt-get -y install libcurl4-nss-dev - hyperfine_tests: requires: [ 'Code Checkout' ] name: "Hyperfine 54 benchmarks" @@ -823,6 +867,11 @@ workflows: name: "Hyperfine 73 benchmarks" docker_image: "datadog/docker-library:ddtrace_alpine_php-7.3-debug" lib_curl_command: sudo apk update ; sudo apk add curl-dev + - hyperfine_tests: + requires: [ 'Code Checkout' ] + name: "Hyperfine 74 benchmarks" + docker_image: "datadog/dd-trace-ci:php-7.4-debug-alpine-3.11" + lib_curl_command: sudo apk update ; sudo apk add curl-dev - "Lint files": requires: [ 'Code Checkout' ] - "Static Analysis": diff --git a/.circleci/valgrind/7_4_musl_valgrind.rc b/.circleci/valgrind/7_4_musl_valgrind.rc new file mode 100644 index 000000000..22f605e60 --- /dev/null +++ b/.circleci/valgrind/7_4_musl_valgrind.rc @@ -0,0 +1,3 @@ +--suppressions=/home/circleci/valgrind_7_4_musl_suppressions.lib +--gen-suppressions=all +--leak-check=full diff --git a/.circleci/valgrind/valgrind_7_4_musl_suppressions.lib b/.circleci/valgrind/valgrind_7_4_musl_suppressions.lib new file mode 100644 index 000000000..1b3ea442e --- /dev/null +++ b/.circleci/valgrind/valgrind_7_4_musl_suppressions.lib @@ -0,0 +1,146 @@ +{ + + Memcheck:Free + fun:free + obj:/lib/ld-musl-x86_64.so.1 +} +{ + + Memcheck:Cond + fun:strlcpy + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* +} +{ + + Memcheck:Cond + fun:strlcpy + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + fun:zend_hash_find_bucket + obj:* + obj:* +} +{ + php_zend_string_equal_val false positive due to handcrafted assembly + Memcheck:Cond + fun:zend_string_equal_val +} +{ + + Memcheck:Cond + fun:memcmp + fun:__putenv + obj:* + obj:* + obj:* + fun:vgMemCheck_new_block + obj:* + obj:* + obj:* + obj:* + fun:do_cli + obj:* +} +{ + + Memcheck:Cond + fun:memcmp + fun:unsetenv + obj:* + obj:* + obj:* + obj:* + fun:do_cli + obj:* + obj:* + fun:unsetenv + obj:* + obj:* +} +{ + + Memcheck:Cond + fun:strlcpy + obj:* + obj:* +} +{ + + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:__zend_malloc + fun:_emalloc + fun:zend_compile + fun:compile_file + fun:phar_compile_file + fun:_dd_compile_file + fun:zend_execute_scripts + fun:php_execute_script + fun:do_cli + fun:main +} +{ + + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:__zend_malloc + obj:* + fun:_emalloc + obj:* + fun:compile_file + obj:* + fun:_dd_compile_file + fun:zend_execute_scripts + fun:php_execute_script + obj:* + obj:* +} +{ + + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:__zend_malloc + obj:* + fun:_emalloc + obj:* + fun:compile_file + obj:* + fun:_dd_compile_file + fun:zend_execute_scripts + fun:dd_execute_auto_prepend_file + fun:zif_ddtrace_init + obj:* +} +{ + + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:__zend_malloc + obj:* + fun:_emalloc + obj:* + obj:* + fun:php_execute_script + obj:* + obj:* + obj:/lib/ld-musl-x86_64.so.1 + obj:* + obj:* +} diff --git a/composer.json b/composer.json index d1317b7f9..86727b421 100644 --- a/composer.json +++ b/composer.json @@ -201,6 +201,22 @@ "@composer test -- tests/Integrations/Predis", "@composer scenario default" ], + "test-integrations-74": [ + "sh clean-composer-scenario-locks.sh", + "@composer scenario:update", + "@composer scenario default", + "@composer test -- tests/Integrations/Curl", + "@composer test -- tests/Integrations/Memcached", + "@composer test -- tests/Integrations/Mysqli", + "@composer test -- tests/Integrations/PDO", + "@composer scenario guzzle5", + "@composer test -- tests/Integrations/Guzzle/V5", + "@composer scenario guzzle6", + "@composer test -- tests/Integrations/Guzzle/V6", + "@composer scenario predis1", + "@composer test -- tests/Integrations/Predis", + "@composer scenario default" + ], "test-web-54": [ "@cakephp-28-update", "@cakephp-28-test", @@ -312,6 +328,27 @@ "@zend-framework-1-test", "@custom-framework-autoloaded-suite" ], + "test-web-74": [ + "@laravel-57-update", + "@laravel-57-test", + "@laravel-58-update", + "@laravel-58-test", + "@lumen-52-update", + "@lumen-52-test", + "@lumen-56-update", + "@lumen-56-test", + "@lumen-58-update", + "@lumen-58-test", + "@slim-312-update", + "@slim-312-test", + "@symfony-40-suite", + "@symfony-42-suite", + "@wordpress-48-test", + "@yii-2-suite", + "@zend-framework-1-test", + "@custom-framework-autoloaded-suite", + "@opentracing-10-test" + ], "inrease-memory-limit": "export COMPOSER_MEMORY_LIMIT=-1", "memory_test": "echo $COMPOSER_MEMORY_LIMIT", diff --git a/docker-compose.yml b/docker-compose.yml index 214e82cab..73dc8783e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -70,6 +70,8 @@ services: '7.3-debug': { <<: *base_php_service, image: 'pawelchcki/ddtrace_php:7.3-stretch-debug' } '7.3-zts-debug': { <<: *base_php_service, image: 'datadog/docker-library:ddtrace_alpine_php-7.3-zts-debug' } '7.3-zts': { <<: *base_php_service, image: 'datadog/docker-library:ddtrace_alpine_php-7.3-zts' } + '7.4-debug-buster': { <<: *base_php_service, image: 'datadog/dd-trace-ci:php-7.4-debug-buster' } + '7.4-debug': { <<: *base_php_service, image: 'datadog/dd-trace-ci:php-7.4-debug-alpine-3.11' } 'ubuntu-16.04-7.1': { <<: *base_php_service, build: 'dockerfiles/ubuntu-16.04-php-7.1' } 'ubuntu-18.04-7.2': { <<: *base_php_service, build: 'dockerfiles/ubuntu-18.04-php-7.2' } 'fpm': { <<: *base_php_service, image: 'circleci/ruby:2.5', depends_on: [] } diff --git a/dockerfiles/ci/xfail_tests/7.4.list b/dockerfiles/ci/xfail_tests/7.4.list new file mode 100644 index 000000000..3f89a0320 --- /dev/null +++ b/dockerfiles/ci/xfail_tests/7.4.list @@ -0,0 +1,371 @@ +ext/pdo_sqlite/tests/common.phpt +tests/classes/__call_004.phpt +tests/classes/__call_005.phpt +tests/classes/__call_007.phpt +tests/classes/clone_001.phpt +tests/classes/clone_002.phpt +tests/classes/clone_004.phpt +tests/lang/type_hints_002.phpt +tests/output/ob_start_basic_002.phpt +Zend/tests/014.phpt +Zend/tests/029.phpt +Zend/tests/ArrayAccess_indirect_append.phpt +Zend/tests/anon/003.phpt +Zend/tests/anon/006.phpt +Zend/tests/anon/007.phpt +Zend/tests/anon/012.phpt +Zend/tests/anon/013.phpt +Zend/tests/bug29015.phpt +Zend/tests/bug30702.phpt +Zend/tests/bug30791.phpt +Zend/tests/bug31177-2.phpt +Zend/tests/bug31525.phpt +Zend/tests/bug33999.phpt +Zend/tests/bug42772.phpt +Zend/tests/bug60738.phpt +Zend/tests/bug60738_variation.phpt +Zend/tests/bug68118.phpt +Zend/tests/bug68148.phpt +Zend/tests/bug69315.phpt +Zend/tests/bug69446.phpt +Zend/tests/bug69446_2.phpt +Zend/tests/bug69802_2.phpt +Zend/tests/bug70179.phpt +Zend/tests/bug70187.phpt +Zend/tests/bug71539_1.phpt +Zend/tests/bug71539_5.phpt +Zend/tests/bug72038.phpt +Zend/tests/bug72598.phpt +Zend/tests/bug73900.phpt +Zend/tests/bug74862.phpt +Zend/tests/bug74862_2.phpt +Zend/tests/bug75290.phpt +Zend/tests/bug75420.16.phpt +Zend/tests/bug75420.5.phpt +Zend/tests/bug75420.6.phpt +Zend/tests/bug75420.8.phpt +Zend/tests/class_alias_020.phpt +Zend/tests/class_name_as_scalar.phpt +Zend/tests/closure_058.phpt +Zend/tests/dereference_002.phpt +Zend/tests/each_002.phpt +Zend/tests/exception_during_property_assign_op.phpt +Zend/tests/generators/gc_with_yield_from.phpt +Zend/tests/generators/generator_closure_with_this.phpt +Zend/tests/generators/generator_with_nonscalar_keys.phpt +Zend/tests/get_defined_functions_basic.phpt +Zend/tests/get_defined_vars.phpt +Zend/tests/get_required_files.phpt +Zend/tests/list/list_reference_006.phpt +Zend/tests/list/list_reference_007.phpt +Zend/tests/list_001.phpt +Zend/tests/list_002.phpt +Zend/tests/list_keyed_conversions.phpt +Zend/tests/modify_isref_value_return.phpt +Zend/tests/multibyte/multibyte_encoding_004.phpt +Zend/tests/object_array_cast.phpt +Zend/tests/objects_019.phpt +Zend/tests/objects_032.phpt +Zend/tests/offset_array.phpt +Zend/tests/overloaded_prop_assign_op_refs.phpt +Zend/tests/recursive_debug_info.phpt +Zend/tests/return_types/012.phpt +Zend/tests/return_types/025.phpt +Zend/tests/strict_001.phpt +Zend/tests/this_in_eval.phpt +Zend/tests/traits/property008.phpt +Zend/tests/traits/property009.phpt +Zend/tests/type_declarations/closure_with_variadic.phpt +Zend/tests/type_declarations/iterable_001.phpt +Zend/tests/type_declarations/iterable_003.phpt +Zend/tests/type_declarations/scalar_return_basic_64bit.phpt +Zend/tests/type_declarations/scalar_strict_64bit.phpt +Zend/tests/type_declarations/self_on_closure_in_method.phpt +ext/curl/tests/bug64267.phpt +ext/date/tests/012.phpt +ext/date/tests/013.phpt +ext/date/tests/DateTimeZone_serialize_type_3.phpt +ext/date/tests/bug41523-64bit.phpt +ext/date/tests/bug48097.phpt +ext/date/tests/bug52113.phpt +ext/date/tests/bug53437_var2.phpt +ext/date/tests/bug54316.phpt +ext/date/tests/bug54340.phpt +ext/date/tests/bug60236.phpt +ext/date/tests/bug60774.phpt +ext/date/tests/bug67118_2.phpt +ext/date/tests/bug68406.phpt +ext/date/tests/bug68669.phpt +ext/date/tests/date_diff1.phpt +ext/date/tests/date_time_fractions_serialize.phpt +ext/date/tests/date_timestamp_set_nullparam2.phpt +ext/date/tests/test-parse-from-format.phpt +ext/fileinfo/tests/finfo_open_error.phpt +ext/json/tests/bug45791.phpt +ext/json/tests/bug77843.phpt +ext/json/tests/json_decode_exceptions.phpt +ext/json/tests/json_encode_exceptions.phpt +ext/json/tests/pass001.phpt +ext/mbstring/tests/zend_multibyte-01.phpt +ext/mbstring/tests/zend_multibyte-02.phpt +ext/mbstring/tests/zend_multibyte-06.phpt +ext/openssl/tests/bug46127.phpt +ext/openssl/tests/bug48182.phpt +ext/openssl/tests/bug54992.phpt +ext/openssl/tests/bug65538_001.phpt +ext/openssl/tests/bug65538_003.phpt +ext/openssl/tests/bug65729.phpt +ext/openssl/tests/bug68265.phpt +ext/openssl/tests/bug68879.phpt +ext/openssl/tests/bug68920.phpt +ext/openssl/tests/bug69215.phpt +ext/openssl/tests/bug72333.phpt +ext/openssl/tests/bug74159.phpt +ext/openssl/tests/bug77390.phpt +ext/openssl/tests/capture_peer_cert_001.phpt +ext/openssl/tests/openssl_encrypt_ccm.phpt +ext/openssl/tests/openssl_peer_fingerprint_basic.phpt +ext/openssl/tests/openssl_pkcs7_decrypt_error.phpt +ext/openssl/tests/peer_verification.phpt +ext/openssl/tests/san_peer_matching.phpt +ext/openssl/tests/session_meta_capture.phpt +ext/openssl/tests/stream_crypto_flags_001.phpt +ext/openssl/tests/stream_crypto_flags_002.phpt +ext/openssl/tests/stream_crypto_flags_003.phpt +ext/openssl/tests/stream_crypto_flags_004.phpt +ext/openssl/tests/stream_security_level.phpt +ext/openssl/tests/stream_server_reneg_limit.phpt +ext/openssl/tests/stream_verify_peer_name_001.phpt +ext/openssl/tests/stream_verify_peer_name_002.phpt +ext/openssl/tests/stream_verify_peer_name_003.phpt +ext/openssl/tests/streams_crypto_method.phpt +ext/openssl/tests/tls_min_v1.0_max_v1.1_wrapper.phpt +ext/openssl/tests/tls_wrapper.phpt +ext/openssl/tests/tlsv1.0_wrapper.phpt +ext/openssl/tests/tlsv1.1_wrapper.phpt +ext/openssl/tests/tlsv1.2_wrapper.phpt +ext/pdo_sqlite/tests/pdo_sqlite_lastinsertid.phpt +ext/phar/tests/031.phpt +ext/phar/tests/032.phpt +ext/phar/tests/bug69720.phpt +ext/phar/tests/bug70433.phpt +ext/phar/tests/fatal_error_webphar.phpt +ext/phar/tests/phar_oo_002.phpt +ext/phar/tests/phar_oo_005.phpt +ext/phar/tests/phar_oo_007.phpt +ext/reflection/tests/009.phpt +ext/reflection/tests/025.phpt +ext/reflection/tests/ReflectionClassConstant_basic1.phpt +ext/reflection/tests/ReflectionExtension_getClasses_basic.phpt +ext/reflection/tests/ReflectionGenerator_basic.phpt +ext/reflection/tests/ReflectionGenerator_in_Generator.phpt +ext/reflection/tests/ReflectionMethod_getPrototype_basic.phpt +ext/reflection/tests/bug39884.phpt +ext/reflection/tests/bug46103.phpt +ext/reflection/tests/bug69802.phpt +ext/reflection/tests/traits004.phpt +ext/session/tests/003.phpt +ext/session/tests/004.phpt +ext/session/tests/005.phpt +ext/session/tests/023.phpt +ext/session/tests/session_decode_basic.phpt +ext/session/tests/session_decode_basic_serialize.phpt +ext/simplexml/tests/SimpleXMLElement_addAttribute_basic.phpt +ext/simplexml/tests/bug54973.phpt +ext/simplexml/tests/bug62639.phpt +ext/simplexml/tests/bug66084_0.phpt +ext/simplexml/tests/bug69491.phpt +ext/simplexml/tests/bug72971.phpt +ext/simplexml/tests/bug72971_2.phpt +ext/simplexml/tests/simplexml_load_file.phpt +ext/sodium/tests/utils.phpt +ext/spl/tests/ArrayObject_clone_other_std_props.phpt +ext/spl/tests/ArrayObject_dump_during_sort.phpt +ext/spl/tests/ArrayObject_exchange_array_during_sorting.phpt +ext/spl/tests/ArrayObject_overloaded_object_incompatible.phpt +ext/spl/tests/ArrayObject_sort_different_backing_storage.phpt +ext/spl/tests/SplDoublylinkedlist_offsetunset_first.phpt +ext/spl/tests/SplDoublylinkedlist_offsetunset_last.phpt +ext/spl/tests/SplFixedArray_fromarray_indexes.phpt +ext/spl/tests/SplFixedArray_fromarray_non_indexes.phpt +ext/spl/tests/SplFixedArray_fromarray_param_multiarray.phpt +ext/spl/tests/SplFixedArray_offsetUnset_string.phpt +ext/spl/tests/SplFixedArray_serialize.phpt +ext/spl/tests/SplFixedArray_setSize_filled_to_smaller.phpt +ext/spl/tests/SplFixedArray_setSize_param_float.phpt +ext/spl/tests/SplFixedArray_setSize_param_null.phpt +ext/spl/tests/SplFixedArray_setsize_001.phpt +ext/spl/tests/SplFixedArray_setsize_shrink.phpt +ext/spl/tests/SplObjectStorage_getHash.phpt +ext/spl/tests/SplObjectStorage_unserialize_bad.phpt +ext/spl/tests/SplObjectStorage_unserialize_nested.phpt +ext/spl/tests/SplTempFileObject_constructor_basic.phpt +ext/spl/tests/SplTempFileObject_constructor_maxmemory_basic.phpt +ext/spl/tests/SplTempFileObject_constructor_memory_lt1_variation.phpt +ext/spl/tests/arrayObject___construct_basic1.phpt +ext/spl/tests/arrayObject___construct_basic2.phpt +ext/spl/tests/arrayObject___construct_basic3.phpt +ext/spl/tests/arrayObject___construct_basic4.phpt +ext/spl/tests/arrayObject___construct_basic5.phpt +ext/spl/tests/arrayObject___construct_basic6.phpt +ext/spl/tests/arrayObject___construct_basic7.phpt +ext/spl/tests/arrayObject_asort_basic2.phpt +ext/spl/tests/arrayObject_clone_basic1.phpt +ext/spl/tests/arrayObject_clone_basic2.phpt +ext/spl/tests/arrayObject_clone_basic3.phpt +ext/spl/tests/arrayObject_exchangeArray_basic3.phpt +ext/spl/tests/arrayObject_getIteratorClass_basic1.phpt +ext/spl/tests/arrayObject_ksort_basic1.phpt +ext/spl/tests/arrayObject_ksort_basic2.phpt +ext/spl/tests/arrayObject_magicMethods1.phpt +ext/spl/tests/arrayObject_magicMethods2.phpt +ext/spl/tests/arrayObject_magicMethods3.phpt +ext/spl/tests/arrayObject_magicMethods4.phpt +ext/spl/tests/arrayObject_magicMethods5.phpt +ext/spl/tests/arrayObject_magicMethods6.phpt +ext/spl/tests/arrayObject_natcasesort_basic1.phpt +ext/spl/tests/arrayObject_natsort_basic1.phpt +ext/spl/tests/arrayObject_uasort_basic1.phpt +ext/spl/tests/arrayObject_uksort_basic1.phpt +ext/spl/tests/array_002.phpt +ext/spl/tests/array_018.phpt +ext/spl/tests/array_023.phpt +ext/spl/tests/bug40091.phpt +ext/spl/tests/bug41528.phpt +ext/spl/tests/bug44144.phpt +ext/spl/tests/bug44615.phpt +ext/spl/tests/bug48493.phpt +ext/spl/tests/bug49263.phpt +ext/spl/tests/bug64782.phpt +ext/spl/tests/bug68479.phpt +ext/spl/tests/bug70168.phpt +ext/spl/tests/bug71617.phpt +ext/spl/tests/bug74669.phpt +ext/spl/tests/bug75049.phpt +ext/spl/tests/bug77298.phpt +ext/spl/tests/heap_008.phpt +ext/spl/tests/iterator_044.phpt +ext/spl/tests/observer_006.phpt +ext/spl/tests/pqueue_004.phpt +ext/spl/tests/spl_autoload_004.phpt +ext/spl/tests/spl_autoload_006.phpt +ext/spl/tests/spl_autoload_008.phpt +ext/spl/tests/spl_autoload_013.phpt +ext/sqlite3/tests/bug77051.phpt +ext/sqlite3/tests/sqlite3_31_changes.phpt +ext/standard/tests/array/array_column_variant_objects.phpt +ext/standard/tests/array/array_key_exists_object1.phpt +ext/standard/tests/array/array_key_exists_object2.phpt +ext/standard/tests/array/array_multisort_variation7.phpt +ext/standard/tests/array/array_multisort_variation8.phpt +ext/standard/tests/array/array_multisort_variation9.phpt +ext/standard/tests/array/array_walk_closure.phpt +ext/standard/tests/array/compact_this.phpt +ext/standard/tests/array/uasort_object1.phpt +ext/standard/tests/assert/assert_variation.phpt +ext/standard/tests/class_object/get_object_vars_variation_002.phpt +ext/standard/tests/class_object/get_object_vars_variation_004.phpt +ext/standard/tests/file/disk_free_space_basic.phpt +ext/standard/tests/general_functions/bug73973.phpt +ext/standard/tests/general_functions/get_included_files.phpt +ext/standard/tests/general_functions/gettype_settype_basic.phpt +ext/standard/tests/general_functions/print_r_64bit.phpt +ext/standard/tests/general_functions/strval.phpt +ext/standard/tests/general_functions/type.phpt +ext/standard/tests/general_functions/var_dump_64bit.phpt +ext/standard/tests/misc/bug77338.phpt +ext/standard/tests/misc/get_browser_variation2.phpt +ext/standard/tests/serialize/005.phpt +ext/standard/tests/serialize/006.phpt +ext/standard/tests/serialize/bug21957.phpt +ext/standard/tests/serialize/bug27469.phpt +ext/standard/tests/serialize/bug49649.phpt +ext/standard/tests/serialize/bug49649_1.phpt +ext/standard/tests/serialize/bug49649_2.phpt +ext/standard/tests/serialize/bug68976.phpt +ext/standard/tests/serialize/bug69210.phpt +ext/standard/tests/serialize/bug69425.phpt +ext/standard/tests/serialize/bug70213.phpt +ext/standard/tests/serialize/bug70219_1.phpt +ext/standard/tests/serialize/bug72785.phpt +ext/standard/tests/serialize/serialize_globals_var_refs.phpt +ext/standard/tests/strings/implode1.phpt +sapi/cli/tests/upload_2G.phpt +tests/classes/tostring_001.phpt +Zend/tests/arrow_functions/005.phpt +Zend/tests/assign_coalesce_001.phpt +Zend/tests/assign_obj_ref_byval_function.phpt +Zend/tests/bug28444.phpt +Zend/tests/bug70083.phpt +Zend/tests/bug72530.phpt +Zend/tests/bug75921.phpt +Zend/tests/bug78182.phpt +Zend/tests/bug78644.phpt +Zend/tests/exception_from_toString.phpt +Zend/tests/gc_041.phpt +Zend/tests/gc_042.phpt +Zend/tests/static_variable_in_private_trait_method.phpt +Zend/tests/throwing_overloaded_compound_assign_op.phpt +Zend/tests/type_declarations/typed_properties_012.phpt +Zend/tests/type_declarations/typed_properties_016.phpt +Zend/tests/type_declarations/typed_properties_033.phpt +Zend/tests/type_declarations/typed_properties_034.phpt +Zend/tests/type_declarations/typed_properties_038.phpt +Zend/tests/type_declarations/typed_properties_043.phpt +Zend/tests/type_declarations/typed_properties_047.phpt +Zend/tests/type_declarations/typed_properties_050.phpt +Zend/tests/type_declarations/typed_properties_052.phpt +Zend/tests/type_declarations/typed_properties_059.phpt +Zend/tests/type_declarations/typed_properties_066.phpt +Zend/tests/type_declarations/typed_properties_071.phpt +Zend/tests/type_declarations/typed_properties_072.phpt +Zend/tests/type_declarations/typed_properties_073.phpt +Zend/tests/type_declarations/typed_properties_074.phpt +Zend/tests/type_declarations/typed_properties_086.phpt +Zend/tests/type_declarations/typed_properties_088.phpt +Zend/tests/type_declarations/typed_properties_089.phpt +Zend/tests/type_declarations/typed_properties_091.phpt +Zend/tests/type_declarations/typed_properties_092.phpt +Zend/tests/type_declarations/typed_properties_093.phpt +Zend/tests/type_declarations/typed_properties_096.phpt +Zend/tests/type_declarations/typed_properties_099.phpt +Zend/tests/type_declarations/typed_properties_101.phpt +Zend/tests/type_declarations/typed_properties_103.phpt +Zend/tests/type_declarations/typed_properties_class_loading.phpt +Zend/tests/type_declarations/variance/class_order_autoload1.phpt +Zend/tests/type_declarations/variance/class_order_autoload2.phpt +Zend/tests/type_declarations/variance/class_order_autoload3.phpt +Zend/tests/type_declarations/variance/class_order_autoload4.phpt +Zend/tests/type_declarations/variance/class_order_autoload5.phpt +Zend/tests/type_declarations/variance/class_order_autoload_error4.phpt +Zend/tests/type_declarations/variance/class_order_autoload_error5.phpt +Zend/tests/type_declarations/variance/class_order_autoload_error6.phpt +Zend/tests/weakrefs/weakrefs_001.phpt +ext/openssl/tests/session_meta_capture_tlsv13.phpt +ext/openssl/tests/tls_wrapper_with_tls_v1.3.phpt +ext/openssl/tests/tlsv1.3_wrapper.phpt +ext/readline/tests/libedit_callback_handler_install_001.phpt +ext/readline/tests/libedit_callback_handler_remove_001.phpt +ext/reflection/tests/ReflectionReference_bug78263.phpt +ext/simplexml/tests/bug75245.phpt +ext/spl/tests/array_026.phpt +ext/spl/tests/bug45826.phpt +ext/spl/tests/bug78436.phpt +ext/spl/tests/bug78456.phpt +ext/sqlite3/tests/sqlite3stmt_getsql.phpt +ext/sqlite3/tests/sqlite3stmt_getsql_expanded.phpt +ext/standard/tests/array/array_map_variation4.phpt +ext/standard/tests/array/array_reverse_variation4.phpt +ext/standard/tests/array/array_unique_variation3.phpt +ext/standard/tests/general_functions/proc_open_null.phpt +ext/standard/tests/general_functions/proc_open_redirect.phpt +ext/standard/tests/math/base_convert_variation1.phpt +ext/standard/tests/math/bindec_variation1_64bit.phpt +ext/standard/tests/math/hexdec_variation1_64bit.phpt +ext/standard/tests/math/octdec_variation1.phpt +ext/standard/tests/serialize/__serialize_001.phpt +ext/standard/tests/serialize/__serialize_003.phpt +ext/standard/tests/serialize/__serialize_004.phpt +ext/standard/tests/serialize/__serialize_005.phpt +ext/standard/tests/serialize/bug45706.phpt +ext/standard/tests/serialize/typed_property_refs.phpt diff --git a/dockerfiles/verify_packages/Makefile b/dockerfiles/verify_packages/Makefile index fa2a08ad2..9a149c3fe 100644 --- a/dockerfiles/verify_packages/Makefile +++ b/dockerfiles/verify_packages/Makefile @@ -28,6 +28,10 @@ $(STRETCH_PHP_VERSIONS): %.stretch: @echo Building Debian Stretch - PHP $* @docker build --no-cache -t deb_stretch:$* --build-arg php_version=$* -f dockerfiles/verify_packages/debian_stretch/Dockerfile . +5.5_centos-6: + @echo Verifying Centos 6 - PHP 5.5 + @docker-compose -f $(ROOT_DIR)/docker-compose.yml run -T --rm 5.5-centos6 bash /build_src/dockerfiles/verify_packages/verify_rpm_5.5.sh + $(CENTOS6_PHP_VERSIONS): %.centos6: @echo Verifying Centos 6 - PHP $* @docker-compose -f $(ROOT_DIR)/docker-compose.yml run -T --rm ${*}-centos6 sh /build_src/dockerfiles/verify_packages/verify_rpm.sh diff --git a/dockerfiles/verify_packages/debian_jessie/Dockerfile b/dockerfiles/verify_packages/debian_jessie/Dockerfile index d9b427dd2..7d6fd636c 100644 --- a/dockerfiles/verify_packages/debian_jessie/Dockerfile +++ b/dockerfiles/verify_packages/debian_jessie/Dockerfile @@ -1,14 +1,13 @@ FROM debian:jessie -RUN apt-get update && apt-get -y install apt-transport-https lsb-release ca-certificates -RUN apt-get install curl -y -RUN curl -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list -RUN apt-get update -ADD build/packages /packages - -ARG php_version -RUN apt-get -y --force-yes install php${php_version} +# Sury.org no longer provides PHP packages for Jessie +# https://www.linuxcompatible.org/story/suryorg-has-discontinued-debian-8-support/ +# So we just test the PHP version in the default repo (5.6) +RUN set -eux; \ + apt-get update; \ + apt-get -y install curl php5 -RUN dpkg -i /packages/*.deb -RUN php -m | grep signalfx_tracing +ADD build/packages /packages +RUN set -eux; \ + dpkg -i /packages/*.deb; \ + php -m | grep signalfx_tracing diff --git a/dockerfiles/verify_packages/docker-compose.yml b/dockerfiles/verify_packages/docker-compose.yml index f2cef0602..33c0238c5 100644 --- a/dockerfiles/verify_packages/docker-compose.yml +++ b/dockerfiles/verify_packages/docker-compose.yml @@ -18,13 +18,16 @@ services: '7.1-centos7': { <<: *base_image, image: 'datadog/docker-library:ddtrace_centos_7_php_71' } '7.2-centos7': { <<: *base_image, image: 'datadog/docker-library:ddtrace_centos_7_php_72' } '7.3-centos7': { <<: *base_image, image: 'datadog/docker-library:ddtrace_centos_7_php_73' } + '7.4-centos7': { <<: *base_image, image: 'datadog/dd-trace-ci:php-7.4-centos-7' } '5.6-alpine': { <<: *base_image, image: 'php:5.6-alpine' } '7.0-alpine': { <<: *base_image, image: 'php:7.0-alpine' } '7.1-alpine': { <<: *base_image, image: 'php:7.1-alpine' } '7.2-alpine': { <<: *base_image, image: 'php:7.2-alpine' } '7.3-alpine': { <<: *base_image, image: 'php:7.3-alpine' } + '7.4-alpine': { <<: *base_image, image: 'php:7.4-alpine' } '5.6-zts-alpine': { <<: *base_image, image: 'php:5.6-zts-alpine' } '7.0-zts-alpine': { <<: *base_image, image: 'php:7.0-zts-alpine' } '7.1-zts-alpine': { <<: *base_image, image: 'php:7.1-zts-alpine' } '7.2-zts-alpine': { <<: *base_image, image: 'php:7.2-zts-alpine' } '7.3-zts-alpine': { <<: *base_image, image: 'php:7.3-zts-alpine' } + '7.4-zts-alpine': { <<: *base_image, image: 'php:7.4-zts-alpine' } diff --git a/dockerfiles/verify_packages/verify_rpm.sh b/dockerfiles/verify_packages/verify_rpm.sh index 8252cef60..78af5f536 100644 --- a/dockerfiles/verify_packages/verify_rpm.sh +++ b/dockerfiles/verify_packages/verify_rpm.sh @@ -1,4 +1,5 @@ #!/bin/sh + rpm -Uvh /build_src/build/packages/*.rpm php -m | grep signalfx_tracing diff --git a/package.xml b/package.xml index 1adb30967..78fa571d2 100644 --- a/package.xml +++ b/package.xml @@ -119,7 +119,7 @@ - + @@ -182,7 +182,7 @@ 5.6 - 7.3.99 + 7.4.99 1.4.0 diff --git a/tests/Frameworks/Symfony/Version_4_0/composer.json b/tests/Frameworks/Symfony/Version_4_0/composer.json index 5a385ff72..2abb1dc8e 100644 --- a/tests/Frameworks/Symfony/Version_4_0/composer.json +++ b/tests/Frameworks/Symfony/Version_4_0/composer.json @@ -27,6 +27,7 @@ "symfony/yaml": "^4.0" }, "require-dev": { + "doctrine/migrations": "^2.0", "symfony/debug-pack": "*", "symfony/dotenv": "^4.0", "symfony/maker-bundle": "^1.0", diff --git a/tests/Frameworks/Symfony/Version_4_2/composer.json b/tests/Frameworks/Symfony/Version_4_2/composer.json index aa8a24529..4e3276607 100644 --- a/tests/Frameworks/Symfony/Version_4_2/composer.json +++ b/tests/Frameworks/Symfony/Version_4_2/composer.json @@ -27,6 +27,7 @@ "symfony/yaml": "4.2.*" }, "require-dev": { + "doctrine/migrations": "^2.0", "symfony/debug-pack": "*", "symfony/maker-bundle": "^1.0", "symfony/profiler-pack": "*", diff --git a/tests/ext/desctructor_called_when_this_gets_out_of_scope.phpt b/tests/ext/destructor_called_when_this_gets_out_of_scope.phpt similarity index 88% rename from tests/ext/desctructor_called_when_this_gets_out_of_scope.phpt rename to tests/ext/destructor_called_when_this_gets_out_of_scope.phpt index 3db1e98c4..a859347d6 100644 --- a/tests/ext/desctructor_called_when_this_gets_out_of_scope.phpt +++ b/tests/ext/destructor_called_when_this_gets_out_of_scope.phpt @@ -16,18 +16,18 @@ class Test { dd_trace("Test", "m", function() { return dd_trace_forward_call() . " OVERRIDE"; }); -function fn() { +function func() { $test = new Test(); echo $test->m() . PHP_EOL; - echo "FN" . PHP_EOL; + echo "FUNC" . PHP_EOL; } -fn(); +func(); echo "FINISH" . PHP_EOL; ?> --EXPECT-- M OVERRIDE -FN +FUNC DESTRUCT FINISH