Add test cases from vi-firmware.
[apps/agl-service-can-low-level.git] / tests / read_tests.c
1 #include <check.h>
2 #include <stdint.h>
3 #include <canutil/read.h>
4
5 const uint64_t BIG_ENDIAN_TEST_DATA = __builtin_bswap64(0xEB00000000000000);
6
7 START_TEST (test_parse_float)
8 {
9     float result = parseFloat(BIG_ENDIAN_TEST_DATA, 2, 4, 1001.0, -30000.0);
10     float correctResult = 0xA * 1001.0 - 30000.0;
11     fail_unless(result == correctResult,
12             "parse is incorrect: %f but should be %f", result, correctResult);
13 }
14 END_TEST
15
16 Suite* canreadSuite(void) {
17     Suite* s = suite_create("read");
18     TCase *tc_core = tcase_create("core");
19     tcase_add_checked_fixture(tc_core, NULL, NULL);
20     tcase_add_test(tc_core, test_parse_float);
21     suite_add_tcase(s, tc_core);
22
23     return s;
24 }
25
26 int main(void) {
27     int numberFailed;
28     Suite* s = canreadSuite();
29     SRunner *sr = srunner_create(s);
30     // Don't fork so we can actually use gdb
31     srunner_set_fork_status(sr, CK_NOFORK);
32     srunner_run_all(sr, CK_NORMAL);
33     numberFailed = srunner_ntests_failed(sr);
34     srunner_free(sr);
35     return (numberFailed == 0) ? 0 : 1;
36 }