Auto-exclude benchmark contenders that fail compilation

This commit is contained in:
Lovell Fuller 2015-08-24 18:55:59 +01:00
parent 4e67a5025a
commit 78f31d2b0d

View File

@ -7,11 +7,22 @@ var assert = require('assert');
var Benchmark = require('benchmark');
var semver = require('semver');
var imagemagick = require('imagemagick');
var imagemagickNative = require('imagemagick-native');
// Contenders
var gm = require('gm');
var lwip = require('lwip');
var imagemagick = require('imagemagick');
var sharp = require('../../index');
var imagemagickNative;
try {
imagemagickNative = require('imagemagick-native');
} catch (err) {
console.log('Excluding imagemagick-native');
}
var lwip;
try {
lwip = require('lwip');
} catch (err) {
console.log('Excluding lwip');
}
var fixtures = require('../fixtures');
@ -27,7 +38,10 @@ sharp.cache(0);
async.series({
jpeg: function(callback) {
var inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
(new Benchmark.Suite('jpeg')).add('lwip-file-file', {
var jpegSuite = new Benchmark.Suite('jpeg');
// lwip
if (typeof lwip !== 'undefined') {
jpegSuite.add('lwip-file-file', {
defer: true,
fn: function(deferred) {
lwip.open(fixtures.inputJpg, function (err, image) {
@ -68,7 +82,10 @@ async.series({
});
});
}
}).add('imagemagick-file-file', {
});
}
// imagemagick
jpegSuite.add('imagemagick-file-file', {
defer: true,
fn: function(deferred) {
imagemagick.resize({
@ -87,7 +104,10 @@ async.series({
}
});
}
}).add('imagemagick-native-buffer-buffer', {
});
// imagemagick-native
if (typeof imagemagickNative !== 'undefined') {
jpegSuite.add('imagemagick-native-buffer-buffer', {
defer: true,
fn: function(deferred) {
imagemagickNative.convert({
@ -106,7 +126,10 @@ async.series({
}
});
}
}).add('gm-buffer-file', {
});
}
// gm
jpegSuite.add('gm-buffer-file', {
defer: true,
fn: function(deferred) {
gm(inputJpgBuffer)
@ -168,7 +191,9 @@ async.series({
}
});
}
}).add('sharp-buffer-file', {
});
// sharp
jpegSuite.add('sharp-buffer-file', {
defer: true,
fn: function(deferred) {
sharp(inputJpgBuffer).resize(width, height).toFile(fixtures.outputJpg, function(err) {
@ -446,6 +471,8 @@ async.series({
png: function(callback) {
var inputPngBuffer = fs.readFileSync(fixtures.inputPng);
var pngSuite = new Benchmark.Suite('png');
// lwip
if (typeof lwip !== 'undefined') {
pngSuite.add('lwip-buffer-buffer', {
defer: true,
fn: function(deferred) {
@ -467,7 +494,10 @@ async.series({
});
});
}
}).add('imagemagick-file-file', {
});
}
// imagemagick
pngSuite.add('imagemagick-file-file', {
defer: true,
fn: function(deferred) {
imagemagick.resize({
@ -484,7 +514,10 @@ async.series({
}
});
}
}).add('imagemagick-native-buffer-buffer', {
});
// imagemagick-native
if (typeof imagemagickNative !== 'undefined') {
pngSuite.add('imagemagick-native-buffer-buffer', {
defer: true,
fn: function(deferred) {
imagemagickNative.convert({
@ -496,7 +529,10 @@ async.series({
});
deferred.resolve();
}
}).add('gm-file-file', {
});
}
// gm
pngSuite.add('gm-file-file', {
defer: true,
fn: function(deferred) {
gm(fixtures.inputPng)
@ -525,7 +561,9 @@ async.series({
}
});
}
}).add('sharp-buffer-file', {
});
// sharp
pngSuite.add('sharp-buffer-file', {
defer: true,
fn: function(deferred) {
sharp(inputPngBuffer).resize(width, height).toFile(fixtures.outputPng, function(err) {