提交 8b1189a8 编写于 作者: T Ty Overby

Some tests only run on english cultures

Adds conditional culture execution condition for tests that depend
on the culture of the machine that they are running on.  Because
we expect this culture to be in english, this patch adds a
conditional fact attribute that only runs a specified test
on a machine with the en-us culture.
上级 53b058f3
......@@ -4129,7 +4129,7 @@ public void BinaryFileErrorTest()
[WorkItem(530221, "DevDiv")]
[ConditionalFact(typeof(WindowsOnly))]
[ConditionalFact(typeof(WindowsOnly), typeof(IsEnglishLocal))]
public void Bug15538()
{
// Several Jenkins VMs are still running with local systems permissions. This suite won't run properly
......
......@@ -316,7 +316,7 @@ public void PubKeyFileBogusOptions()
Assert.True(other.Assembly.Identity.PublicKey.IsEmpty);
}
[Fact]
[ConditionalFact(typeof(IsEnglishLocal))]
public void PubKeyContainerBogusOptions()
{
string s = "public class C {}";
......@@ -909,7 +909,7 @@ public void SignModuleKeyContainerAttr()
ConfirmModuleAttributePresentAndAddingToAssemblyResultsInSignedOutput(outStrm, AttributeDescription.AssemblyKeyNameAttribute);
}
[Fact]
[ConditionalFact(typeof(IsEnglishLocal))]
public void SignModuleKeyContainerBogus()
{
string s = @"[assembly: System.Reflection.AssemblyKeyName(""bogus"")] public class C {}";
......@@ -1739,7 +1739,7 @@ public class C
}
}
[Fact]
[ConditionalFact(typeof(IsEnglishLocal))]
public void AssemblySignatureKeyAttribute_3()
{
var other = CreateCompilation(
......
......@@ -5865,7 +5865,7 @@ .maxstack 2
}
[WorkItem(825, "https://github.com/dotnet/roslyn/issues/825")]
[Fact]
[ConditionalFact(typeof(IsEnglishLocal))]
public void ConditionalBoolExpr01b()
{
var source = @"
......
......@@ -133,7 +133,7 @@ public void CheckSum_SHA256()
Assert.Equal("f1945cd6 c19e56b3 c1c78943 ef5ec181 16907a4c a1efc40a 57d48ab1 db7adfc5", StringTextTest.ChecksumToHexQuads(checksum));
}
[Fact]
[ConditionalFact(typeof(IsEnglishLocal))]
public void Decode_NonUtf8()
{
// Unicode text with extended characters that map to interesting code points in CodePage 1252.
......@@ -322,7 +322,7 @@ public void FileStreamEncodedTextEmpty()
}
}
[Fact, WorkItem(2081, "https://github.com/dotnet/roslyn/issues/2081")]
[ConditionalFact(typeof(IsEnglishLocal)), WorkItem(2081, "https://github.com/dotnet/roslyn/issues/2081")]
public void HorizontalEllipsis()
{
// Character 0x85 in CodePage 1252 is a horizontal ellipsis.
......
......@@ -5298,7 +5298,7 @@ End Module
End Sub
<WorkItem(530221, "DevDiv")>
<Fact()>
<ConditionalFact(GetType(IsEnglishLocal))>
Public Sub Bug15538()
Dim folder = Temp.CreateDirectory()
Dim source As String = folder.CreateFile("src.vb").WriteAllText("").Path
......
......@@ -397,7 +397,7 @@ End Class
Assert.True(other.Assembly.Identity.PublicKey.IsEmpty)
End Sub
<Fact>
<ConditionalFact(GetType(IsEnglishLocal))>
Public Sub PubKeyContainerBogusOptions()
Dim other As VisualBasicCompilation = CreateCompilationWithMscorlib(
<compilation>
......@@ -540,7 +540,7 @@ End Class
c2.VerifyDiagnostics()
End Sub
<Fact>
<ConditionalFact(GetType(IsEnglishLocal))>
Public Sub SignModuleKeyContainerBogus()
Dim c1 As VisualBasicCompilation = CreateCompilationWithMscorlib(
<compilation name="WantsIVTAccess">
......
......@@ -8,6 +8,7 @@
using Microsoft.VisualStudio.Debugger.Evaluation;
using Microsoft.VisualStudio.Debugger.Evaluation.ClrCompilation;
using Xunit;
using Roslyn.Test.Utilities;
namespace Microsoft.CodeAnalysis.CSharp.UnitTests
{
......@@ -119,7 +120,7 @@ public void DynamicTypeMember()
}
}
[Fact]
[ConditionalFact(typeof(IsEnglishLocal))]
public void NoMembers()
{
var expression = "o";
......
......@@ -12,6 +12,7 @@
using Microsoft.VisualStudio.Debugger.Evaluation;
using Microsoft.VisualStudio.Debugger.Evaluation.ClrCompilation;
using Xunit;
using Roslyn.Test.Utilities;
using System.Collections;
namespace Microsoft.CodeAnalysis.ExpressionEvaluator
......
......@@ -22,6 +22,14 @@
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\..\..\Test\Utilities\Desktop\TestUtilities.Desktop.csproj">
<Project>{76c6f005-c89d-4348-bb4a-391898dbeb52}</Project>
<Name>TestUtilities.Desktop</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Test\Utilities\Portable.FX45\TestUtilities.FX45.csproj">
<Project>{f7712928-1175-47b3-8819-ee086753dee2}</Project>
<Name>TestUtilities.FX45</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Core\Source\Concord\Concord.csproj">
<Project>{5002636a-fe8d-40bf-8818-ab513a2194fa}</Project>
<Name>Concord</Name>
......@@ -164,4 +172,4 @@
<Import Project="..\..\..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
</Project>
\ No newline at end of file
......@@ -6,6 +6,7 @@ Imports System.Dynamic
Imports Microsoft.CodeAnalysis.ExpressionEvaluator
Imports Microsoft.VisualStudio.Debugger.Clr
Imports Microsoft.VisualStudio.Debugger.Evaluation
Imports Roslyn.Test.Utilities
Imports Xunit
Namespace Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator
......@@ -113,7 +114,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator
Next
End Sub
<Fact>
<ConditionalFact(GetType(IsEnglishLocal))>
Public Sub NoMembers()
Dim expression = "o"
Dim o As Object = New ExpandoObject()
......
......@@ -8,12 +8,16 @@ namespace Roslyn.Test.Utilities
{
public class ConditionalFactAttribute : FactAttribute
{
public ConditionalFactAttribute(Type skipCondition)
public ConditionalFactAttribute(params Type[] skipConditions)
{
ExecutionCondition condition = (ExecutionCondition)Activator.CreateInstance(skipCondition);
if (condition.ShouldSkip)
foreach (var skipCondition in skipConditions)
{
Skip = condition.SkipReason;
ExecutionCondition condition = (ExecutionCondition)Activator.CreateInstance(skipCondition);
if (condition.ShouldSkip)
{
Skip = condition.SkipReason;
break;
}
}
}
}
......@@ -26,9 +30,9 @@ public abstract class ExecutionCondition
public class x86 : ExecutionCondition
{
public override bool ShouldSkip { get { return IntPtr.Size != 4; } }
public override bool ShouldSkip => IntPtr.Size != 4;
public override string SkipReason { get { return "Target platform is not x86"; } }
public override string SkipReason => "Target platform is not x86";
}
public class HasShiftJisDefaultEncoding : ExecutionCondition
......@@ -37,4 +41,12 @@ public class HasShiftJisDefaultEncoding : ExecutionCondition
public override string SkipReason => "OS default codepage is not Shift-JIS (932).";
}
public class IsEnglishLocal : ExecutionCondition
{
public override bool ShouldSkip =>
System.Globalization.CultureInfo.CurrentCulture != new System.Globalization.CultureInfo("en-US");
public override string SkipReason => "Current culture is not en-US";
}
}
......@@ -2372,7 +2372,7 @@ public void TestProjectReferenceWithNoGuid()
}
}
[Fact, Trait(Traits.Feature, Traits.Features.Workspace)]
[ConditionalFact(typeof(IsEnglishLocal)), Trait(Traits.Feature, Traits.Features.Workspace)]
public void TestOpenProject_MetadataReferenceHasDocComments()
{
CreateFiles(GetSimpleCSharpSolutionFiles());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册