Skip to content

Commit b3fc51f

Browse files
authored
Disable assert for target build (#15)
* Release 1.2.2 * Implementing test for verifying correct behaviour in case of a undefined CBOR map key * Adding code coverage analysis of code under unit test as a post build step * Disabling asserts for non-host/target build * Fixing CI build - lcov needs to be installed before it can be used
1 parent f11f9a9 commit b3fc51f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

lib/tinycbor/src/cbor.h

+32
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,9 @@ CBOR_INLINE_API bool cbor_value_is_boolean(const CborValue *value)
329329
{ return value->type == CborBooleanType; }
330330
CBOR_INLINE_API CborError cbor_value_get_boolean(const CborValue *value, bool *result)
331331
{
332+
#ifdef HOST_BUILD
332333
assert(cbor_value_is_boolean(value));
334+
#endif
333335
*result = !!value->extra;
334336
return CborNoError;
335337
}
@@ -339,7 +341,9 @@ CBOR_INLINE_API bool cbor_value_is_simple_type(const CborValue *value)
339341
{ return value->type == CborSimpleType; }
340342
CBOR_INLINE_API CborError cbor_value_get_simple_type(const CborValue *value, uint8_t *result)
341343
{
344+
#ifdef HOST_BUILD
342345
assert(cbor_value_is_simple_type(value));
346+
#endif
343347
*result = (uint8_t)value->extra;
344348
return CborNoError;
345349
}
@@ -354,21 +358,27 @@ CBOR_INLINE_API bool cbor_value_is_negative_integer(const CborValue *value)
354358

355359
CBOR_INLINE_API CborError cbor_value_get_raw_integer(const CborValue *value, uint64_t *result)
356360
{
361+
#ifdef HOST_BUILD
357362
assert(cbor_value_is_integer(value));
363+
#endif
358364
*result = _cbor_value_extract_int64_helper(value);
359365
return CborNoError;
360366
}
361367

362368
CBOR_INLINE_API CborError cbor_value_get_uint64(const CborValue *value, uint64_t *result)
363369
{
370+
#ifdef HOST_BUILD
364371
assert(cbor_value_is_unsigned_integer(value));
372+
#endif
365373
*result = _cbor_value_extract_int64_helper(value);
366374
return CborNoError;
367375
}
368376

369377
CBOR_INLINE_API CborError cbor_value_get_int64(const CborValue *value, int64_t *result)
370378
{
379+
#ifdef HOST_BUILD
371380
assert(cbor_value_is_integer(value));
381+
#endif
372382
*result = (int64_t) _cbor_value_extract_int64_helper(value);
373383
if (value->flags & CborIteratorFlag_NegativeInteger)
374384
*result = -*result - 1;
@@ -377,7 +387,9 @@ CBOR_INLINE_API CborError cbor_value_get_int64(const CborValue *value, int64_t *
377387

378388
CBOR_INLINE_API CborError cbor_value_get_int(const CborValue *value, int *result)
379389
{
390+
#ifdef HOST_BUILD
380391
assert(cbor_value_is_integer(value));
392+
#endif
381393
*result = (int) _cbor_value_extract_int64_helper(value);
382394
if (value->flags & CborIteratorFlag_NegativeInteger)
383395
*result = -*result - 1;
@@ -395,7 +407,9 @@ CBOR_INLINE_API bool cbor_value_is_tag(const CborValue *value)
395407
{ return value->type == CborTagType; }
396408
CBOR_INLINE_API CborError cbor_value_get_tag(const CborValue *value, CborTag *result)
397409
{
410+
#ifdef HOST_BUILD
398411
assert(cbor_value_is_tag(value));
412+
#endif
399413
*result = _cbor_value_extract_int64_helper(value);
400414
return CborNoError;
401415
}
@@ -410,7 +424,9 @@ CBOR_INLINE_API bool cbor_value_is_text_string(const CborValue *value)
410424
CBOR_INLINE_API CborError cbor_value_get_string_length(const CborValue *value, size_t *length)
411425
{
412426
uint64_t v;
427+
#ifdef HOST_BUILD
413428
assert(cbor_value_is_byte_string(value) || cbor_value_is_text_string(value));
429+
#endif
414430
if (!cbor_value_is_length_known(value))
415431
return CborErrorUnknownLength;
416432
v = _cbor_value_extract_int64_helper(value);
@@ -430,26 +446,34 @@ CBOR_API CborError cbor_value_calculate_string_length(const CborValue *value, si
430446
CBOR_INLINE_API CborError cbor_value_copy_text_string(const CborValue *value, char *buffer,
431447
size_t *buflen, CborValue *next)
432448
{
449+
#ifdef HOST_BUILD
433450
assert(cbor_value_is_text_string(value));
451+
#endif
434452
return _cbor_value_copy_string(value, buffer, buflen, next);
435453
}
436454
CBOR_INLINE_API CborError cbor_value_copy_byte_string(const CborValue *value, uint8_t *buffer,
437455
size_t *buflen, CborValue *next)
438456
{
457+
#ifdef HOST_BUILD
439458
assert(cbor_value_is_byte_string(value));
459+
#endif
440460
return _cbor_value_copy_string(value, buffer, buflen, next);
441461
}
442462

443463
CBOR_INLINE_API CborError cbor_value_dup_text_string(const CborValue *value, char **buffer,
444464
size_t *buflen, CborValue *next)
445465
{
466+
#ifdef HOST_BUILD
446467
assert(cbor_value_is_text_string(value));
468+
#endif
447469
return _cbor_value_dup_string(value, (void **)buffer, buflen, next);
448470
}
449471
CBOR_INLINE_API CborError cbor_value_dup_byte_string(const CborValue *value, uint8_t **buffer,
450472
size_t *buflen, CborValue *next)
451473
{
474+
#ifdef HOST_BUILD
452475
assert(cbor_value_is_byte_string(value));
476+
#endif
453477
return _cbor_value_dup_string(value, (void **)buffer, buflen, next);
454478
}
455479

@@ -464,7 +488,9 @@ CBOR_INLINE_API bool cbor_value_is_map(const CborValue *value)
464488
CBOR_INLINE_API CborError cbor_value_get_array_length(const CborValue *value, size_t *length)
465489
{
466490
uint64_t v;
491+
#ifdef HOST_BUILD
467492
assert(cbor_value_is_array(value));
493+
#endif
468494
if (!cbor_value_is_length_known(value))
469495
return CborErrorUnknownLength;
470496
v = _cbor_value_extract_int64_helper(value);
@@ -477,7 +503,9 @@ CBOR_INLINE_API CborError cbor_value_get_array_length(const CborValue *value, si
477503
CBOR_INLINE_API CborError cbor_value_get_map_length(const CborValue *value, size_t *length)
478504
{
479505
uint64_t v;
506+
#ifdef HOST_BUILD
480507
assert(cbor_value_is_map(value));
508+
#endif
481509
if (!cbor_value_is_length_known(value))
482510
return CborErrorUnknownLength;
483511
v = _cbor_value_extract_int64_helper(value);
@@ -499,8 +527,10 @@ CBOR_INLINE_API bool cbor_value_is_float(const CborValue *value)
499527
CBOR_INLINE_API CborError cbor_value_get_float(const CborValue *value, float *result)
500528
{
501529
uint32_t data;
530+
#ifdef HOST_BUILD
502531
assert(cbor_value_is_float(value));
503532
assert(value->flags & CborIteratorFlag_IntegerValueTooLarge);
533+
#endif
504534
data = (uint32_t)_cbor_value_decode_int64_internal(value);
505535
memcpy(result, &data, sizeof(*result));
506536
return CborNoError;
@@ -511,8 +541,10 @@ CBOR_INLINE_API bool cbor_value_is_double(const CborValue *value)
511541
CBOR_INLINE_API CborError cbor_value_get_double(const CborValue *value, double *result)
512542
{
513543
uint64_t data;
544+
#ifdef HOST_BUILD
514545
assert(cbor_value_is_double(value));
515546
assert(value->flags & CborIteratorFlag_IntegerValueTooLarge);
547+
#endif
516548
data = _cbor_value_decode_int64_internal(value);
517549
memcpy(result, &data, sizeof(*result));
518550
return CborNoError;

0 commit comments

Comments
 (0)