Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1504 I aim to consume this via a github action or workflow. Separating out the CI configuration from the actual script. We could and should maybe change this script to take in arguments for the test dirs so it is more configurable, but getting the barebones down right now. Reviewed By: NickGerleman Differential Revision: D51999865 fbshipit-source-id: 5792c6eec5692943518fecefc6226d784c6f0ad8
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
import * as fs from 'node:fs/promises';
|
|
import {dirname} from 'path';
|
|
import {fileURLToPath} from 'url';
|
|
import signedsource from 'signedsource';
|
|
|
|
const yogaDir = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
const cppTestDir = `${yogaDir}/tests/generated`;
|
|
const jsTestDir = `${yogaDir}/javascript/tests/generated`;
|
|
const javaTestDir = `${yogaDir}/java/tests/com/facebook/yoga`;
|
|
const testDirs = [cppTestDir, jsTestDir, javaTestDir];
|
|
|
|
for (const testDir of testDirs) {
|
|
const tests = await fs.readdir(testDir);
|
|
|
|
for (const test of tests) {
|
|
const testData = await fs.readFile(`${testDir}/${test}`, 'utf8');
|
|
try {
|
|
const validSignature = signedsource.verifySignature(testData);
|
|
if (!validSignature) {
|
|
console.error(`Invalid signature for ${test}`);
|
|
process.exitCode = 1;
|
|
}
|
|
} catch (e) {
|
|
// Java test dir does not separate generated tests from non-generated ones
|
|
if (testDir != javaTestDir) {
|
|
console.error(`${test}: ${e}`);
|
|
process.exitCode = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|