| #include "../../unity/unity.h" |
| #include <stdlib.h> |
| #include <string.h> |
| #include <stdbool.h> |
| #include <stdio.h> |
|
|
| |
| void setUp(void) { |
| |
| } |
|
|
| void tearDown(void) { |
| |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| void test_parse_symbols_single_swab(void) { |
| int val = parse_symbols("swab", conversions, false, "invalid conversion"); |
| |
| TEST_ASSERT_EQUAL_INT(C_SWAB | C_TWOBUFS, val); |
| } |
|
|
| |
| void test_parse_symbols_multiple_or(void) { |
| int val = parse_symbols("swab,sync", conversions, false, "invalid conversion"); |
| int expected = (C_SWAB | C_TWOBUFS) | C_SYNC; |
| TEST_ASSERT_EQUAL_INT(expected, val); |
| } |
|
|
| |
| void test_parse_symbols_duplicate_tokens(void) { |
| int val = parse_symbols("ucase,ucase", conversions, false, "invalid conversion"); |
| int expected = C_UCASE | C_TWOBUFS; |
| TEST_ASSERT_EQUAL_INT(expected, val); |
| } |
|
|
| |
| void test_parse_symbols_exclusive_last_wins_progress(void) { |
| int val = parse_symbols("none,progress", statuses, true, "invalid status"); |
| TEST_ASSERT_EQUAL_INT(STATUS_PROGRESS, val); |
| } |
|
|
| void test_parse_symbols_exclusive_last_wins_none(void) { |
| int val = parse_symbols("progress,none", statuses, true, "invalid status"); |
| TEST_ASSERT_EQUAL_INT(STATUS_NONE, val); |
| } |
|
|
| |
| |
| void test_parse_symbols_ascii_ucase_sparse(void) { |
| int val = parse_symbols("ascii,ucase,sparse", conversions, false, "invalid conversion"); |
| int expected = 0; |
| expected |= C_ASCII; |
| expected |= C_UNBLOCK; |
| expected |= C_TWOBUFS; |
| expected |= C_UCASE; |
| expected |= C_TWOBUFS; |
| expected |= C_SPARSE; |
| TEST_ASSERT_EQUAL_INT(expected, val); |
| } |
|
|
| |
| void test_parse_symbols_flags_combination(void) { |
| int val = parse_symbols("skip_bytes,seek_bytes", flags, false, "invalid flag"); |
| int expected = O_SKIP_BYTES | O_SEEK_BYTES; |
| TEST_ASSERT_EQUAL_INT(expected, val); |
| } |
|
|
| int main(void) { |
| UNITY_BEGIN(); |
| RUN_TEST(test_parse_symbols_single_swab); |
| RUN_TEST(test_parse_symbols_multiple_or); |
| RUN_TEST(test_parse_symbols_duplicate_tokens); |
| RUN_TEST(test_parse_symbols_exclusive_last_wins_progress); |
| RUN_TEST(test_parse_symbols_exclusive_last_wins_none); |
| RUN_TEST(test_parse_symbols_ascii_ucase_sparse); |
| RUN_TEST(test_parse_symbols_flags_combination); |
| return UNITY_END(); |
| } |