diff --git a/src/test/java/iq/BackwardsCompatibilityTests.java b/src/test/java/iq/BackwardsCompatibilityTests.java index 6aa3b1d75..3f9d3c990 100644 --- a/src/test/java/iq/BackwardsCompatibilityTests.java +++ b/src/test/java/iq/BackwardsCompatibilityTests.java @@ -20,13 +20,14 @@ package iq; -import iq.base.AnnotationsTestsBase; import org.apache.spark.SparkConf; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.rumbledb.config.RumbleRuntimeConfiguration; +import org.rumbledb.tests.commons.RumbleDBTestCommons; + import scala.util.Properties; import sparksoniq.spark.SparkSessionManager; import utils.FileManager; @@ -36,7 +37,7 @@ import java.util.*; @RunWith(Parameterized.class) -public class BackwardsCompatibilityTests extends AnnotationsTestsBase { +public class BackwardsCompatibilityTests { public static final File runtimeTestsDirectory = new File( System.getProperty("user.dir") @@ -106,13 +107,11 @@ public static void setupSparkSession() { @Test(timeout = 1000000) public final void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - AnnotationsTestsBase.testAnnotations( + // System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + true ); } } diff --git a/src/test/java/iq/Bugs.java b/src/test/java/iq/Bugs.java index bb05124c3..9cd3953c3 100644 --- a/src/test/java/iq/Bugs.java +++ b/src/test/java/iq/Bugs.java @@ -20,7 +20,6 @@ package iq; -import iq.base.AnnotationsTestsBase; import scala.Function0; import scala.util.Properties; @@ -29,6 +28,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import org.rumbledb.tests.commons.RumbleDBTestCommons; + import sparksoniq.spark.SparkSessionManager; import utils.FileManager; @@ -38,7 +39,7 @@ import java.util.List; @RunWith(Parameterized.class) -public class Bugs extends AnnotationsTestsBase { +public class Bugs { public static final File runtimeTestsDirectory = new File( System.getProperty("user.dir") @@ -99,13 +100,11 @@ public static void setupSparkSession() { @Test(timeout = 1000000) public void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - AnnotationsTestsBase.testAnnotations( + // System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), - getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + RumbleDBTestCommons.getDefaultConfiguration(), + true ); } } diff --git a/src/test/java/iq/ComposabilityTests.java b/src/test/java/iq/ComposabilityTests.java index b0f416a72..666a38d1a 100644 --- a/src/test/java/iq/ComposabilityTests.java +++ b/src/test/java/iq/ComposabilityTests.java @@ -21,13 +21,15 @@ package iq; -import iq.base.AnnotationsTestsBase; import org.junit.Test; +import org.rumbledb.tests.commons.RumbleDBTestCommons; + +import java.util.List; import java.io.File; -public class ComposabilityTests extends AnnotationsTestsBase { +public class ComposabilityTests { public static final File composabilityTestsDirectory = new File( System.getProperty("user.dir") + @@ -42,15 +44,13 @@ public class ComposabilityTests extends AnnotationsTestsBase { */ @Test(timeout = 1000000) public void testComposabilityContraints() throws Throwable { - initializeTests(composabilityTestsDirectory); - for (File testFile : this.testFiles) { - System.err.println(counter++ + " : " + testFile); - testAnnotations( + List testFiles = RumbleDBTestCommons.extractTestFilesFromDirectory(composabilityTestsDirectory); + for (File testFile : testFiles) { + // System.err.println(counter++ + " : " + testFile); + RumbleDBTestCommons.testAnnotations( testFile.getAbsolutePath(), - getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + RumbleDBTestCommons.getDefaultConfiguration(), + true ); } } diff --git a/src/test/java/iq/DeltaUpdateRuntimeTests.java b/src/test/java/iq/DeltaUpdateRuntimeTests.java index f09a9b281..82ff59e0a 100644 --- a/src/test/java/iq/DeltaUpdateRuntimeTests.java +++ b/src/test/java/iq/DeltaUpdateRuntimeTests.java @@ -20,8 +20,9 @@ package iq; -import iq.base.AnnotationsTestsBase; import org.rumbledb.config.RumbleRuntimeConfiguration; +import org.rumbledb.tests.commons.RumbleDBTestCommons; + import utils.annotations.AnnotationParseException; import utils.annotations.AnnotationProcessor; import org.apache.spark.SparkConf; @@ -41,7 +42,7 @@ import java.util.*; @RunWith(Parameterized.class) -public class DeltaUpdateRuntimeTests extends AnnotationsTestsBase { +public class DeltaUpdateRuntimeTests { public static final File runtimeTestsDirectory = new File( System.getProperty("user.dir") @@ -180,7 +181,7 @@ public static void setupSparkSession() { @Test(timeout = 1000000) public void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); + // System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); try { AnnotationProcessor.TestAnnotation currentAnnotation = AnnotationProcessor.readAnnotation( new FileReader(this.testFile.getAbsolutePath()) @@ -189,12 +190,10 @@ public void testRuntimeIterators() throws Throwable { e.printStackTrace(); Assert.fail(); } - testAnnotations( + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + true ); } diff --git a/src/test/java/iq/FrontendTests.java b/src/test/java/iq/FrontendTests.java index c357886f5..b8b1f1d2f 100644 --- a/src/test/java/iq/FrontendTests.java +++ b/src/test/java/iq/FrontendTests.java @@ -21,7 +21,6 @@ package iq; -import iq.base.AnnotationsTestsBase; import org.junit.Assert; import org.junit.Test; import org.rumbledb.compiler.VisitorHelpers; @@ -31,6 +30,7 @@ import org.rumbledb.expressions.module.MainModule; import org.rumbledb.expressions.primary.VariableReferenceExpression; import org.rumbledb.runtime.functions.input.FileSystemUtil; +import org.rumbledb.tests.commons.RumbleDBTestCommons; import org.rumbledb.types.BuiltinTypesCatalogue; import java.io.File; import java.net.URI; @@ -38,7 +38,7 @@ import java.util.List; -public class FrontendTests extends AnnotationsTestsBase { +public class FrontendTests { public static final File grammarTestsDirectory = new File( System.getProperty("user.dir") @@ -64,16 +64,14 @@ public class FrontendTests extends AnnotationsTestsBase { */ @Test(timeout = 1000000) public void testGrammarAndParser() throws Throwable { - initializeTests(grammarTestsDirectory); - for (File testFile : this.testFiles) { - System.err.println(counter++ + " : " + testFile); + List testFiles = RumbleDBTestCommons.extractTestFilesFromDirectory(grammarTestsDirectory); + for (File testFile : testFiles) { + // System.err.println(counter++ + " : " + testFile); // FileReader reader = getReaderForFile(testFile.getAbsolutePath()); - testAnnotations( + RumbleDBTestCommons.testAnnotations( testFile.getAbsolutePath(), - getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + RumbleDBTestCommons.getDefaultConfiguration(), + true ); } @@ -106,25 +104,23 @@ public void testGrammarAndParser() throws Throwable { */ @Test(timeout = 1000000) public void testSematicChecks() throws Throwable { - initializeTests(semanticTestsDirectory); - for (File testFile : this.testFiles) { - System.err.println(counter++ + " : " + testFile); - testAnnotations( + List testFiles = RumbleDBTestCommons.extractTestFilesFromDirectory(semanticTestsDirectory); + for (File testFile : testFiles) { + // System.err.println(counter++ + " : " + testFile); + RumbleDBTestCommons.testAnnotations( testFile.getAbsolutePath(), - getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + RumbleDBTestCommons.getDefaultConfiguration(), + true ); if (Arrays.asList(manualSemanticChecksFiles).contains(testFile.getName())) { URI uri = FileSystemUtil.resolveURIAgainstWorkingDirectory( testFile.getAbsolutePath(), - getConfiguration(), + RumbleDBTestCommons.getDefaultConfiguration(), ExceptionMetadata.EMPTY_METADATA ); MainModule mainModule = VisitorHelpers.parseMainModuleFromLocation( uri, - getConfiguration() + RumbleDBTestCommons.getDefaultConfiguration() ); testVariableTypes(mainModule); diff --git a/src/test/java/iq/RuntimeTests.java b/src/test/java/iq/RuntimeTests.java index 88c8ec7e2..f186c90c8 100644 --- a/src/test/java/iq/RuntimeTests.java +++ b/src/test/java/iq/RuntimeTests.java @@ -20,7 +20,6 @@ package iq; -import iq.base.AnnotationsTestsBase; import scala.Function0; import scala.util.Properties; @@ -33,13 +32,15 @@ import org.rumbledb.config.RumbleRuntimeConfiguration; import org.rumbledb.context.Name; import org.rumbledb.items.ItemFactory; +import org.rumbledb.tests.commons.RumbleDBTestCommons; + import sparksoniq.spark.SparkSessionManager; import utils.FileManager; import java.io.File; import java.util.*; @RunWith(Parameterized.class) -public class RuntimeTests extends AnnotationsTestsBase { +public class RuntimeTests { public static final File runtimeTestsDirectory = new File( System.getProperty("user.dir") @@ -139,13 +140,11 @@ public static void setupSparkSession() { @Test(timeout = 1000000) public void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - testAnnotations( + // System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + true ); } } diff --git a/src/test/java/iq/RuntimeTestsNoInlining.java b/src/test/java/iq/RuntimeTestsNoInlining.java index f97949e41..dd29bdf1a 100644 --- a/src/test/java/iq/RuntimeTestsNoInlining.java +++ b/src/test/java/iq/RuntimeTestsNoInlining.java @@ -32,8 +32,7 @@ import org.rumbledb.config.RumbleRuntimeConfiguration; import org.rumbledb.context.Name; import org.rumbledb.items.ItemFactory; - -import iq.base.AnnotationsTestsBase; +import org.rumbledb.tests.commons.RumbleDBTestCommons; @RunWith(Parameterized.class) public class RuntimeTestsNoInlining extends RuntimeTests { @@ -79,13 +78,11 @@ public RumbleRuntimeConfiguration getConfiguration() { @Test(timeout = 1000000) public final void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - testAnnotations( + // System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + true ); } } diff --git a/src/test/java/iq/RuntimeTestsNoParallelism.java b/src/test/java/iq/RuntimeTestsNoParallelism.java index f6f8bab42..c30470ba8 100644 --- a/src/test/java/iq/RuntimeTestsNoParallelism.java +++ b/src/test/java/iq/RuntimeTestsNoParallelism.java @@ -31,8 +31,7 @@ import org.rumbledb.config.RumbleRuntimeConfiguration; import org.rumbledb.context.Name; import org.rumbledb.items.ItemFactory; - -import iq.base.AnnotationsTestsBase; +import org.rumbledb.tests.commons.RumbleDBTestCommons; @RunWith(Parameterized.class) public class RuntimeTestsNoParallelism extends RuntimeTests { @@ -74,13 +73,11 @@ public RumbleRuntimeConfiguration getConfiguration() { @Test(timeout = 1000000) public final void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - testAnnotations( + // System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + true ); } } diff --git a/src/test/java/iq/SequentialClassificationTests.java b/src/test/java/iq/SequentialClassificationTests.java index db4ea04b5..81e38ac65 100644 --- a/src/test/java/iq/SequentialClassificationTests.java +++ b/src/test/java/iq/SequentialClassificationTests.java @@ -1,6 +1,5 @@ package iq; -import iq.base.AnnotationsTestsBase; import org.junit.Test; import org.rumbledb.compiler.VisitorHelpers; import org.rumbledb.exceptions.ExceptionMetadata; @@ -26,26 +25,28 @@ import org.rumbledb.expressions.scripting.statement.Statement; import org.rumbledb.expressions.scripting.statement.StatementsAndOptionalExpr; import org.rumbledb.runtime.functions.input.FileSystemUtil; +import org.rumbledb.tests.commons.RumbleDBTestCommons; import java.io.File; import java.io.IOException; import java.net.URI; +import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -public class SequentialClassificationTests extends AnnotationsTestsBase { +public class SequentialClassificationTests { private MainModule parseAndCompile(String filePath) throws IOException { URI uri = FileSystemUtil.resolveURIAgainstWorkingDirectory( filePath, - getConfiguration(), + RumbleDBTestCommons.getDefaultConfiguration(), ExceptionMetadata.EMPTY_METADATA ); return VisitorHelpers.parseMainModuleFromLocation( uri, - getConfiguration() + RumbleDBTestCommons.getDefaultConfiguration() ); } @@ -292,9 +293,9 @@ public void testNonSequential() throws Throwable { + "/src/test/resources/test_files/sequential/non-sequential" ); - initializeTests(nonsequentialTestsDirectory); - for (File testFile : this.testFiles) { - System.err.println(counter++ + " : " + testFile); + List testFiles = RumbleDBTestCommons.extractTestFilesFromDirectory(nonsequentialTestsDirectory); + for (File testFile : testFiles) { + // System.err.println(counter++ + " : " + testFile); MainModule mainModule = parseAndCompile(testFile.getAbsolutePath()); for (Node descendant : mainModule.getDescendants()) { if (descendant instanceof Expression) { diff --git a/src/test/java/iq/StaticTypeTests.java b/src/test/java/iq/StaticTypeTests.java index 3ac7d33bc..9de26e575 100644 --- a/src/test/java/iq/StaticTypeTests.java +++ b/src/test/java/iq/StaticTypeTests.java @@ -1,8 +1,8 @@ package iq; import org.rumbledb.config.RumbleRuntimeConfiguration; +import org.rumbledb.tests.commons.RumbleDBTestCommons; -import iq.base.AnnotationsTestsBase; import scala.Function0; import scala.util.Properties; @@ -20,7 +20,7 @@ import java.util.List; @RunWith(Parameterized.class) -public class StaticTypeTests extends AnnotationsTestsBase { +public class StaticTypeTests { protected static final RumbleRuntimeConfiguration configuration = new RumbleRuntimeConfiguration( new String[] { "--print-iterator-tree", "yes", "--static-typing", "yes" } @@ -85,13 +85,10 @@ public static void setupSparkSession() { @Test(timeout = 1000000) public void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - testAnnotations( + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), StaticTypeTests.configuration, - false, - StaticTypeTests.configuration.applyUpdates(), - StaticTypeTests.configuration.getResultSizeCap() + false ); } } diff --git a/src/test/java/iq/XMLTests.java b/src/test/java/iq/XMLTests.java index f23c683f6..dc5418803 100644 --- a/src/test/java/iq/XMLTests.java +++ b/src/test/java/iq/XMLTests.java @@ -20,7 +20,7 @@ package iq; -import iq.base.AnnotationsTestsBase; +import org.rumbledb.tests.commons.RumbleDBTestCommons; import org.apache.spark.SparkConf; import org.junit.BeforeClass; import org.junit.Test; @@ -38,7 +38,7 @@ import java.util.List; @RunWith(Parameterized.class) -public class XMLTests extends AnnotationsTestsBase { +public class XMLTests { public static final File runtimeTestsDirectory = new File( System.getProperty("user.dir") @@ -112,13 +112,7 @@ public static void setupSparkSession() { @Test(timeout = 1000000) public final void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - testAnnotations( - this.testFile.getAbsolutePath(), - getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() - ); + // System.err.println(RumbleDBTestCommons.counter++ + " : " + this.testFile); + RumbleDBTestCommons.testAnnotations(this.testFile.getAbsolutePath(), getConfiguration(), true); } } diff --git a/src/test/java/iq/XQueryTests.java b/src/test/java/iq/XQueryTests.java index 31af91afd..208d4704b 100644 --- a/src/test/java/iq/XQueryTests.java +++ b/src/test/java/iq/XQueryTests.java @@ -20,13 +20,14 @@ package iq; -import iq.base.AnnotationsTestsBase; import org.apache.spark.SparkConf; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.rumbledb.config.RumbleRuntimeConfiguration; +import org.rumbledb.tests.commons.RumbleDBTestCommons; + import scala.Function0; import scala.util.Properties; import sparksoniq.spark.SparkSessionManager; @@ -38,7 +39,7 @@ import java.util.List; @RunWith(Parameterized.class) -public class XQueryTests extends AnnotationsTestsBase { +public class XQueryTests { public static final File runtimeTestsDirectory = new File( System.getProperty("user.dir") @@ -110,13 +111,11 @@ public static void setupSparkSession() { @Test(timeout = 1000000) public final void testRuntimeIterators() throws Throwable { - System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); - testAnnotations( + // System.err.println(AnnotationsTestsBase.counter++ + " : " + this.testFile); + RumbleDBTestCommons.testAnnotations( this.testFile.getAbsolutePath(), getConfiguration(), - true, - getConfiguration().applyUpdates(), - getConfiguration().getResultSizeCap() + true ); } } diff --git a/src/test/java/iq/base/AnnotationsTestsBase.java b/src/test/java/org/rumbledb/tests/commons/RumbleDBTestCommons.java similarity index 92% rename from src/test/java/iq/base/AnnotationsTestsBase.java rename to src/test/java/org/rumbledb/tests/commons/RumbleDBTestCommons.java index aba43f8db..3d3458a2b 100644 --- a/src/test/java/iq/base/AnnotationsTestsBase.java +++ b/src/test/java/org/rumbledb/tests/commons/RumbleDBTestCommons.java @@ -18,7 +18,7 @@ * */ -package iq.base; +package org.rumbledb.tests.commons; import org.apache.commons.lang3.exception.ExceptionUtils; import org.junit.Assert; @@ -48,9 +48,8 @@ import java.util.Comparator; import java.util.List; -public class AnnotationsTestsBase { +public class RumbleDBTestCommons { protected static int counter = 0; - protected List testFiles = new ArrayList<>(); protected static final RumbleRuntimeConfiguration defaultConfiguration = new RumbleRuntimeConfiguration( new String[] { "--print-iterator-tree", @@ -76,13 +75,15 @@ public class AnnotationsTestsBase { ) ); - public RumbleRuntimeConfiguration getConfiguration() { + public static RumbleRuntimeConfiguration getDefaultConfiguration() { return defaultConfiguration; } - public void initializeTests(File dir) { - FileManager.loadJiqFiles(dir).forEach(file -> this.testFiles.add(file)); - this.testFiles.sort(Comparator.comparing(File::getName)); + public static List extractTestFilesFromDirectory(File dir) { + List testFiles = new ArrayList<>(); + FileManager.loadJiqFiles(dir).forEach(file -> testFiles.add(file)); + testFiles.sort(Comparator.comparing(File::getName)); + return testFiles; } /** @@ -91,9 +92,7 @@ public void initializeTests(File dir) { public static void testAnnotations( String path, RumbleRuntimeConfiguration configuration, - boolean checkOutput, - boolean applyUpdates, - int resultSizeCap + boolean checkOutput ) throws IOException { AnnotationProcessor.TestAnnotation currentAnnotation = null; @@ -188,7 +187,13 @@ public static void testAnnotations( currentAnnotation.shouldRun() ) { try { - checkExpectedOutput(currentAnnotation.getOutput(), sequence, checkOutput, applyUpdates, resultSizeCap); + checkExpectedOutput( + currentAnnotation.getOutput(), + sequence, + checkOutput, + configuration.applyUpdates(), + configuration.getResultSizeCap() + ); } catch (RumbleException exception) { String errorOutput = exception.getMessage(); errorOutput += "\n" + ExceptionUtils.getStackTrace(exception); @@ -206,8 +211,8 @@ public static void testAnnotations( currentAnnotation.getOutput(), sequence, checkOutput, - applyUpdates, - resultSizeCap + configuration.applyUpdates(), + configuration.getResultSizeCap() ); } catch (Exception exception) { String errorOutput = exception.getMessage();