提交 010b55a6 编写于 作者: P Petr Onderka 提交者: Julien Couvreur

Fix tests on cs-CZ culture (#21171)

Merged on behalf of @svick 
Thanks for the contribution!
上级 df8ba1c7
......@@ -133,7 +133,7 @@ public void CheckSum_SHA256()
Assert.Equal("f1945cd6 c19e56b3 c1c78943 ef5ec181 16907a4c a1efc40a 57d48ab1 db7adfc5", StringTextTest.ChecksumToHexQuads(checksum));
}
[ConditionalFact(typeof(IsEnglishLocal))]
[ConditionalFact(typeof(HasEnglishDefaultEncoding))]
[WorkItem(5663, "https://github.com/dotnet/roslyn/issues/5663")]
public void Decode_NonUtf8()
{
......
......@@ -47,6 +47,13 @@ public class HasShiftJisDefaultEncoding : ExecutionCondition
public override string SkipReason => "OS default codepage is not Shift-JIS (932).";
}
public class HasEnglishDefaultEncoding : ExecutionCondition
{
public override bool ShouldSkip => Encoding.GetEncoding(0)?.CodePage != 1252;
public override string SkipReason => "OS default codepage is not Windows-1252.";
}
public class IsEnglishLocal : ExecutionCondition
{
public override bool ShouldSkip =>
......
......@@ -4,6 +4,7 @@
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
......@@ -163,13 +164,28 @@ private void LogConstant(Optional<object> constant, string header = "Constant")
}
}
private void LogConstant(object constant, string header = "Constant")
private static string ConstantToString(object constant, bool quoteString = true)
{
var valueStr = constant != null ? constant.ToString() : "null";
if (constant is string)
switch (constant)
{
valueStr = @"""" + valueStr + @"""";
case null:
return "null";
case string s:
if (quoteString)
{
return @"""" + s + @"""";
}
return s;
case IFormattable formattable:
return formattable.ToString(null, CultureInfo.InvariantCulture);
default:
return constant.ToString();
}
}
private void LogConstant(object constant, string header = "Constant")
{
string valueStr = ConstantToString(constant);
LogString($"{header}: {valueStr}");
}
......@@ -845,8 +861,7 @@ public override void VisitLiteralExpression(ILiteralExpression operation)
{
LogString(nameof(ILiteralExpression));
object value;
if (operation.ConstantValue.HasValue && ((value = operation.ConstantValue.Value) == null ? "null" : value.ToString()) == operation.Text)
if (operation.ConstantValue.HasValue && ConstantToString(operation.ConstantValue.Value, quoteString: false) == operation.Text)
{
LogString($" (Text: {operation.Text})");
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册