From: Christopher Peplin <chris.peplin@rhubarbtech.com>
Date: Sat, 4 Jan 2014 16:51:14 +0000 (-0500)
Subject: Fix parse_bool tests.
X-Git-Tag: 3.99.1~105^2~7
X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=f0d31caa3955365f6a393d788831f4b53fade000;p=apps%2Flow-level-can-service.git

Fix parse_bool tests.
---

diff --git a/src/bitfield/bitfield.c b/src/bitfield/bitfield.c
index dddb0ee..e40ab1a 100644
--- a/src/bitfield/bitfield.c
+++ b/src/bitfield/bitfield.c
@@ -38,6 +38,7 @@ uint64_t get_bitfield(const uint8_t source[], const uint8_t source_length,
         uint64_t whole;
         uint8_t bytes[sizeof(uint64_t)];
     } combined;
+    memset(combined.bytes, 0, sizeof(combined.bytes));
     copy_bits_right_aligned(source, source_length, offset, bit_count,
             combined.bytes, sizeof(combined.bytes));
     if(BYTE_ORDER == LITTLE_ENDIAN) {
diff --git a/src/canutil/read.c b/src/canutil/read.c
index 3931721..b662e9b 100644
--- a/src/canutil/read.c
+++ b/src/canutil/read.c
@@ -23,7 +23,7 @@ float bitfield_parse_float(const uint8_t source[], const uint16_t source_length,
     return raw * factor + offset;
 }
 
-float bitfield_parse_bool(const uint8_t source[], const uint16_t source_length,
+bool bitfield_parse_bool(const uint8_t source[], const uint16_t source_length,
         const uint8_t bit_offset, const uint8_t bit_size, const float factor,
         const float offset) {
     float value = bitfield_parse_float(source, source_length, bit_offset,
diff --git a/src/canutil/read.h b/src/canutil/read.h
index 733e350..86fea78 100644
--- a/src/canutil/read.h
+++ b/src/canutil/read.h
@@ -70,7 +70,7 @@ bool eightbyte_parse_bool(uint64_t source, uint8_t bit_offset, uint8_t bit_size,
  *
  * Returns false if the value was 0, otherwise true.
  */
-float bitfield_parse_float(const uint8_t source[], const uint16_t source_size,
+bool bitfield_parse_bool(const uint8_t source[], const uint16_t source_size,
         const uint8_t bit_offset, const uint8_t bit_size, const float factor,
         const float offset);
 
diff --git a/tests/read_tests.c b/tests/read_tests.c
index 512d87e..5008cc5 100644
--- a/tests/read_tests.c
+++ b/tests/read_tests.c
@@ -36,11 +36,8 @@ END_TEST
 
 START_TEST (test_bitfield_parse_bool)
 {
-    bool result = bitfield_parse_bool(ARRAY_TEST_DATA, sizeof(ARRAY_TEST_DATA),
-            0, 1, 1.0, 0);
-    bool correctResult = true;
-    fail_unless(result == correctResult,
-            "parse is incorrect: %d but should be %d", result, correctResult);
+    fail_unless(bitfield_parse_bool(ARRAY_TEST_DATA, sizeof(ARRAY_TEST_DATA),
+            0, 1, 1.0, 0));
 }
 END_TEST