-
Notifications
You must be signed in to change notification settings - Fork 14
Regression Testing
Mike Harder edited this page Oct 7, 2025
·
3 revisions
Small app to run two versions of avocado against the specs repo, and report any folders with different results.
{
"type": "module",
"dependencies": {
"@azure/avocado": "^0.10.2",
"avocado-private": "file://home/mharder/avocado-mh/azure-avocado-0.10.3.tgz",
"glob": "^11.0.3",
"p-limit": "^7.1.1"
}
}import avocado from "@azure/avocado";
import assert from "assert";
import avocadoPrivate from "avocado-private";
import { globSync } from "glob";
import pLimit from "p-limit";
const rootDir = "/home/mharder/specs/specification";
const dirs = globSync(`${rootDir}/**/data-plane`).sort();
console.log(dirs);
// TODO: Use worker_threads for multi-core perf improvement
const limit = pLimit(16);
await limit.map(dirs, async (dir) => {
const cwd = dir;
const env = {};
const args = {
excludePaths: ["(?=/examples/)(?!(?:/stable/|/preview/))"],
};
const results = await avocado.avocado({ cwd, env, args }).toArray();
// console.log(results);
const resultsPrivate = await avocadoPrivate
.avocado({ cwd, env, args })
.toArray();
// console.log(resultsPrivate);
try {
assert.deepStrictEqual(results, resultsPrivate);
console.log(`[${dir}] PASS`);
} catch (error) {
console.log(
`[${dir}] FAIL (expected: ${results.length}, actual: ${resultsPrivate.length})`
);
}
});