@@ -61,6 +61,19 @@ NR_PHP_WRAPPER(expect_arg_value_null) {
61
61
}
62
62
NR_PHP_WRAPPER_END
63
63
64
+ NR_PHP_WRAPPER (aws_lambda_invoke_wrapper ) {
65
+ nr_segment_cloud_attrs_t cloud_attrs = {0 };
66
+ zval * expected = nr_php_get_user_func_arg (1 , NR_EXECUTE_ORIG_ARGS );
67
+ nr_aws_lambda_invoke (NR_EXECUTE_ORIG_ARGS , & cloud_attrs );
68
+ (void )wraprec ;
69
+
70
+ tlib_pass_if_str_equal ("Expected should match reconstructed arn" ,
71
+ Z_STRVAL_P (expected ),
72
+ cloud_attrs .cloud_resource_id );
73
+ NR_PHP_WRAPPER_CALL ;
74
+ }
75
+ NR_PHP_WRAPPER_END
76
+
64
77
static void test_nr_lib_aws_sdk_php_get_command_arg_value () {
65
78
zval * expr = NULL ;
66
79
zval * first_arg = NULL ;
@@ -458,6 +471,29 @@ static void test_nr_lib_aws_sdk_php_handle_version(void) {
458
471
tlib_php_request_end ();
459
472
}
460
473
474
+ static void test_nr_lib_aws_sdk_php_lambda_invoke () {
475
+ tlib_php_engine_create ("" );
476
+ tlib_php_request_start ();
477
+
478
+ tlib_php_request_eval ("function lambda_invoke($a, $b) { return; }" );
479
+ nr_php_wrap_user_function (NR_PSTR ("lambda_invoke" ), aws_lambda_invoke_wrapper );
480
+
481
+ char * args
482
+ = "array("
483
+ " 0 => array("
484
+ " 'FunctionName' => 'us-east-2:012345678901:function'"
485
+ " )"
486
+ ")" ;
487
+ zval * array_arg = tlib_php_request_eval_expr (args );
488
+ char * expect = "'arn:aws:lamba:us-east-2:012345678901:function'" ;
489
+ zval * expect_arg = tlib_php_request_eval_expr (expect );
490
+ zval * expr = nr_php_call (NULL , "lambda_invoke" , expect_arg , array_arg );
491
+ tlib_pass_if_not_null ("Expression should evaluate." , expr );
492
+
493
+ tlib_php_request_end ();
494
+ tlib_php_engine_destroy ();
495
+ }
496
+
461
497
void test_main (void * p NRUNUSED ) {
462
498
tlib_php_engine_create ("" );
463
499
test_nr_lib_aws_sdk_php_add_supportability_service_metric ();
@@ -466,6 +502,7 @@ void test_main(void* p NRUNUSED) {
466
502
#if ZEND_MODULE_API_NO >= ZEND_8_1_X_API_NO
467
503
test_nr_lib_aws_sdk_php_sqs_parse_queueurl ();
468
504
test_nr_lib_aws_sdk_php_get_command_arg_value ();
505
+ test_nr_lib_aws_sdk_php_lambda_invoke ();
469
506
#endif /* PHP 8.1+ */
470
507
}
471
508
#else
0 commit comments