diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/regression/tests/enum.c | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'support/regression/tests/enum.c')
| -rw-r--r-- | support/regression/tests/enum.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/support/regression/tests/enum.c b/support/regression/tests/enum.c new file mode 100644 index 0000000..1739274 --- /dev/null +++ b/support/regression/tests/enum.c @@ -0,0 +1,96 @@ +/* Test the types of enum. + */ +#include <testfwk.h> + +enum _SimpleEnum { + SIMPLE_ZERO, + SIMPLE_ONE, + SIMPLE_TWO +}; + +enum _ValuesEnum { + VALUES_ZERO, + VALUES_FIVE = 5, + VALUES_SIX, + VALUES_SEVEN, + VALUES_TWELVE = 12 +}; + +enum _IndexedEnum { + INDEXED_ZERO, + INDEXED_ONE, + INDEXED_ONE_ALIAS = INDEXED_ONE, + INDEXED_TWO, + INDEXED_THREE, + INDEXED_ZERO_ALIAS = INDEXED_ZERO + 0, + INDEXED_ONE_ALIAS2 = INDEXED_ZERO + 1, + INDEXED_TWO_ALIAS = INDEXED_ZERO + 2, + INDEXED_TWO_ALIAS2 = INDEXED_ONE_ALIAS2 + 1, + INDEXED_MATH = INDEXED_ONE_ALIAS + INDEXED_TWO * INDEXED_THREE +}; + +enum _SignedEnum { + SIGNED_POS = 1, + SIGNED_ZERO = 0, + SIGNED_NEG = -1 +} se; + +volatile enum _IntEnum { + INT_256 = 256, + INT_ZERO = 0 +} ie; + +void +testSimpleEnum(void) +{ + ASSERT(SIMPLE_ZERO == 0); + ASSERT(SIMPLE_ONE == 1); + ASSERT(SIMPLE_TWO == 2); +} + +void +testValuesEnum(void) +{ + ASSERT(VALUES_ZERO == 0); + ASSERT(VALUES_FIVE == 5); + ASSERT(VALUES_SIX == 6); + ASSERT(VALUES_SEVEN == 7); + ASSERT(VALUES_TWELVE == 12); +} + +void +testIndexedEnum(void) +{ + ASSERT(INDEXED_ZERO == 0); + ASSERT(INDEXED_ZERO_ALIAS == 0); + ASSERT(INDEXED_ONE == 1); + ASSERT(INDEXED_ONE_ALIAS == 1); + ASSERT(INDEXED_ONE_ALIAS2 == 1); + ASSERT(INDEXED_TWO == 2); + ASSERT(INDEXED_TWO_ALIAS == 2); + ASSERT(INDEXED_TWO_ALIAS2 == 2); + ASSERT(INDEXED_MATH == 7); +} + +void +testSignedEnum(void) +{ + ASSERT(SIGNED_POS == 1); + ASSERT(SIGNED_ZERO == 0); + ASSERT(SIGNED_NEG == -1); + + se = SIGNED_NEG; + ASSERT(se == SIGNED_NEG); +} + +void +testIntEnum(void) +{ + ASSERT(INT_ZERO == 0); + ASSERT(INT_256 == 256); + + ie = INT_ZERO; + ASSERT(ie == INT_ZERO); + ie = INT_256; + ASSERT(ie == INT_256); +} |
