2017-08-08 19:50:31 +03:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const path = require('path');
|
|
|
|
const glob = require('glob');
|
|
|
|
const fs = require('fs');
|
|
|
|
const slash = require('slash');
|
|
|
|
const parseRefTest = require('./parse-reftest');
|
|
|
|
const outputPath = 'tests/reftests.js';
|
|
|
|
|
2017-08-10 18:24:26 +03:00
|
|
|
const ignoredTests = [
|
|
|
|
'/tests/reftests/background/radial-gradient.html',
|
|
|
|
'/tests/reftests/text/chinese.html'
|
|
|
|
];
|
|
|
|
|
2017-08-08 19:50:31 +03:00
|
|
|
glob(
|
|
|
|
'../tests/reftests/**/*.html',
|
|
|
|
{
|
|
|
|
cwd: __dirname,
|
|
|
|
root: path.resolve(__dirname, '../../')
|
|
|
|
},
|
|
|
|
(err, files) => {
|
|
|
|
if (err) {
|
|
|
|
console.error(err);
|
|
|
|
process.exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
const testList = files.reduce((acc, filename) => {
|
|
|
|
const refTestFilename = path.resolve(__dirname, filename.replace(/\.html$/, '.txt'));
|
2017-08-10 18:24:26 +03:00
|
|
|
const name = `/${slash(path.relative('../', filename))}`;
|
|
|
|
if (ignoredTests.indexOf(name) === -1) {
|
|
|
|
console.log(name);
|
|
|
|
acc[name] = fs.existsSync(refTestFilename)
|
|
|
|
? parseRefTest(fs.readFileSync(refTestFilename).toString())
|
|
|
|
: null;
|
|
|
|
} else {
|
|
|
|
console.log(`IGNORED: ${name}`);
|
|
|
|
}
|
|
|
|
|
2017-08-08 19:50:31 +03:00
|
|
|
|
|
|
|
return acc;
|
|
|
|
}, {});
|
|
|
|
fs.writeFileSync(
|
|
|
|
path.resolve(__dirname, `../${outputPath}`),
|
|
|
|
`module.exports = ${JSON.stringify(testList, null, 4)};`
|
|
|
|
);
|
|
|
|
|
|
|
|
console.log(`${outputPath} updated`);
|
|
|
|
}
|
|
|
|
);
|