diff --git a/sml/src/sml_boolean.c b/sml/src/sml_boolean.c index 2894e10..499f283 100644 --- a/sml/src/sml_boolean.c +++ b/sml/src/sml_boolean.c @@ -27,6 +27,9 @@ sml_boolean *sml_boolean_init(u8 b) { } sml_boolean *sml_boolean_parse(sml_buffer *buf) { + if (sml_buf_optional_is_skipped(buf)) { + return 0; + } int l; if (sml_buf_get_next_type(buf) != SML_TYPE_BOOLEAN) { diff --git a/test/src/sml_boolean_test.c b/test/src/sml_boolean_test.c index 20ff5dc..474f363 100644 --- a/test/src/sml_boolean_test.c +++ b/test/src/sml_boolean_test.c @@ -57,6 +57,7 @@ TEST(sml_boolean, parse_optional) { hex2binary("01", sml_buf_get_current_buf(buf)); sml_boolean *b = sml_boolean_parse(buf); TEST_ASSERT_NULL(b); + TEST_ASSERT_FALSE(sml_buf_has_errors(buf)); } TEST(sml_boolean, write_true) { diff --git a/test/src/sml_octet_string_test.c b/test/src/sml_octet_string_test.c index 8d1f659..8ee72ab 100644 --- a/test/src/sml_octet_string_test.c +++ b/test/src/sml_octet_string_test.c @@ -78,7 +78,12 @@ TEST(sml_octet_string, cmp) { octet_string *s3 = sml_octet_string_init((unsigned char *)"Hallo", 5); TEST_ASSERT_TRUE(sml_octet_string_cmp(s1, s2) != 0); - TEST_ASSERT_TRUE(sml_octet_string_cmp(s1, s3) == 0); + TEST_ASSERT_EQUAL(0, sml_octet_string_cmp(s1, s3)); +} + +TEST(sml_octet_string, cmp_with_hex) { + octet_string *s = sml_octet_string_init((unsigned char *)"Hallo", 5); + TEST_ASSERT_EQUAL(0, sml_octet_string_cmp_with_hex(s, "48616C6C6F")); } TEST_GROUP_RUNNER(sml_octet_string) { @@ -89,6 +94,7 @@ TEST_GROUP_RUNNER(sml_octet_string) { RUN_TEST_CASE(sml_octet_string, write); RUN_TEST_CASE(sml_octet_string, write_optional); RUN_TEST_CASE(sml_octet_string, cmp); + RUN_TEST_CASE(sml_octet_string, cmp_with_hex); }