aboutsummaryrefslogtreecommitdiff
path: root/src/test/groovy/net
diff options
context:
space:
mode:
authorLogicFan <38597904+LogicFan@users.noreply.github.com>2021-07-18 09:13:47 -0400
committerGitHub <noreply@github.com>2021-07-18 14:13:47 +0100
commit81fa551382d9c7016f769014ed56d119a3d676ed (patch)
treebd87e8c82a2d7779f6cae7ed093860255af1836f /src/test/groovy/net
parentb4ac68825f4120dd689d6032c6381780cf8181b0 (diff)
downloadarchitectury-loom-81fa551382d9c7016f769014ed56d119a3d676ed.tar.gz
architectury-loom-81fa551382d9c7016f769014ed56d119a3d676ed.tar.bz2
architectury-loom-81fa551382d9c7016f769014ed56d119a3d676ed.zip
Better Mixin AP configuration (#423)
* [SPON-15] Apply Mixin AP config for all projects. * Revert "[SPON-15] Apply Mixin AP config for all projects." This reverts commit 93576e83b1221949d551b6307938f7dd6dc8fbbe. * use setter & getter * fix broken test introduced in 54d6ef7896f22f89d6594703d09e3195c814cf10 * initial commit for mixin extension * refactor getConfiguration * apply mixin extension * [SPON-15] allow across project AP config * [SPON-15] revert some changes * [SPON-15] refactor codes * [SPON-15] fix bugs * [SPON-15] bring back cross-project apconfig * [SPON-15] bug fix: move add default sourceSet earlier * [SPON-15] fix style * [SPON-15] refactor MixinAPExtension * add test * update test * [SPON-15] fix test * Update MixinAnnotationProcessorExtension.java * [SPON-15] fix test * fix deprecated gradle API * [SPON-15] refactor ApInvoker * [SPON-15] refactor ApInvoker * allow change refmap name in sourceSet bases * add new condition on test * [SPON-15] fix wrong suffix * Revert "[SPON-15] fix wrong suffix" This reverts commit 98910392d91c26cd0454cca8cfc03c4e3d417fd6. * fix mixinjson suffix * use stream instead of collection for mixin json name * change name for function * use correct auto-refmap * fix file name * add with action * add test * refactor some codes * refactor code * update test * fix checkstyle * better error message * fix checkstyle * remove corss project option * allow mixin inside loom * remove project0 I should remove all project0. If I forget one please tell me. * move `mixin` inside `loom` * fix spotless * merge attempt * fix checkstyle * seperate api & impl * add experimental annotation for API * use API * Fix indentation Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> * fix typo Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> * fix typo Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> * better javadoc Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
Diffstat (limited to 'src/test/groovy/net')
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/integration/MixinApAutoRefmapTest.groovy73
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/integration/MixinApSimpleTest.groovy63
2 files changed, 136 insertions, 0 deletions
diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/MixinApAutoRefmapTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/MixinApAutoRefmapTest.groovy
new file mode 100644
index 00000000..80ed7c86
--- /dev/null
+++ b/src/test/groovy/net/fabricmc/loom/test/integration/MixinApAutoRefmapTest.groovy
@@ -0,0 +1,73 @@
+/*
+ * This file is part of fabric-loom, licensed under the MIT License (MIT).
+ *
+ * Copyright (c) 2016-2017 FabricMC
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package net.fabricmc.loom.test.integration
+
+import net.fabricmc.loom.test.util.ProjectTestTrait
+import spock.lang.Specification
+import spock.lang.Unroll
+import com.google.gson.JsonParser;
+import java.util.jar.JarFile
+
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
+
+class MixinApAutoRefmapTest extends Specification implements ProjectTestTrait {
+ @Override
+ String name() {
+ "mixinApAutoRefmap"
+ }
+
+ @Unroll
+ def "build (gradle #gradle)"() {
+ when:
+ def result = create("build", gradle)
+
+ then:
+ result.task(":build").outcome == SUCCESS
+
+ // verify the ref-map name is correctly generated
+ def jar = new JarFile(getOutputFile("fabric-example-mod-1.0.0-universal.jar").absoluteFile)
+ jar.getEntry("refmap0000.json") == null
+ jar.getEntry("refmap0001.json") != null
+ jar.getEntry("refmap0002.json") != null
+ jar.getEntry("refmap0003.json") != null
+
+ def j1 = JsonParser.parseReader(new InputStreamReader(jar.getInputStream(jar.getEntry("main.mixins.json"))))
+ j1.asJsonObject.getAsJsonPrimitive("refmap").getAsString() == "refmap0001.json"
+
+ def j2 = JsonParser.parseReader(new InputStreamReader(jar.getInputStream(jar.getEntry("m0.mixins.json"))))
+ j2.asJsonObject.getAsJsonPrimitive("refmap").getAsString() == "refmap0002.json"
+
+ def j3 = JsonParser.parseReader(new InputStreamReader(jar.getInputStream(jar.getEntry("m1_1.mixins.json"))))
+ j3.asJsonObject.getAsJsonPrimitive("refmap").getAsString() == "refmap0003.json"
+
+ def j4 = JsonParser.parseReader(new InputStreamReader(jar.getInputStream(jar.getEntry("m1_2.mixins.json"))))
+ !j4.asJsonObject.has("refmap")
+
+ where:
+ gradle | _
+ DEFAULT_GRADLE | _
+ PRE_RELEASE_GRADLE | _
+ }
+}
diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/MixinApSimpleTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/MixinApSimpleTest.groovy
new file mode 100644
index 00000000..793915e3
--- /dev/null
+++ b/src/test/groovy/net/fabricmc/loom/test/integration/MixinApSimpleTest.groovy
@@ -0,0 +1,63 @@
+/*
+ * This file is part of fabric-loom, licensed under the MIT License (MIT).
+ *
+ * Copyright (c) 2016-2017 FabricMC
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package net.fabricmc.loom.test.integration
+
+import net.fabricmc.loom.test.util.ProjectTestTrait
+import spock.lang.Specification
+import spock.lang.Unroll
+
+import java.util.jar.JarFile
+
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
+
+class MixinApSimpleTest extends Specification implements ProjectTestTrait {
+ @Override
+ String name() {
+ "mixinApSimple"
+ }
+
+ @Unroll
+ def "build (gradle #gradle)"() {
+ when:
+ def result = create("build", gradle)
+
+ then:
+ result.task(":build").outcome == SUCCESS
+
+ // verify the ref-map name is correctly generated
+ def main = new JarFile(getOutputFile("fabric-example-mod-1.0.0-dev.jar").absoluteFile)
+ main.getEntry("main-refmap0000.json") != null
+ def mixin = new JarFile(getOutputFile("fabric-example-mod-1.0.0-mixin.jar").absoluteFile)
+ mixin.getEntry("default-refmap0000.json") != null
+ def mixin1 = new JarFile(getOutputFile("fabric-example-mod-1.0.0-mixin1.jar").absoluteFile)
+ mixin1.getEntry("main-refmap0000.json") == null
+ mixin1.getEntry("default-refmap0000.json") == null
+
+ where:
+ gradle | _
+ DEFAULT_GRADLE | _
+ PRE_RELEASE_GRADLE | _
+ }
+}