aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGanesh Viswanathan <dev@genotrance.com>2020-03-23 14:02:40 -0500
committerGanesh Viswanathan <dev@genotrance.com>2020-03-23 14:02:40 -0500
commitcadf16293d40bcd265d1bf8f366d351ba354a6f9 (patch)
tree750ef0a722a2c08d2af14c4802af69a2999f724f /tests
parent6d1c428b6ebea47c7956c8580c26a810a9250db6 (diff)
downloadnimterop-cadf16293d40bcd265d1bf8f366d351ba354a6f9.tar.gz
nimterop-cadf16293d40bcd265d1bf8f366d351ba354a6f9.zip
ast2 enum support
Diffstat (limited to 'tests')
-rw-r--r--tests/include/tast2.h96
-rw-r--r--tests/tast2.nim21
2 files changed, 115 insertions, 2 deletions
diff --git a/tests/include/tast2.h b/tests/include/tast2.h
index e9339ae..b867020 100644
--- a/tests/include/tast2.h
+++ b/tests/include/tast2.h
@@ -43,6 +43,54 @@ typedef struct A22 { int **f1; int *f2[123+132]; } A22;
union U1 {int f1; float f2; };
typedef union U2 { int **f1; int abc[123+132]; } U2;
+// Enums
+
+// Issue #159
+#define NK_FLAG(x) (1 << (x))
+enum nk_panel_type {
+ NK_PANEL_NONE = 0,
+ NK_PANEL_WINDOW = NK_FLAG(0),
+ NK_PANEL_GROUP = NK_FLAG(1),
+ NK_PANEL_POPUP = NK_FLAG(2),
+ NK_PANEL_CONTEXTUAL = NK_FLAG(4),
+ NK_PANEL_COMBO = NK_FLAG(5),
+ NK_PANEL_MENU = NK_FLAG(6),
+ NK_PANEL_TOOLTIP = NK_FLAG(7)
+};
+enum nk_panel_set {
+ NK_PANEL_SET_NONBLOCK = NK_PANEL_CONTEXTUAL|NK_PANEL_COMBO|NK_PANEL_MENU|NK_PANEL_TOOLTIP,
+ NK_PANEL_SET_POPUP = NK_PANEL_SET_NONBLOCK|NK_PANEL_POPUP,
+ NK_PANEL_SET_SUB = NK_PANEL_SET_POPUP|NK_PANEL_GROUP
+};
+
+// Issue #171
+typedef enum VSColorFamily {
+ /* all planar formats */
+ cmGray = 1000000,
+ cmRGB = 2000000,
+ cmYUV = 3000000,
+ cmYCoCg = 4000000,
+ /* special for compatibility */
+ cmCompat = 9000000
+} VSColorFamily;
+
+typedef enum VSPresetFormat {
+ pfNone = 0,
+
+ pfGray8 = cmGray + 10,
+ pfGray16,
+
+ pfYUV420P8 = cmYUV + 10,
+ pfYUV422P8,
+
+ pfRGB24 = cmRGB + 10,
+ pfRGB27,
+ /* test */
+
+ pfCompatBGR32 = cmCompat + 10,
+ pfCompatYUY2
+} VSPresetFormat;
+
// Anonymous
//typedef struct { char a1; };
@@ -101,6 +149,54 @@ typedef struct A22 { int **f1; int *f2[123+132]; } A22;
union U1 {int f1; float f2; };
typedef union U2 { int **f1; int abc[123+132]; } U2;
+// Enums
+
+// Issue #159
+#define NK_FLAG(x) (1 << (x))
+enum nk_panel_type {
+ NK_PANEL_NONE = 0,
+ NK_PANEL_WINDOW = NK_FLAG(0),
+ NK_PANEL_GROUP = NK_FLAG(1),
+ NK_PANEL_POPUP = NK_FLAG(2),
+ NK_PANEL_CONTEXTUAL = NK_FLAG(4),
+ NK_PANEL_COMBO = NK_FLAG(5),
+ NK_PANEL_MENU = NK_FLAG(6),
+ NK_PANEL_TOOLTIP = NK_FLAG(7)
+};
+enum nk_panel_set {
+ NK_PANEL_SET_NONBLOCK = NK_PANEL_CONTEXTUAL|NK_PANEL_COMBO|NK_PANEL_MENU|NK_PANEL_TOOLTIP,
+ NK_PANEL_SET_POPUP = NK_PANEL_SET_NONBLOCK|NK_PANEL_POPUP,
+ NK_PANEL_SET_SUB = NK_PANEL_SET_POPUP|NK_PANEL_GROUP
+};
+
+// Issue #171
+typedef enum VSColorFamily {
+ /* all planar formats */
+ cmGray = 1000000,
+ cmRGB = 2000000,
+ cmYUV = 3000000,
+ cmYCoCg = 4000000,
+ /* special for compatibility */
+ cmCompat = 9000000
+} VSColorFamily;
+
+typedef enum VSPresetFormat {
+ pfNone = 0,
+
+ pfGray8 = cmGray + 10,
+ pfGray16,
+
+ pfYUV420P8 = cmYUV + 10,
+ pfYUV422P8,
+
+ pfRGB24 = cmRGB + 10,
+ pfRGB27,
+ /* test */
+
+ pfCompatBGR32 = cmCompat + 10,
+ pfCompatYUY2
+} VSPresetFormat;
+
// Anonymous
//typedef struct { char a1; };
diff --git a/tests/tast2.nim b/tests/tast2.nim
index 6465acc..914d40f 100644
--- a/tests/tast2.nim
+++ b/tests/tast2.nim
@@ -12,7 +12,7 @@ cOverride:
type
A1* = A0
-cImport("include/tast2.h", flags="-d -f:ast2")
+cImport("include/tast2.h", flags="-d -f:ast2 -ENK_")
proc testFields(t: typedesc, fields: Table[string, string] = initTable[string, string]()) =
var
@@ -86,4 +86,21 @@ assert U1 is object
assert sizeof(U1) == sizeof(cfloat)
assert U2 is object
-assert sizeof(U2) == 256 * sizeof(cint) \ No newline at end of file
+assert sizeof(U2) == 256 * sizeof(cint)
+
+assert PANEL_WINDOW == 1
+assert PANEL_GROUP == 2
+assert PANEL_POPUP == 4
+assert PANEL_CONTEXTUAL == 16
+assert PANEL_COMBO == 32
+assert PANEL_MENU == 64
+assert PANEL_TOOLTIP == 128
+assert PANEL_SET_NONBLOCK == 240
+assert PANEL_SET_POPUP == 244
+assert PANEL_SET_SUB == 246
+
+assert cmGray == 1000000
+assert pfGray16 == 1000011
+assert pfYUV422P8 == pfYUV420P8 + 1
+assert pfRGB27 == cmRGB.VSPresetFormat + 11
+assert pfCompatYUY2 == pfCompatBGR32 + 1 \ No newline at end of file