File tree Expand file tree Collapse file tree 8 files changed +88
-56
lines changed 
tests/ClangSharp.PInvokeGenerator.UnitTests Expand file tree Collapse file tree 8 files changed +88
-56
lines changed Original file line number Diff line number Diff line change @@ -1323,36 +1323,42 @@ struct MyStruct2 {
13231323}; 
13241324" ; 
13251325
1326-             const  string  ExpectedOutputContents  =  @"using System.Runtime.InteropServices; 
1326+             var  usingStatement  =  "using System.Runtime.InteropServices;\n \n " ; 
1327+             var  packing  =  "    [StructLayout(LayoutKind.Sequential, Pack = 4)]\n " ; 
13271328
1328- namespace ClangSharp.Test 
1329- { 
1329+             if  ( ! Environment . Is64BitProcess ) 
1330+             { 
1331+                 usingStatement  =  string . Empty ; 
1332+                 packing  =  string . Empty ; 
1333+             } 
1334+ 
1335+             var  expectedOutputContents  =  $@ "{ usingStatement } namespace ClangSharp.Test
1336+ {{ 
13301337    public unsafe partial struct MyStruct1 
1331-     { 
1338+     {{  
13321339        [NativeTypeName(""unsigned int"")] 
13331340        public uint Field1; 
13341341
13351342        public void* Field2; 
13361343
13371344        [NativeTypeName(""unsigned int"")] 
13381345        public uint Field3; 
1339-     } 
1346+     }}  
13401347
1341-     [StructLayout(LayoutKind.Sequential, Pack = 4)] 
1342-     public unsafe partial struct MyStruct2 
1343-     { 
1348+ { packing }     public unsafe partial struct MyStruct2
1349+     {{ 
13441350        [NativeTypeName(""unsigned int"")] 
13451351        public uint Field1; 
13461352
13471353        public void* Field2; 
13481354
13491355        [NativeTypeName(""unsigned int"")] 
13501356        public uint Field3; 
1351-     } 
1352- } 
1357+     }}  
1358+ }}  
13531359" ; 
13541360
1355-             return  ValidateGeneratedCSharpCompatibleUnixBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1361+             return  ValidateGeneratedCSharpCompatibleUnixBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13561362        } 
13571363
13581364        public  override  Task  PointerToSelfTest ( ) 
Original file line number Diff line number Diff line change @@ -1327,36 +1327,42 @@ struct MyStruct2 {
13271327}; 
13281328" ; 
13291329
1330-             const  string  ExpectedOutputContents  =  @"using System.Runtime.InteropServices; 
1330+             var  usingStatement  =  "using System.Runtime.InteropServices;\n \n " ; 
1331+             var  packing  =  "    [StructLayout(LayoutKind.Sequential, Pack = 4)]\n " ; 
13311332
1332- namespace ClangSharp.Test 
1333- { 
1333+             if  ( ! Environment . Is64BitProcess ) 
1334+             { 
1335+                 usingStatement  =  string . Empty ; 
1336+                 packing  =  string . Empty ; 
1337+             } 
1338+ 
1339+             var  expectedOutputContents  =  $@ "{ usingStatement } namespace ClangSharp.Test
1340+ {{ 
13341341    public unsafe partial struct MyStruct1 
1335-     { 
1342+     {{  
13361343        [NativeTypeName(""unsigned int"")] 
13371344        public uint Field1; 
13381345
13391346        public void* Field2; 
13401347
13411348        [NativeTypeName(""unsigned int"")] 
13421349        public uint Field3; 
1343-     } 
1350+     }}  
13441351
1345-     [StructLayout(LayoutKind.Sequential, Pack = 4)] 
1346-     public unsafe partial struct MyStruct2 
1347-     { 
1352+ { packing }     public unsafe partial struct MyStruct2
1353+     {{ 
13481354        [NativeTypeName(""unsigned int"")] 
13491355        public uint Field1; 
13501356
13511357        public void* Field2; 
13521358
13531359        [NativeTypeName(""unsigned int"")] 
13541360        public uint Field3; 
1355-     } 
1356- } 
1361+     }}  
1362+ }}  
13571363" ; 
13581364
1359-             return  ValidateGeneratedCSharpCompatibleWindowsBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1365+             return  ValidateGeneratedCSharpCompatibleWindowsBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13601366        } 
13611367
13621368        public  override  Task  PointerToSelfTest ( ) 
Original file line number Diff line number Diff line change @@ -1302,36 +1302,42 @@ struct MyStruct2 {
13021302}; 
13031303" ; 
13041304
1305-             const  string  ExpectedOutputContents  =  @"using System.Runtime.InteropServices; 
1305+             var  usingStatement  =  "using System.Runtime.InteropServices;\n \n " ; 
1306+             var  packing  =  "    [StructLayout(LayoutKind.Sequential, Pack = 4)]\n " ; 
13061307
1307- namespace ClangSharp.Test 
1308- { 
1308+             if  ( ! Environment . Is64BitProcess ) 
1309+             { 
1310+                 usingStatement  =  string . Empty ; 
1311+                 packing  =  string . Empty ; 
1312+             } 
1313+ 
1314+             var  expectedOutputContents  =  $@ "{ usingStatement } namespace ClangSharp.Test
1315+ {{ 
13091316    public unsafe partial struct MyStruct1 
1310-     { 
1317+     {{  
13111318        [NativeTypeName(""unsigned int"")] 
13121319        public uint Field1; 
13131320
13141321        public void* Field2; 
13151322
13161323        [NativeTypeName(""unsigned int"")] 
13171324        public uint Field3; 
1318-     } 
1325+     }}  
13191326
1320-     [StructLayout(LayoutKind.Sequential, Pack = 4)] 
1321-     public unsafe partial struct MyStruct2 
1322-     { 
1327+ { packing }     public unsafe partial struct MyStruct2
1328+     {{ 
13231329        [NativeTypeName(""unsigned int"")] 
13241330        public uint Field1; 
13251331
13261332        public void* Field2; 
13271333
13281334        [NativeTypeName(""unsigned int"")] 
13291335        public uint Field3; 
1330-     } 
1331- } 
1336+     }}  
1337+ }}  
13321338" ; 
13331339
1334-             return  ValidateGeneratedCSharpLatestUnixBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1340+             return  ValidateGeneratedCSharpLatestUnixBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13351341        } 
13361342
13371343        public  override  Task  PointerToSelfTest ( ) 
Original file line number Diff line number Diff line change @@ -1306,36 +1306,42 @@ struct MyStruct2 {
13061306}; 
13071307" ; 
13081308
1309-             const  string  ExpectedOutputContents  =  @"using System.Runtime.InteropServices; 
1309+             var  usingStatement  =  "using System.Runtime.InteropServices;\n \n " ; 
1310+             var  packing  =  "    [StructLayout(LayoutKind.Sequential, Pack = 4)]\n " ; 
13101311
1311- namespace ClangSharp.Test 
1312- { 
1312+             if  ( ! Environment . Is64BitProcess ) 
1313+             { 
1314+                 usingStatement  =  string . Empty ; 
1315+                 packing  =  string . Empty ; 
1316+             } 
1317+ 
1318+             var  expectedOutputContents  =  $@ "{ usingStatement } namespace ClangSharp.Test
1319+ {{ 
13131320    public unsafe partial struct MyStruct1 
1314-     { 
1321+     {{  
13151322        [NativeTypeName(""unsigned int"")] 
13161323        public uint Field1; 
13171324
13181325        public void* Field2; 
13191326
13201327        [NativeTypeName(""unsigned int"")] 
13211328        public uint Field3; 
1322-     } 
1329+     }}  
13231330
1324-     [StructLayout(LayoutKind.Sequential, Pack = 4)] 
1325-     public unsafe partial struct MyStruct2 
1326-     { 
1331+ { packing }     public unsafe partial struct MyStruct2
1332+     {{ 
13271333        [NativeTypeName(""unsigned int"")] 
13281334        public uint Field1; 
13291335
13301336        public void* Field2; 
13311337
13321338        [NativeTypeName(""unsigned int"")] 
13331339        public uint Field3; 
1334-     } 
1335- } 
1340+     }}  
1341+ }}  
13361342" ; 
13371343
1338-             return  ValidateGeneratedCSharpLatestWindowsBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1344+             return  ValidateGeneratedCSharpLatestWindowsBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13391345        } 
13401346
13411347        public  override  Task  PointerToSelfTest ( ) 
Original file line number Diff line number Diff line change @@ -1302,7 +1302,9 @@ struct MyStruct2 {
13021302}; 
13031303" ; 
13041304
1305-             const  string  ExpectedOutputContents  =  @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?> 
1305+             var  packing  =  Environment . Is64BitProcess  ?  " layout=\" Sequential\"  pack=\" 4\" "  :  string . Empty ; 
1306+ 
1307+             var  expectedOutputContents  =  $@ "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?>
13061308<bindings> 
13071309  <namespace name=""ClangSharp.Test""> 
13081310    <struct name=""MyStruct1"" access=""public"" unsafe=""true""> 
@@ -1316,7 +1318,7 @@ struct MyStruct2 {
13161318        <type native=""unsigned int"">uint</type> 
13171319      </field> 
13181320    </struct> 
1319-     <struct name=""MyStruct2"" access=""public"" unsafe=""true"" layout=""Sequential"" pack=""4"" > 
1321+     <struct name=""MyStruct2"" access=""public"" unsafe=""true""{ packing } > 
13201322      <field name=""Field1"" access=""public""> 
13211323        <type native=""unsigned int"">uint</type> 
13221324      </field> 
@@ -1331,7 +1333,7 @@ struct MyStruct2 {
13311333</bindings> 
13321334" ; 
13331335
1334-             return  ValidateGeneratedXmlCompatibleUnixBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1336+             return  ValidateGeneratedXmlCompatibleUnixBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13351337        } 
13361338
13371339        public  override  Task  PointerToSelfTest ( ) 
Original file line number Diff line number Diff line change @@ -1307,7 +1307,9 @@ struct MyStruct2 {
13071307}; 
13081308" ; 
13091309
1310-             const  string  ExpectedOutputContents  =  @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?> 
1310+             var  packing  =  Environment . Is64BitProcess  ?  " layout=\" Sequential\"  pack=\" 4\" "  :  string . Empty ; 
1311+ 
1312+             var  expectedOutputContents  =  $@ "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?>
13111313<bindings> 
13121314  <namespace name=""ClangSharp.Test""> 
13131315    <struct name=""MyStruct1"" access=""public"" unsafe=""true""> 
@@ -1321,7 +1323,7 @@ struct MyStruct2 {
13211323        <type native=""unsigned int"">uint</type> 
13221324      </field> 
13231325    </struct> 
1324-     <struct name=""MyStruct2"" access=""public"" unsafe=""true"" layout=""Sequential"" pack=""4"" > 
1326+     <struct name=""MyStruct2"" access=""public"" unsafe=""true""{ packing } > 
13251327      <field name=""Field1"" access=""public""> 
13261328        <type native=""unsigned int"">uint</type> 
13271329      </field> 
@@ -1336,7 +1338,7 @@ struct MyStruct2 {
13361338</bindings> 
13371339" ; 
13381340
1339-             return  ValidateGeneratedXmlCompatibleWindowsBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1341+             return  ValidateGeneratedXmlCompatibleWindowsBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13401342        } 
13411343
13421344        public  override  Task  PointerToSelfTest ( ) 
Original file line number Diff line number Diff line change @@ -1285,7 +1285,9 @@ struct MyStruct2 {
12851285}; 
12861286" ; 
12871287
1288-             const  string  ExpectedOutputContents  =  @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?> 
1288+             var  packing  =  Environment . Is64BitProcess  ?  " layout=\" Sequential\"  pack=\" 4\" "  :  string . Empty ; 
1289+ 
1290+             var  expectedOutputContents  =  $@ "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?>
12891291<bindings> 
12901292  <namespace name=""ClangSharp.Test""> 
12911293    <struct name=""MyStruct1"" access=""public"" unsafe=""true""> 
@@ -1299,7 +1301,7 @@ struct MyStruct2 {
12991301        <type native=""unsigned int"">uint</type> 
13001302      </field> 
13011303    </struct> 
1302-     <struct name=""MyStruct2"" access=""public"" unsafe=""true"" layout=""Sequential"" pack=""4"" > 
1304+     <struct name=""MyStruct2"" access=""public"" unsafe=""true""{ packing } > 
13031305      <field name=""Field1"" access=""public""> 
13041306        <type native=""unsigned int"">uint</type> 
13051307      </field> 
@@ -1314,7 +1316,7 @@ struct MyStruct2 {
13141316</bindings> 
13151317" ; 
13161318
1317-             return  ValidateGeneratedXmlLatestUnixBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1319+             return  ValidateGeneratedXmlLatestUnixBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13181320        } 
13191321
13201322        public  override  Task  PointerToSelfTest ( ) 
Original file line number Diff line number Diff line change @@ -1291,7 +1291,9 @@ struct MyStruct2 {
12911291}; 
12921292" ; 
12931293
1294-             const  string  ExpectedOutputContents  =  @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?> 
1294+             var  packing  =  Environment . Is64BitProcess  ?  " layout=\" Sequential\"  pack=\" 4\" "  :  string . Empty ; 
1295+ 
1296+             var  expectedOutputContents  =  $@ "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?>
12951297<bindings> 
12961298  <namespace name=""ClangSharp.Test""> 
12971299    <struct name=""MyStruct1"" access=""public"" unsafe=""true""> 
@@ -1305,7 +1307,7 @@ struct MyStruct2 {
13051307        <type native=""unsigned int"">uint</type> 
13061308      </field> 
13071309    </struct> 
1308-     <struct name=""MyStruct2"" access=""public"" unsafe=""true"" layout=""Sequential"" pack=""4"" > 
1310+     <struct name=""MyStruct2"" access=""public"" unsafe=""true""{ packing } > 
13091311      <field name=""Field1"" access=""public""> 
13101312        <type native=""unsigned int"">uint</type> 
13111313      </field> 
@@ -1320,7 +1322,7 @@ struct MyStruct2 {
13201322</bindings> 
13211323" ; 
13221324
1323-             return  ValidateGeneratedXmlLatestWindowsBindingsAsync ( InputContents ,  ExpectedOutputContents ) ; 
1325+             return  ValidateGeneratedXmlLatestWindowsBindingsAsync ( InputContents ,  expectedOutputContents ) ; 
13241326        } 
13251327
13261328        public  override  Task  PointerToSelfTest ( ) 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments