Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
<PackageOutputPath>$(BaseArtifactsPath)pkg/$(Configuration)/</PackageOutputPath>
<Product>ClangSharp</Product>
<VersionPrefix>13.0.0</VersionPrefix>
<VersionSuffix Condition="'$(EXCLUDE_SUFFIX_FROM_VERSION)' != 'true'">beta1</VersionSuffix>
<VersionSuffix Condition="'$(EXCLUDE_SUFFIX_FROM_VERSION)' != 'true'">beta2</VersionSuffix>
<VersionSuffix Condition="'$(GITHUB_EVENT_NAME)' == 'pull_request'">pr</VersionSuffix>
</PropertyGroup>

Expand Down
6 changes: 3 additions & 3 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@
<PackageReference Update="libClang" Version="13.0.1" />
<PackageReference Update="libClangSharp" Version="13.0.0-beta1" />
<PackageReference Update="Microsoft.Bcl.HashCode" Version="1.1.1" />
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="16.11.0" />
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="1.1.1" />
<PackageReference Update="NUnit" Version="3.13.2" />
<PackageReference Update="NUnit3TestAdapter" Version="4.0.0" />
<PackageReference Update="System.CommandLine" Version="2.0.0-beta1.21308.1" />
<PackageReference Update="System.Memory" Version="4.5.4" />
<PackageReference Update="xunit" Version="2.4.1" />
<PackageReference Update="xunit.runner.visualstudio" Version="2.4.3" />
</ItemGroup>

</Project>
3 changes: 3 additions & 0 deletions scripts/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ try {
$architecture = "<auto>"
}
}
elseif (($architecture -ne "") -and ($architecture -ne "<auto>")) {
$properties += "/p:PlatformTarget=$architecture"
}

$RepoRoot = Join-Path -Path $PSScriptRoot -ChildPath ".."

Expand Down
Original file line number Diff line number Diff line change
@@ -1,61 +1,95 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.

using System.Threading.Tasks;
using Xunit;
using NUnit.Framework;

namespace ClangSharp.UnitTests
{
public abstract class CXXMethodDeclarationTest : PInvokeGeneratorTest
{
[Fact]
public abstract Task ConstructorTest();
[Test]
public Task ConstructorTest() => ConstructorTestImpl();

[Fact]
public abstract Task ConstructorWithInitializeTest();
[Test]
public Task ConstructorWithInitializeTest() => ConstructorWithInitializeTestImpl();

[Fact]
public abstract Task ConversionTest();
[Test]
public Task ConversionTest() => ConversionTestImpl();

[Fact]
public abstract Task DestructorTest();
[Test]
public Task DestructorTest() => DestructorTestImpl();

[Fact]
public abstract Task InstanceTest();
[Test]
public Task InstanceTest() => InstanceTestImpl();

[Fact]
public abstract Task MemberCallTest();
[Test]
public Task MemberCallTest() => MemberCallTestImpl();

[Fact]
public abstract Task MemberTest();
[Test]
public Task MemberTest() => MemberTestImpl();

[Fact]
public abstract Task NewKeywordTest();
[Test]
public Task NewKeywordTest() => NewKeywordTestImpl();

[Fact]
public abstract Task NewKeywordVirtualTest();
[Test]
public Task NewKeywordVirtualTest() => NewKeywordVirtualTestImpl();

[Fact]
public abstract Task NewKeywordVirtualWithExplicitVtblTest();
[Test]
public Task NewKeywordVirtualWithExplicitVtblTest() => NewKeywordVirtualWithExplicitVtblTestImpl();

[Fact]
public abstract Task OperatorTest();
[Test]
public Task OperatorTest() => OperatorTestImpl();

[Fact]
public abstract Task OperatorCallTest();
[Test]
public Task OperatorCallTest() => OperatorCallTestImpl();

[Fact]
public abstract Task StaticTest();
[Test]
public Task StaticTest() => StaticTestImpl();

[Fact]
public abstract Task ThisTest();
[Test]
public Task ThisTest() => ThisTestImpl();

[Fact]
public abstract Task UnsafeDoesNotImpactDllImportTest();
[Test]
public Task UnsafeDoesNotImpactDllImportTest() => UnsafeDoesNotImpactDllImportTestImpl();

[Fact]
public abstract Task VirtualTest();
[Test]
public Task VirtualTest() => VirtualTestImpl();

[Fact]
public abstract Task VirtualWithVtblIndexAttributeTest();
[Test]
public Task VirtualWithVtblIndexAttributeTest() => VirtualWithVtblIndexAttributeTestImpl();

protected abstract Task ConstructorTestImpl();

protected abstract Task ConstructorWithInitializeTestImpl();

protected abstract Task ConversionTestImpl();

protected abstract Task DestructorTestImpl();

protected abstract Task InstanceTestImpl();

protected abstract Task MemberCallTestImpl();

protected abstract Task MemberTestImpl();

protected abstract Task NewKeywordTestImpl();

protected abstract Task NewKeywordVirtualTestImpl();

protected abstract Task NewKeywordVirtualWithExplicitVtblTestImpl();

protected abstract Task OperatorTestImpl();

protected abstract Task OperatorCallTestImpl();

protected abstract Task StaticTestImpl();

protected abstract Task ThisTestImpl();

protected abstract Task UnsafeDoesNotImpactDllImportTestImpl();

protected abstract Task VirtualTestImpl();

protected abstract Task VirtualWithVtblIndexAttributeTestImpl();
}
}
Original file line number Diff line number Diff line change
@@ -1,68 +1,100 @@
// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.

