From dd161417957d661499983464d230cd36d0be97f7 Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Mon, 6 Jan 2025 16:34:04 +0100 Subject: [PATCH] Avoid undefined symbol errors in test run Signed-off-by: Bob Weinand --- Cargo.lock | 1 + components-rs/common.h | 2 ++ profiling/Cargo.toml | 2 ++ profiling/build.rs | 9 ++++++--- profiling/src/php_ffi.c | 6 ++++++ 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d161da8ef29..354fbed6632 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1484,6 +1484,7 @@ dependencies = [ "criterion-perf-events", "crossbeam-channel", "datadog-alloc", + "datadog-php-profiling", "datadog-profiling", "ddcommon 10.0.0", "env_logger 0.11.3", diff --git a/components-rs/common.h b/components-rs/common.h index 9c4c237e46d..24428507cdc 100644 --- a/components-rs/common.h +++ b/components-rs/common.h @@ -369,6 +369,8 @@ typedef enum ddog_RemoteConfigProduct { DDOG_REMOTE_CONFIG_PRODUCT_ASM, DDOG_REMOTE_CONFIG_PRODUCT_ASM_DD, DDOG_REMOTE_CONFIG_PRODUCT_ASM_FEATURES, + DDOG_REMOTE_CONFIG_PRODUCT_ASM_RASP_LFI, + DDOG_REMOTE_CONFIG_PRODUCT_ASM_RASP_SSRF, DDOG_REMOTE_CONFIG_PRODUCT_LIVE_DEBUGGER, } ddog_RemoteConfigProduct; diff --git a/profiling/Cargo.toml b/profiling/Cargo.toml index 0945aa429af..8e467c71463 100644 --- a/profiling/Cargo.toml +++ b/profiling/Cargo.toml @@ -37,6 +37,7 @@ uuid = { version = "1.0", features = ["v4"] } [dev-dependencies] criterion = { version = "0.5.1" } +datadog-php-profiling = { path = ".", features = ["test"] } [target.'cfg(target_arch = "x86_64")'.dev-dependencies] criterion-perf-events = "0.4.0" @@ -52,6 +53,7 @@ allocation_profiling = [] timeline = [] exception_profiling = [] stack_walking_tests = [] +test = [] # only for testing: trigger_time_sample = [] diff --git a/profiling/build.rs b/profiling/build.rs index 77f5349b8ff..a7047057323 100644 --- a/profiling/build.rs +++ b/profiling/build.rs @@ -147,7 +147,8 @@ fn build_zend_php_ffis( #[cfg(not(feature = "stack_walking_tests"))] let stack_walking_tests = "0"; - cc::Build::new() + let mut build = cc::Build::new(); + build .files(files.into_iter().chain(zai_c_files)) .define("CFG_POST_STARTUP_CB", post_startup_cb) .define("CFG_PRELOAD", preload) @@ -165,8 +166,10 @@ fn build_zend_php_ffis( ) .flag_if_supported("-fuse-ld=lld") .flag_if_supported("-std=c11") - .flag_if_supported("-std=c17") - .compile("php_ffi"); + .flag_if_supported("-std=c17"); + #[cfg(feature = "test")] + build.define("CFG_TEST", "1"); + build.compile("php_ffi"); } #[derive(Debug)] diff --git a/profiling/src/php_ffi.c b/profiling/src/php_ffi.c index 96038fa2a3a..69ad19e323e 100644 --- a/profiling/src/php_ffi.c +++ b/profiling/src/php_ffi.c @@ -262,6 +262,11 @@ void datadog_php_profiling_copy_string_view_into_zval(zval *dest, zai_str view, bool persistent) { ZEND_ASSERT(dest); +#ifdef CFG_TEST + (void)dest; + (void)view; + ZEND_UNREACHABLE(); +#else if (view.len == 0) { if (persistent) { ZVAL_EMPTY_PSTRING(dest); @@ -272,6 +277,7 @@ void datadog_php_profiling_copy_string_view_into_zval(zval *dest, zai_str view, ZEND_ASSERT(view.ptr); ZVAL_STR(dest, zend_string_init(view.ptr, view.len, persistent)); } +#endif } void ddog_php_prof_copy_long_into_zval(zval *dest, long num) {