mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +08:00
[tests] Compare state files as well
This commit is contained in:
parent
71949ec2a0
commit
3d244f308e
@ -533,17 +533,17 @@ function runTestsForFiles (language: string, skeletonPath: string, atlasPath: st
|
||||
saveJsonFiles(testArgs, targetParsed, javaParsed, fixFloats);
|
||||
}
|
||||
|
||||
function verifyOutputsMatch (): void {
|
||||
function verifyOutputsMatch (targetLanguage: string): void {
|
||||
const outputDir = join(SPINE_ROOT, 'tests', 'output');
|
||||
const outputFiles = [
|
||||
'skeleton-data-java-json.json',
|
||||
'skeleton-data-cpp-json.json',
|
||||
'skeleton-state-java-json.json',
|
||||
'skeleton-state-cpp-json.json',
|
||||
'skeleton-data-java-skel.json',
|
||||
'skeleton-data-cpp-skel.json',
|
||||
'skeleton-state-java-skel.json',
|
||||
'skeleton-state-cpp-skel.json'
|
||||
`skeleton-data-java-json.json`,
|
||||
`skeleton-data-${targetLanguage}-json.json`,
|
||||
`skeleton-state-java-json.json`,
|
||||
`skeleton-state-${targetLanguage}-json.json`,
|
||||
`skeleton-data-java-skel.json`,
|
||||
`skeleton-data-${targetLanguage}-skel.json`,
|
||||
`skeleton-state-java-skel.json`,
|
||||
`skeleton-state-${targetLanguage}-skel.json`
|
||||
];
|
||||
|
||||
// Check if all files exist
|
||||
@ -553,28 +553,29 @@ function verifyOutputsMatch (): void {
|
||||
return;
|
||||
}
|
||||
|
||||
log_action('Verifying Java and C++ outputs match');
|
||||
log_action(`Verifying Java and ${targetLanguage} outputs match`);
|
||||
|
||||
const comparisons = [
|
||||
['skeleton-data-java-json.json', 'skeleton-data-cpp-json.json']
|
||||
// TODO: Add binary file comparison once C++ binary parsing is fixed
|
||||
// ['skeleton-data-java-skel.json', 'skeleton-data-cpp-skel.json']
|
||||
[`skeleton-data-java-json.json`, `skeleton-data-${targetLanguage}-json.json`],
|
||||
[`skeleton-state-java-json.json`, `skeleton-state-${targetLanguage}-json.json`],
|
||||
[`skeleton-data-java-skel.json`, `skeleton-data-${targetLanguage}-skel.json`],
|
||||
[`skeleton-state-java-skel.json`, `skeleton-state-${targetLanguage}-skel.json`]
|
||||
];
|
||||
|
||||
let allMatch = true;
|
||||
|
||||
for (const [javaFile, cppFile] of comparisons) {
|
||||
for (const [javaFile, targetFile] of comparisons) {
|
||||
try {
|
||||
const javaContent = execSync(`cat "${join(outputDir, javaFile)}"`, { encoding: 'utf8' });
|
||||
const cppContent = execSync(`cat "${join(outputDir, cppFile)}"`, { encoding: 'utf8' });
|
||||
const targetContent = execSync(`cat "${join(outputDir, targetFile)}"`, { encoding: 'utf8' });
|
||||
|
||||
if (javaContent !== cppContent) {
|
||||
if (javaContent !== targetContent) {
|
||||
allMatch = false;
|
||||
console.error(`\n❌ Files differ: ${javaFile} vs ${cppFile}`);
|
||||
console.error(`\n❌ Files differ: ${javaFile} vs ${targetFile}`);
|
||||
}
|
||||
} catch (error: any) {
|
||||
allMatch = false;
|
||||
console.error(`\n❌ Error comparing ${javaFile} vs ${cppFile}: ${error.message}`);
|
||||
console.error(`\n❌ Error comparing ${javaFile} vs ${targetFile}: ${error.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
@ -582,7 +583,7 @@ function verifyOutputsMatch (): void {
|
||||
log_ok();
|
||||
} else {
|
||||
log_fail();
|
||||
console.error('\n❌ Java and C++ outputs do not match');
|
||||
console.error(`\n❌ Java and ${targetLanguage} outputs do not match`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
@ -616,10 +617,8 @@ function main (): void {
|
||||
log_detail(`JSON files saved to: ${join(SPINE_ROOT, 'tests', 'output')}`);
|
||||
}
|
||||
|
||||
// Verify outputs match if we're testing C++
|
||||
if (args.language === 'cpp') {
|
||||
verifyOutputsMatch();
|
||||
}
|
||||
// Verify outputs match
|
||||
verifyOutputsMatch(args.language);
|
||||
}
|
||||
|
||||
if (import.meta.url === `file://${process.argv[1]}`) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user