Skip to content

Commit 9ecf2e7

Browse files
committed
Adjusting the pack tests to pass on 32-bit machines
1 parent 7d4f662 commit 9ecf2e7

File tree

8 files changed

+88
-56
lines changed

8 files changed

+88
-56
lines changed

tests/ClangSharp.PInvokeGenerator.UnitTests/CSharpCompatibleUnix/StructDeclarationTest.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff 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()

tests/ClangSharp.PInvokeGenerator.UnitTests/CSharpCompatibleWindows/StructDeclarationTest.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff 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()

tests/ClangSharp.PInvokeGenerator.UnitTests/CSharpLatestUnix/StructDeclarationTest.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff 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()

tests/ClangSharp.PInvokeGenerator.UnitTests/CSharpLatestWindows/StructDeclarationTest.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff 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()

tests/ClangSharp.PInvokeGenerator.UnitTests/XmlCompatibleUnix/StructDeclarationTest.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff 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()

tests/ClangSharp.PInvokeGenerator.UnitTests/XmlCompatibleWindows/StructDeclarationTest.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff 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()

tests/ClangSharp.PInvokeGenerator.UnitTests/XmlLatestUnix/StructDeclarationTest.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff 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()

tests/ClangSharp.PInvokeGenerator.UnitTests/XmlLatestWindows/StructDeclarationTest.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff 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()

0 commit comments

Comments
 (0)