|
|
#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(); |
|
|
} |