Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 30 additions & 2 deletions ci/test_cpp.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
#!/bin/bash

# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

set -euo pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

. /opt/conda/etc/profile.d/conda.sh

rapids-logger "Configuring conda strict channel priority"
Expand Down Expand Up @@ -47,12 +51,36 @@ popd
EXITCODE=0
trap "EXITCODE=1" ERR
set +e

# Run gtests from libcuopt-tests package
export GTEST_OUTPUT=xml:${RAPIDS_TESTS_DIR}/

rapids-logger "Run gtests"
timeout 40m ./ci/run_ctests.sh

# Optional core-dump path check: no compiled binary — child bash sends itself SIGSEGV.
# Child exits 139; || true keeps this script running so the EXIT trap can collect cores.
# For normal CI, leave unset and set CUOPT_CI_COREDUMP_PROBE=1 only when probing artifacts.
CUOPT_CI_COREDUMP_PROBE=1
if [[ "${CUOPT_CI_COREDUMP_PROBE:-}" == 1 ]]; then
rapids-logger "CUOPT_CI_COREDUMP_PROBE: child bash SIGSEGV (core dump artifact check)"
# Count core files before the probe.
_probe_n_before="$(find "${CUOPT_COREDUMP_DIR:-/dev/null}" -type f 2>/dev/null | wc -l | tr -d '[:space:]')"
bash -c 'kill -SEGV $$' || true
# Brief pause so the kernel can finish writing the core.
sleep 1
# Eagerly collect now so we can verify the probe worked.
cuopt_collect_coredumps || true
_probe_n_after="$(find "${CUOPT_COREDUMP_DIR:-/dev/null}" -type f 2>/dev/null | wc -l | tr -d '[:space:]')"
if [[ "${_probe_n_after}" -gt "${_probe_n_before}" ]]; then
rapids-logger "COREDUMP_PROBE: SUCCESS — $((_probe_n_after - _probe_n_before)) core file(s) collected"
else
rapids-logger "COREDUMP_PROBE: FAILED — no core file collected for SIGSEGV probe"
rapids-logger " core_pattern=$(cat /proc/sys/kernel/core_pattern 2>/dev/null || echo n/a)"
rapids-logger " ulimit -c=$(ulimit -c)"
rapids-logger " CUOPT_COREDUMP_DIR=${CUOPT_COREDUMP_DIR:-unset}"
rapids-logger " Hint: core_pattern may require a privileged container or --cap-add=SYS_PTRACE"
fi
fi

rapids-logger "Test script exiting with value: $EXITCODE"
exit ${EXITCODE}
6 changes: 5 additions & 1 deletion ci/test_cpp_memcheck.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

if [[ "$(date +%A)" != "Friday" ]]; then
Expand All @@ -10,6 +10,10 @@ fi

set -euo pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

. /opt/conda/etc/profile.d/conda.sh

rapids-logger "Configuring conda strict channel priority"
Expand Down
6 changes: 5 additions & 1 deletion ci/test_notebooks.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
#!/bin/bash

# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

set -euo pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

. /opt/conda/etc/profile.d/conda.sh

rapids-logger "Configuring conda strict channel priority"
Expand Down
4 changes: 4 additions & 0 deletions ci/test_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

set -euo pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

. /opt/conda/etc/profile.d/conda.sh

rapids-logger "Configuring conda strict channel priority"
Expand Down
4 changes: 4 additions & 0 deletions ci/test_self_hosted_service.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

set -euo pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

source rapids-init-pip

# Download the cuopt built in the previous step
Expand Down
4 changes: 4 additions & 0 deletions ci/test_skills_assets.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@

set -euo pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

# Use rapids-logger in CI; fall back to echo for local testing
if command -v rapids-logger &>/dev/null; then
log() { rapids-logger "$*"; }
Expand Down
4 changes: 4 additions & 0 deletions ci/test_wheel_cuopt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

set -euo pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

# sets up a constraints file for 'pip' and puts its location in an exported variable PIP_EXPORT,
# so those constraints will affect all future 'pip install' calls
source rapids-init-pip
Expand Down
4 changes: 4 additions & 0 deletions ci/test_wheel_cuopt_server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

set -eou pipefail

# shellcheck source=ci/utils/cuopt_coredumps.sh
source "$(dirname "${BASH_SOURCE[0]}")/utils/cuopt_coredumps.sh"
cuopt_coredumps_ci_setup

source rapids-init-pip

# Download the packages built in the previous step
Expand Down
Loading
Loading