Testing: Use own Assert macro

This commit is contained in:
Shahram Najm 2020-07-24 12:20:58 +01:00
parent 367a1410c4
commit 386dfe0529
2 changed files with 33 additions and 36 deletions

View File

@ -10,7 +10,6 @@
#include "grib_api_internal.h" #include "grib_api_internal.h"
#include "eccodes.h" #include "eccodes.h"
#include <assert.h>
#define STR_EQUAL(s1, s2) (strcmp((s1), (s2)) == 0) #define STR_EQUAL(s1, s2) (strcmp((s1), (s2)) == 0)
@ -53,20 +52,20 @@ static void test_reduced_gg(int remove_local_def, int edition, const char* packi
grib_util_grid_spec spec = {0,}; grib_util_grid_spec spec = {0,};
grib_util_packing_spec packing_spec = {0,}; grib_util_packing_spec packing_spec = {0,};
assert(input_filename); Assert(input_filename);
in = fopen(input_filename, "rb"); in = fopen(input_filename, "rb");
assert(in); Assert(in);
handle = grib_handle_new_from_file(0, in, &err); handle = grib_handle_new_from_file(0, in, &err);
assert(handle); Assert(handle);
CODES_CHECK(grib_get_string(handle, "gridType", gridType, &slen), 0); CODES_CHECK(grib_get_string(handle, "gridType", gridType, &slen), 0);
if (!STR_EQUAL(gridType, "reduced_gg")) { if (!STR_EQUAL(gridType, "reduced_gg")) {
grib_handle_delete(handle); grib_handle_delete(handle);
return; return;
} }
assert(output_filename); Assert(output_filename);
out = fopen(output_filename, "wb"); out = fopen(output_filename, "wb");
assert(out); Assert(out);
CODES_CHECK(grib_get_size(handle, "values", &inlen), 0); CODES_CHECK(grib_get_size(handle, "values", &inlen), 0);
values = (double*)malloc(sizeof(double) * inlen); values = (double*)malloc(sizeof(double) * inlen);
@ -108,23 +107,23 @@ static void test_reduced_gg(int remove_local_def, int edition, const char* packi
values, values,
outlen, outlen,
&err); &err);
assert(finalh); Assert(finalh);
assert(err == 0); Assert(err == 0);
/* Try some invalid inputs and check it is handled */ /* Try some invalid inputs and check it is handled */
{ {
codes_handle* h2 = 0; codes_handle* h2 = 0;
packing_spec.accuracy = 999; packing_spec.accuracy = 999;
h2 = grib_util_set_spec(handle, &spec, &packing_spec, set_spec_flags, values, outlen, &err); h2 = grib_util_set_spec(handle, &spec, &packing_spec, set_spec_flags, values, outlen, &err);
assert(err == GRIB_INTERNAL_ERROR); Assert(err == GRIB_INTERNAL_ERROR);
assert(!h2); Assert(!h2);
if (h2) exit(1); if (h2) exit(1);
#ifdef INFINITY #ifdef INFINITY
packing_spec.accuracy = GRIB_UTIL_ACCURACY_USE_PROVIDED_BITS_PER_VALUES; packing_spec.accuracy = GRIB_UTIL_ACCURACY_USE_PROVIDED_BITS_PER_VALUES;
values[0] = INFINITY; values[0] = INFINITY;
h2 = grib_util_set_spec(handle, &spec, &packing_spec, set_spec_flags, values, outlen, &err); h2 = grib_util_set_spec(handle, &spec, &packing_spec, set_spec_flags, values, outlen, &err);
assert(err == GRIB_ENCODING_ERROR); Assert(err == GRIB_ENCODING_ERROR);
assert(!h2); Assert(!h2);
if (h2) exit(1); if (h2) exit(1);
#endif #endif
} }
@ -134,7 +133,7 @@ static void test_reduced_gg(int remove_local_def, int edition, const char* packi
CODES_CHECK(codes_check_message_header(buffer, size, PRODUCT_GRIB), 0); CODES_CHECK(codes_check_message_header(buffer, size, PRODUCT_GRIB), 0);
CODES_CHECK(codes_check_message_footer(buffer, size, PRODUCT_GRIB), 0); CODES_CHECK(codes_check_message_footer(buffer, size, PRODUCT_GRIB), 0);
if (fwrite(buffer, 1, size, out) != size) { if (fwrite(buffer, 1, size, out) != size) {
assert(0); Assert(0);
} }
grib_handle_delete(handle); grib_handle_delete(handle);
grib_handle_delete(finalh); grib_handle_delete(finalh);
@ -164,11 +163,11 @@ static void test_regular_ll(int remove_local_def, int edition, const char* packi
grib_util_grid_spec spec = {0,}; grib_util_grid_spec spec = {0,};
grib_util_packing_spec packing_spec = {0,}; grib_util_packing_spec packing_spec = {0,};
assert(input_filename); Assert(input_filename);
in = fopen(input_filename, "rb"); in = fopen(input_filename, "rb");
assert(in); Assert(in);
handle = codes_handle_new_from_file(0, in, PRODUCT_GRIB, &err); handle = codes_handle_new_from_file(0, in, PRODUCT_GRIB, &err);
assert(handle); Assert(handle);
CODES_CHECK(codes_get_long(handle, "edition", &input_edition), 0); CODES_CHECK(codes_get_long(handle, "edition", &input_edition), 0);
@ -177,9 +176,9 @@ static void test_regular_ll(int remove_local_def, int edition, const char* packi
grib_handle_delete(handle); grib_handle_delete(handle);
return; return;
} }
assert(output_filename); Assert(output_filename);
out = fopen(output_filename, "wb"); out = fopen(output_filename, "wb");
assert(out); Assert(out);
CODES_CHECK(codes_get_size(handle, "values", &inlen), 0); CODES_CHECK(codes_get_size(handle, "values", &inlen), 0);
values = (double*)malloc(sizeof(double) * inlen); values = (double*)malloc(sizeof(double) * inlen);
@ -224,8 +223,8 @@ static void test_regular_ll(int remove_local_def, int edition, const char* packi
values, values,
outlen, outlen,
&err); &err);
assert(finalh); Assert(finalh);
assert(err == 0); Assert(err == 0);
/* Check expand_bounding_box worked. /* Check expand_bounding_box worked.
* Specified latitudeOfFirstGridPointInDegrees cannot be encoded in GRIB1 * Specified latitudeOfFirstGridPointInDegrees cannot be encoded in GRIB1
@ -234,7 +233,7 @@ static void test_regular_ll(int remove_local_def, int edition, const char* packi
const double expected_lat1 = 60.001; const double expected_lat1 = 60.001;
double lat1 = 0; double lat1 = 0;
CODES_CHECK(codes_get_double(finalh, "latitudeOfFirstGridPointInDegrees", &lat1), 0); CODES_CHECK(codes_get_double(finalh, "latitudeOfFirstGridPointInDegrees", &lat1), 0);
assert(fabs(lat1 - expected_lat1) < 1e-10); Assert(fabs(lat1 - expected_lat1) < 1e-10);
} }
/* Write out the message to the output file */ /* Write out the message to the output file */
@ -242,7 +241,7 @@ static void test_regular_ll(int remove_local_def, int edition, const char* packi
CODES_CHECK(codes_check_message_header(buffer, size, PRODUCT_GRIB), 0); CODES_CHECK(codes_check_message_header(buffer, size, PRODUCT_GRIB), 0);
CODES_CHECK(codes_check_message_footer(buffer, size, PRODUCT_GRIB), 0); CODES_CHECK(codes_check_message_footer(buffer, size, PRODUCT_GRIB), 0);
if (fwrite(buffer, 1, size, out) != size) { if (fwrite(buffer, 1, size, out) != size) {
assert(0); Assert(0);
} }
codes_handle_delete(handle); codes_handle_delete(handle);
codes_handle_delete(finalh); codes_handle_delete(finalh);
@ -272,15 +271,15 @@ static void test_grid_complex_spatial_differencing(int remove_local_def, int edi
grib_util_grid_spec spec={0,}; grib_util_grid_spec spec={0,};
grib_util_packing_spec packing_spec={0,}; grib_util_packing_spec packing_spec={0,};
in = fopen(input_filename,"rb"); assert(in); in = fopen(input_filename,"rb"); Assert(in);
handle = codes_handle_new_from_file(0, in, PRODUCT_GRIB, &err); assert(handle); handle = codes_handle_new_from_file(0, in, PRODUCT_GRIB, &err); Assert(handle);
CODES_CHECK(grib_get_string(handle, "packingType", gridType, &slen),0); CODES_CHECK(grib_get_string(handle, "packingType", gridType, &slen),0);
if (!STR_EQUAL(gridType, "grid_complex_spatial_differencing")) { if (!STR_EQUAL(gridType, "grid_complex_spatial_differencing")) {
grib_handle_delete(handle); grib_handle_delete(handle);
return; return;
} }
out = fopen(output_filename,"wb"); assert(out); out = fopen(output_filename,"wb"); Assert(out);
CODES_CHECK(codes_get_size(handle,"values",&inlen), 0); CODES_CHECK(codes_get_size(handle,"values",&inlen), 0);
values = (double*)malloc(sizeof(double)*inlen); values = (double*)malloc(sizeof(double)*inlen);
@ -325,13 +324,13 @@ static void test_grid_complex_spatial_differencing(int remove_local_def, int edi
values, values,
outlen, outlen,
&err); &err);
assert(finalh); Assert(finalh);
assert(err == 0); Assert(err == 0);
/* Write out the message to the output file */ /* Write out the message to the output file */
CODES_CHECK(codes_get_message(finalh, &buffer, &size),0); CODES_CHECK(codes_get_message(finalh, &buffer, &size),0);
if(fwrite(buffer,1,size,out) != size) { if(fwrite(buffer,1,size,out) != size) {
assert(0); Assert(0);
} }
codes_handle_delete(handle); codes_handle_delete(handle);
codes_handle_delete(finalh); codes_handle_delete(finalh);

View File

@ -7,9 +7,7 @@
* In applying this licence, ECMWF does not waive the privileges and immunities granted to it by * In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/ */
#include <stdio.h> #include <stdio.h>
#include <assert.h>
#include <float.h> #include <float.h>
#include "grib_api_internal.h" #include "grib_api_internal.h"
@ -95,14 +93,14 @@ int main(int argc, char* argv[])
#if 1 #if 1
unsigned long i = 0; unsigned long i = 0;
printf("Test doubles with grib_ieee_to_long/grib_long_to_ieee...\n"); printf("Test doubles with grib_ieee_to_long/grib_long_to_ieee...\n");
assert(test_doubles(grib_ieee_to_long, grib_long_to_ieee) == 1); Assert(test_doubles(grib_ieee_to_long, grib_long_to_ieee) == 1);
printf("Test doubles with grib_ieee64_to_long/grib_long_to_ieee64...\n"); printf("Test doubles with grib_ieee64_to_long/grib_long_to_ieee64...\n");
assert(test_doubles(grib_ieee64_to_long, grib_long_to_ieee64) == 1); Assert(test_doubles(grib_ieee64_to_long, grib_long_to_ieee64) == 1);
printf("Test integers...\n"); printf("Test integers...\n");
/* test(3242539564, grib_ieee_to_long, grib_long_to_ieee); This fails! */ /* test(3242539564, grib_ieee_to_long, grib_long_to_ieee); This fails! */
assert(grib_ieee_to_long(grib_long_to_ieee(i)) == i); Assert(grib_ieee_to_long(grib_long_to_ieee(i)) == i);
/* The minimum value for which we can convert a long to ieee and back is 0x800000 */ /* The minimum value for which we can convert a long to ieee and back is 0x800000 */
/* The maximum value for which we can convert a long to ieee and back is 0x7f800000 */ /* The maximum value for which we can convert a long to ieee and back is 0x7f800000 */
@ -111,8 +109,8 @@ int main(int argc, char* argv[])
if (grib_ieee_to_long(grib_long_to_ieee(i)) != i) { if (grib_ieee_to_long(grib_long_to_ieee(i)) != i) {
printf("i=%lu i=%lx e=%g x=%lx\n", i, i, grib_long_to_ieee(i), grib_ieee_to_long(grib_long_to_ieee(i))); printf("i=%lu i=%lx e=%g x=%lx\n", i, i, grib_long_to_ieee(i), grib_ieee_to_long(grib_long_to_ieee(i)));
/*assert(grib_ieee_to_long(grib_long_to_ieee(i)) == i);*/ /*Assert(grib_ieee_to_long(grib_long_to_ieee(i)) == i);*/
assert(0); Assert(0);
} }
/*if(grib_ieee_to_long(grib_long_to_ieee(j)) != j) /*if(grib_ieee_to_long(grib_long_to_ieee(j)) != j)
{ {
@ -133,7 +131,7 @@ int main(int argc, char* argv[])
double c = p(ref1, ref1); double c = p(ref1, ref1);
double d = p(ref2, ref2); double d = p(ref2, ref2);
assert(min < max); Assert(min < max);
#endif #endif
printf("ALL DONE\n"); printf("ALL DONE\n");