Skip to content

Commit 40e5053

Browse files
Updating the tests coverage (#211)
* Ensure tests run for Latest vs Compat and Unix vs Window modes * Ensure \n is used in the xml generator * Fixing up some running on unix vs windows test differences
1 parent 9e21dc1 commit 40e5053

File tree

50 files changed

+22946
-2112
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+22946
-2112
lines changed

sources/ClangSharp.PInvokeGenerator/Abstractions/IOutputBuilder.VisitDecl.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System;
2-
using System.Collections.Generic;
31
using ClangSharp.CSharp;
42

53
namespace ClangSharp.Abstractions

sources/ClangSharp.PInvokeGenerator/Abstractions/IOutputBuilder.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Collections.Generic;
2-
31
namespace ClangSharp.Abstractions
42
{
53
internal partial interface IOutputBuilder

sources/ClangSharp.PInvokeGenerator/CSharp/CSharpOutputBuilder.VisitDecl.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System;
2-
using System.Collections.Generic;
31
using System.Diagnostics;
42
using System.Globalization;
53
using System.Runtime.InteropServices;

sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System;
44
using System.Collections.Generic;
55
using System.Diagnostics;
6-
using System.Globalization;
76
using System.Linq;
87
using System.Runtime.InteropServices;
98
using System.Text;

sources/ClangSharp.PInvokeGenerator/XML/XmlOutputBuilder.Visit.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace ClangSharp.XML
33
internal partial class XmlOutputBuilder
44
{
55
public void WriteCustomAttribute(string attribute)
6-
=> _sb.AppendLine($"<attribute>{attribute}</attribute>");
6+
=> _sb.Append($"<attribute>{attribute}</attribute>\n");
77
public void WriteIid(string iidName, string iidValue)
88
{
99
_sb.Append("<iid name=\"");

sources/ClangSharp.PInvokeGenerator/XML/XmlOutputBuilder.VisitDecl.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,11 +297,12 @@ public void EndCSharpCode(CSharpOutputBuilder output)
297297
output.WritePendingLine();
298298
foreach (var s in output.Contents)
299299
{
300-
_sb.AppendLine(s.Replace("&", "&amp;")
300+
_sb.Append(s.Replace("&", "&amp;")
301301
.Replace("<", "&lt;")
302302
.Replace(">", "&gt;")
303303
.Replace("/*M*/&lt;", "<")
304304
.Replace("/*M*/&gt;", ">"));
305+
_sb.Append('\n');
305306
}
306307

307308
_sb.Append("</code>");

sources/ClangSharp.PInvokeGenerator/XML/XmlOutputBuilder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System.Collections.Generic;
22
using System.IO;
3-
using System.Linq;
43
using System.Xml;
54
using System.Xml.Linq;
65
using ClangSharp.Abstractions;
@@ -27,7 +26,8 @@ public IEnumerable<string> Contents
2726
{
2827
Indent = true,
2928
IndentChars = " ",
30-
ConformanceLevel = ConformanceLevel.Fragment
29+
ConformanceLevel = ConformanceLevel.Fragment,
30+
NewLineChars = "\n",
3131
});
3232

3333
foreach (var node in XElement.Parse("<tmp>" + _sb + "</tmp>").Nodes())

sources/ClangSharp/TranslationUnit.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,11 @@ private void Dispose(bool isDisposing)
144144
{
145145
Handle.Dispose();
146146
}
147-
_createdTranslationUnits.Remove(Handle);
147+
148+
lock (_createTranslationUnitLock)
149+
{
150+
_createdTranslationUnits.Remove(Handle);
151+
}
148152
}
149153
}
150154
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// Copyright (c) Microsoft and Contributors. All rights reserved. Licensed under the University of Illinois/NCSA Open Source License. See LICENSE.txt in the project root for license information.
2+
3+
using System.Threading.Tasks;
4+
using Xunit;
5+
6+
namespace ClangSharp.UnitTests
7+
{
8+
public abstract class CXXMethodDeclarationTest : PInvokeGeneratorTest
9+
{
10+
[Fact]
11+
public abstract Task ConstructorTest();
12+
13+
[Fact]
14+
public abstract Task ConstructorWithInitializeTest();
15+
16+
[Fact]
17+
public abstract Task ConversionTest();
18+
19+
[Fact]
20+
public abstract Task DestructorTest();
21+
22+
[Fact]
23+
public abstract Task InstanceTest();
24+
25+
[Fact]
26+
public abstract Task MemberCallTest();
27+
28+
[Fact]
29+
public abstract Task MemberTest();
30+
31+
[Fact]
32+
public abstract Task NewKeywordTest();
33+
34+
[Fact]
35+
public abstract Task NewKeywordVirtualTest();
36+
37+
[Fact]
38+
public abstract Task OperatorTest();
39+
40+
[Fact]
41+
public abstract Task OperatorCallTest();
42+
43+
[Fact]
44+
public abstract Task StaticTest();
45+
46+
[Fact]
47+
public abstract Task ThisTest();
48+
49+
[Fact]
50+
public abstract Task UnsafeDoesNotImpactDllImportTest();
51+
52+
[Fact]
53+
public abstract Task VirtualTest();
54+
}
55+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
// Copyright (c) Microsoft and Contributors. All rights reserved. Licensed under the University of Illinois/NCSA Open Source License. See LICENSE.txt in the project root for license information.
2+
3+
using System.Threading.Tasks;
4+
using Xunit;
5+
6+
namespace ClangSharp.UnitTests
7+
{
8+
public abstract class EnumDeclarationTest : PInvokeGeneratorTest
9+
{
10+
[Fact]
11+
public abstract Task BasicTest();
12+
13+
[Fact]
14+
public abstract Task BasicValueTest();
15+
16+
[Fact]
17+
public abstract Task ExcludeTest();
18+
19+
[Theory]
20+
[InlineData("short", "short")]
21+
public abstract Task ExplicitTypedTest(string nativeType, string expectedManagedType);
22+
23+
[Theory]
24+
[InlineData("unsigned char", "byte")]
25+
[InlineData("long long", "long")]
26+
[InlineData("signed char", "sbyte")]
27+
[InlineData("unsigned short", "ushort")]
28+
[InlineData("unsigned int", "uint")]
29+
[InlineData("unsigned long long", "ulong")]
30+
public abstract Task ExplicitTypedWithNativeTypeNameTest(string nativeType, string expectedManagedType);
31+
32+
[Fact]
33+
public abstract Task RemapTest();
34+
35+
[Fact]
36+
public abstract Task WithAttributeTest();
37+
38+
[Fact]
39+
public abstract Task WithAttributeStarTest();
40+
41+
[Fact]
42+
public abstract Task WithAttributeStarPlusTest();
43+
44+
[Fact]
45+
public abstract Task WithNamespaceTest();
46+
47+
[Fact]
48+
public abstract Task WithNamespaceStarTest();
49+
50+
[Fact]
51+
public abstract Task WithNamespaceStarPlusTest();
52+
53+
[Fact]
54+
public abstract Task WithCastToEnumType();
55+
56+
[Fact]
57+
public abstract Task WithMultipleEnumsTest();
58+
59+
[Fact]
60+
public abstract Task WithImplicitConversionTest();
61+
62+
[Fact]
63+
public abstract Task WithTypeTest();
64+
65+
[Fact]
66+
public abstract Task WithTypeAndImplicitConversionTest();
67+
68+
[Fact]
69+
public abstract Task WithTypeStarTest();
70+
71+
[Fact]
72+
public abstract Task WithTypeStarOverrideTest();
73+
}
74+
}

0 commit comments

Comments
 (0)