31 Commits

Author SHA1 Message Date
Mario Zechner
108f9bf355 [haxe] Plan for serializer generator 2025-07-26 09:19:10 +02:00
Mario Zechner
d2c9442612 [tests] Use sanitizers for C++ 2025-07-26 01:27:04 +02:00
Mario Zechner
691f55a315 [cpp] Temporarily remove IK bendDirection fix in SkeletonBinary 2025-07-26 00:54:39 +02:00
Mario Zechner
73da9ff5e3 [tests] Added Docker based testing script to also be able to test on Linux. 2025-07-26 00:24:28 +02:00
Mario Zechner
3d244f308e [tests] Compare state files as well 2025-07-25 17:12:51 +02:00
Mario Zechner
71949ec2a0 [test] cpp serializer generator needs to emit writeXXX(const <Type> &value) for type switching methods like writeVertexAttachments 2025-07-25 16:11:21 +02:00
Mario Zechner
3f1339eb4e [tests] Fix format script 2025-07-24 20:00:25 +02:00
Mario Zechner
a018a3d7e9 [cpp] Fix _boneIndex initialization in constructors 2025-07-24 14:40:36 +02:00
Mario Zechner
003e5a4d78 [c] Fix handling of PropertyId arrays 2025-07-24 00:37:13 +02:00
Mario Zechner
235aa7b928 [tests] No explicit skeleton.setupPose() call. 2025-07-22 02:09:01 +02:00
Mario Zechner
6f81d43faa [cpp] Enhance circular reference display with deterministic object identifiers
Replace "<circular>" with meaningful reference strings using a hybrid approach:
- Objects with names: <EventData-walk>, <BoneData-head>, <Animation-run>
- Objects without names: <TrackEntry-1>, <Bone-2>, <SliderTimeline-3>

Each serialized object now includes "refString" as its first field, enabling
easy navigation from circular references to full object definitions.
2025-07-22 02:09:01 +02:00
Mario Zechner
ce1fec0cb0 Remove diff output from test runner - only report file differences
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 12:11:15 +02:00
Mario Zechner
970831044c Disable binary file comparison for now - focus on JSON compatibility
C++ binary parsing has major issues that need separate investigation.
JSON compatibility is working correctly.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 03:35:26 +02:00
Mario Zechner
b171e10da6 Fix test runner to properly detect and build fat jar
- Look specifically for spine-headless-test-*.jar instead of any jar
- Ensures fat jar with all dependencies gets built and used
- Revert workflow to let test runner handle jar building

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 02:50:38 +02:00
Mario Zechner
ab469cbefd [tests] headless-test-runner.ts with language specific fixes (e.g. icon: null (Java) > icon: "" (C++), C++ JSON will have null as well) 2025-07-21 00:58:43 +02:00
Mario Zechner
f2fced8bf8 Fix logging in various Bash scripts 2025-07-20 21:35:19 +02:00
Mario Zechner
d409ff23ff Fix format-xx.sh files wrt logging, add proper Swift formatting configuration. 2025-07-20 21:31:07 +02:00
Mario Zechner
0dd86dfdc1 Consistent logging in all Bash scripts via formatters/logging/logging.sh 2025-07-20 20:45:54 +02:00
Mario Zechner
c79031cc75 Remove npx install prompts and rely on auto-download
- Use npx -y for tsx to avoid install prompts
- Remove tsx from devDependencies since we use npx
- Remove npm install checks from format-ts.sh
2025-07-16 05:05:33 +02:00
Mario Zechner
46e38c0356 [ts] Use correct typescript-formatter package 2025-07-16 00:02:29 +02:00
Mario Zechner
8eb9ba957b [ts] Update main dependencies, add formatting script, add Biome for linting, temporary commit 2025-07-15 23:56:33 +02:00
Mario Zechner
4d45abbcf3 [tests] Fix up output paths, lsp-cli invocation 2025-07-15 16:22:45 +02:00
Mario Zechner
0c74907da2 [tests] Improve snapshot testing infrastructure
- test.sh which given a language builds the headless test executable and runs the test with the given inputs
- generate-serializers.sh to (re-)generate all language specific serializers
- Improved README.md
- Removed headless-test-runner.ts, now fully expressed in more concise test.sh
2025-07-15 15:13:45 +02:00
Mario Zechner
bd5b032619 [tests] ir-based serializer generator for C++ 2025-07-13 04:23:57 +02:00
Mario Zechner
4bf777a658 [tests] serializer ir generator, ir-based java serializer generator 2025-07-13 03:31:20 +02:00
Mario Zechner
102b030db3 [tests] More improvements to serializer generator. 2025-07-13 02:52:50 +02:00
Mario Zechner
429ed9dd3b [tests] Complete C++ SkeletonSerializer auto-generation from Java
- Implement comprehensive C++ serializer generator (tests/generate-cpp-serializer.ts)
- Direct transformation of Java SkeletonSerializer to C++ header-only implementation
- Handle all C++-specific API differences:
  * Field access patterns (obj.field → obj->field, private fields → obj->_field)
  * Null check removal for reference-returning methods (getBones, getEdges)
  * Nested array null check elimination (getVertices, getDrawOrders)
  * Enum serialization via switch statements replacing .name() calls
  * Custom function replacement system for C++-specific implementations
- Add specialized C++ implementations:
  * writeColor: handle public Color fields (r,g,b,a without underscore)
  * writeSkin: iterate AttachmentMap::Entries and call writeSkinEntry
  * writeSkinEntry: handle AttachmentMap::Entry instead of Java SkinEntry
- Auto-generate both pointer and reference versions of all write methods
- Create JsonWriter.h as header-only port of Java JsonWriter
- Update HeadlessTest.cpp to use generated SkeletonSerializer
- Add comprehensive type analysis and enum mapping from analysis-result.json
- Implement exclusion system for filtering unwanted types/methods
- Fix Java generator nested array null checks that were incorrectly hardcoded

Generated C++ serializer produces identical JSON output to Java reference implementation.
2025-07-13 02:06:44 +02:00
Mario Zechner
3183c0b383 [tests] Auto-generation of Java SkeletonSerializer 2025-07-12 02:24:14 +02:00
Mario Zechner
73a17e88c9 [tests] DebugPrinter -> HeadlessTest 2025-07-11 14:16:24 +02:00
Mario Zechner
d973417106 [tests] Fix locale in all debug printers, add tests/README.md, build if sources changed in compare-with-reference-impl.ts 2025-07-11 13:17:15 +02:00
Mario Zechner
4e3d2be023 [c][cpp][libgdx] Launch configs for debug-printer 2025-07-11 12:33:02 +02:00