49 lines
1.9 KiB
JavaScript
49 lines
1.9 KiB
JavaScript
function makeSteps(configuration)
|
|
{
|
|
const steps = [];
|
|
for (let i = 0; i < configuration.stepCount; ++i) {
|
|
if (configuration.isResizeTest) {
|
|
for (let width = 300; width <= 800; width += 50) {
|
|
steps.push(new BenchmarkTestStep(`Resizing to ${width}px - ${i}`, (bench, contentWindow, contentDocument) => {
|
|
bench.resizeViewToWidth(width);
|
|
}));
|
|
}
|
|
continue;
|
|
}
|
|
steps.push(new BenchmarkTestStep(`Adding classes - ${i}`, (bench, contentWindow, contentDocument) => {
|
|
bench.addClasses(configuration.mutationsPerStep);
|
|
}));
|
|
steps.push(new BenchmarkTestStep(`Removing classes - ${i}`, (bench, contentWindow, contentDocument) => {
|
|
bench.removeClasses(configuration.mutationsPerStep);
|
|
}));
|
|
steps.push(new BenchmarkTestStep(`Mutating attributes - ${i}`, (bench, contentWindow, contentDocument) => {
|
|
bench.mutateAttributes(configuration.mutationsPerStep);
|
|
}));
|
|
steps.push(new BenchmarkTestStep(`Adding leaf elements - ${i}`, (bench, contentWindow, contentDocument) => {
|
|
bench.addLeafElements(configuration.mutationsPerStep);
|
|
}));
|
|
steps.push(new BenchmarkTestStep(`Removing leaf elements - ${i}`, (bench, contentWindow, contentDocument) => {
|
|
bench.removeLeafElements(configuration.mutationsPerStep);
|
|
}));
|
|
}
|
|
return steps;
|
|
}
|
|
|
|
function makeSuite(configuration)
|
|
{
|
|
return {
|
|
name: configuration.name,
|
|
url: 'style-bench.html',
|
|
prepare: (runner, contentWindow, contentDocument) => {
|
|
return runner.waitForElement('#testroot').then((element) => {
|
|
return contentWindow.createBenchmark(configuration);
|
|
});
|
|
},
|
|
tests: makeSteps(configuration),
|
|
};
|
|
}
|
|
|
|
var Suites = [];
|
|
for (const configuration of StyleBench.predefinedConfigurations())
|
|
Suites.push(makeSuite(configuration));
|