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));
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
SyntaxTreeVerifier.Verify(syntaxTree, ensureFullFidelity);
|
||||
SyntaxTreeVerifier.Verify(syntaxTree, ensureFullFidelity, expectedParseLength);
|
||||
}
|
||||
|
||||
AssertSyntaxTreeNodeMatchesBaseline(syntaxTree);
|
||||
|
|
@ -271,41 +271,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
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)
|
||||
{
|
||||
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)
|
||||
internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, IEnumerable<DirectiveDescriptor> directives, bool designTime, int? expectedParseLength = null)
|
||||
{
|
||||
var result = ParseBlock(version, document, directives, designTime);
|
||||
|
||||
BaselineTest(result, ensureFullFidelity: false);
|
||||
BaselineTest(result, expectedParseLength: expectedParseLength);
|
||||
}
|
||||
|
||||
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.
|
||||
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);
|
||||
verifier.Visit(syntaxTree.Root);
|
||||
|
|
@ -21,7 +21,8 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
{
|
||||
var syntaxTreeString = syntaxTree.Root.ToFullString();
|
||||
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]);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue