finish up testing and most work on integer conversion
diff --git a/test/qcbor_decode_tests.c b/test/qcbor_decode_tests.c
index 19d8a78..a965606 100644
--- a/test/qcbor_decode_tests.c
+++ b/test/qcbor_decode_tests.c
@@ -5435,6 +5435,52 @@
QCBOR_ERR_HW_FLOAT_DISABLED,
#endif /* QCBOR_DISABLE_FLOAT_HW_USE */
},
+
+ {
+ "big float underflow [9223372036854775806, -9223372036854775806]",
+ {(uint8_t[]){
+ 0xC5, 0x82,
+ 0x3B, 0x7f, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+ 0x1B, 0x7f, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE}, 20},
+#ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
+ 0,
+ QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW,
+ 0,
+ QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW,
+ 0,
+ QCBOR_SUCCESS
+#else /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
+ 0,
+ QCBOR_ERR_UNEXPECTED_TYPE,
+ 0,
+ QCBOR_ERR_UNEXPECTED_TYPE,
+ 0.0,
+ QCBOR_ERR_UNEXPECTED_TYPE
+#endif /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
+ },
+
+ {
+ "bigfloat that evaluates to -INFINITY",
+ {(uint8_t[]){
+ 0xC5, 0x82,
+ 0x1B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0xC3, 0x42, 0x01, 0x01}, 15},
+#ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
+ 0,
+ QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW,
+ 0,
+ QCBOR_ERR_NUMBER_SIGN_CONVERSION,
+ -INFINITY,
+ QCBOR_SUCCESS
+#else /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
+ 0,
+ QCBOR_ERR_UNEXPECTED_TYPE,
+ 0,
+ QCBOR_ERR_UNEXPECTED_TYPE,
+ 0.0,
+ QCBOR_ERR_UNEXPECTED_TYPE
+#endif /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA*/
+ },
};