buildscript { repositories { mavenCentral() maven { name "gitlab-maven" url "https://git-st.inf.tu-dresden.de/api/v4/groups/jastadd/-/packages/maven" } } dependencies { classpath 'org.jastadd:jastaddgradle:1.13.3' classpath 'org.jastadd.relast:relast-test:0.2.4' } } import org.jastadd.relast.plugin.RelastPlugin import org.jastadd.relast.plugin.RelastTest plugins { id 'java' id 'java-library' id 'idea' id 'com.github.ben-manes.versions' version '0.36.0' id 'com.google.protobuf' version "0.8.14" } apply plugin: 'jastadd' apply plugin: RelastPlugin group = 'de.tudresden.inf.st' repositories { mavenCentral() } dependencies { implementation project(':ragconnect.base') // runtime group: 'org.jastadd', name: 'jastadd', version: '2.3.4' runtime fileTree(include: ['jastadd2.jar'], dir: '../libs/') testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.4.0' testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.4.0' testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.12.1' // mqtt testImplementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' // rest and client testImplementation group: 'com.sparkjava', name: 'spark-core', version: '2.9.2' testImplementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.11.2' testImplementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: '2.31' testImplementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: '2.31' testImplementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' api group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0' } test { useJUnitPlatform { excludeTags 'mqtt' } maxHeapSize = '1G' } protobuf { protoc { // The artifact spec for the Protobuf Compiler artifact = 'com.google.protobuf:protoc:3.0.0' } } task allTests(type: Test, dependsOn: testClasses) { description = 'Run every test' group = 'verification' useJUnitPlatform { includeTags 'mqtt' } } task specificTest(type: Test, dependsOn: testClasses) { description = 'Run test tagged with "NewTest"' group = 'verification' useJUnitPlatform { includeTags 'SpecificTest' } } relastTest { //noinspection GroovyAssignabilityCheck compilerLocation = '../libs/relast.jar' } File genSrc = file("src/test/java-gen") sourceSets.test.java.srcDir genSrc idea.module.generatedSourceDirs += genSrc clean { delete fileTree(dir: 'src/test/02-after-ragconnect/', exclude: '.gitignore') delete fileTree(dir: 'src/test/03-after-relast/', exclude: '.gitignore') delete fileTree(dir: 'src/test/java-gen/', exclude: '.gitignore') } // --- Test: Example --- task preprocessExampleTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/example/Test.relast', 'src/test/02-after-ragconnect/example/MqttHandler.jadd', 'src/test/02-after-ragconnect/example/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/example', 'src/test/01-input/example/Test.relast', 'src/test/01-input/example/Test.connect', '--rootNode=Model', '--logReads', '--logWrites' } task compileExampleTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/example/Test.relast', 'src/test/02-after-ragconnect/example/RagConnect.relast' grammarName = 'src/test/03-after-relast/example/example' packageName = 'example.ast' moreInputFiles 'src/test/01-input/example/Test.jadd', 'src/test/02-after-ragconnect/example/MqttHandler.jadd', 'src/test/02-after-ragconnect/example/RagConnect.jadd' } compileTestJava.dependsOn compileExampleTest compileExampleTest.dependsOn preprocessExampleTest // --- Test: default-only-read --- task preprocessDefaultOnlyReadTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/defaultOnlyRead/Test.relast', 'src/test/02-after-ragconnect/defaultOnlyRead/MqttHandler.jadd', 'src/test/02-after-ragconnect/defaultOnlyRead/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/defaultOnlyRead', 'src/test/01-input/defaultOnlyRead/Test.relast', 'src/test/01-input/defaultOnlyRead/Test.connect', '--rootNode=A' } task compileDefaultOnlyReadTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/defaultOnlyRead/Test.relast', 'src/test/02-after-ragconnect/defaultOnlyRead/RagConnect.relast' grammarName = 'src/test/03-after-relast/defaultOnlyRead/defaultOnlyRead' packageName = 'defaultOnlyRead.ast' moreInputFiles 'src/test/02-after-ragconnect/defaultOnlyRead/MqttHandler.jadd', 'src/test/02-after-ragconnect/defaultOnlyRead/RagConnect.jadd' } compileTestJava.dependsOn compileDefaultOnlyReadTest compileDefaultOnlyReadTest.dependsOn preprocessDefaultOnlyReadTest // --- Test: default-only-write --- task preprocessDefaultOnlyWriteTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/defaultOnlyWrite/Test.relast', 'src/test/02-after-ragconnect/defaultOnlyWrite/MqttHandler.jadd', 'src/test/02-after-ragconnect/defaultOnlyWrite/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/defaultOnlyWrite', 'src/test/01-input/defaultOnlyWrite/Test.relast', 'src/test/01-input/defaultOnlyWrite/Test.connect', '--rootNode=A' } task compileDefaultOnlyWriteTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/defaultOnlyWrite/Test.relast', 'src/test/02-after-ragconnect/defaultOnlyWrite/RagConnect.relast' grammarName = 'src/test/03-after-relast/defaultOnlyWrite/defaultOnlyWrite' packageName = 'defaultOnlyWrite.ast' moreInputFiles 'src/test/01-input/defaultOnlyWrite/Test.jadd', 'src/test/02-after-ragconnect/defaultOnlyWrite/MqttHandler.jadd', 'src/test/02-after-ragconnect/defaultOnlyWrite/RagConnect.jadd' } compileTestJava.dependsOn compileDefaultOnlyWriteTest compileDefaultOnlyWriteTest.dependsOn preprocessDefaultOnlyWriteTest // --- Test: read1write2 --- task preprocessRead1Write2Test(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/read1write2/Test.relast', 'src/test/02-after-ragconnect/read1write2/MqttHandler.jadd', 'src/test/02-after-ragconnect/read1write2/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/read1write2', 'src/test/01-input/read1write2/Test.relast', 'src/test/01-input/read1write2/Test.connect', '--rootNode=A' } task compileRead1Write2Test(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/read1write2/Test.relast', 'src/test/02-after-ragconnect/read1write2/RagConnect.relast' grammarName = 'src/test/03-after-relast/read1write2/read1write2' packageName = 'read1write2.ast' moreInputFiles 'src/test/01-input/read1write2/Test.jadd', 'src/test/02-after-ragconnect/read1write2/MqttHandler.jadd', 'src/test/02-after-ragconnect/read1write2/RagConnect.jadd' } compileTestJava.dependsOn compileRead1Write2Test compileRead1Write2Test.dependsOn preprocessRead1Write2Test // --- Test: read2write1 --- task preprocessRead2Write1Test(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/read2write1/Test.relast', 'src/test/02-after-ragconnect/read2write1/MqttHandler.jadd', 'src/test/02-after-ragconnect/read2write1/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/read2write1', 'src/test/01-input/read2write1/Test.relast', 'src/test/01-input/read2write1/Test.connect', '--rootNode=A' } task compileRead2Write1Test(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/read2write1/Test.relast', 'src/test/02-after-ragconnect/read2write1/RagConnect.relast' grammarName = 'src/test/03-after-relast/read2write1/read2write1' packageName = 'read2write1.ast' moreInputFiles 'src/test/01-input/read2write1/Test.jadd', 'src/test/02-after-ragconnect/read2write1/MqttHandler.jadd', 'src/test/02-after-ragconnect/read2write1/RagConnect.jadd' } compileTestJava.dependsOn compileRead2Write1Test compileRead2Write1Test.dependsOn preprocessRead2Write1Test // --- Test: via --- task preprocessViaTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/via/Test.relast', 'src/test/02-after-ragconnect/via/MqttHandler.jadd', 'src/test/02-after-ragconnect/via/RestHandler.jadd', 'src/test/02-after-ragconnect/via/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/via', 'src/test/01-input/via/Test.relast', 'src/test/01-input/via/Test.connect', '--rootNode=A', '--protocols=mqtt,rest' } task compileViaTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/via/Test.relast', 'src/test/02-after-ragconnect/via/RagConnect.relast' grammarName = 'src/test/03-after-relast/via/via' packageName = 'via.ast' moreInputFiles 'src/test/01-input/via/Test.jadd', 'src/test/02-after-ragconnect/via/MqttHandler.jadd', 'src/test/02-after-ragconnect/via/RestHandler.jadd', 'src/test/02-after-ragconnect/via/RagConnect.jadd' } compileTestJava.dependsOn compileViaTest compileViaTest.dependsOn preprocessViaTest // --- Test: token-value-send --- task preprocessTokenValueSendTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/tokenValueSend/Test.relast', 'src/test/02-after-ragconnect/tokenValueSend/MqttHandler.jadd', 'src/test/02-after-ragconnect/tokenValueSend/RestHandler.jadd', 'src/test/02-after-ragconnect/tokenValueSend/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/tokenValueSend', 'src/test/01-input/tokenValueSend/Test.relast', 'src/test/01-input/tokenValueSend/Test.connect', '--rootNode=A' } task compileTokenValueSendTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/tokenValueSend/Test.relast', 'src/test/02-after-ragconnect/tokenValueSend/RagConnect.relast' grammarName = 'src/test/03-after-relast/tokenValueSend/tokenValueSend' packageName = 'tokenValueSend.ast' moreInputFiles 'src/test/01-input/tokenValueSend/Test.jadd', 'src/test/02-after-ragconnect/tokenValueSend/MqttHandler.jadd', 'src/test/02-after-ragconnect/tokenValueSend/RagConnect.jadd' } compileTestJava.dependsOn compileTokenValueSendTest compileTokenValueSendTest.dependsOn preprocessTokenValueSendTest // --- Test: tutorial --- task preprocessTutorialTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/tutorial/Test.relast', 'src/test/02-after-ragconnect/tutorial/MqttHandler.jadd', 'src/test/02-after-ragconnect/tutorial/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/tutorial', 'src/test/01-input/tutorial/Test.relast', 'src/test/01-input/tutorial/Test.connect', '--rootNode=A' } task compileTutorialTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/tutorial/Test.relast', 'src/test/02-after-ragconnect/tutorial/RagConnect.relast' grammarName = 'src/test/03-after-relast/tutorial/tutorial' packageName = 'tutorial.ast' moreInputFiles 'src/test/01-input/tutorial/Test.jadd', 'src/test/02-after-ragconnect/tutorial/MqttHandler.jadd', 'src/test/02-after-ragconnect/tutorial/RagConnect.jadd' } compileTestJava.dependsOn compileTutorialTest compileTutorialTest.dependsOn preprocessTutorialTest // --- Test: incremental --- task preprocessIncrementalTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/incremental/Test.relast', 'src/test/02-after-ragconnect/incremental/MqttHandler.jadd', 'src/test/02-after-ragconnect/incremental/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/incremental', 'src/test/01-input/incremental/Test.relast', 'src/test/01-input/incremental/Test.connect', '--rootNode=A', '--tracing=cache,flush', '--incremental=param' } task compileIncrementalTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/incremental/Test.relast', 'src/test/02-after-ragconnect/incremental/RagConnect.relast' grammarName = 'src/test/03-after-relast/incremental/incremental' packageName = 'incremental.ast' moreInputFiles 'src/test/01-input/incremental/Test.jadd', 'src/test/02-after-ragconnect/incremental/MqttHandler.jadd', 'src/test/02-after-ragconnect/incremental/RagConnect.jadd' extraJastAddOptions '--tracing=cache,flush', '--incremental=param', '--cache=all', '--rewrite=cnta', '--flush=full' } compileTestJava.dependsOn compileIncrementalTest compileIncrementalTest.dependsOn preprocessIncrementalTest // --- Test: mapping --- task preprocessMappingTest(type: JavaExec, group: 'verification') { doFirst { delete 'src/test/02-after-ragconnect/mapping/Test.relast', 'src/test/02-after-ragconnect/mapping/MqttHandler.jadd', 'src/test/02-after-ragconnect/mapping/RagConnect.jadd' } classpath = sourceSets.main.runtimeClasspath main = 'org.jastadd.ragconnect.compiler.Compiler' args '--o=src/test/02-after-ragconnect/mapping', 'src/test/01-input/mapping/Test.relast', 'src/test/01-input/mapping/Test.connect', '--rootNode=A', '--logReads', '--logWrites', '--verbose' } task compileMappingTest(type: RelastTest) { useJastAddNames = true jastAddList = 'JastAddList' relastFiles 'src/test/02-after-ragconnect/mapping/Test.relast', 'src/test/02-after-ragconnect/mapping/RagConnect.relast' grammarName = 'src/test/03-after-relast/mapping/mapping' packageName = 'mapping.ast' moreInputFiles 'src/test/01-input/mapping/Test.jadd', 'src/test/02-after-ragconnect/mapping/MqttHandler.jadd', 'src/test/02-after-ragconnect/mapping/RagConnect.jadd' } compileTestJava.dependsOn compileMappingTest compileMappingTest.dependsOn preprocessMappingTest