[CI] Stop Windows pipeline upon a failing pytest (#10003)

This commit is contained in:
Philip Hyunsu Cho 2024-01-24 22:54:21 -08:00 committed by GitHub
parent 60ec7b8424
commit c8f5d190c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 11 additions and 10 deletions

View File

@ -260,12 +260,10 @@ bool NoInfInData(AdapterBatchT const& batch, IsValidFunctor is_valid) {
auto counting = thrust::make_counting_iterator(0llu); auto counting = thrust::make_counting_iterator(0llu);
auto value_iter = dh::MakeTransformIterator<bool>(counting, [=] XGBOOST_DEVICE(std::size_t idx) { auto value_iter = dh::MakeTransformIterator<bool>(counting, [=] XGBOOST_DEVICE(std::size_t idx) {
auto v = batch.GetElement(idx).value; auto v = batch.GetElement(idx).value;
if (!is_valid(v)) { if (is_valid(v) && isinf(v)) {
// discard the invalid elements. return false;
return true;
} }
// check that there's no inf in data. return true;
return !std::isinf(v);
}); });
dh::XGBCachingDeviceAllocator<char> alloc; dh::XGBCachingDeviceAllocator<char> alloc;
// The default implementation in thrust optimizes any_of/none_of/all_of by using small // The default implementation in thrust optimizes any_of/none_of/all_of by using small

View File

@ -1,5 +1,5 @@
/** /**
* Copyright 2019-2023 by XGBoost contributors * Copyright 2019-2024, XGBoost contributors
*/ */
#include <thrust/iterator/discard_iterator.h> #include <thrust/iterator/discard_iterator.h>
#include <thrust/iterator/transform_output_iterator.h> #include <thrust/iterator/transform_output_iterator.h>
@ -13,7 +13,7 @@
#include "../common/hist_util.cuh" #include "../common/hist_util.cuh"
#include "../common/transform_iterator.h" // MakeIndexTransformIter #include "../common/transform_iterator.h" // MakeIndexTransformIter
#include "./ellpack_page.cuh" #include "./ellpack_page.cuh"
#include "device_adapter.cuh" // for HasInfInData #include "device_adapter.cuh" // for NoInfInData
#include "ellpack_page.h" #include "ellpack_page.h"
#include "gradient_index.h" #include "gradient_index.h"
#include "xgboost/data.h" #include "xgboost/data.h"

View File

@ -1,5 +1,5 @@
/** /**
* Copyright 2019-2023 by XGBoost Contributors * Copyright 2019-2024, XGBoost Contributors
* \file simple_dmatrix.cuh * \file simple_dmatrix.cuh
*/ */
#ifndef XGBOOST_DATA_SIMPLE_DMATRIX_CUH_ #ifndef XGBOOST_DATA_SIMPLE_DMATRIX_CUH_
@ -11,7 +11,7 @@
#include "../common/device_helpers.cuh" #include "../common/device_helpers.cuh"
#include "../common/error_msg.h" // for InfInData #include "../common/error_msg.h" // for InfInData
#include "device_adapter.cuh" // for HasInfInData #include "device_adapter.cuh" // for NoInfInData
namespace xgboost::data { namespace xgboost::data {

View File

@ -32,6 +32,8 @@ Foreach-Object {
Write-Host "--- Run Python tests" Write-Host "--- Run Python tests"
python -X faulthandler -m pytest -v -s -rxXs --fulltrace tests/python python -X faulthandler -m pytest -v -s -rxXs --fulltrace tests/python
if ($LASTEXITCODE -ne 0) { throw "Last command failed" }
Write-Host "--- Run Python tests with GPU" Write-Host "--- Run Python tests with GPU"
python -X faulthandler -m pytest -v -s -rxXs --fulltrace -m "(not slow) and (not mgpu)"` python -X faulthandler -m pytest -v -s -rxXs --fulltrace -m "(not slow) and (not mgpu)"`
tests/python-gpu tests/python-gpu
if ($LASTEXITCODE -ne 0) { throw "Last command failed" }

View File

@ -152,6 +152,7 @@ class TestGPUPredict:
@pytest.mark.parametrize("device", ["cpu", "cuda"]) @pytest.mark.parametrize("device", ["cpu", "cuda"])
@pytest.mark.skipif(**tm.no_cupy()) @pytest.mark.skipif(**tm.no_cupy())
@pytest.mark.skipif(**tm.no_cudf())
def test_inplace_predict_device_type(self, device: str) -> None: def test_inplace_predict_device_type(self, device: str) -> None:
"""Test inplace predict with different device and data types. """Test inplace predict with different device and data types.

View File

@ -249,7 +249,7 @@ def test_custom_objective(
clf.fit(X, y) clf.fit(X, y)
@pytest.mark.skipif(**tm.no_pandas()) @pytest.mark.skipif(**tm.no_cudf())
def test_ranking_qid_df(): def test_ranking_qid_df():
import cudf import cudf