Skip to content

[BUG] 0.46.0: failed test and segfault in test suite #912

@remicollet

Description

@remicollet

On x86_64

TEST 187/211 [tests/ext/sandbox/memory_limit_graceful_bailout.phpt]
========DIFF========
001+ Fatal error: Maximum execution time of 5 seconds exceeded in /dev/shm/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox/memory_limit_graceful_bailout.php on line 18
001- Done
003+ You should not see this.
003- 
004- %sAllowed memory size of 2097152 bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
========DONE========

On i386

=====================================================================
PHP         : /usr/bin/php 
PHP_SAPI    : cli
PHP_VERSION : 7.3.18
ZEND_VERSION: 3.3.18
PHP_OS      : Linux - Linux builder.remirepo.net 5.6.13-200.fc31.x86_64 #1 SMP Thu May 14 23:26:14 UTC 2020 i686
INI actual  : /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS
More .INIs  :   
CWD         : /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS
Extra dirs  : 
VALGRIND    : Not used
=====================================================================
TIME START 2020-06-03 05:36:22
=====================================================================
PASS Check object's private and protected methods can be invoked from a callback. [tests/ext/access_modifier_method_access_hook.phpt] 
PASS Check object's private and protected properties can be accessed from a callback. [tests/ext/access_modifier_property_access_hook.phpt] 
PASS Override function/method before its defined [tests/ext/allow_overriding_before_overrided_methods_functions_are_defined.phpt] 
PASS Check if for case insensitive class name support [tests/ext/case_insensitive_class_hook.phpt] 
PASS Check if we can override method from a parent class using case insensitive matching [tests/ext/case_insensitive_method_hook.phpt] 
PASS Test dd_trace_check_memory_under_limit() returning correct values for default [tests/ext/check_memory_under_limit_default.phpt] 
PASS Test dd_trace_check_memory_under_limit() returning correct values [tests/ext/check_memory_under_limit_high_limit.phpt] 
PASS Test dd_trace_check_memory_under_limit() returning correct values [tests/ext/check_memory_under_limit_high_user_limit.phpt] 
PASS Test dd_trace_check_memory_under_limit() returning correct values [tests/ext/check_memory_under_limit_low_limit.phpt] 
PASS Test dd_trace_check_memory_under_limit() returning correct values [tests/ext/check_memory_under_limit_low_user_limit.phpt] 
PASS Circuit breaker failures count over maximum is tripping the protection [tests/ext/circuit_breaker_max_failures.phpt] 
PASS Test circuit breaker retrying functionality [tests/ext/circuit_breaker_retry_time.phpt] 
PASS Check if closure can safely use variable names also present in outside scope [tests/ext/closure_accessing_outside_variables.phpt] 
PASS Check if closure can safely use variable names also present in outside scope [tests/ext/closure_set_inside_object_methods.phpt] 
PASS dd_trace() declarative API error cases [tests/ext/dd_trace_api_error.phpt] 
PASS dd_trace can skip over the call it instruments (LEGACY BEHAVIOR -- DO NOT RELY ON) [tests/ext/dd_trace_can_skip_original_call.phpt] 
PASS Coms test no memory leaks with empty data store [tests/ext/dd_trace_coms_empty_stacks_correctly_recycled.phpt] 
PASS Error conditions for dd_trace_forward_call() [tests/ext/dd_trace_forward_call_error.phpt] 
SKIP The original function call is invoked from the closure [tests/ext/dd_trace_forward_call_for_functions.phpt] reason: : test requires legacy API
PASS The original method call is invoked from an include file [tests/ext/dd_trace_forward_call_from_include.phpt] 
PASS The original method call is invoked from a sub class [tests/ext/dd_trace_forward_call_with_inheritance.phpt] 
SKIP A private method can be used as callback with dd_trace_forward_call() [tests/ext/dd_trace_forward_call_with_private_callback.phpt] reason: : test requires legacy API
PASS Push a span ID onto the stack from userland [tests/ext/dd_trace_push_span_id_from_userland.phpt] 
PASS background sender happy path [tests/ext/dd_trace_send_traces_via_thread_001.phpt] 
PASS background sender should reject msgpack array prefix that does not match expected number of traces [tests/ext/dd_trace_send_traces_via_thread_002.phpt] 
SKIP Basic functionality of dd_trace_serialize_msgpack() [tests/ext/dd_trace_serialize_msgpack.phpt] reason: test for 64-bit platforms only
PASS dd_trace_serialize_msgpack() error conditions [tests/ext/dd_trace_serialize_msgpack_error.phpt] 
SKIP dd_trace_serialize_msgpack() with references [tests/ext/dd_trace_serialize_msgpack_reference.phpt] reason: test for 64-bit platforms only
SKIP dd_trace_tracer_is_limited() limits the tracer with a hard span limit [tests/ext/dd_trace_tracer_is_limited_hard.phpt] reason: : test requires legacy API
PASS dd_trace_tracer_is_limited() limits the tracer with a memory limit [tests/ext/dd_trace_tracer_is_limited_memory.phpt] 
PASS Test if desctructor is called when variable goes out of scope [tests/ext/destructor_called_when_this_gets_out_of_scope.phpt] 
PASS Disable tracing disables all tracing from happening [tests/ext/disable_tracing_disables_tracing.phpt] 
PASS Do not throw exceptions when veryfying if class/method and function exists. [tests/ext/do_not_check_if_class_or_function_exists_by_default.phpt] 
PASS Toggle checking if overrided class doesn't exist [tests/ext/enable_throw_exception_if_overridable_doesnt_exist.phpt] 
PASS Sanity check when extension is disabled [tests/ext/extension_disabled.phpt] 
PASS Bug #61728 (PHP crash when calling ob_start in request_shutdown phase) [tests/ext/from_php_7_3_bug61728.phpt] 
PASS Testing user filter on streams [tests/ext/from_php_7_3_test_user_streams_consumed_bug.phpt] 
PASS Test get_memory_limit() returning correct values for default [tests/ext/get_memory_limit_0.phpt] 
PASS Test get_memory_limit() returning correct values [tests/ext/get_memory_limit_0_percent.phpt] 
PASS Test get_memory_limit() returning correct values for default [tests/ext/get_memory_limit_default.phpt] 
PASS Test get_memory_limit() returning correct values [tests/ext/get_memory_limit_set_by_absolute.phpt] 
PASS Test get_memory_limit() returning correct values [tests/ext/get_memory_limit_set_by_percentage.phpt] 
PASS Test get_memory_limit() returning correct values [tests/ext/get_memory_limit_unlimited_default.phpt] 
PASS Test get_memory_limit() returning correct values [tests/ext/get_memory_limit_unlimited_set_by_absolute.phpt] 
PASS Test get_memory_limit() returning correct values [tests/ext/get_memory_limit_unlimited_set_by_percentage.phpt] 
SKIP [Legacy] Keep spans in limited mode (internal functions) [tests/ext/keep_spans_in_limited_tracing_internal_functions.phpt] reason: : test requires legacy API
SKIP [Legacy] Keep spans in limited mode (internal methods) [tests/ext/keep_spans_in_limited_tracing_internal_methods.phpt] reason: : test requires legacy API
PASS [Legacy] Keep spans in limited mode (userland functions) [tests/ext/keep_spans_in_limited_tracing_userland_functions.phpt] 
PASS [Legacy] Keep spans in limited mode (userland methods) [tests/ext/keep_spans_in_limited_tracing_userland_methods.phpt] 
PASS Method invoked via refloction correctly returning created object [tests/ext/method_invoked_via_reflection.phpt] 
PASS Check method can be overwritten and we're able to call original method returning an array [tests/ext/method_returning_array.phpt] 
PASS Verify Multiple functions and methods will be instrumented successfully [tests/ext/multiple_instrumentations.phpt] 
PASS Verify functions and methods can be overriden even when in namespaces. [tests/ext/namespaces.phpt] 
PASS New static instantiates from expected class [tests/ext/new_static.phpt] 
PASS Check if we can override method from a parent class in a descendant class [tests/ext/overriding_construct.phpt] 
PASS Check if we can override method from a parent class in a descendant class [tests/ext/overriding_method_defined_in_parent.phpt] 
PASS Check private method can be overwritten and we are able to call original. [tests/ext/private_method_hook.phpt] 
PASS Private self access [tests/ext/private_self_access.phpt] 
PASS Check protected method can be overwritten and we are able to call original. [tests/ext/protected_method_hook.phpt] 
PASS Ensure we can read C configuration data [tests/ext/read_c_configuration.phpt] 
PASS Verify recursive execution works by only overriding outermost invocation. [tests/ext/recursion.phpt] 
PASS auto_prepend_file set to 'none' [tests/ext/request-init-hook/auto_prepend_file_none.phpt] 
PASS The request init hook will be run only one time [tests/ext/request-init-hook/auto_prepend_file_once.phpt] 
PASS The original auto_prepend_file will be included after the request init hook [tests/ext/request-init-hook/auto_prepend_file_original.phpt] 
PASS The original auto_prepend_file will be included even when ddtrace is disabled from ENV [tests/ext/request-init-hook/auto_prepend_file_original_disabled.phpt] 
PASS The original auto_prepend_file will be included even when ddtrace is disabled from INI [tests/ext/request-init-hook/auto_prepend_file_original_disabled_ini.phpt] 
PASS Calling dd_init.php is confined to open_basedir settings [tests/ext/request-init-hook/dd_init_open_basedir.phpt] 
PASS Errors in request init hook do not affect error_get_last() [tests/ext/request-init-hook/error_get_last_is_unaffected.phpt] 
PASS Request init hook is confined to open_basedir [tests/ext/request-init-hook/request_init_hook_confined_to_open_basedir.phpt] 
PASS Request init hook loads files without using multibyte flag [tests/ext/request-init-hook/request_init_hook_contains_non_printable_character.phpt] 
PASS Do not fail when PHP code couldn't be loaded [tests/ext/request-init-hook/request_init_hook_file_not_found.phpt] 
PASS Request init hook ignores exceptions [tests/ext/request-init-hook/request_init_hook_ignores_exceptions.phpt] 
PASS Request init hook ignores fatal errors [tests/ext/request-init-hook/request_init_hook_ignores_fatal_errors.phpt] 
SKIP Request init hook ignores fatal errors (PHP 5.4) [tests/ext/request-init-hook/request_init_hook_ignores_fatal_errors_php_54.phpt] reason: : Test for PHP 5.4 only
PASS Prepend PHP code before the processing takes place and do not blacklist functionality on partial match [tests/ext/request-init-hook/run_file_before_request_handling.phpt] 
PASS Shebang should not affect line numbers [tests/ext/request-init-hook/shebang.phpt] 
PASS Configured overrides can be safely reset. [tests/ext/reset_configured_overrides.phpt] 
SKIP Check a function can be untraced. [tests/ext/reset_function_tracing.phpt] reason: : test requires legacy API
PASS Returs value from both original and overriding methods [tests/ext/return_value_passed.phpt] 
PASS [Prehook regression] Private and protected methods are called from a tracing closure [tests/ext/sandbox-prehook/access_modifier_method_access_hook.phpt] 
PASS [Prehook regression] Private and protected properties are accessed from a tracing closure [tests/ext/sandbox-prehook/access_modifier_property_access_hook.phpt] 
PASS [Prehook] Arguments are copied before mutation can occur [tests/ext/sandbox-prehook/args_copy_before_mutation.phpt] 
PASS [Prehook Regression] Run sandbox closures for open spans on exit [tests/ext/sandbox-prehook/close_on_exit.phpt] 
PASS [Prehook] Tracing closure does not have access to thrown exception [tests/ext/sandbox-prehook/closure_arg_exception.phpt] 
PASS [Prehook] Tracing closure does not have access to return value [tests/ext/sandbox-prehook/closure_arg_retval.phpt] 
PASS [Prehook] API error cases [tests/ext/sandbox-prehook/dd_trace_api_error.phpt] 
TEST 87/199 [tests/ext/sandbox-prehook/dd_trace_function_internal.phpt]
========DIFF========
002+ 
003+ Warning: array_sum() expects exactly 1 parameter, 1 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/dd_trace_function_internal.php on line 8
004+ NULL
002- int(9)
========DONE========
FAIL [Prehook Regression] dd_trace_function() can trace internal functions with internal spans [tests/ext/sandbox-prehook/dd_trace_function_internal.phpt] 
PASS [Prehook Regression] dd_trace_function() can trace userland functions with internal spans [tests/ext/sandbox-prehook/dd_trace_function_userland.phpt] 
TEST 89/199 [tests/ext/sandbox-prehook/dd_trace_method_binds_called_object.phpt]
========DIFF========
007+ 
008+ Warning: DatePeriod::getStartDate() expects exactly 0 parameters, 0 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/dd_trace_method_binds_called_object.php on line 26
========DONE========
FAIL [Prehook Regression] dd_trace_method() binds the called object to the tracing closure [tests/ext/sandbox-prehook/dd_trace_method_binds_called_object.phpt] 
TEST 90/199 [tests/ext/sandbox-prehook/drop_spans.phpt]
========DIFF========
002+ 
003+ Warning: array_sum() expects exactly 1 parameter, 1 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/drop_spans.php on line 22
004- Traced DateTime
005- DateTime: 2000-01-01
006- ArraySum
005+ 
006+ Warning: array_sum() expects exactly 1 parameter, 1 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/drop_spans.php on line 23
008+ 
009+ Fatal error: Uncaught ArgumentCountError: DateTime::__construct() expects at most 2 parameters, 1 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/drop_spans.php:24
010+ Stack trace:
011+ #0 /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/drop_spans.php(24): DateTime->__construct('2000-01-01')
012+ #1 {main}
013+   thrown in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/drop_spans.php on line 24
========DONE========
FAIL [Prehook Regression] Span is dropped when tracing closure returns false [tests/ext/sandbox-prehook/drop_spans.phpt] 
TEST 91/199 [tests/ext/sandbox-prehook/exception_error_log.phpt]
========DIFF========
002+ 
002- int(9)
003+ Warning: array_sum() expects exactly 1 parameter, 1 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/exception_error_log.php on line 5
004+ NULL
========DONE========
FAIL [Prehook Regression] Exception in tracing closure gets logged [tests/ext/sandbox-prehook/exception_error_log.phpt] 
PASS [Prehook Regression] Exceptions get attached to spans [tests/ext/sandbox-prehook/exception_handling.phpt] 
TEST 93/199 [tests/ext/sandbox-prehook/exceptions_and_errors_are_ignored_in_tracing_closure.phpt]
========DIFF========
003+ 
004+ Warning: mt_srand() expects at most 2 parameters, 1 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/exceptions_and_errors_are_ignored_in_tracing_closure.php on line 8
006+ 
007+ Warning: mt_rand() expects exactly 2 parameters, 0 given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/exceptions_and_errors_are_ignored_in_tracing_closure.php on line 11
008- NULL
012+ array(4) {
013+   ["type"]=>
014+   int(2)
015+   ["message"]=>
016+   string(47) "mt_rand() expects exactly 2 parameters, 0 given"
017+   ["file"]=>
018+   string(138) "/builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/exceptions_and_errors_are_ignored_in_tracing_closure.php"
019+   ["line"]=>
020+   int(11)
021+ }
========DONE========
FAIL [Prehook Regression] Exceptions and errors are ignored when inside a tracing closure [tests/ext/sandbox-prehook/exceptions_and_errors_are_ignored_in_tracing_closure.phpt] 
PASS [Prehook Regression] Exit gracefully handles a dropped span [tests/ext/sandbox-prehook/exit_and_drop_span.phpt] 
PASS [Prehook Regression] Keep spans in limited mode (userland functions) [tests/ext/sandbox-prehook/keep_spans_in_limited_tracing_userland_functions.phpt] 
PASS [Prehook Regression] New static instantiates from expected class [tests/ext/sandbox-prehook/new_static.phpt] 
SKIP [Prehook] Not supported on PHP 5 [tests/ext/sandbox-prehook/php5_unsupported.phpt] reason: : PHP 5 only test
PASS [Prehook regression] Trace public static method [tests/ext/sandbox-prehook/trace_static_method.phpt] 
PASS [Prehook regression] Trace variadic functions and methods [tests/ext/sandbox-prehook/variable_length_parameter_list.phpt] 
TEST 100/199 [tests/ext/sandbox-prehook/variadic_args_internal.phpt]
========DIFF========
016+ 
017+ Warning: array_unshift() expects parameter 1 to be array, unknown given in /builddir/build/BUILD/php-pecl-datadog-trace-0.46.0/NTS/tests/ext/sandbox-prehook/variadic_args_internal.php on line 7
018+ array(2) {
016- array(5) {
018-   string(3) "Baz"
020+   string(3) "Foo"
020-   int(42)
021-   [2]=>
022-   bool(true)
023-   [3]=>
024-   string(3) "Foo"
025-   [4]=>
========DONE========
FAIL [Prehook] Variadic arguments are passed to tracing closure for internal functions [tests/ext/sandbox-prehook/variadic_args_internal.phpt] 
PASS [Sandbox regression] Private and protected methods are called from a tracing closure [tests/ext/sandbox-regression/access_modifier_method_access_hook.phpt] 
PASS [Sandbox regression] Private and protected properties are accessed from a tracing closure [tests/ext/sandbox-regression/access_modifier_property_access_hook.phpt] 
PASS [Sandbox regression] Trace a function and method before it is defined [tests/ext/sandbox-regression/allow_overriding_before_overrided_methods_functions_are_defined.phpt] 
PASS [Sandbox regression] Trace case-insensitive method from a child class [tests/ext/sandbox-regression/case_insensitive_method_hook.phpt] 
PASS [Sandbox regression] Tracing closure safely uses variables from outside scope [tests/ext/sandbox-regression/closure_accessing_outside_variables.phpt] 
PASS [Sandbox regression] Tracing closure set from inside non-static method [tests/ext/sandbox-regression/closure_set_inside_object_methods.phpt] 
TEST 107/199 [tests/ext/sandbox-regression/dd_trace_tracer_is_limited_hard.phpt]
========DIFF========
002+ 
003+ Termsig=11
002- bool(false)
003- bool(true)
004- bool(true)
========DONE========
FAIL [Sandbox regression] dd_trace_tracer_is_limited() limits the tracer with a hard span limit [tests/ext/sandbox-regression/dd_trace_tracer_is_limited_hard.phpt] 
PASS [Sandbox regression] Destructor is called when object goes out of scope [tests/ext/sandbox-regression/destructor_called_when_this_gets_out_of_scope.phpt] 
PASS [Sandbox regression] Disable tracing disables all tracing from happening [tests/ext/sandbox-regression/disable_tracing_disables_tracing.phpt] 
PASS [Sandbox regression] Do not throw exceptions when verifying if method or function exists [tests/ext/sandbox-regression/do_not_check_if_class_or_function_exists_by_default.phpt] 
TEST 111/199 [tests/ext/sandbox-regression/enable_throw_exception_if_overridable_doesnt_exist.phpt]
========DIFF========
001+ 
001- class not found
========DONE========
XFAIL [Sandbox regression] Throw exception in strict mode if traced class does not exist [tests/ext/sandbox-regression/enable_throw_exception_if_overridable_doesnt_exist.phpt]   XFAIL REASON: This functionality does not exist for sandboxed tracing closures
PASS [Sandbox regression] Tracing closures do not run when extension is disabled [tests/ext/sandbox-regression/extension_disabled.phpt] 
PASS [Sandbox regression] Method invoked via reflection correctly returns created object [tests/ext/sandbox-regression/method_invoked_via_reflection.phpt] 
PASS [Sandbox regression] Method can be traced and called from tracing closure [tests/ext/sandbox-regression/method_returning_array.phpt] 
PASS [Sandbox regression] Multiple functions and methods are traced [tests/ext/sandbox-regression/multiple_instrumentations.phpt] 
PASS [Sandbox regression] Namespaced functions and methods are traced [tests/ext/sandbox-regression/namespaces.phpt] 
PASS [Sandbox regression] Trace class constructor [tests/ext/sandbox-regression/overriding_construct.phpt] 
PASS [Sandbox regression] Trace extended method when called from parent class [tests/ext/sandbox-regression/overriding_method_defined_in_parent.phpt] 
PASS [Sandbox regression] Trace private method [tests/ext/sandbox-regression/private_method_hook.phpt] 
PASS [Sandbox regression] Tracing closure accesses private static method [tests/ext/sandbox-regression/private_self_access.phpt] 
PASS [Sandbox regression] Trace protected method [tests/ext/sandbox-regression/protected_method_hook.phpt] 
PASS [Sandbox regression] Recursive calls will trace only outermost invocation [tests/ext/sandbox-regression/recursion.phpt] 
PASS [Sandbox regression] Traced functions and methods are untraced with reset [tests/ext/sandbox-regression/reset_configured_overrides.phpt] 
TEST 124/199 [tests/ext/sandbox-regression/reset_function_tracing.phpt]
========DIFF========
001+ Termsig=11
001- HOOK
002- HOOK
========DONE========
FAIL [Sandbox regression] Untrace a function [tests/ext/sandbox-regression/reset_function_tracing.phpt] 
PASS [Sandbox regression] Return value passed to tracing closure [tests/ext/sandbox-regression/return_value_passed.phpt] 
PASS [Sandbox regression] Userland function is traced [tests/ext/sandbox-regression/simple_function_hook.phpt] 
PASS [Sandbox regression] Userland method is traced [tests/ext/sandbox-regression/simple_method_hook.phpt] 
PASS [Sandbox regression] Traced userland function catches and rethrows exception [tests/ext/sandbox-regression/throw_exception.phpt] 
PASS [Sandbox regression] Methods and functions are traced before defined [tests/ext/sandbox-regression/trace_method_or_function_that_will_exist_later.phpt] 
PASS [Sandbox regression] Trace public static method [tests/ext/sandbox-regression/trace_static_method.phpt] 
PASS [Sandbox regression] Override traced function from within itself [tests/ext/sandbox-regression/used_dispatch_shouldn_t_be_freed.phpt] 
PASS [Sandbox regression] Trace variadic functions and methods [tests/ext/sandbox-regression/variable_length_parameter_list.phpt] 
PASS [Sandbox regression] Trace deeply-nested function calls [tests/ext/sandbox-regression/very_nested_functions.phpt] 
PASS [Sandbox regression] Trace function with params [tests/ext/sandbox-regression/with_params_function_hook.phpt] 
PASS [Sandbox regression] Trace method with params [tests/ext/sandbox-regression/with_params_method_hook.phpt] 
TEST 136/199 [tests/ext/sandbox/auto_flush.phpt]
========DIFF========
001+ Termsig=11
001- 3
002- 6
003- Flushing tracer...
004- main
005- array_sum (6)
006- array_sum (3)
007- Tracer reset
008- 
009- 10
010- 15
011- Flushing tracer...
012- main
013- array_sum (15)
014- array_sum (10)
015- Tracer reset
016- 
017- 21
018- 28
019- Flushing tracer...
020- main
021- array_sum (28)
022- array_sum (21)
023- Tracer reset
========DONE========
FAIL Spans are automatically flushed when auto-flushing enabled [tests/ext/sandbox/auto_flush.phpt] 
PASS Auto-flushing will attach an exception during exception cleanup [tests/ext/sandbox/auto_flush_attach_exception.phpt] 
TEST 138/199 [tests/ext/sandbox/auto_flush_disables_tracing.phpt]
========DIFF========
001+ Termsig=11
001- 3
002- 6
003- Flushing tracer...
004- main
005- array_sum (6)
006- array_sum (3)
007- Tracer reset
008- 
009- 10
010- 15
011- Flushing tracer...
012- main
013- array_sum (15)
014- array_sum (10)
015- Tracer reset
016- 
017- 21
018- 28
019- Flushing tracer...
020- main
021- array_sum (28)
022- array_sum (21)
023- Tracer reset
========DONE========
FAIL Auto-flushing will not instrument while flushing [tests/ext/sandbox/auto_flush_disables_tracing.phpt] 
PASS Auto-flushing will sandbox an exception thrown from the tracer flush [tests/ext/sandbox/auto_flush_sandbox_exception.phpt] 
TEST 140/199 [tests/ext/sandbox/auto_flush_userland_root_span.phpt]
========DIFF========
001+ Termsig=11
001- 3
002- 6
003- Has not flushed yet.
004- Flushing tracer...
005- array_sum (6)
006- array_sum (3)
007- Tracer reset
008- 
009- 10
010- 15
011- Has not flushed yet.
012- Flushing tracer...
013- array_sum (15)
014- array_sum (10)
015- Tracer reset
016- 
017- 21
018- 28
019- Has not flushed yet.
020- Flushing tracer...
021- array_sum (28)
022- array_sum (21)
023- Tracer reset
========DONE========
FAIL Userland root spans are automatically flushed when auto-flushing enabled [tests/ext/sandbox/auto_flush_userland_root_span.phpt] 
PASS Ensure tracing closure's $retval arg is null if invoked due to exit() [tests/ext/sandbox/close-on-exit-retval.phpt] 
PASS Run sandbox closures for open spans on exit [tests/ext/sandbox/close-on-exit.phpt] 
PASS dd_trace_function() and dd_trace_method() declarative API error cases [tests/ext/sandbox/dd_trace_api_error.phpt] 
TEST 144/199 [tests/ext/sandbox/dd_trace_closed_spans_count.phpt]
========DIFF========
002+ 
003+ Termsig=11
002- int(2)
003- Simulated open & close of userland span
004- int(3)
005- Span not closed yet
006- int(3)
007- int(4)
008- Simulated flush
009- int(0)
========DONE========
FAIL dd_trace_closed_spans_count() tracks closed spans from userland and C-level [tests/ext/sandbox/dd_trace_closed_spans_count.phpt] 
TEST 145/199 [tests/ext/sandbox/dd_trace_method_binds_called_object.phpt]
========DIFF========
005+ 
006+ Termsig=11
005- Traced getStartDate
006- bool(true)
========DONE========
FAIL dd_trace_method() binds the called object to the tracing closure [tests/ext/sandbox/dd_trace_method_binds_called_object.phpt] 
PASS dd_trace_push_span_id() Generates a 63-bit unsigned int as a string and stores on a stack [tests/ext/sandbox/dd_trace_push_span_id.phpt] 
TEST 147/199 [tests/ext/sandbox/drop_spans.phpt]
========DIFF========
001+ Termsig=11
001- Traced array_sum
002- Traced array_sum
003- Traced DateTime
004- Traced DateTime
005- DateTime: 2000-01-01
006- ArraySum: 6
========DONE========
FAIL Span is dropped when tracing closure returns false [tests/ext/sandbox/drop_spans.phpt] 
PASS Exceptions do not close the span that catches it [tests/ext/sandbox/exception_does_not_close_span_that_catches.phpt] 
TEST 149/199 [tests/ext/sandbox/exception_error_log.phpt]
========DIFF========
001+ Termsig=11
001- RuntimeException thrown in tracing closure for array_sum: This exception is expected
002- int(9)
========DONE========
FAIL Exception in tracing closure gets logged [tests/ext/sandbox/exception_error_log.phpt] 
TEST 150/199 [tests/ext/sandbox/exception_from_user_error_handler_internal.phpt]
========DIFF========
001+ Termsig=11
001- Spans count: 1
002- error: 1
003- error.type: Exception
004- error.msg: scandir(): Directory name cannot be empty
005- Has error.stack: 1
========DONE========
FAIL Exceptions from user error handler are tracked for instrumented internal functions [tests/ext/sandbox/exception_from_user_error_handler_internal.phpt] 
PASS Exceptions are handled for the correct catch block [tests/ext/sandbox/exception_handled_for_correct_catch_block.phpt] 
PASS Exceptions are handled in the correct catch frame [tests/ext/sandbox/exception_handled_in_correct_catch_frame.phpt] 
PASS Exceptions are handled with multi-catch syntax [tests/ext/sandbox/exception_handled_in_multicatch.phpt] 
PASS Return value from finally block is passed to tracing closure [tests/ext/sandbox/exception_handled_with_finally.phpt] 
PASS Exceptions get attached to spans [tests/ext/sandbox/exception_handling.phpt] 
SKIP Exceptions get attached to spans [tests/ext/sandbox/exception_handling_php5.phpt] reason: : PHP 5 only test
TEST 157/199 [tests/ext/sandbox/exception_is_defined.phpt]
========DIFF========
002+ 
003+ Termsig=11
002- bool(true)
003- NULL
========DONE========
FAIL Exceptions in the tracing closure callback are always defined [tests/ext/sandbox/exception_is_defined.phpt] 
PASS Exceptions from original call are passed to tracing closure (PHP 7) [tests/ext/sandbox/exceptions_are_passed_to_the_tracing_closure.phpt] 
SKIP Exceptions from original call are passed to tracing closure (PHP 5) [tests/ext/sandbox/exceptions_are_passed_to_the_tracing_closure_php5.phpt] reason: PHP 7 tested in separate test
PASS Exceptions from original call rethrown in tracing closure (PHP 7) [tests/ext/sandbox/exceptions_in_original_call_rethrown_in_tracing_closure.phpt] 
SKIP Exceptions from original call rethrown in tracing closure (PHP 5) [tests/ext/sandbox/exceptions_in_original_call_rethrown_in_tracing_closure_php5.phpt] reason: PHP 7 tested in separate test
PASS Exceptions thrown in tracing closure and original call [tests/ext/sandbox/exceptions_in_tracing_closure_and_original_call.phpt] 
PASS Exit gracefully handles a dropped span [tests/ext/sandbox/exit_and_drop_span.phpt] 
TEST 164/199 [tests/ext/sandbox/fatal_errors_ignored_in_shutdown.phpt]
========DIFF========
001+ Termsig=11
001- int(6)
002- int(15)
003- int(24)
004- Some user's shutdown
005- int(30)
006- NULL
007- Flushing...
008- array_sum
009- array_sum
010- array_sum
011- array_sum
========DONE========
FAIL Fatal errors are ignored in shutdown handler [tests/ext/sandbox/fatal_errors_ignored_in_shutdown.phpt] 
TEST 165/199 [tests/ext/sandbox/fatal_errors_ignored_in_tracing_closure_php7.phpt]
========DIFF========
001+ Termsig=11
001- Error thrown in tracing closure for array_sum: Call to undefined function this_function_does_not_exist()
002- int(100)
003- array_sum
004- NULL
========DONE========
FAIL Fatal errors are ignored inside a tracing closure (PHP 7) [tests/ext/sandbox/fatal_errors_ignored_in_tracing_closure_php7.phpt] 
PASS Functions that return generators are instrumented [tests/ext/sandbox/generator.phpt] 
SKIP Generators are not supported on PHP versions < 7.1 [tests/ext/sandbox/generator_not_supported.phpt] reason: : Test is for PHP versions less than 7.1
PASS Exceptions are handled from a generator context [tests/ext/sandbox/generator_with_exception.phpt] 
PASS Functions that use return with yield are instrumented [tests/ext/sandbox/generator_with_return.phpt] 
PASS Functions that return generators with 'yield from' are instrumented [tests/ext/sandbox/generator_yield_from.phpt] 
TEST 171/199 [tests/ext/sandbox/get_last_error.phpt]
========DIFF========
001+ Termsig=11
001- bool(true)
========DONE========
FAIL Existing errors are kept [tests/ext/sandbox/get_last_error.phpt] 
TEST 172/199 [tests/ext/sandbox/keep_spans_in_limited_tracing_internal_functions.phpt]
========DIFF========
002+ 
003+ Termsig=11
002- bool(true)
003- mt_rand
004- mt_rand
005- array_sum
006- array_sum
007- array_sum
008- array_sum
009- mt_rand
========DONE========
FAIL Keep spans in limited mode (internal functions) [tests/ext/sandbox/keep_spans_in_limited_tracing_internal_functions.phpt] 
TEST 173/199 [tests/ext/sandbox/keep_spans_in_limited_tracing_internal_methods.phpt]
========DIFF========
002+ 
003+ Termsig=11
002- bool(true)
003- DateTime.setTime
004- DateTime.setTime
005- DateTime.format
006- DateTime.format
007- DateTime.format
008- DateTime.format
009- DateTime.setTime
========DONE========
FAIL Keep spans in limited mode (internal methods) [tests/ext/sandbox/keep_spans_in_limited_tracing_internal_methods.phpt] 
PASS Keep spans in limited mode (userland functions) [tests/ext/sandbox/keep_spans_in_limited_tracing_userland_functions.phpt] 
PASS Keep spans in limited mode (userland methods) [tests/ext/sandbox/keep_spans_in_limited_tracing_userland_methods.phpt] 
PASS New static instantiates from expected class [tests/ext/sandbox/new_static.phpt] 
PASS Functions that return by reference are instrumented [tests/ext/sandbox/return_by_ref.phpt] 
PASS The return value is null when an exception is thrown in the original call [tests/ext/sandbox/retval_is_null_with_exception.phpt] 
PASS Span metadata is safely converted to strings without errors or exceptions [tests/ext/sandbox/safe_to_string_metadata.phpt] 
PASS Invalid (non-string) keys in span metadata are dropped [tests/ext/sandbox/safe_to_string_metadata_drops_invalid_keys.phpt] 
PASS Span properties are safely converted to strings without errors or exceptions [tests/ext/sandbox/safe_to_string_properties.phpt] 
SKIP Sandbox API is not available on unsupported versions [tests/ext/sandbox/sandbox_api_not_available_on_unsupported_versions.phpt] reason: Test is only for versions that do not support the sandbox API
TEST 183/199 [tests/ext/sandbox/spans_out_of_sync.phpt]
========DIFF========
002+ NULL
002- array(0) {
003- }
========DONE========
FAIL Gracefully handle out-of-sync spans [tests/ext/sandbox/spans_out_of_sync.phpt] 
PASS Static tracing closures will not bind $this [tests/ext/sandbox/static_tracing_closures_will_not_bind_this.phpt] 
TEST 185/199 [tests/ext/sandbox/variadic_args_internal.phpt]
========DIFF========
001+ Termsig=11
001- array(5) {
002-   [0]=>
003-   string(10) "42	Foo Bar"
004-   [1]=>
005-   string(8) "%d	%s %s"
006-   [2]=>
007-   int(42)
008-   [3]=>
009-   string(3) "Foo"
010-   [4]=>
011-   string(3) "Bar"
012- }
013- int(3)
========DONE========
FAIL Variadic arguments are passed to tracing closure for internal functions [tests/ext/sandbox/variadic_args_internal.phpt] 
PASS Variadic arguments are passed to tracing closure when no arguments exist in function signature [tests/ext/sandbox/variadic_no_args.phpt] 
PASS VM variable types are handled properly for return [tests/ext/sandbox/vm_var_types_return.phpt] 
PASS Check user defined function can be overriden and we're able to call the original [tests/ext/simple_function_hook.phpt] 
PASS Check method can be overwritten and we're able to call original method [tests/ext/simple_method_hook.phpt] 
PASS Check user defined function can safely catch and rethrow exception [tests/ext/throw_exception.phpt] 
PASS Check that a method and a function can be traced before it exists. [tests/ext/trace_method_or_function_that_will_exist_later.phpt] 
PASS Public static method tracing. [tests/ext/trace_static_method.phpt] 
TEST 193/199 [tests/ext/traced_internal_functions_override_01.phpt]
========DIFF========
001+ Termsig=11
001- Traced header.
========DONE========
FAIL Ensure that if a user adds an internal function we already trace to traced internal functions list that it doesn't misbehave [tests/ext/traced_internal_functions_override_01.phpt] 
TEST 194/199 [tests/ext/traced_internal_functions_override_02.phpt]
========DIFF========
001+ Termsig=11
001- Done.
========DONE========
FAIL Ensure that if a user adds an internal function we already trace to traced internal functions list that it doesn't misbehave [tests/ext/traced_internal_functions_override_02.phpt] 
PASS Check if we can safely override instrumentation from within instrumentation. [tests/ext/used_dispatch_shouldn_t_be_freed.phpt] 
PASS Check function with variable list of  params can be overwritten and we're able to call original function with modified params [tests/ext/variable_length_parameter_list.phpt] 
PASS Check if we can safely override function being called deep in the call stack [tests/ext/very_nested_functions.phpt] 
PASS Check function with params can be overwritten and we're able to call original function with modified params [tests/ext/with_params_function_hook.phpt] 
PASS Check method with params can be overwritten and we're able to call original method with modified params [tests/ext/with_params_method_hook.phpt] 
=====================================================================
TIME END 2020-06-03 05:36:25

=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped    :    0
Exts tested     :   18
---------------------------------------------------------------------

Number of tests :  199               184
Tests skipped   :   15 (  7.5%) --------
Tests warned    :    0 (  0.0%) (  0.0%)
Tests failed    :   26 ( 13.1%) ( 14.1%)
Expected fail   :    1 (  0.5%) (  0.5%)
Tests passed    :  157 ( 78.9%) ( 85.3%)
---------------------------------------------------------------------
Time taken      :    3 seconds
=====================================================================

=====================================================================
EXPECTED FAILED TEST SUMMARY
---------------------------------------------------------------------
[Sandbox regression] Throw exception in strict mode if traced class does not exist [tests/ext/sandbox-regression/enable_throw_exception_if_overridable_doesnt_exist.phpt]  XFAIL REASON: This functionality does not exist for sandboxed tracing closures
=====================================================================

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
[Prehook Regression] dd_trace_function() can trace internal functions with internal spans [tests/ext/sandbox-prehook/dd_trace_function_internal.phpt]
[Prehook Regression] dd_trace_method() binds the called object to the tracing closure [tests/ext/sandbox-prehook/dd_trace_method_binds_called_object.phpt]
[Prehook Regression] Span is dropped when tracing closure returns false [tests/ext/sandbox-prehook/drop_spans.phpt]
[Prehook Regression] Exception in tracing closure gets logged [tests/ext/sandbox-prehook/exception_error_log.phpt]
[Prehook Regression] Exceptions and errors are ignored when inside a tracing closure [tests/ext/sandbox-prehook/exceptions_and_errors_are_ignored_in_tracing_closure.phpt]
[Prehook] Variadic arguments are passed to tracing closure for internal functions [tests/ext/sandbox-prehook/variadic_args_internal.phpt]
[Sandbox regression] dd_trace_tracer_is_limited() limits the tracer with a hard span limit [tests/ext/sandbox-regression/dd_trace_tracer_is_limited_hard.phpt]
[Sandbox regression] Untrace a function [tests/ext/sandbox-regression/reset_function_tracing.phpt]
Spans are automatically flushed when auto-flushing enabled [tests/ext/sandbox/auto_flush.phpt]
Auto-flushing will not instrument while flushing [tests/ext/sandbox/auto_flush_disables_tracing.phpt]
Userland root spans are automatically flushed when auto-flushing enabled [tests/ext/sandbox/auto_flush_userland_root_span.phpt]
dd_trace_closed_spans_count() tracks closed spans from userland and C-level [tests/ext/sandbox/dd_trace_closed_spans_count.phpt]
dd_trace_method() binds the called object to the tracing closure [tests/ext/sandbox/dd_trace_method_binds_called_object.phpt]
Span is dropped when tracing closure returns false [tests/ext/sandbox/drop_spans.phpt]
Exception in tracing closure gets logged [tests/ext/sandbox/exception_error_log.phpt]
Exceptions from user error handler are tracked for instrumented internal functions [tests/ext/sandbox/exception_from_user_error_handler_internal.phpt]
Exceptions in the tracing closure callback are always defined [tests/ext/sandbox/exception_is_defined.phpt]
Fatal errors are ignored in shutdown handler [tests/ext/sandbox/fatal_errors_ignored_in_shutdown.phpt]
Fatal errors are ignored inside a tracing closure (PHP 7) [tests/ext/sandbox/fatal_errors_ignored_in_tracing_closure_php7.phpt]
Existing errors are kept [tests/ext/sandbox/get_last_error.phpt]
Keep spans in limited mode (internal functions) [tests/ext/sandbox/keep_spans_in_limited_tracing_internal_functions.phpt]
Keep spans in limited mode (internal methods) [tests/ext/sandbox/keep_spans_in_limited_tracing_internal_methods.phpt]
Gracefully handle out-of-sync spans [tests/ext/sandbox/spans_out_of_sync.phpt]
Variadic arguments are passed to tracing closure for internal functions [tests/ext/sandbox/variadic_args_internal.phpt]
Ensure that if a user adds an internal function we already trace to traced internal functions list that it doesn't misbehave [tests/ext/traced_internal_functions_override_01.phpt]
Ensure that if a user adds an internal function we already trace to traced internal functions list that it doesn't misbehave [tests/ext/traced_internal_functions_override_02.phpt]
=====================================================================


Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions