Skip to content
Snippets Groups Projects
Commit 0f57ee7a authored by Yen-Chen Chen's avatar Yen-Chen Chen Committed by Pradipta Samanta
Browse files

Improve C++ test (!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: default avatarPradipta Samanta <samanta@dkrz.de>
Changelog: bugfix
parent fffe28d0
No related branches found
No related tags found
1 merge request!110Improve C++ test
Pipeline #97194 passed
...@@ -31,7 +31,7 @@ function(fs_add_c_test test_name) ...@@ -31,7 +31,7 @@ function(fs_add_c_test test_name)
add_executable("CTest_${test_name}" ${ARG_SOURCES}) add_executable("CTest_${test_name}" ${ARG_SOURCES})
target_link_libraries( target_link_libraries(
"CTest_${test_name}" PRIVATE fortran-support::fortran-support "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}) add_test(NAME "CTest_${test_name}" COMMAND "CTest_${test_name}" ${ARG_ARGS})
set_property(TEST "CTest_${test_name}" PROPERTY LABELS C) set_property(TEST "CTest_${test_name}" PROPERTY LABELS C)
set_target_properties("CTest_${test_name}" set_target_properties("CTest_${test_name}"
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
// --------------------------------------------------------------- // ---------------------------------------------------------------
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include <experimental/random> #include <random>
#include <util_stride.h> #include <util_stride.h>
...@@ -47,13 +47,17 @@ TEST_F(UtilStrideTest, CanGet1DStride) { ...@@ -47,13 +47,17 @@ TEST_F(UtilStrideTest, CanGet1DStride) {
} }
TEST_F(UtilStrideTest, CanGet1DStride2) { TEST_F(UtilStrideTest, CanGet1DStride2) {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dist(0, 499);
int stride; int stride;
float f_array[1000]; float f_array[1000];
double d_array[1000]; double d_array[1000];
int p1 = std::experimental::randint(0, 499); int p1 = dist(gen);
int p2 = std::experimental::randint(500, 999); int p2 = 500 + dist(gen);
util_stride_1d(&stride, sizeof(float), &f_array[p1], &f_array[p2]); util_stride_1d(&stride, sizeof(float), &f_array[p1], &f_array[p2]);
EXPECT_EQ(stride, p2 - p1); EXPECT_EQ(stride, p2 - p1);
...@@ -78,14 +82,18 @@ TEST_F(UtilStrideTest, CanGet2DStride) { ...@@ -78,14 +82,18 @@ TEST_F(UtilStrideTest, CanGet2DStride) {
} }
TEST_F(UtilStrideTest, CanGet2DStride2) { TEST_F(UtilStrideTest, CanGet2DStride2) {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dist(0, 499);
int stride[2]; int stride[2];
float f_array[1000]; float f_array[1000];
double d_array[1000]; double d_array[1000];
int p1 = std::experimental::randint(0, 499); int p1 = dist(gen);
int p2 = std::experimental::randint(500, 999); int p2 = 500 + dist(gen);
int p3 = std::experimental::randint(500, 999); int p3 = 500 + dist(gen);
util_stride_2d(&stride[0], sizeof(float), &f_array[p1], &f_array[p2], util_stride_2d(&stride[0], sizeof(float), &f_array[p1], &f_array[p2],
&f_array[p3]); &f_array[p3]);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment