diff --git a/sml/src/sml_boolean.c b/sml/src/sml_boolean.c index 1b2b988..50edd3d 100644 --- a/sml/src/sml_boolean.c +++ b/sml/src/sml_boolean.c @@ -55,7 +55,7 @@ void sml_boolean_write(sml_boolean *boolean, sml_buffer *buf) { } sml_buf_set_type_and_length(buf, SML_TYPE_BOOLEAN, 1); - if (boolean == SML_BOOLEAN_FALSE) { + if (*boolean == SML_BOOLEAN_FALSE) { buf->buffer[buf->cursor] = SML_BOOLEAN_FALSE; } else { diff --git a/test/src/sml_boolean_test.c b/test/src/sml_boolean_test.c index b2f016e..60960c6 100644 --- a/test/src/sml_boolean_test.c +++ b/test/src/sml_boolean_test.c @@ -58,12 +58,18 @@ TEST(sml_boolean, parse_optional) { TEST_ASSERT_NULL(b); } -TEST(sml_boolean, write) { +TEST(sml_boolean, write_true) { sml_boolean *b = sml_boolean_init(SML_BOOLEAN_TRUE); sml_boolean_write(b, buf); expected_buf(buf, "42FF", 2); } +TEST(sml_boolean, write_false) { + sml_boolean *b = sml_boolean_init(SML_BOOLEAN_FALSE); + sml_boolean_write(b, buf); + expected_buf(buf, "4200", 2); +} + TEST(sml_boolean, write_optional) { sml_boolean_write(0, buf); expected_buf(buf, "01", 1); @@ -75,6 +81,7 @@ TEST_GROUP_RUNNER(sml_boolean) { RUN_TEST_CASE(sml_boolean, parse_true); RUN_TEST_CASE(sml_boolean, parse_false); RUN_TEST_CASE(sml_boolean, parse_optional); - RUN_TEST_CASE(sml_boolean, write); + RUN_TEST_CASE(sml_boolean, write_true); + RUN_TEST_CASE(sml_boolean, write_false); RUN_TEST_CASE(sml_boolean, write_optional); }