diff --git a/tests/src/headless-test-runner.ts b/tests/src/headless-test-runner.ts index 1bc763ea5..29d6a88d1 100755 --- a/tests/src/headless-test-runner.ts +++ b/tests/src/headless-test-runner.ts @@ -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]}`) {