aboutsummaryrefslogtreecommitdiff
path: root/src/test/groovy
diff options
context:
space:
mode:
authorMitchell Skaggs <skaggsm333@gmail.com>2019-06-15 16:28:37 -0500
committerMitchell Skaggs <skaggsm333@gmail.com>2019-06-15 16:28:37 -0500
commitc0a58d1bc7d2860ea9c5a94263f9930475c08d08 (patch)
treea2efd85c1c68e0e3411623f3c2d39a2dc0c8bea5 /src/test/groovy
parent52814a5b7bb673aa14cffd4a2b38dceff5395cef (diff)
downloadarchitectury-loom-c0a58d1bc7d2860ea9c5a94263f9930475c08d08.tar.gz
architectury-loom-c0a58d1bc7d2860ea9c5a94263f9930475c08d08.tar.bz2
architectury-loom-c0a58d1bc7d2860ea9c5a94263f9930475c08d08.zip
Add simple build functional test
Diffstat (limited to 'src/test/groovy')
-rw-r--r--src/test/groovy/net/fabricmc/loom/BuildUtils.groovy65
-rw-r--r--src/test/groovy/net/fabricmc/loom/SimpleBuildFunctionalTest.groovy61
2 files changed, 123 insertions, 3 deletions
diff --git a/src/test/groovy/net/fabricmc/loom/BuildUtils.groovy b/src/test/groovy/net/fabricmc/loom/BuildUtils.groovy
index 3a64137a..f8f5d19f 100644
--- a/src/test/groovy/net/fabricmc/loom/BuildUtils.groovy
+++ b/src/test/groovy/net/fabricmc/loom/BuildUtils.groovy
@@ -87,10 +87,10 @@ publishing {
"""
}
-static String genPropsFile(String mcVersion, String yarnVersion, String loaderVersion, String fabricVersion) {
+static String genPropsFile(String mcVersion, String yarnVersion, String loaderVersion, String fabricVersion, boolean caching = true, boolean parallel = true) {
"""
-org.gradle.caching=true
-org.gradle.parallel=true
+org.gradle.caching=$caching
+org.gradle.parallel=$parallel
# Fabric Properties
# check these on https://fabricmc.net/use
@@ -114,3 +114,62 @@ static String genSettingsFile(String name) {
rootProject.name = '$name'
"""
}
+
+static String genModJsonFile() {
+ """
+{
+ "schemaVersion": 1,
+ "id": "modid",
+ "version": "\${version}",
+
+ "name": "Example Mod",
+ "description": "This is an example description! Tell everyone what your mod is about!",
+ "authors": [
+ "Me!"
+ ],
+ "contact": {
+ "homepage": "https://fabricmc.net/",
+ "sources": "https://github.com/FabricMC/fabric-example-mod"
+ },
+
+ "license": "CC0-1.0",
+
+ "environment": "*",
+ "entrypoints": {
+ "main": [
+ "net.fabricmc.example.ExampleMod"
+ ]
+ },
+ "mixins": [
+ "modid.mixins.json"
+ ],
+
+ "depends": {
+ "fabricloader": ">=0.4.0",
+ "fabric": "*"
+ },
+ "suggests": {
+ "flamingo": "*"
+ }
+}
+"""
+}
+
+static String genModExampleFile() {
+ """
+package net.fabricmc.example;
+
+import net.fabricmc.api.ModInitializer;
+
+public class ExampleMod implements ModInitializer {
+ @Override
+ public void onInitialize() {
+ // This code runs as soon as Minecraft is in a mod-load-ready state.
+ // However, some things (like resources) may still be uninitialized.
+ // Proceed with mild caution.
+
+ System.out.println("Hello Fabric world!");
+ }
+}
+"""
+}
diff --git a/src/test/groovy/net/fabricmc/loom/SimpleBuildFunctionalTest.groovy b/src/test/groovy/net/fabricmc/loom/SimpleBuildFunctionalTest.groovy
new file mode 100644
index 00000000..4cbd9b8f
--- /dev/null
+++ b/src/test/groovy/net/fabricmc/loom/SimpleBuildFunctionalTest.groovy
@@ -0,0 +1,61 @@
+package net.fabricmc.loom
+
+import org.gradle.testkit.runner.GradleRunner
+import org.junit.Rule
+import org.junit.rules.TemporaryFolder
+import spock.lang.Specification
+import spock.lang.Unroll
+
+import static net.fabricmc.loom.BuildUtils.*
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
+
+/**
+ * Created by Mitchell Skaggs on 6/10/2019.
+ */
+class SimpleBuildFunctionalTest extends Specification {
+ @Rule
+ TemporaryFolder testProjectDir = new TemporaryFolder()
+ File settingsFile
+ File buildFile
+ File propsFile
+ File modJsonFile
+ File modExampleFile
+
+ def setup() {
+ settingsFile = testProjectDir.newFile('settings.gradle')
+ buildFile = testProjectDir.newFile('build.gradle')
+ propsFile = testProjectDir.newFile('gradle.properties')
+
+ testProjectDir.newFolder("src", "main", "resources")
+ modJsonFile = testProjectDir.newFile('src/main/resources/fabric.mod.json')
+
+ testProjectDir.newFolder("src", "main", "java", "net", "fabricmc", "example")
+ modExampleFile = testProjectDir.newFile("src/main/java/net/fabricmc/example/ExampleMod.java")
+ }
+
+ @Unroll
+ def "simple build succeeds using Minecraft #mcVersion"() {
+ given:
+ settingsFile << genSettingsFile("simple-build-functional-test")
+ propsFile << genPropsFile(mcVersion, yarnVersion, loaderVersion, fabricVersion)
+ buildFile << genBuildFile()
+ modJsonFile << genModJsonFile()
+ modExampleFile << genModExampleFile()
+
+ when:
+ def result = GradleRunner.create()
+ .withProjectDir(testProjectDir.root)
+ .withArguments('build')
+ .withPluginClasspath()
+ .build()
+
+ then:
+ result.task(":build").outcome == SUCCESS
+
+ where:
+ mcVersion | yarnVersion | loaderVersion | fabricVersion
+ '1.14' | '1.14+build.21' | '0.4.8+build.155' | '0.3.0+build.184'
+ '1.14.1' | '1.14.1+build.10' | '0.4.8+build.155' | '0.3.0+build.184'
+ '1.14.2' | '1.14.2+build.7' | '0.4.8+build.155' | '0.3.0+build.184'
+ }
+}