commit d14b6166fd3df6788167c656d7774fb9ae4d27d3
parent e7ef5bc7ff49626aeec8984cc54527b7c4e449e2
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Mon, 22 Oct 2018 11:19:55 +0200
Fix invalid time range not detected
Diffstat:
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/sdis_solve.c b/src/sdis_solve.c
@@ -186,6 +186,7 @@ sdis_solve_probe
if(!scn || !nrealisations || nrealisations > INT64_MAX || !position
|| !time_range || time_range[0] < 0 || time_range[1] < time_range[0]
+ || (time_range[1] > DBL_MAX && time_range[0] != time_range[1])
|| fp_to_meter <= 0 || Tref < 0 || !out_estimator) {
res = RES_BAD_ARG;
goto error;
@@ -293,6 +294,7 @@ sdis_solve_probe_boundary
if(!scn || !nrealisations || nrealisations > INT64_MAX || !uv
|| !time_range || time_range[0] < 0 || time_range[1] < time_range[0]
+ || (time_range[1] > DBL_MAX && time_range[0] != time_range[1])
|| fp_to_meter <= 0 || Tref < 0 || (side != SDIS_FRONT && side != SDIS_BACK)
|| !out_estimator) {
res = RES_BAD_ARG;
@@ -600,6 +602,7 @@ sdis_solve_probe_boundary_flux
if(!scn || !nrealisations || nrealisations > INT64_MAX || !uv
|| !time_range || time_range[0] < 0 || time_range[1] < time_range[0]
+ || (time_range[1] > DBL_MAX && time_range[0] != time_range[1])
|| fp_to_meter <= 0 || Tref < 0
|| !out_estimator) {
res = RES_BAD_ARG;
diff --git a/src/sdis_solve_Xd.h b/src/sdis_solve_Xd.h
@@ -1813,6 +1813,7 @@ XD(solve_boundary)
if(!scn || !nrealisations || nrealisations > INT64_MAX || !primitives
|| !time_range || time_range[0] < 0 || time_range[1] < time_range[0]
+ || (time_range[1] > DBL_MAX && time_range[0] != time_range[1])
|| !sides || !nprimitives || fp_to_meter < 0 || Tref < 0
|| !out_estimator) {
res = RES_BAD_ARG;
@@ -1993,6 +1994,7 @@ XD(solve_boundary_flux)
if(!scn || !nrealisations || nrealisations > INT64_MAX || !primitives
|| !time_range || time_range[0] < 0 || time_range[1] < time_range[0]
+ || (time_range[1] > DBL_MAX && time_range[0] != time_range[1])
|| !nprimitives || fp_to_meter < 0 || Tref < 0
|| !out_estimator) {
res = RES_BAD_ARG;
diff --git a/src/test_sdis_solve_boundary_flux.c b/src/test_sdis_solve_boundary_flux.c
@@ -356,11 +356,13 @@ main(int argc, char** argv)
BA(SOLVE(box_scn, N, iprim, uv, NULL, 1.0, Trad, Tref, &estimator));
BA(SOLVE(box_scn, N, iprim, uv, time_range, 1.0, Trad, Tref, NULL));
tr[0] = tr[1] = -1;
- BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, NULL));
+ BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, &estimator));
tr[0] = 1;
- BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, NULL));
+ BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, &estimator));
tr[1] = 0;
- BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, NULL));
+ BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, &estimator));
+ tr[1] = INF;
+ BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, &estimator));
OK(SOLVE(box_scn, N, iprim, uv, time_range, 1.0, Trad, Tref, &estimator));
OK(sdis_estimator_get_type(estimator, &type));