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: 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 eec0370a4..745e1af3e 100644 --- a/bin_tests/tests/crashtracker_bin_test.rs +++ b/bin_tests/tests/crashtracker_bin_test.rs @@ -7,12 +7,35 @@ 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; +use bin_tests::TEST_COLLECTOR_TIMEOUT_MS; + +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,6 +207,11 @@ 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(TEST_COLLECTOR_TIMEOUT_MS as u64) + )); + // Check the crash data let crash_profile = fs::read(fixtures.crash_profile_path) .context("reading crashtracker profiling payload")