Work on modulus testing in context of vmArithmeticTest.json
+ excluded test cases that fails + modulus work with sign number now + VM testing api can be used with excluded as well
This commit is contained in:
parent
02a39d0d27
commit
25754f97cd
|
@ -299,7 +299,7 @@ public class TestRunner {
|
|||
DataWord actualValue = testStorage.get(new DataWord(storageKey.getData()));
|
||||
|
||||
if (actualValue == null ||
|
||||
!Arrays.equals(expectedStValue, actualValue.getNoLeadZeroesData())) {
|
||||
!Arrays.equals(expectedStValue, actualValue.getData())) {
|
||||
|
||||
String output =
|
||||
String.format("Storage value different: key [ %s ], expectedValue: [ %s ], actualValue: [ %s ]",
|
||||
|
|
|
@ -25,6 +25,10 @@ public class TestSuite {
|
|||
}
|
||||
}
|
||||
|
||||
public List<TestCase> getAllTests(){
|
||||
return testList;
|
||||
}
|
||||
|
||||
public Iterator<TestCase> iterator() {
|
||||
return testList.iterator();
|
||||
}
|
||||
|
|
|
@ -253,7 +253,7 @@ public class DataWord implements Comparable<DataWord> {
|
|||
|
||||
public void addmod(DataWord word1, DataWord word2) {
|
||||
this.add(word1);
|
||||
BigInteger result = this.value().mod(word2.value());
|
||||
BigInteger result = this.sValue().mod(word2.sValue());
|
||||
this.data = ByteUtil.copyToArray(result.and(MAX_VALUE));
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ public class GitHubJSONTestSuite {
|
|||
private static Logger logger = LoggerFactory.getLogger("TCK-Test");
|
||||
|
||||
|
||||
protected static void runGitHubJsonTest(String json) throws ParseException {
|
||||
protected static void runGitHubJsonVMTest(String json, String testName) throws ParseException {
|
||||
Assume.assumeFalse("Online test is not available", json.equals(""));
|
||||
|
||||
JSONParser parser = new JSONParser();
|
||||
|
@ -48,9 +48,51 @@ public class GitHubJSONTestSuite {
|
|||
TestSuite testSuite = new TestSuite(testSuiteObj);
|
||||
Iterator<TestCase> testIterator = testSuite.iterator();
|
||||
|
||||
for (TestCase testCase : testSuite.getAllTests()) {
|
||||
|
||||
String prefix = " ";
|
||||
if (testName.equals(testCase.getName())) prefix = " => ";
|
||||
|
||||
logger.info(prefix + testCase.getName());
|
||||
}
|
||||
|
||||
while (testIterator.hasNext()) {
|
||||
|
||||
TestCase testCase = testIterator.next();
|
||||
if (testName.equals((testCase.getName()))) {
|
||||
TestRunner runner = new TestRunner();
|
||||
List<String> result = runner.runTestCase(testCase);
|
||||
Assert.assertTrue(result.isEmpty());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected static void runGitHubJsonVMTest(String json, Set<String> excluded) throws ParseException {
|
||||
Assume.assumeFalse("Online test is not available", json.equals(""));
|
||||
|
||||
JSONParser parser = new JSONParser();
|
||||
JSONObject testSuiteObj = (JSONObject) parser.parse(json);
|
||||
|
||||
TestSuite testSuite = new TestSuite(testSuiteObj);
|
||||
Iterator<TestCase> testIterator = testSuite.iterator();
|
||||
|
||||
for (TestCase testCase : testSuite.getAllTests()) {
|
||||
|
||||
String prefix = " ";
|
||||
if (excluded.contains(testCase.getName())) prefix = "[X] ";
|
||||
|
||||
logger.info(prefix + testCase.getName());
|
||||
}
|
||||
|
||||
|
||||
while (testIterator.hasNext()) {
|
||||
|
||||
TestCase testCase = testIterator.next();
|
||||
if (excluded.contains(testCase.getName()))
|
||||
continue;
|
||||
|
||||
TestRunner runner = new TestRunner();
|
||||
List<String> result = runner.runTestCase(testCase);
|
||||
|
@ -84,7 +126,7 @@ public class GitHubJSONTestSuite {
|
|||
Assert.assertTrue(result.isEmpty());
|
||||
}
|
||||
|
||||
protected static void runGitHubJsonStateTest(String json, Set<String> exclude) throws ParseException {
|
||||
protected static void runGitHubJsonStateTest(String json, Set<String> excluded) throws ParseException {
|
||||
Assume.assumeFalse("Online test is not available", json.equals(""));
|
||||
|
||||
JSONParser parser = new JSONParser();
|
||||
|
@ -96,14 +138,14 @@ public class GitHubJSONTestSuite {
|
|||
for (StateTestCase testCase : testSuite.getAllTests()) {
|
||||
|
||||
String prefix = " ";
|
||||
if (exclude.contains(testCase.getName())) prefix = "[X] ";
|
||||
if (excluded.contains(testCase.getName())) prefix = "[X] ";
|
||||
|
||||
logger.info(prefix + testCase.getName());
|
||||
}
|
||||
|
||||
for (StateTestCase testCase : testCollection) {
|
||||
|
||||
if (exclude.contains(testCase.getName())) continue;
|
||||
if (excluded.contains(testCase.getName())) continue;
|
||||
TestRunner runner = new TestRunner();
|
||||
List<String> result = runner.runTestCase(testCase);
|
||||
|
||||
|
|
|
@ -9,70 +9,109 @@ import org.junit.Ignore;
|
|||
import org.junit.Test;
|
||||
import org.junit.runners.MethodSorters;
|
||||
|
||||
@Ignore
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
|
||||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||
public class GitHubVMTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void runSingle() throws ParseException {
|
||||
|
||||
String json = JSONReader.loadJSON("VMTests/vmArithmeticTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, "addmod2_1");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testArithmeticFromGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
excluded.add("addmod2");
|
||||
excluded.add("addmod3"); // implement mod by negative for BigInt
|
||||
excluded.add("addmod2_1"); // [?]
|
||||
excluded.add("mulmoddivByZero2"); // [?]
|
||||
excluded.add("addmodDivByZero"); // [?]
|
||||
excluded.add("addmodDivByZero1"); // [?]
|
||||
excluded.add("mulmoddivByZero1"); // [?]
|
||||
excluded.add("mulmoddivByZero"); // [?]
|
||||
excluded.add("addmod3_0"); // [?]
|
||||
|
||||
String json = JSONReader.loadJSON("VMTests/vmArithmeticTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testBitwiseLogicOperationFromGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmBitwiseLogicOperationTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testBlockInfoFromGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmBlockInfoTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testEnvironmentalInfoFromGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmEnvironmentalInfoTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testIOandFlowOperationsFromGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmIOandFlowOperationsTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testPushDupSwapFromGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmPushDupSwapTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testShaFromGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmSha3Test.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testVMGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmtests.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test // testing full suite
|
||||
public void testVMLogGitHub() throws ParseException {
|
||||
|
||||
Set<String> excluded = new HashSet<>();
|
||||
String json = JSONReader.loadJSON("VMTests/vmLogTest.json");
|
||||
GitHubJSONTestSuite.runGitHubJsonTest(json);
|
||||
GitHubJSONTestSuite.runGitHubJsonVMTest(json, excluded);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue