aboutsummaryrefslogtreecommitdiff
path: root/src/test/groovy
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-11-20 21:46:33 +0000
committerGitHub <noreply@github.com>2021-11-20 21:46:33 +0000
commitbabbc555869c0a9cba90cbcac7dcba241ee62099 (patch)
tree0f0eddb38134183ff12c32b4e28a475a6d19c45d /src/test/groovy
parent9c2b1e8d6ddd3ac97a67343100fc7a9c35b7c625 (diff)
downloadarchitectury-loom-babbc555869c0a9cba90cbcac7dcba241ee62099.tar.gz
architectury-loom-babbc555869c0a9cba90cbcac7dcba241ee62099.tar.bz2
architectury-loom-babbc555869c0a9cba90cbcac7dcba241ee62099.zip
Add an option (enabled by default) to map synthetic field and method names from the official mojang mappings. (#538)
Diffstat (limited to 'src/test/groovy')
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/integration/MojangMappingsProjectTest.groovy26
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy8
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/MojangMappingLayerTest.groovy33
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/ParchmentMappingLayerTest.groovy4
4 files changed, 62 insertions, 9 deletions
diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/MojangMappingsProjectTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/MojangMappingsProjectTest.groovy
index f1a46a82..6afba527 100644
--- a/src/test/groovy/net/fabricmc/loom/test/integration/MojangMappingsProjectTest.groovy
+++ b/src/test/groovy/net/fabricmc/loom/test/integration/MojangMappingsProjectTest.groovy
@@ -48,4 +48,30 @@ class MojangMappingsProjectTest extends Specification implements GradleProjectTe
where:
version << STANDARD_TEST_VERSIONS
}
+
+ @Unroll
+ def "mojang mappings without synthetic field names (gradle #version)"() {
+ setup:
+ def gradle = gradleProject(project: "minimalBase", version: version)
+
+ gradle.buildGradle << '''
+ dependencies {
+ minecraft "com.mojang:minecraft:1.18-pre5"
+ mappings loom.layered {
+ officialMojangMappings {
+ nameSyntheticMembers = false
+ }
+ }
+ }
+ '''
+
+ when:
+ def result = gradle.run(task: "build")
+
+ then:
+ result.task(":build").outcome == SUCCESS
+
+ where:
+ version << STANDARD_TEST_VERSIONS
+ }
}
diff --git a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy
index 743ddc5a..57850515 100644
--- a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy
+++ b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy
@@ -42,7 +42,7 @@ class LayeredMappingSpecBuilderTest extends Specification {
}
def layers = spec.layers()
then:
- spec.version == "layered+hash.961"
+ spec.version == "layered+hash.2192"
layers.size() == 2
layers[0].class == IntermediaryMappingsSpec
layers[1].class == MojangMappingsSpec
@@ -57,7 +57,7 @@ class LayeredMappingSpecBuilderTest extends Specification {
def layers = spec.layers()
def parchment = layers[2] as ParchmentMappingsSpec
then:
- spec.version == "layered+hash.863714404"
+ spec.version == "layered+hash.863752565"
layers.size() == 3
layers[0].class == IntermediaryMappingsSpec
layers[1].class == MojangMappingsSpec
@@ -77,7 +77,7 @@ class LayeredMappingSpecBuilderTest extends Specification {
def layers = spec.layers()
def parchment = layers[2] as ParchmentMappingsSpec
then:
- spec.version == "layered+hash.863714410"
+ spec.version == "layered+hash.863752571"
layers.size() == 3
layers[0].class == IntermediaryMappingsSpec
layers[1].class == MojangMappingsSpec
@@ -97,7 +97,7 @@ class LayeredMappingSpecBuilderTest extends Specification {
def layers = spec.layers()
def parchment = layers[2] as ParchmentMappingsSpec
then:
- spec.version == "layered+hash.1144465487"
+ spec.version == "layered+hash.1144427326"
layers.size() == 3
layers[0].class == IntermediaryMappingsSpec
layers[1].class == MojangMappingsSpec
diff --git a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/MojangMappingLayerTest.groovy b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/MojangMappingLayerTest.groovy
index 87eca55c..aad3661a 100644
--- a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/MojangMappingLayerTest.groovy
+++ b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/MojangMappingLayerTest.groovy
@@ -25,17 +25,17 @@
package net.fabricmc.loom.test.unit.layeredmappings
import net.fabricmc.loom.configuration.providers.mappings.intermediary.IntermediaryMappingsSpec
-import net.fabricmc.loom.configuration.providers.mappings.mojmap.MojangMappingsSpec
+import net.fabricmc.loom.configuration.providers.mappings.mojmap.MojangMappingsSpecBuilderImpl
class MojangMappingLayerTest extends LayeredMappingsSpecification {
- def "Read mojang mappings" () {
+ def "Read mojang mappings with synthetic field names" () {
setup:
mockMappingsProvider.intermediaryTinyFile() >> extractFileFromZip(downloadFile(INTERMEDIARY_1_17_URL, "intermediary.jar"), "mappings/mappings.tiny")
mockMinecraftProvider.getVersionInfo() >> VERSION_META_1_17
when:
def mappings = getLayeredMappings(
new IntermediaryMappingsSpec(),
- new MojangMappingsSpec()
+ buildMojangMappingsSpec(true)
)
def tiny = getTiny(mappings)
then:
@@ -45,5 +45,32 @@ class MojangMappingLayerTest extends LayeredMappingsSpecification {
mappings.classes[0].srcName.hashCode() == 1869546970 // MojMap name, just check the hash
mappings.classes[0].getDstName(0) == "net/minecraft/class_2354"
mappings.classes[0].methods[0].args.size() == 0 // No Args
+ tiny.contains('this$0')
+ }
+
+ def "Read mojang mappings without synthetic field names" () {
+ setup:
+ mockMappingsProvider.intermediaryTinyFile() >> extractFileFromZip(downloadFile(INTERMEDIARY_1_17_URL, "intermediary.jar"), "mappings/mappings.tiny")
+ mockMinecraftProvider.getVersionInfo() >> VERSION_META_1_17
+ when:
+ def mappings = getLayeredMappings(
+ new IntermediaryMappingsSpec(),
+ buildMojangMappingsSpec(false)
+ )
+ def tiny = getTiny(mappings)
+ then:
+ mappings.srcNamespace == "named"
+ mappings.dstNamespaces == ["intermediary", "official"]
+ mappings.classes.size() == 6113
+ mappings.classes[0].srcName.hashCode() == 1869546970 // MojMap name, just check the hash
+ mappings.classes[0].getDstName(0) == "net/minecraft/class_2354"
+ mappings.classes[0].methods[0].args.size() == 0 // No Args
+ !tiny.contains('this$0')
+ }
+
+ static def buildMojangMappingsSpec(boolean nameSyntheticFields) {
+ def builder = MojangMappingsSpecBuilderImpl.builder()
+ builder.setNameSyntheticMembers(nameSyntheticFields)
+ return builder.build()
}
}
diff --git a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/ParchmentMappingLayerTest.groovy b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/ParchmentMappingLayerTest.groovy
index 73e2a259..2c3dc3dc 100644
--- a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/ParchmentMappingLayerTest.groovy
+++ b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/ParchmentMappingLayerTest.groovy
@@ -38,7 +38,7 @@ class ParchmentMappingLayerTest extends LayeredMappingsSpecification {
withMavenFile(PARCHMENT_NOTATION, downloadFile(PARCHMENT_URL, "parchment.zip"))
def mappings = getLayeredMappings(
new IntermediaryMappingsSpec(),
- new MojangMappingsSpec(),
+ new MojangMappingsSpec(true),
new ParchmentMappingsSpec(FileSpec.create(PARCHMENT_NOTATION), false)
)
def tiny = getTiny(mappings)
@@ -61,7 +61,7 @@ class ParchmentMappingLayerTest extends LayeredMappingsSpecification {
withMavenFile(PARCHMENT_NOTATION, downloadFile(PARCHMENT_URL, "parchment.zip"))
def mappings = getLayeredMappings(
new IntermediaryMappingsSpec(),
- new MojangMappingsSpec(),
+ new MojangMappingsSpec(true),
new ParchmentMappingsSpec(FileSpec.create(PARCHMENT_NOTATION), true)
)
def tiny = getTiny(mappings)