diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-26 15:24:03 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-26 15:24:03 +0100 |
| commit | dd46fef443bacee1f17bca2a234a13a12c0ca3fa (patch) | |
| tree | dc38400666d019a85bea4cf10e86c23b4c9a9e18 | |
| parent | 334fa19478b683c21c0f4a09ba9d982c5122d366 (diff) | |
Write java-transient-0 output
3 files changed, 29 insertions, 0 deletions
diff --git a/examples/11-transient-0/output/java/.gitignore b/examples/11-transient-0/output/java/.gitignore index ff511d4..2fcf0b8 100644 --- a/examples/11-transient-0/output/java/.gitignore +++ b/examples/11-transient-0/output/java/.gitignore @@ -1,2 +1,3 @@ /src/gen/ /target/ +/transient-0/ diff --git a/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java index 6bab165..610532e 100644 --- a/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java +++ b/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java @@ -5,6 +5,8 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -35,6 +37,7 @@ public class Transient0Tests { var value = new StructWithBool(true, false); assertRoundTripEncoding( + "StructWithBool", value, HobgoblinTransient0Data::encodeStructWithBool, HobgoblinTransient0Data::decodeStructWithBool @@ -46,6 +49,7 @@ public class Transient0Tests { var value = new StructWithInt32(10, 25); assertRoundTripEncoding( + "StructWithInt32", value, HobgoblinTransient0Data::encodeStructWithInt32, HobgoblinTransient0Data::decodeStructWithInt32 @@ -57,6 +61,7 @@ public class Transient0Tests { var value = new StructWithInt64(10, 25); assertRoundTripEncoding( + "StructWithInt64", value, HobgoblinTransient0Data::encodeStructWithInt64, HobgoblinTransient0Data::decodeStructWithInt64 @@ -68,6 +73,7 @@ public class Transient0Tests { var value = new StructWithString("abc", "def"); assertRoundTripEncoding( + "StructWithString", value, HobgoblinTransient0Data::encodeStructWithString, HobgoblinTransient0Data::decodeStructWithString @@ -79,6 +85,7 @@ public class Transient0Tests { var value = new StructWithStruct(new StructWithInt32(10, 25), 42); assertRoundTripEncoding( + "StructWithStruct", value, HobgoblinTransient0Data::encodeStructWithStruct, HobgoblinTransient0Data::decodeStructWithStruct @@ -97,6 +104,7 @@ public class Transient0Tests { ); assertRoundTripEncoding( + "StructWithList", value, HobgoblinTransient0Data::encodeStructWithList, HobgoblinTransient0Data::decodeStructWithList @@ -111,6 +119,7 @@ public class Transient0Tests { ); assertRoundTripEncoding( + "StructWithOption_None", value, HobgoblinTransient0Data::encodeStructWithOption, HobgoblinTransient0Data::decodeStructWithOption @@ -125,6 +134,7 @@ public class Transient0Tests { ); assertRoundTripEncoding( + "StructWithOption_Some", value, HobgoblinTransient0Data::encodeStructWithOption, HobgoblinTransient0Data::decodeStructWithOption @@ -134,18 +144,21 @@ public class Transient0Tests { @Test public void enumWithVariants() throws IOException { assertRoundTripEncoding( + "EnumWithVariants_zero", EnumWithVariants.ZERO, HobgoblinTransient0Data::encodeEnumWithVariants, HobgoblinTransient0Data::decodeEnumWithVariants ); assertRoundTripEncoding( + "EnumWithVariants_one", EnumWithVariants.ONE, HobgoblinTransient0Data::encodeEnumWithVariants, HobgoblinTransient0Data::decodeEnumWithVariants ); assertRoundTripEncoding( + "EnumWithVariants_two", EnumWithVariants.TWO, HobgoblinTransient0Data::encodeEnumWithVariants, HobgoblinTransient0Data::decodeEnumWithVariants @@ -160,6 +173,7 @@ public class Transient0Tests { ); assertRoundTripEncoding( + "StructWithEnum", value, HobgoblinTransient0Data::encodeStructWithEnum, HobgoblinTransient0Data::decodeStructWithEnum @@ -169,12 +183,14 @@ public class Transient0Tests { @Test public void sumWithVariants() throws IOException { assertRoundTripEncoding( + "SumWithVariants_VariantOne", new VariantOne(10), HobgoblinTransient0Data::encodeSumWithVariants, HobgoblinTransient0Data::decodeSumWithVariants ); assertRoundTripEncoding( + "SumWithVariants_VariantTwo", new VariantTwo(25), HobgoblinTransient0Data::encodeSumWithVariants, HobgoblinTransient0Data::decodeSumWithVariants @@ -189,6 +205,7 @@ public class Transient0Tests { ); assertRoundTripEncoding( + "StructWithSum", value, HobgoblinTransient0Data::encodeStructWithSum, HobgoblinTransient0Data::decodeStructWithSum @@ -203,6 +220,7 @@ public class Transient0Tests { var value = new StructWithListOfShared(List.of(a, a, b, a, b)); var decodedValue = assertRoundTripEncoding( + "StructWithListOfShared", value, HobgoblinTransient0Data::encodeStructWithListOfShared, HobgoblinTransient0Data::decodeStructWithListOfShared @@ -221,6 +239,7 @@ public class Transient0Tests { var value = new StructWithDifferentSharedTypes(a, b, c); assertRoundTripEncoding( + "StructWithDifferentSharedTypes", value, HobgoblinTransient0Data::encodeStructWithDifferentSharedTypes, HobgoblinTransient0Data::decodeStructWithDifferentSharedTypes @@ -238,6 +257,7 @@ public class Transient0Tests { var value = new StructWithSharedSumAndVariant(a, a); assertRoundTripEncoding( + "StructWithSharedSumAndVariant", value, HobgoblinTransient0Data::encodeStructWithSharedSumAndVariant, HobgoblinTransient0Data::decodeStructWithSharedSumAndVariant @@ -245,6 +265,7 @@ public class Transient0Tests { } private <T> T assertRoundTripEncoding( + String name, T value, Encoder<T> encoder, Decoder<T> decoder @@ -254,6 +275,12 @@ public class Transient0Tests { encoder.encode(value, outputStream, new HashMap<>()); var bytes = outputStream.toByteArray(); + var outputDir = System.getenv("HOBGOBLIN_OUTPUT_DIR"); + var transient0OutputDir = Path.of(outputDir).resolve("transient-0"); + Files.createDirectories(transient0OutputDir); + var transient0OutputPath = transient0OutputDir.resolve(name); + Files.write(transient0OutputPath, bytes); + var inputStream = new ByteArrayInputStream(bytes); var decodedValue = decoder.decode(inputStream, new ArrayList<>()); diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java index 73b611a..cc5e19c 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java @@ -61,6 +61,7 @@ public class ExampleTests { try { TestProcessRunner.command(command) .cwd(outputPath) + .addEnvVar("HOBGOBLIN_OUTPUT_DIR", outputPath.toAbsolutePath().toString()) .runCaptureOutput() .throwOnError(); writeLastTestRun(lastTestRunPath, new LastTestRun(currentHash, true)); |
