From fdd705650c87e102bd30c3c3e329d20138b4b43a Mon Sep 17 00:00:00 2001 From: Julio Gonzalez Date: Fri, 13 Jun 2025 15:56:55 +0200 Subject: [PATCH 1/5] Test branch on libddprof-build. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fa4b9a1e6..8bc5ded58 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ variables: # These are gitlab variables so that it's easier to do a manual deploy # If these are set witih value and description, then it gives you UI elements DOWNSTREAM_BRANCH: - value: "main" + value: "julio/trigger-release-pr" description: "downstream jobs are triggered on this branch" include: From fa522afa6d5c9a771f17f3e25b3b30bd3c324ee3 Mon Sep 17 00:00:00 2001 From: Julio Gonzalez Date: Fri, 13 Jun 2025 16:09:21 +0200 Subject: [PATCH 2/5] Wait for file creation. --- bin_tests/tests/crashtracker_bin_test.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin_tests/tests/crashtracker_bin_test.rs b/bin_tests/tests/crashtracker_bin_test.rs index eec0370a4..8ec361b3a 100644 --- a/bin_tests/tests/crashtracker_bin_test.rs +++ b/bin_tests/tests/crashtracker_bin_test.rs @@ -184,6 +184,10 @@ fn test_crash_tracking_bin( ); assert_eq!(Ok(""), String::from_utf8(stdout).as_deref()); + while !fixtures.crash_profile_path.as_path().exists() { + std::thread::sleep(std::time::Duration::from_millis(100)); + } + // Check the crash data let crash_profile = fs::read(fixtures.crash_profile_path) .context("reading crashtracker profiling payload") From bd8fffe514bc5a4e9a297c010f30f40ae0c4c345 Mon Sep 17 00:00:00 2001 From: Julio Gonzalez Date: Fri, 13 Jun 2025 16:56:02 +0200 Subject: [PATCH 3/5] Add routine in order to check crash report existence. --- bin_tests/tests/crashtracker_bin_test.rs | 25 ++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/bin_tests/tests/crashtracker_bin_test.rs b/bin_tests/tests/crashtracker_bin_test.rs index 8ec361b3a..d7c2cbcac 100644 --- a/bin_tests/tests/crashtracker_bin_test.rs +++ b/bin_tests/tests/crashtracker_bin_test.rs @@ -7,12 +7,31 @@ use std::collections::HashMap; use std::io::{Read, Write}; use std::path::Path; use std::process; -use std::{fs, path::PathBuf}; +use std::{fs, path::PathBuf, time::{Duration, Instant}}; use anyhow::Context; use bin_tests::{build_artifacts, ArtifactType, ArtifactsBuild, BuildProfile}; use serde_json::Value; +const CHECK_TIMEOUT_MS: u64 = 20_000; + +fn check_file_existence(path: &Path, timeout: Duration) -> bool { + let start = Instant::now(); + + loop { + match path.exists() { + true => return true, + false => { + if start.elapsed() > timeout { + return false + } else { + std::thread::sleep(Duration::from_millis(100)); + } + } + } + } +} + #[test] #[cfg_attr(miri, ignore)] fn test_crash_tracking_bin_debug() { @@ -184,9 +203,7 @@ fn test_crash_tracking_bin( ); assert_eq!(Ok(""), String::from_utf8(stdout).as_deref()); - while !fixtures.crash_profile_path.as_path().exists() { - std::thread::sleep(std::time::Duration::from_millis(100)); - } + assert!(check_file_existence(fixtures.crash_profile_path.as_path(), Duration::from_secs(CHECK_TIMEOUT_MS))); // Check the crash data let crash_profile = fs::read(fixtures.crash_profile_path) From 19aac8e03194c83d856532fd02f8b697b9d91811 Mon Sep 17 00:00:00 2001 From: Julio Gonzalez Date: Fri, 13 Jun 2025 17:13:31 +0200 Subject: [PATCH 4/5] Fix format. --- bin_tests/tests/crashtracker_bin_test.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/bin_tests/tests/crashtracker_bin_test.rs b/bin_tests/tests/crashtracker_bin_test.rs index d7c2cbcac..df532979f 100644 --- a/bin_tests/tests/crashtracker_bin_test.rs +++ b/bin_tests/tests/crashtracker_bin_test.rs @@ -7,7 +7,11 @@ use std::collections::HashMap; use std::io::{Read, Write}; use std::path::Path; use std::process; -use std::{fs, path::PathBuf, time::{Duration, Instant}}; +use std::{ + fs, + path::PathBuf, + time::{Duration, Instant}, +}; use anyhow::Context; use bin_tests::{build_artifacts, ArtifactType, ArtifactsBuild, BuildProfile}; @@ -23,7 +27,7 @@ fn check_file_existence(path: &Path, timeout: Duration) -> bool { true => return true, false => { if start.elapsed() > timeout { - return false + return false; } else { std::thread::sleep(Duration::from_millis(100)); } @@ -203,7 +207,10 @@ fn test_crash_tracking_bin( ); assert_eq!(Ok(""), String::from_utf8(stdout).as_deref()); - assert!(check_file_existence(fixtures.crash_profile_path.as_path(), Duration::from_secs(CHECK_TIMEOUT_MS))); + assert!(check_file_existence( + fixtures.crash_profile_path.as_path(), + Duration::from_secs(CHECK_TIMEOUT_MS) + )); // Check the crash data let crash_profile = fs::read(fixtures.crash_profile_path) From 49e8bfcf9fce99f3c90ad73eba7123f04d0c2e6a Mon Sep 17 00:00:00 2001 From: Julio Gonzalez Date: Fri, 13 Jun 2025 18:54:20 +0200 Subject: [PATCH 5/5] Move constants to a new file so they are in sync across tests. --- bin_tests/src/bin/crashtracker_bin_test.rs | 3 +-- bin_tests/src/constants.rs | 4 ++++ bin_tests/src/lib.rs | 3 +++ bin_tests/tests/crashtracker_bin_test.rs | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 bin_tests/src/constants.rs diff --git a/bin_tests/src/bin/crashtracker_bin_test.rs b/bin_tests/src/bin/crashtracker_bin_test.rs index 480d8b281..b2fa83ac2 100644 --- a/bin_tests/src/bin/crashtracker_bin_test.rs +++ b/bin_tests/src/bin/crashtracker_bin_test.rs @@ -20,13 +20,12 @@ mod unix { use std::env; use std::path::Path; + use bin_tests::TEST_COLLECTOR_TIMEOUT_MS; use datadog_crashtracker::{ self as crashtracker, CrashtrackerConfiguration, CrashtrackerReceiverConfig, Metadata, }; use ddcommon::{tag, Endpoint}; - const TEST_COLLECTOR_TIMEOUT_MS: u32 = 10_000; - #[inline(never)] pub unsafe fn cause_segfault() -> anyhow::Result<()> { #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] diff --git a/bin_tests/src/constants.rs b/bin_tests/src/constants.rs new file mode 100644 index 000000000..bc7e00c84 --- /dev/null +++ b/bin_tests/src/constants.rs @@ -0,0 +1,4 @@ +// Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/ +// SPDX-License-Identifier: Apache-2.0 +// +pub const TEST_COLLECTOR_TIMEOUT_MS: u32 = 10_000; diff --git a/bin_tests/src/lib.rs b/bin_tests/src/lib.rs index e7d0dd3fd..6ab70af88 100644 --- a/bin_tests/src/lib.rs +++ b/bin_tests/src/lib.rs @@ -1,8 +1,11 @@ // Copyright 2023-Present Datadog, Inc. https://www.datadoghq.com/ // SPDX-License-Identifier: Apache-2.0 +mod constants; pub mod modes; +pub use constants::*; + use std::{collections::HashMap, env, ops::DerefMut, path::PathBuf, process, sync::Mutex}; use once_cell::sync::OnceCell; diff --git a/bin_tests/tests/crashtracker_bin_test.rs b/bin_tests/tests/crashtracker_bin_test.rs index df532979f..745e1af3e 100644 --- a/bin_tests/tests/crashtracker_bin_test.rs +++ b/bin_tests/tests/crashtracker_bin_test.rs @@ -17,7 +17,7 @@ use anyhow::Context; use bin_tests::{build_artifacts, ArtifactType, ArtifactsBuild, BuildProfile}; use serde_json::Value; -const CHECK_TIMEOUT_MS: u64 = 20_000; +use bin_tests::TEST_COLLECTOR_TIMEOUT_MS; fn check_file_existence(path: &Path, timeout: Duration) -> bool { let start = Instant::now(); @@ -209,7 +209,7 @@ fn test_crash_tracking_bin( assert!(check_file_existence( fixtures.crash_profile_path.as_path(), - Duration::from_secs(CHECK_TIMEOUT_MS) + Duration::from_secs(TEST_COLLECTOR_TIMEOUT_MS as u64) )); // Check the crash data