105 lines
3.2 KiB
C#
105 lines
3.2 KiB
C#
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|||
|
|
|
|||
|
|
namespace CxxDemangler.Tests.Parsing
|
|||
|
|
{
|
|||
|
|
[TestClass]
|
|||
|
|
public class SpecialName : TestBase
|
|||
|
|
{
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameVirtualTable()
|
|||
|
|
{
|
|||
|
|
Verify("TVi...",
|
|||
|
|
new Parsers.SpecialName.VirtualTable(
|
|||
|
|
new Parsers.StandardBuiltinType(Parsers.StandardBuiltinType.Values.Int)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameVtt()
|
|||
|
|
{
|
|||
|
|
Verify("TTi...",
|
|||
|
|
new Parsers.SpecialName.Vtt(
|
|||
|
|
new Parsers.StandardBuiltinType(Parsers.StandardBuiltinType.Values.Int)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameTypeinfo()
|
|||
|
|
{
|
|||
|
|
Verify("TIi...",
|
|||
|
|
new Parsers.SpecialName.TypeInfo(
|
|||
|
|
new Parsers.StandardBuiltinType(Parsers.StandardBuiltinType.Values.Int)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameTypeinfoName()
|
|||
|
|
{
|
|||
|
|
Verify("TSi...",
|
|||
|
|
new Parsers.SpecialName.TypeInfoName(
|
|||
|
|
new Parsers.StandardBuiltinType(Parsers.StandardBuiltinType.Values.Int)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameVirtualOverrideThunk()
|
|||
|
|
{
|
|||
|
|
Verify("Tv42_36_3abc...",
|
|||
|
|
new Parsers.SpecialName.VirtualOverrideThunk(
|
|||
|
|
new Parsers.CallOffset.Virtual(42, 36),
|
|||
|
|
new Parsers.SourceName.Identifier("abc")));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameVirtualOverrideThunkCovariant()
|
|||
|
|
{
|
|||
|
|
Verify("Tcv42_36_v42_36_3abc...",
|
|||
|
|
new Parsers.SpecialName.VirtualOverrideThunkCovariant(
|
|||
|
|
new Parsers.CallOffset.Virtual(42, 36),
|
|||
|
|
new Parsers.CallOffset.Virtual(42, 36),
|
|||
|
|
new Parsers.SourceName.Identifier("abc")));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameGuard()
|
|||
|
|
{
|
|||
|
|
Verify("GV3abc...",
|
|||
|
|
new Parsers.SpecialName.Guard(
|
|||
|
|
new Parsers.SourceName.Identifier("abc")));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameGuardTemporary()
|
|||
|
|
{
|
|||
|
|
Verify("GR3abc_...",
|
|||
|
|
new Parsers.SpecialName.GuardTemporary(
|
|||
|
|
new Parsers.SourceName.Identifier("abc"),
|
|||
|
|
index: 0));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameGuardTemporary2()
|
|||
|
|
{
|
|||
|
|
Verify("GR3abc0_...",
|
|||
|
|
new Parsers.SpecialName.GuardTemporary(
|
|||
|
|
new Parsers.SourceName.Identifier("abc"),
|
|||
|
|
index: 1));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[TestMethod]
|
|||
|
|
public void SpecialNameFailures()
|
|||
|
|
{
|
|||
|
|
Assert.IsNull(Parse("TZ"));
|
|||
|
|
Assert.IsNull(Parse("GZ"));
|
|||
|
|
Assert.IsNull(Parse("GR3abcz"));
|
|||
|
|
Assert.IsNull(Parse("GR3abc0z"));
|
|||
|
|
Assert.IsNull(Parse("T"));
|
|||
|
|
Assert.IsNull(Parse("G"));
|
|||
|
|
Assert.IsNull(Parse(""));
|
|||
|
|
Assert.IsNull(Parse("GR3abc"));
|
|||
|
|
Assert.IsNull(Parse("GR3abc0"));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
internal override IParsingResult Parse(ParsingContext context)
|
|||
|
|
{
|
|||
|
|
return Parsers.SpecialName.Parse(context);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|