Skip to content

Commit 6d01f96

Browse files
Merge pull request #1274 from LSSTDESC/revertCMakeChange
test full compilation in CI
2 parents 056ae62 + 424ce1d commit 6d01f96

5 files changed

Lines changed: 307 additions & 208 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ jobs:
9393
- name: Install CCL
9494
run: pip install -v -e .
9595

96+
- name: Full compilation (to run C-level benchmarks)
97+
run: |
98+
cmake -H. -Bbuild -DPYTHON_VERSION=0.0.0
99+
make -Cbuild all
100+
./build/check_ccl
101+
96102
- name: Unit tests
97103
run: |
98104
OMP_NUM_THREADS=2 pytest -vv pyccl --cov=pyccl --cov-report=lcov:lcov.info

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ target_link_libraries(ccl ${GSL_LIBRARIES} ${FFTW_LIBRARIES} ${CLASS_LIBRARIES}
104104

105105
# Builds the test suite
106106
add_executable(check_ccl ${TEST_SRC})
107+
if(APPLE)
108+
# Prevent per-function/section splitting for the test target so the .ctest entries are kept
109+
target_compile_options(check_ccl PRIVATE -fno-function-sections)
110+
else()
111+
target_link_options(check_ccl PRIVATE "-Wl,--no-gc-sections")
112+
endif()
107113
target_link_libraries(check_ccl ccl)
108114

109115
# Builds pkgconfig file for CCL

benchmarks/ccl_test_f2d.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,14 @@ CTEST2(f2d,pk) {
287287
ccl_configuration config = default_config;
288288
config.transfer_function_method = ccl_bbks;
289289
config.matter_power_spectrum_method = ccl_linear;
290-
ccl_parameters params = ccl_parameters_create(data->Omega_c,data->Omega_b, 0.0, 3.046, &mnu,
291-
0, -1.0, 0.0, data->h, data->A_s,data->n_s,
292-
-1, -1, -1, 0., 0., 1.0, 1.0, 0.0,
293-
-1, NULL, NULL, &status);
290+
ccl_parameters params = ccl_parameters_create(data->Omega_c, data->Omega_b, 0.0,
291+
3.046, &mnu, 0,
292+
-1.0, 0.0, data->h, data->A_s, -1,
293+
data->n_s, -1, 0.0, 0.0,
294+
-1, -1, -1,
295+
0.0, 0.0,
296+
1.0, 1.0, 0.0,
297+
-1, NULL, NULL, &status);
294298
params.T_CMB=2.7;
295299
params.Omega_k=0;
296300
params.Omega_g=0;

benchmarks/ccl_test_f3d.c

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#include <math.h>
66
#include <string.h>
77

8+
// Defining 1e-4 tolerance as in the old version of ctest.h vs 1e-12 in the new one
9+
#define DBL_NEAR_TOL 1e-4
810

911
double a_func(double a)
1012
{
@@ -115,7 +117,7 @@ CTEST2(f3d,baseline) {
115117

116118
tkka=ccl_f3d_t_eval(tsp,lktest,lktest,atest,finda,NULL,&status);
117119
ASSERT_TRUE(status==0);
118-
ASSERT_DBL_NEAR(1,tkka/tkka_model(exp(lktest),exp(lktest),atest));
120+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(exp(lktest),exp(lktest),atest), DBL_NEAR_TOL);
119121

120122
//Extrapolation in a
121123
tkka=ccl_f3d_t_eval(tsp,lktest,lktest,0.01,finda,NULL,&status);
@@ -126,33 +128,33 @@ CTEST2(f3d,baseline) {
126128
double klow=1E-5;
127129
tkka=ccl_f3d_t_eval(tsp,log(klow),lktest,atest,finda,NULL,&status);
128130
ASSERT_TRUE(status==0);
129-
ASSERT_DBL_NEAR(1,tkka/tkka_model(klow,exp(lktest),atest));
131+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(klow,exp(lktest),atest), DBL_NEAR_TOL);
130132

131133
//Extrapolation in k (low, #2)
132134
tkka=ccl_f3d_t_eval(tsp,lktest, log(klow),atest,finda,NULL,&status);
133135
ASSERT_TRUE(status==0);
134-
ASSERT_DBL_NEAR(1,tkka/tkka_model(exp(lktest),klow,atest));
136+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(exp(lktest),klow,atest), DBL_NEAR_TOL);
135137

136138
//Extrapolation in k (low, #1 and #2)
137139
tkka=ccl_f3d_t_eval(tsp,log(klow), log(klow),atest,finda,NULL,&status);
138140
ASSERT_TRUE(status==0);
139-
ASSERT_DBL_NEAR(1,tkka/tkka_model(klow,klow,atest));
141+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(klow,klow,atest), DBL_NEAR_TOL);
140142

141143
//Extrapolation in k (high, #1)
142144
double khigh=1E3;
143145
tkka=ccl_f3d_t_eval(tsp,log(khigh),lktest,atest,finda,NULL,&status);
144146
ASSERT_TRUE(status==0);
145-
ASSERT_DBL_NEAR(1,tkka/tkka_model(khigh,exp(lktest),atest));
147+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(khigh,exp(lktest),atest), DBL_NEAR_TOL);
146148

147149
//Extrapolation in k (high, #2)
148150
tkka=ccl_f3d_t_eval(tsp,lktest, log(khigh),atest,finda,NULL,&status);
149151
ASSERT_TRUE(status==0);
150-
ASSERT_DBL_NEAR(1,tkka/tkka_model(exp(lktest),khigh,atest));
152+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(exp(lktest),khigh,atest), DBL_NEAR_TOL);
151153

152154
//Extrapolation in k (high, #1 and #2)
153155
tkka=ccl_f3d_t_eval(tsp,log(khigh), log(khigh),atest,finda,NULL,&status);
154156
ASSERT_TRUE(status==0);
155-
ASSERT_DBL_NEAR(1,tkka/tkka_model(khigh,khigh,atest));
157+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(khigh,khigh,atest), DBL_NEAR_TOL);
156158

157159
ccl_a_finder_free(finda);
158160
ccl_f3d_t_free(tsp);
@@ -179,7 +181,7 @@ CTEST2(f3d,factorized) {
179181

180182
tkka=ccl_f3d_t_eval(tsp,lktest,lktest,atest,finda,NULL,&status);
181183
ASSERT_TRUE(status==0);
182-
ASSERT_DBL_NEAR(1,tkka/tkka_model(exp(lktest),exp(lktest),atest));
184+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(exp(lktest),exp(lktest),atest), DBL_NEAR_TOL);
183185

184186
//Extrapolation in a
185187
tkka=ccl_f3d_t_eval(tsp,lktest,lktest,0.01,finda,NULL,&status);
@@ -190,33 +192,33 @@ CTEST2(f3d,factorized) {
190192
double klow=1E-5;
191193
tkka=ccl_f3d_t_eval(tsp,log(klow),lktest,atest,finda,NULL,&status);
192194
ASSERT_TRUE(status==0);
193-
ASSERT_DBL_NEAR(1,tkka/tkka_model(klow,exp(lktest),atest));
195+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(klow,exp(lktest),atest), DBL_NEAR_TOL);
194196

195197
//Extrapolation in k (low, #2)
196198
tkka=ccl_f3d_t_eval(tsp,lktest, log(klow),atest,finda,NULL,&status);
197199
ASSERT_TRUE(status==0);
198-
ASSERT_DBL_NEAR(1,tkka/tkka_model(exp(lktest),klow,atest));
200+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(exp(lktest),klow,atest), DBL_NEAR_TOL);
199201

200202
//Extrapolation in k (low, #1 and #2)
201203
tkka=ccl_f3d_t_eval(tsp,log(klow), log(klow),atest,finda,NULL,&status);
202204
ASSERT_TRUE(status==0);
203-
ASSERT_DBL_NEAR(1,tkka/tkka_model(klow,klow,atest));
205+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(klow,klow,atest), DBL_NEAR_TOL);
204206

205207
//Extrapolation in k (high, #1)
206208
double khigh=1E3;
207209
tkka=ccl_f3d_t_eval(tsp,log(khigh),lktest,atest,finda,NULL,&status);
208210
ASSERT_TRUE(status==0);
209-
ASSERT_DBL_NEAR(1,tkka/tkka_model(khigh,exp(lktest),atest));
211+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(khigh,exp(lktest),atest), DBL_NEAR_TOL);
210212

211213
//Extrapolation in k (high, #2)
212214
tkka=ccl_f3d_t_eval(tsp,lktest, log(khigh),atest,finda,NULL,&status);
213215
ASSERT_TRUE(status==0);
214-
ASSERT_DBL_NEAR(1,tkka/tkka_model(exp(lktest),khigh,atest));
216+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(exp(lktest),khigh,atest), DBL_NEAR_TOL);
215217

216218
//Extrapolation in k (high, #1 and #2)
217219
tkka=ccl_f3d_t_eval(tsp,log(khigh), log(khigh),atest,finda,NULL,&status);
218220
ASSERT_TRUE(status==0);
219-
ASSERT_DBL_NEAR(1,tkka/tkka_model(khigh,khigh,atest));
221+
ASSERT_DBL_NEAR_TOL(1,tkka/tkka_model(khigh,khigh,atest), DBL_NEAR_TOL);
220222

221223
ccl_a_finder_free(finda);
222224
ccl_f3d_t_free(tsp);

0 commit comments

Comments
 (0)