using System.Threading.Tasks;
using Xunit;
using NUnit.Framework;

namespace ClangSharp.UnitTests
{
public abstract class EnumDeclarationTest : PInvokeGeneratorTest
{
[Fact]
public abstract Task BasicTest();
[Test]
public Task BasicTest() => BasicTestImpl();

[Fact]
public abstract Task BasicValueTest();
[Test]
public Task BasicValueTest() => BasicValueTestImpl();

[Fact]
public abstract Task ExcludeTest();
[Test]
public Task ExcludeTest() => ExcludeTestImpl();

[Theory]
[InlineData("short", "short")]
public abstract Task ExplicitTypedTest(string nativeType, string expectedManagedType);
[TestCase("short", "short")]
public Task ExplicitTypedTest(string nativeType, string expectedManagedType) => ExplicitTypedTestImpl(nativeType, expectedManagedType);

[Theory]
[InlineData("unsigned char", "byte")]
[InlineData("long long", "long")]
[InlineData("signed char", "sbyte")]
[InlineData("unsigned short", "ushort")]
[InlineData("unsigned int", "uint")]
[InlineData("unsigned long long", "ulong")]
public abstract Task ExplicitTypedWithNativeTypeNameTest(string nativeType, string expectedManagedType);
[TestCase("unsigned char", "byte")]
[TestCase("long long", "long")]
[TestCase("signed char", "sbyte")]
[TestCase("unsigned short", "ushort")]
[TestCase("unsigned int", "uint")]
[TestCase("unsigned long long", "ulong")]
public Task ExplicitTypedWithNativeTypeNameTest(string nativeType, string expectedManagedType) => ExplicitTypedWithNativeTypeNameTestImpl(nativeType, expectedManagedType);

[Fact]
public abstract Task RemapTest();
[Test]
public Task RemapTest() => RemapTestImpl();

[Fact]
public abstract Task WithAttributeTest();
[Test]
public Task WithAttributeTest() => WithAttributeTestImpl();

[Fact]
public abstract Task WithNamespaceTest();
[Test]
public Task WithNamespaceTest() => WithNamespaceTestImpl();

[Fact]
public abstract Task WithNamespaceStarTest();
[Test]
public Task WithNamespaceStarTest() => WithNamespaceStarTestImpl();

[Fact]
public abstract Task WithNamespaceStarPlusTest();
[Test]
public Task WithNamespaceStarPlusTest() => WithNamespaceStarPlusTestImpl();

[Fact]
public abstract Task WithCastToEnumType();
[Test]
public Task WithCastToEnumType() => WithCastToEnumTypeImpl();

[Fact]
public abstract Task WithMultipleEnumsTest();
[Test]
public Task WithMultipleEnumsTest() => WithMultipleEnumsTestImpl();

[Fact]
public abstract Task WithImplicitConversionTest();
[Test]
public Task WithImplicitConversionTest() => WithImplicitConversionTestImpl();

[Fact]
public abstract Task WithTypeTest();
[Test]
public Task WithTypeTest() => WithTypeTestImpl();

[Fact]
public abstract Task WithTypeAndImplicitConversionTest();
[Test]
public Task WithTypeAndImplicitConversionTest() => WithTypeAndImplicitConversionTestImpl();

[Fact]
public abstract Task WithTypeStarTest();
[Test]
public Task WithTypeStarTest() => WithTypeStarTestImpl();

[Fact]
public abstract Task WithTypeStarOverrideTest();
[Test]
public Task WithTypeStarOverrideTest() => WithTypeStarOverrideTestImpl();

protected abstract Task BasicTestImpl();

protected abstract Task BasicValueTestImpl();

protected abstract Task ExcludeTestImpl();

protected abstract Task ExplicitTypedTestImpl(string nativeType, string expectedManagedType);

protected abstract Task ExplicitTypedWithNativeTypeNameTestImpl(string nativeType, string expectedManagedType);

protected abstract Task RemapTestImpl();

protected abstract Task WithAttributeTestImpl();

protected abstract Task WithNamespaceTestImpl();

protected abstract Task WithNamespaceStarTestImpl();

protected abstract Task WithNamespaceStarPlusTestImpl();

protected abstract Task WithCastToEnumTypeImpl();

protected abstract Task WithMultipleEnumsTestImpl();

protected abstract Task WithImplicitConversionTestImpl();

protected abstract Task WithTypeTestImpl();

protected abstract Task WithTypeAndImplicitConversionTestImpl();

protected abstract Task WithTypeStarTestImpl();

protected abstract Task WithTypeStarOverrideTestImpl();
}
}
Loading