From aab3c3149dbc146a12d4ac0c8ce8eecb58e04fba Mon Sep 17 00:00:00 2001 From: Juri Glass Date: Wed, 13 Jul 2011 17:25:37 +0200 Subject: [PATCH] added sml_octet_string_cmp --- sml/include/sml/sml_octet_string.h | 1 + sml/src/sml_octet_string.c | 8 ++++++++ test/src/sml_octet_string_test.c | 10 ++++++++++ 3 files changed, 19 insertions(+) diff --git a/sml/include/sml/sml_octet_string.h b/sml/include/sml/sml_octet_string.h index 4acd292..e873da6 100644 --- a/sml/include/sml/sml_octet_string.h +++ b/sml/include/sml/sml_octet_string.h @@ -46,6 +46,7 @@ octet_string *sml_octet_string_parse(sml_buffer *buf); void sml_octet_string_write(octet_string *str, sml_buffer *buf); +int sml_octet_string_cmp(octet_string *s1, octet_string *s2); int sml_octet_string_cmp_with_hex(octet_string *str, char *hex); octet_string *sml_octet_string_generate_uuid(); diff --git a/sml/src/sml_octet_string.c b/sml/src/sml_octet_string.c index ffae7ea..2a56a9a 100644 --- a/sml/src/sml_octet_string.c +++ b/sml/src/sml_octet_string.c @@ -105,6 +105,14 @@ octet_string *sml_octet_string_generate_uuid() { #endif } +int sml_octet_string_cmp(octet_string *s1, octet_string *s2) { + if (s1->len != s2->len) { + return -1; + } + return memcmp(s1->str, s2->str, s1->len); +} + + int sml_octet_string_cmp_with_hex(octet_string *str, char *hex) { octet_string *hstr = sml_octet_string_init_from_hex(hex); if (str->len != hstr->len) { diff --git a/test/src/sml_octet_string_test.c b/test/src/sml_octet_string_test.c index 5aefe42..db85441 100644 --- a/test/src/sml_octet_string_test.c +++ b/test/src/sml_octet_string_test.c @@ -83,6 +83,15 @@ TEST(sml_octet_string, write_optional) { sml_octet_string_expected_buf("01", 1); } +TEST(sml_octet_string, cmp) { + octet_string *s1 = sml_octet_string_init((unsigned char *)"Hallo", 5); + octet_string *s2 = sml_octet_string_init((unsigned char *)"Hi", 2); + 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_GROUP_RUNNER(sml_octet_string) { RUN_TEST_CASE(sml_octet_string, init); RUN_TEST_CASE(sml_octet_string, parse); @@ -90,6 +99,7 @@ TEST_GROUP_RUNNER(sml_octet_string) { RUN_TEST_CASE(sml_octet_string, parse_optional); RUN_TEST_CASE(sml_octet_string, write); RUN_TEST_CASE(sml_octet_string, write_optional); + RUN_TEST_CASE(sml_octet_string, cmp); }