Enable full fidelity check for ParseBlock tests as well (dotnet/aspnetcore-tooling#137)
\n\nCommit migrated from 6ca6a37f9b
This commit is contained in:
parent
299db398fe
commit
31e2271134
|
|
@ -172,11 +172,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||||
return Regex.Replace(content, "(?<!\r)\n", "\r\n", RegexOptions.None, TimeSpan.FromSeconds(10));
|
return Regex.Replace(content, "(?<!\r)\n", "\r\n", RegexOptions.None, TimeSpan.FromSeconds(10));
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void BaselineTest(RazorSyntaxTree syntaxTree, bool verifySyntaxTree = true, bool ensureFullFidelity = true)
|
internal virtual void BaselineTest(RazorSyntaxTree syntaxTree, bool verifySyntaxTree = true, bool ensureFullFidelity = true, int? expectedParseLength = null)
|
||||||
{
|
{
|
||||||
if (verifySyntaxTree)
|
if (verifySyntaxTree)
|
||||||
{
|
{
|
||||||
SyntaxTreeVerifier.Verify(syntaxTree, ensureFullFidelity);
|
SyntaxTreeVerifier.Verify(syntaxTree, ensureFullFidelity, expectedParseLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
AssertSyntaxTreeNodeMatchesBaseline(syntaxTree);
|
AssertSyntaxTreeNodeMatchesBaseline(syntaxTree);
|
||||||
|
|
@ -271,41 +271,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||||
return syntaxTree;
|
return syntaxTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void ParseBlockTest(string document)
|
internal virtual void ParseBlockTest(string document, int? expectedParseLength = null)
|
||||||
{
|
{
|
||||||
ParseBlockTest(document, null, false);
|
ParseBlockTest(document, null, false, expectedParseLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void ParseBlockTest(string document, bool designTime)
|
internal virtual void ParseBlockTest(string document, bool designTime, int? expectedParseLength = null)
|
||||||
{
|
{
|
||||||
ParseBlockTest(document, null, designTime);
|
ParseBlockTest(document, null, designTime, expectedParseLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void ParseBlockTest(RazorLanguageVersion version, string document)
|
internal virtual void ParseBlockTest(string document, IEnumerable<DirectiveDescriptor> directives, int? expectedParseLength = null)
|
||||||
{
|
{
|
||||||
ParseBlockTest(version, document, false);
|
ParseBlockTest(document, directives, false, expectedParseLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void ParseBlockTest(string document, IEnumerable<DirectiveDescriptor> directives)
|
internal virtual void ParseBlockTest(string document, IEnumerable<DirectiveDescriptor> directives, bool designTime, int? expectedParseLength = null)
|
||||||
{
|
{
|
||||||
ParseBlockTest(document, directives, false);
|
ParseBlockTest(RazorLanguageVersion.Latest, document, directives, designTime, expectedParseLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, bool designTime)
|
internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, IEnumerable<DirectiveDescriptor> directives, bool designTime, int? expectedParseLength = null)
|
||||||
{
|
|
||||||
ParseBlockTest(version, document, null, designTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal virtual void ParseBlockTest(string document, IEnumerable<DirectiveDescriptor> directives, bool designTime)
|
|
||||||
{
|
|
||||||
ParseBlockTest(RazorLanguageVersion.Latest, document, directives, designTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, IEnumerable<DirectiveDescriptor> directives, bool designTime)
|
|
||||||
{
|
{
|
||||||
var result = ParseBlock(version, document, directives, designTime);
|
var result = ParseBlock(version, document, directives, designTime);
|
||||||
|
|
||||||
BaselineTest(result, ensureFullFidelity: false);
|
BaselineTest(result, expectedParseLength: expectedParseLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void ParseDocumentTest(string document)
|
internal virtual void ParseDocumentTest(string document)
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
// Verifies recursively that a syntax tree has no gaps in terms of position/location.
|
// Verifies recursively that a syntax tree has no gaps in terms of position/location.
|
||||||
internal class SyntaxTreeVerifier
|
internal class SyntaxTreeVerifier
|
||||||
{
|
{
|
||||||
public static void Verify(RazorSyntaxTree syntaxTree, bool ensureFullFidelity = true)
|
public static void Verify(RazorSyntaxTree syntaxTree, bool ensureFullFidelity = true, int? expectedParseLength = null)
|
||||||
{
|
{
|
||||||
var verifier = new Verifier(syntaxTree.Source);
|
var verifier = new Verifier(syntaxTree.Source);
|
||||||
verifier.Visit(syntaxTree.Root);
|
verifier.Visit(syntaxTree.Root);
|
||||||
|
|
@ -21,7 +21,8 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
{
|
{
|
||||||
var syntaxTreeString = syntaxTree.Root.ToFullString();
|
var syntaxTreeString = syntaxTree.Root.ToFullString();
|
||||||
var builder = new StringBuilder(syntaxTree.Source.Length);
|
var builder = new StringBuilder(syntaxTree.Source.Length);
|
||||||
for (var i = 0; i < syntaxTree.Source.Length; i++)
|
var sourceLength = expectedParseLength ?? syntaxTree.Source.Length;
|
||||||
|
for (var i = 0; i < sourceLength; i++)
|
||||||
{
|
{
|
||||||
builder.Append(syntaxTree.Source[i]);
|
builder.Append(syntaxTree.Source[i]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue