Skip to content

Commit d538f7e

Browse files
committed
Testing: keys iterator get functions
1 parent 8795b6d commit d538f7e

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

tests/grib_keys_iter.cc

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717

1818
int main(int argc, char* argv[])
1919
{
20-
FILE* f = NULL;
2120
grib_handle* h = NULL;
22-
int err = 0;
21+
int err = 0;
2322

2423
Assert(argc == 2);
25-
f = fopen(argv[1], "rb");
24+
FILE* f = fopen(argv[1], "rb");
2625
Assert(f);
2726

2827
while ((h = grib_handle_new_from_file(0, f, &err)) != NULL) {
@@ -39,6 +38,8 @@ int main(int argc, char* argv[])
3938
int type = 0;
4039
GRIB_CHECK(grib_get_native_type(h, name, &type), 0);
4140
Assert( type > 0 && type < 7 );
41+
int ktype = grib_keys_iterator_get_native_type(kiter);
42+
Assert(type == ktype);
4243
const char* type_name = grib_get_type_name(type);
4344
Assert( !STR_EQUAL(type_name, "unknown") );
4445
printf("%s = %s (%d)\n", name, type_name, type);
@@ -48,6 +49,16 @@ int main(int argc, char* argv[])
4849
size_t vlen = MAX_VAL_LEN;
4950
GRIB_CHECK(grib_get_string(h, name, value, &vlen), name);
5051
Assert( strlen(value) > 0 );
52+
int e = grib_keys_iterator_get_string(kiter, value, &vlen);
53+
Assert(!e);
54+
Assert( STR_EQUAL(name, value) );
55+
}
56+
if (STR_EQUAL(name, "editionNumber")) {
57+
long lVal = 0;
58+
size_t llen = 1;
59+
int e = grib_keys_iterator_get_long(kiter, &lVal, &llen);
60+
Assert(!e);
61+
Assert(lVal == 1 || lVal == 2);
5162
}
5263
}
5364

0 commit comments

Comments
 (0)