From c05eff388c6c6f3a3ebdb6086e3740c27c871548 Mon Sep 17 00:00:00 2001 From: Juri Glass Date: Tue, 19 Jul 2011 19:13:43 +0200 Subject: [PATCH] fixed bug in boolean_parse --- sml/src/sml_boolean.c | 3 +++ test/src/sml_boolean_test.c | 1 + test/src/sml_octet_string_test.c | 2 ++ test/src/sml_status_test.c | 1 + test/src/sml_value_test.c | 1 + 5 files changed, 8 insertions(+) diff --git a/sml/src/sml_boolean.c b/sml/src/sml_boolean.c index 50edd3d..2894e10 100644 --- a/sml/src/sml_boolean.c +++ b/sml/src/sml_boolean.c @@ -41,11 +41,14 @@ sml_boolean *sml_boolean_parse(sml_buffer *buf) { } if (sml_buf_get_current_byte(buf)) { + sml_buf_update_bytes_read(buf, 1); return sml_boolean_init(SML_BOOLEAN_TRUE); } else { + sml_buf_update_bytes_read(buf, 1); return sml_boolean_init(SML_BOOLEAN_FALSE); } + } void sml_boolean_write(sml_boolean *boolean, sml_buffer *buf) { diff --git a/test/src/sml_boolean_test.c b/test/src/sml_boolean_test.c index 60960c6..20ff5dc 100644 --- a/test/src/sml_boolean_test.c +++ b/test/src/sml_boolean_test.c @@ -50,6 +50,7 @@ TEST(sml_boolean, parse_false) { sml_boolean *b = sml_boolean_parse(buf); TEST_ASSERT_NOT_NULL(b); TEST_ASSERT_EQUAL(SML_BOOLEAN_FALSE, *b); + TEST_ASSERT_EQUAL(2, buf->cursor); } TEST(sml_boolean, parse_optional) { diff --git a/test/src/sml_octet_string_test.c b/test/src/sml_octet_string_test.c index 97b68f7..8d1f659 100644 --- a/test/src/sml_octet_string_test.c +++ b/test/src/sml_octet_string_test.c @@ -55,6 +55,8 @@ TEST(sml_octet_string, parse_multiple_tl_fields) { TEST(sml_octet_string, parse_optional) { hex2binary("01", sml_buf_get_current_buf(buf)); octet_string *str = sml_octet_string_parse(buf); + + TEST_ASSERT_FALSE(sml_buf_has_errors(buf)); TEST_ASSERT_NULL(str); TEST_ASSERT_EQUAL(1, buf->cursor); } diff --git a/test/src/sml_status_test.c b/test/src/sml_status_test.c index 805498b..43bfe43 100644 --- a/test/src/sml_status_test.c +++ b/test/src/sml_status_test.c @@ -52,6 +52,7 @@ TEST(sml_status, parse_optional) { TEST_ASSERT_NULL(s); TEST_ASSERT_FALSE(sml_buf_has_errors(buf)); + TEST_ASSERT_EQUAL(1, buf->cursor); } TEST(sml_status, write_status32) { diff --git a/test/src/sml_value_test.c b/test/src/sml_value_test.c index 695ddc5..933c14c 100644 --- a/test/src/sml_value_test.c +++ b/test/src/sml_value_test.c @@ -62,6 +62,7 @@ TEST(sml_value, parse_unsigned32) { TEST_ASSERT_NOT_NULL(v); TEST_ASSERT_EQUAL(1, *(v->data.uint32)); TEST_ASSERT_EQUAL((SML_TYPE_UNSIGNED | SML_TYPE_NUMBER_32), v->type); + TEST_ASSERT_EQUAL(5, buf->cursor); }