--- name: basic enum desc: params: name: - "" - E idl: | enum {name} { A, B, C } test_common.h: # named enums get a typedef - if: name then: - re: ^typedef enum {name} else: - re: ^enum - A = 0 - B = 1 - C = 2 - if: name then: - '} {name}' --- name: enum incr value desc: params: name: - "" - E idl: | enum {name} { A = 10, B, C } test_common.h: # named enums get a typedef - if: name then: - re: ^typedef enum {name} else: - re: ^enum - A = 10 - B = 11 - C = 12 - if: name then: - '} {name}' --- name: enum all values desc: tests enum with all enumerators having a value, both in and out of order params: name: - "" - E c_val: - 10 - 40 idl: | enum {name} { A = 20, B = 30, C = {c_val} } test_common.h: # named enums get a typedef - if: name then: - re: ^typedef enum {name} else: - re: ^enum - A = 20 - B = 30 - C = {c_val} - if: name then: - '} {name}' --- name: single enum desc: params: name: - "" - "E" opt_comma: - "" - "," a_val: - "" - " = 10" idl: | enum {name} { A{a_val}{opt_comma} } test_common.h: # named enums get a typedef - if: name then: - re: ^typedef enum {name} else: - re: ^enum - A{a_val} - if: name then: - '} {name}' --- name: enum with negative value desc: params: name: - "" - E idl: | enum {name} { A = 0, B = -1 } test_common.h: # named enums get a typedef - if: name then: - re: ^typedef enum {name} else: - re: ^enum - A = 0 - B = -1 - if: name then: - '} {name}' --- name: enum values desc: idl: | const uint8 five=5; enum MyEnum { A = 0, B = five, C, D= 1*five, E = 2*five, } test_common.h: # named enums get a typedef - A = 0 - B = 5 - C = 6 - D = 5 - E = 10 --- name: py basic enum desc: params: name: - "" - "E" idl: | enum {name} { A, B, C } lang: py test/common.py: - if: name then: - class E else: - not: class E - A = 0 - B = 1 - C = 2