mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-29 20:14:01 +00:00
[js/web] deduplicate test cases between opsets (#9327)
* [js/web] deduplicate test cases between opsets * fix eslint error
This commit is contained in:
parent
fb31701f7e
commit
1527af3e30
3 changed files with 73 additions and 30 deletions
57
js/web/package-lock.json
generated
57
js/web/package-lock.json
generated
|
|
@ -911,6 +911,12 @@
|
|||
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-equal": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
|
||||
"integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
||||
|
|
@ -1064,9 +1070,9 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
|
|
@ -1513,6 +1519,16 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"dir-compare": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz",
|
||||
"integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-equal": "^1.0.0",
|
||||
"minimatch": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"dir-glob": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
||||
|
|
@ -2820,9 +2836,9 @@
|
|||
}
|
||||
},
|
||||
"jszip": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz",
|
||||
"integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==",
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz",
|
||||
"integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lie": "~3.3.0",
|
||||
|
|
@ -3480,9 +3496,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"normalize-url": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
|
||||
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
|
||||
"version": "4.5.1",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
|
||||
"dev": true
|
||||
},
|
||||
"npm-conf": {
|
||||
|
|
@ -3699,9 +3715,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"path-parse": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
|
||||
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
},
|
||||
"path-type": {
|
||||
|
|
@ -5133,9 +5149,9 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
|
|
@ -5197,9 +5213,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"ws": {
|
||||
"version": "7.4.4",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz",
|
||||
"integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==",
|
||||
"version": "7.4.6",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
|
||||
"integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
|
||||
"dev": true
|
||||
},
|
||||
"xtend": {
|
||||
|
|
@ -5237,8 +5253,7 @@
|
|||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"resolved": "",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
|
|
@ -5304,4 +5319,4 @@
|
|||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,10 +44,11 @@
|
|||
"@types/npmlog": "^4.1.2",
|
||||
"@types/platform": "^1.3.3",
|
||||
"chai": "^4.3.4",
|
||||
"dir-compare": "^3.3.0",
|
||||
"electron": "^12.0.2",
|
||||
"fs-extra": "^9.1.0",
|
||||
"globby": "^11.0.3",
|
||||
"jszip": "^3.6.0",
|
||||
"jszip": "^3.7.1",
|
||||
"karma": "^6.3.2",
|
||||
"karma-browserstack-launcher": "^1.6.0",
|
||||
"karma-chai": "^0.1.0",
|
||||
|
|
@ -78,4 +79,4 @@
|
|||
"unpkg": "dist/ort.min.js",
|
||||
"module": "./lib/index.js",
|
||||
"browser": "dist/ort-web.min.js"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Licensed under the MIT License.
|
||||
|
||||
import {spawnSync} from 'child_process';
|
||||
import {compareSync} from 'dir-compare';
|
||||
import * as fs from 'fs-extra';
|
||||
import minimist from 'minimist';
|
||||
import npmlog from 'npmlog';
|
||||
|
|
@ -12,18 +13,21 @@ const DEPS_ONNX = path.join(ROOT, 'cmake', 'external', 'onnx');
|
|||
const TEST_DATA_ROOT = path.join(__dirname, '..', 'test', 'data');
|
||||
const TEST_DATA_NODE = path.join(TEST_DATA_ROOT, 'node');
|
||||
|
||||
const TEST_DATA_OPSET_VERSIONS = [
|
||||
['v12', 'rel-1.7.0'],
|
||||
['v11', 'rel-1.6.1'],
|
||||
['v10', 'rel-1.5.0'],
|
||||
['v9', 'rel-1.4.1'],
|
||||
['v8', 'rel-1.3.0'],
|
||||
['v7', 'rel-1.2.3'],
|
||||
];
|
||||
|
||||
const args = minimist(process.argv);
|
||||
// prepare test data only when eiter flag '-f' or '--force' is specified, or the folder does not exist.
|
||||
if (args.f || args.force || !fs.existsSync(TEST_DATA_NODE)) {
|
||||
npmlog.info('PrepareTestData', 'Preparing node tests ...');
|
||||
fs.removeSync(TEST_DATA_NODE);
|
||||
[['v7', 'rel-1.2.3'],
|
||||
['v8', 'rel-1.3.0'],
|
||||
['v9', 'rel-1.4.1'],
|
||||
['v10', 'rel-1.5.0'],
|
||||
['v11', 'rel-1.6.1'],
|
||||
['v12', 'rel-1.7.0'],
|
||||
].forEach(v => {
|
||||
TEST_DATA_OPSET_VERSIONS.forEach(v => {
|
||||
const version = v[0];
|
||||
const commit = v[1];
|
||||
npmlog.info('PrepareTestData', `Checking out deps/onnx ${commit}...`);
|
||||
|
|
@ -49,4 +53,27 @@ if (args.f || args.force || !fs.existsSync(TEST_DATA_NODE)) {
|
|||
process.exit(update.status === null ? undefined : update.status);
|
||||
}
|
||||
npmlog.info('PrepareTestData', 'Revert git index... DONE');
|
||||
|
||||
npmlog.info('PrepareTestData', 'Deduplicating test cases...');
|
||||
for (let i = 0; i < TEST_DATA_OPSET_VERSIONS.length - 1; i++) {
|
||||
const currentVersion = TEST_DATA_OPSET_VERSIONS[i][0];
|
||||
const currentFolder = path.join(TEST_DATA_NODE, currentVersion);
|
||||
const previousVersion = TEST_DATA_OPSET_VERSIONS[i + 1][0];
|
||||
const previousFolder = path.join(TEST_DATA_NODE, previousVersion);
|
||||
|
||||
// compare each subfolder to its previous version. If they are same, remove the one in current version.
|
||||
let count = 0;
|
||||
fs.readdirSync(currentFolder, {withFileTypes: true}).forEach(dir => {
|
||||
const currentDir = path.join(currentFolder, dir.name);
|
||||
const previousDir = path.join(previousFolder, dir.name);
|
||||
if (dir.isDirectory() && fs.existsSync(previousDir) && fs.statSync(previousDir).isDirectory()) {
|
||||
if (compareSync(currentDir, previousDir, {compareContent: true}).differences === 0) {
|
||||
fs.removeSync(currentDir);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
});
|
||||
npmlog.info('PrepareTestData', `Deduplicated ${count} test case(s) in folder ${currentVersion}.`);
|
||||
}
|
||||
npmlog.info('PrepareTestData', 'Deduplicating test cases... DONE');
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue