mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 18:40:16 +02:00
Auto-exclude benchmark contenders that fail compilation
This commit is contained in:
parent
4e67a5025a
commit
78f31d2b0d
@ -7,11 +7,22 @@ var assert = require('assert');
|
|||||||
var Benchmark = require('benchmark');
|
var Benchmark = require('benchmark');
|
||||||
var semver = require('semver');
|
var semver = require('semver');
|
||||||
|
|
||||||
var imagemagick = require('imagemagick');
|
// Contenders
|
||||||
var imagemagickNative = require('imagemagick-native');
|
|
||||||
var gm = require('gm');
|
var gm = require('gm');
|
||||||
var lwip = require('lwip');
|
var imagemagick = require('imagemagick');
|
||||||
var sharp = require('../../index');
|
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');
|
var fixtures = require('../fixtures');
|
||||||
|
|
||||||
@ -27,48 +38,54 @@ sharp.cache(0);
|
|||||||
async.series({
|
async.series({
|
||||||
jpeg: function(callback) {
|
jpeg: function(callback) {
|
||||||
var inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
var inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
||||||
(new Benchmark.Suite('jpeg')).add('lwip-file-file', {
|
var jpegSuite = new Benchmark.Suite('jpeg');
|
||||||
defer: true,
|
// lwip
|
||||||
fn: function(deferred) {
|
if (typeof lwip !== 'undefined') {
|
||||||
lwip.open(fixtures.inputJpg, function (err, image) {
|
jpegSuite.add('lwip-file-file', {
|
||||||
if (err) {
|
defer: true,
|
||||||
throw err;
|
fn: function(deferred) {
|
||||||
}
|
lwip.open(fixtures.inputJpg, function (err, image) {
|
||||||
image.resize(width, height, 'linear', function (err, image) {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
image.writeFile(fixtures.outputJpg, {quality: 80}, function (err) {
|
image.resize(width, height, 'linear', function (err, image) {
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
deferred.resolve();
|
image.writeFile(fixtures.outputJpg, {quality: 80}, function (err) {
|
||||||
|
if (err) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
deferred.resolve();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
}).add('lwip-buffer-buffer', {
|
||||||
}).add('lwip-buffer-buffer', {
|
defer: true,
|
||||||
defer: true,
|
fn: function(deferred) {
|
||||||
fn: function(deferred) {
|
lwip.open(inputJpgBuffer, 'jpg', function (err, image) {
|
||||||
lwip.open(inputJpgBuffer, 'jpg', function (err, image) {
|
|
||||||
if (err) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
image.resize(width, height, 'linear', function (err, image) {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
image.toBuffer('jpg', {quality: 80}, function (err, buffer) {
|
image.resize(width, height, 'linear', function (err, image) {
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
assert.notStrictEqual(null, buffer);
|
image.toBuffer('jpg', {quality: 80}, function (err, buffer) {
|
||||||
deferred.resolve();
|
if (err) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
assert.notStrictEqual(null, buffer);
|
||||||
|
deferred.resolve();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
}).add('imagemagick-file-file', {
|
}
|
||||||
|
// imagemagick
|
||||||
|
jpegSuite.add('imagemagick-file-file', {
|
||||||
defer: true,
|
defer: true,
|
||||||
fn: function(deferred) {
|
fn: function(deferred) {
|
||||||
imagemagick.resize({
|
imagemagick.resize({
|
||||||
@ -87,26 +104,32 @@ async.series({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).add('imagemagick-native-buffer-buffer', {
|
});
|
||||||
defer: true,
|
// imagemagick-native
|
||||||
fn: function(deferred) {
|
if (typeof imagemagickNative !== 'undefined') {
|
||||||
imagemagickNative.convert({
|
jpegSuite.add('imagemagick-native-buffer-buffer', {
|
||||||
srcData: inputJpgBuffer,
|
defer: true,
|
||||||
quality: 80,
|
fn: function(deferred) {
|
||||||
width: width,
|
imagemagickNative.convert({
|
||||||
height: height,
|
srcData: inputJpgBuffer,
|
||||||
format: 'JPEG',
|
quality: 80,
|
||||||
filter: magickFilter
|
width: width,
|
||||||
}, function (err, buffer) {
|
height: height,
|
||||||
if (err) {
|
format: 'JPEG',
|
||||||
throw err;
|
filter: magickFilter
|
||||||
} else {
|
}, function (err, buffer) {
|
||||||
assert.notStrictEqual(null, buffer);
|
if (err) {
|
||||||
deferred.resolve();
|
throw err;
|
||||||
}
|
} else {
|
||||||
});
|
assert.notStrictEqual(null, buffer);
|
||||||
}
|
deferred.resolve();
|
||||||
}).add('gm-buffer-file', {
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// gm
|
||||||
|
jpegSuite.add('gm-buffer-file', {
|
||||||
defer: true,
|
defer: true,
|
||||||
fn: function(deferred) {
|
fn: function(deferred) {
|
||||||
gm(inputJpgBuffer)
|
gm(inputJpgBuffer)
|
||||||
@ -168,7 +191,9 @@ async.series({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).add('sharp-buffer-file', {
|
});
|
||||||
|
// sharp
|
||||||
|
jpegSuite.add('sharp-buffer-file', {
|
||||||
defer: true,
|
defer: true,
|
||||||
fn: function(deferred) {
|
fn: function(deferred) {
|
||||||
sharp(inputJpgBuffer).resize(width, height).toFile(fixtures.outputJpg, function(err) {
|
sharp(inputJpgBuffer).resize(width, height).toFile(fixtures.outputJpg, function(err) {
|
||||||
@ -446,28 +471,33 @@ async.series({
|
|||||||
png: function(callback) {
|
png: function(callback) {
|
||||||
var inputPngBuffer = fs.readFileSync(fixtures.inputPng);
|
var inputPngBuffer = fs.readFileSync(fixtures.inputPng);
|
||||||
var pngSuite = new Benchmark.Suite('png');
|
var pngSuite = new Benchmark.Suite('png');
|
||||||
pngSuite.add('lwip-buffer-buffer', {
|
// lwip
|
||||||
defer: true,
|
if (typeof lwip !== 'undefined') {
|
||||||
fn: function(deferred) {
|
pngSuite.add('lwip-buffer-buffer', {
|
||||||
lwip.open(inputPngBuffer, 'png', function (err, image) {
|
defer: true,
|
||||||
if (err) {
|
fn: function(deferred) {
|
||||||
throw err;
|
lwip.open(inputPngBuffer, 'png', function (err, image) {
|
||||||
}
|
|
||||||
image.resize(width, height, 'linear', function (err, image) {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
image.toBuffer('png', function (err, buffer) {
|
image.resize(width, height, 'linear', function (err, image) {
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
assert.notStrictEqual(null, buffer);
|
image.toBuffer('png', function (err, buffer) {
|
||||||
deferred.resolve();
|
if (err) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
assert.notStrictEqual(null, buffer);
|
||||||
|
deferred.resolve();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
}).add('imagemagick-file-file', {
|
}
|
||||||
|
// imagemagick
|
||||||
|
pngSuite.add('imagemagick-file-file', {
|
||||||
defer: true,
|
defer: true,
|
||||||
fn: function(deferred) {
|
fn: function(deferred) {
|
||||||
imagemagick.resize({
|
imagemagick.resize({
|
||||||
@ -484,19 +514,25 @@ async.series({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).add('imagemagick-native-buffer-buffer', {
|
});
|
||||||
defer: true,
|
// imagemagick-native
|
||||||
fn: function(deferred) {
|
if (typeof imagemagickNative !== 'undefined') {
|
||||||
imagemagickNative.convert({
|
pngSuite.add('imagemagick-native-buffer-buffer', {
|
||||||
srcData: inputPngBuffer,
|
defer: true,
|
||||||
width: width,
|
fn: function(deferred) {
|
||||||
height: height,
|
imagemagickNative.convert({
|
||||||
format: 'PNG',
|
srcData: inputPngBuffer,
|
||||||
filter: magickFilter
|
width: width,
|
||||||
});
|
height: height,
|
||||||
deferred.resolve();
|
format: 'PNG',
|
||||||
}
|
filter: magickFilter
|
||||||
}).add('gm-file-file', {
|
});
|
||||||
|
deferred.resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// gm
|
||||||
|
pngSuite.add('gm-file-file', {
|
||||||
defer: true,
|
defer: true,
|
||||||
fn: function(deferred) {
|
fn: function(deferred) {
|
||||||
gm(fixtures.inputPng)
|
gm(fixtures.inputPng)
|
||||||
@ -525,7 +561,9 @@ async.series({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).add('sharp-buffer-file', {
|
});
|
||||||
|
// sharp
|
||||||
|
pngSuite.add('sharp-buffer-file', {
|
||||||
defer: true,
|
defer: true,
|
||||||
fn: function(deferred) {
|
fn: function(deferred) {
|
||||||
sharp(inputPngBuffer).resize(width, height).toFile(fixtures.outputPng, function(err) {
|
sharp(inputPngBuffer).resize(width, height).toFile(fixtures.outputPng, function(err) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user