diff options
| author | Mitchell Skaggs <skaggsm333@gmail.com> | 2019-06-15 16:28:37 -0500 |
|---|---|---|
| committer | Mitchell Skaggs <skaggsm333@gmail.com> | 2019-06-15 16:28:37 -0500 |
| commit | c0a58d1bc7d2860ea9c5a94263f9930475c08d08 (patch) | |
| tree | a2efd85c1c68e0e3411623f3c2d39a2dc0c8bea5 /src/test/groovy | |
| parent | 52814a5b7bb673aa14cffd4a2b38dceff5395cef (diff) | |
| download | architectury-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.groovy | 65 | ||||
| -rw-r--r-- | src/test/groovy/net/fabricmc/loom/SimpleBuildFunctionalTest.groovy | 61 |
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' + } +} |
