From 0f57ee7a57094dfaf6d7d9276683ca6ec6e8cf34 Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen <yen-chen.chen@tum.de> Date: Mon, 17 Feb 2025 10:17:11 +0000 Subject: [PATCH] Improve C++ test (icon-libraries/libfortran-support!110) ## What is the bug The C++ test code for `mo_util_stride` uses the experimental standard library. The filesystem standard library is automatically linked in C++17 ## How do you fix it Replace with the standard library Merged-by: Pradipta Samanta <samanta@dkrz.de> Changelog: bugfix --- cmake/gtest_helper.cmake | 2 +- test/c/ctest_util_stride.cpp | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/cmake/gtest_helper.cmake b/cmake/gtest_helper.cmake index 073eb13..00d555a 100644 --- a/cmake/gtest_helper.cmake +++ b/cmake/gtest_helper.cmake @@ -31,7 +31,7 @@ function(fs_add_c_test test_name) add_executable("CTest_${test_name}" ${ARG_SOURCES}) target_link_libraries( "CTest_${test_name}" PRIVATE fortran-support::fortran-support - GTest::gtest_main stdc++fs) + GTest::gtest_main) add_test(NAME "CTest_${test_name}" COMMAND "CTest_${test_name}" ${ARG_ARGS}) set_property(TEST "CTest_${test_name}" PROPERTY LABELS C) set_target_properties("CTest_${test_name}" diff --git a/test/c/ctest_util_stride.cpp b/test/c/ctest_util_stride.cpp index 1e7e6a0..2c75e8a 100644 --- a/test/c/ctest_util_stride.cpp +++ b/test/c/ctest_util_stride.cpp @@ -10,7 +10,7 @@ // --------------------------------------------------------------- #include <gtest/gtest.h> -#include <experimental/random> +#include <random> #include <util_stride.h> @@ -47,13 +47,17 @@ TEST_F(UtilStrideTest, CanGet1DStride) { } TEST_F(UtilStrideTest, CanGet1DStride2) { + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_int_distribution<int> dist(0, 499); + int stride; float f_array[1000]; double d_array[1000]; - int p1 = std::experimental::randint(0, 499); - int p2 = std::experimental::randint(500, 999); + int p1 = dist(gen); + int p2 = 500 + dist(gen); util_stride_1d(&stride, sizeof(float), &f_array[p1], &f_array[p2]); EXPECT_EQ(stride, p2 - p1); @@ -78,14 +82,18 @@ TEST_F(UtilStrideTest, CanGet2DStride) { } TEST_F(UtilStrideTest, CanGet2DStride2) { + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_int_distribution<int> dist(0, 499); + int stride[2]; float f_array[1000]; double d_array[1000]; - int p1 = std::experimental::randint(0, 499); - int p2 = std::experimental::randint(500, 999); - int p3 = std::experimental::randint(500, 999); + int p1 = dist(gen); + int p2 = 500 + dist(gen); + int p3 = 500 + dist(gen); util_stride_2d(&stride[0], sizeof(float), &f_array[p1], &f_array[p2], &f_array[p3]); -- GitLab