Move decoder constant tests to the correct file, add some checks

This commit is contained in:
de4dot 2018-09-27 21:57:03 +02:00
parent f756750f9d
commit 3649e8c880
4 changed files with 44 additions and 42 deletions

View File

@ -24,6 +24,48 @@ using Xunit;
namespace Iced.UnitTests.Intel.DecoderTests {
public sealed class MiscTests : DecoderTest {
[Fact]
void Verify_NumberOfCodeValues() {
int numValues = -1;
foreach (var f in typeof(Code).GetFields()) {
if (f.IsLiteral) {
int value = (int)f.GetValue(null);
Assert.Equal(numValues + 1, value);
numValues = value;
}
}
numValues++;
Assert.Equal(Iced.Intel.DecoderConstants.NumberOfCodeValues, numValues);
}
[Fact]
void Verify_NumberOfRegisters() {
int numValues = -1;
foreach (var f in typeof(Register).GetFields()) {
if (f.IsLiteral) {
int value = (int)f.GetValue(null);
Assert.Equal(numValues + 1, value);
numValues = value;
}
}
numValues++;
Assert.Equal(Iced.Intel.DecoderConstants.NumberOfRegisters, numValues);
}
[Fact]
void Verify_NumberOfMemorySizes() {
int numValues = -1;
foreach (var f in typeof(MemorySize).GetFields()) {
if (f.IsLiteral) {
int value = (int)f.GetValue(null);
Assert.Equal(numValues + 1, value);
numValues = value;
}
}
numValues++;
Assert.Equal(Iced.Intel.DecoderConstants.NumberOfMemorySizes, numValues);
}
[Fact]
void Test16_too_long_instruction() {
var decoder = CreateDecoder16("26 26 26 26 26 26 26 26 26 26 26 26 26 66 01 CE");

View File

@ -29,6 +29,7 @@ namespace Iced.UnitTests.Intel.EncoderTests {
var handlers = OpCodeHandlers.Handlers;
for (int i = 0; i < handlers.Length; i++)
Assert.Equal((Code)i, handlers[i].TEST_Code);
Assert.Equal(Iced.Intel.DecoderConstants.NumberOfCodeValues, handlers.Length);
}
[Fact]

View File

@ -25,48 +25,6 @@ using Xunit;
namespace Iced.UnitTests.Intel.FormatterTests {
public sealed class MiscTests {
[Fact]
void Verify_FormatterConstants_NumberOfCodeValues() {
int numValues = -1;
foreach (var f in typeof(Code).GetFields()) {
if (f.IsLiteral) {
int value = (int)f.GetValue(null);
Assert.Equal(numValues + 1, value);
numValues = value;
}
}
numValues++;
Assert.Equal(Iced.Intel.DecoderConstants.NumberOfCodeValues, numValues);
}
[Fact]
void Verify_FormatterConstants_NumberOfRegisters() {
int numValues = -1;
foreach (var f in typeof(Register).GetFields()) {
if (f.IsLiteral) {
int value = (int)f.GetValue(null);
Assert.Equal(numValues + 1, value);
numValues = value;
}
}
numValues++;
Assert.Equal(Iced.Intel.DecoderConstants.NumberOfRegisters, numValues);
}
[Fact]
void Verify_FormatterConstants_NumberOfMemorySizes() {
int numValues = -1;
foreach (var f in typeof(MemorySize).GetFields()) {
if (f.IsLiteral) {
int value = (int)f.GetValue(null);
Assert.Equal(numValues + 1, value);
numValues = value;
}
}
numValues++;
Assert.Equal(Iced.Intel.DecoderConstants.NumberOfMemorySizes, numValues);
}
[Fact]
void Make_sure_all_Code_values_are_formatted() {
int numCodeValues = -1;

View File

@ -67,6 +67,7 @@ namespace Iced.UnitTests.Intel.InstructionInfoTests {
[Fact]
void Verify_Code_values_in_InfoHandlers_table() {
Assert.Equal(InfoHandlers.Data.Length, 2 * Iced.Intel.DecoderConstants.NumberOfCodeValues);
for (int i = 0; i < Iced.Intel.DecoderConstants.NumberOfCodeValues; i++) {
var code = (Code)(InfoHandlers.Data[i * 2] & (uint)InfoFlags1.CodeMask);
Assert.Equal((Code)i, code);