@@ -66,6 +66,79 @@ public partial struct MyStruct
66
66
return ValidateGeneratedCSharpLatestWindowsBindingsAsync ( inputContents , expectedOutputContents , commandLineArgs : DefaultCClangCommandLineArgs , language : "c" , languageStandard : DefaultCStandard ) ;
67
67
}
68
68
69
+ [ Test ]
70
+ public Task EnumTest ( )
71
+ {
72
+ var inputContents = @"enum {
73
+ VALUE1 = 0,
74
+ VALUE2,
75
+ VALUE3
76
+ };
77
+
78
+ struct MyStruct {
79
+ enum {
80
+ VALUEA = 0,
81
+ VALUEB,
82
+ VALUEC
83
+ } field;
84
+ };
85
+ " ;
86
+ string expectedOutputContents ;
87
+
88
+ if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) )
89
+ {
90
+ expectedOutputContents = @"namespace ClangSharp.Test
91
+ {
92
+ public partial struct MyStruct
93
+ {
94
+ [NativeTypeName(""__AnonymousEnum_ClangUnsavedFile_L8_C5"")]
95
+ public int field;
96
+
97
+ public const int VALUEA = 0;
98
+ public const int VALUEB = 1;
99
+ public const int VALUEC = 2;
100
+ }
101
+
102
+ public static partial class Methods
103
+ {
104
+ public const int VALUE1 = 0;
105
+ public const int VALUE2 = 1;
106
+ public const int VALUE3 = 2;
107
+ }
108
+ }
109
+ " ;
110
+ }
111
+ else
112
+ {
113
+ expectedOutputContents = @"namespace ClangSharp.Test
114
+ {
115
+ public partial struct MyStruct
116
+ {
117
+ [NativeTypeName(""__AnonymousEnum_ClangUnsavedFile_L8_C5"")]
118
+ public uint field;
119
+
120
+ public const uint VALUEA = 0;
121
+ public const uint VALUEB = 1;
122
+ public const uint VALUEC = 2;
123
+ }
124
+
125
+ public static partial class Methods
126
+ {
127
+ public const uint VALUE1 = 0;
128
+ public const uint VALUE2 = 1;
129
+ public const uint VALUE3 = 2;
130
+ }
131
+ }
132
+ " ;
133
+ }
134
+
135
+ var diagnostics = new [ ] {
136
+ new Diagnostic ( DiagnosticLevel . Info , "Found anonymous enum: __AnonymousEnum_ClangUnsavedFile_L1_C1. Mapping values as constants in: Methods" , "Line 1, Column 1 in ClangUnsavedFile.h" ) ,
137
+ new Diagnostic ( DiagnosticLevel . Info , "Found anonymous enum: __AnonymousEnum_ClangUnsavedFile_L8_C5. Mapping values as constants in: Methods" , "Line 8, Column 5 in ClangUnsavedFile.h" )
138
+ } ;
139
+ return ValidateGeneratedCSharpLatestWindowsBindingsAsync ( inputContents , expectedOutputContents , commandLineArgs : DefaultCClangCommandLineArgs , expectedDiagnostics : diagnostics , language : "c" , languageStandard : DefaultCStandard ) ;
140
+ }
141
+
69
142
[ Test ]
70
143
public Task StructTest ( )
71
144
{
0 commit comments