From 1b7c5816fc0e1d15b32ac095a81baa4dd615c3ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20B=C3=BCnemann?= Date: Fri, 8 Apr 2016 23:21:28 +0200 Subject: [PATCH] Speed up slow pixel limit tests (#404) This replaces the single color 20000x14000 PNG with a 20000x14000 Grayscale JPG. On a Broadwell Core i7 @ 3.1 GHz this speeds up the "Disabling limit works" test from ~6.2s to ~0.15s because it can use jpeg resize-on-load optimizations. This should fix occasional timeouts on Travis CI. --- test/fixtures/giant-image.jpg | Bin 0 -> 1093910 bytes test/fixtures/giant-image.png | Bin 52205 -> 0 bytes test/fixtures/index.js | 2 +- test/unit/io.js | 6 +++--- 4 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/giant-image.jpg delete mode 100644 test/fixtures/giant-image.png diff --git a/test/fixtures/giant-image.jpg b/test/fixtures/giant-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..badb5918c44dfc8525551da7761d5ed7c3bd3776 GIT binary patch literal 1093910 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 diff --git a/test/fixtures/index.js b/test/fixtures/index.js index 04839b7a..73c0681e 100644 --- a/test/fixtures/index.js +++ b/test/fixtures/index.js @@ -66,6 +66,7 @@ module.exports = { inputJpgWithCmykNoProfile: getPath('Channel_digital_image_CMYK_color_no_profile.jpg'), inputJpgWithCorruptHeader: getPath('corrupt-header.jpg'), inputJpgWithLowContrast: getPath('low-contrast.jpg'), // http://www.flickr.com/photos/grizdave/2569067123/ + inputJpgLarge: getPath('giant-image.jpg'), inputPng: getPath('50020484-00001.png'), // http://c.searspartsdirect.com/lis_png/PLDM/50020484-00001.png inputPngWithTransparency: getPath('blackbug.png'), // public domain @@ -79,7 +80,6 @@ module.exports = { inputPngOverlayLayer2LowAlpha: getPath('alpha-layer-2-ink-low-alpha.png'), inputPngAlphaPremultiplicationSmall: getPath('alpha-premultiply-1024x768-paper.png'), inputPngAlphaPremultiplicationLarge: getPath('alpha-premultiply-2048x1536-paper.png'), - inputPngLarge: getPath('giant-image.png'), inputWebP: getPath('4.webp'), // http://www.gstatic.com/webp/gallery/4.webp inputWebPWithTransparency: getPath('5_webp_a.webp'), // http://www.gstatic.com/webp/gallery3/5_webp_a.webp diff --git a/test/unit/io.js b/test/unit/io.js index e94f98c8..c112971b 100644 --- a/test/unit/io.js +++ b/test/unit/io.js @@ -877,7 +877,7 @@ describe('Input/output', function() { }); it('Disabling limit works', function(done) { - sharp(fixtures.inputPngLarge) + sharp(fixtures.inputJpgLarge) .limitInputPixels(false) .resize(2) .toBuffer(function(err) { @@ -886,8 +886,8 @@ describe('Input/output', function() { }); }); - it('Enabling default limit fails works and fails with a large image', function(done) { - sharp(fixtures.inputPngLarge) + it('Enabling default limit works and fails with a large image', function(done) { + sharp(fixtures.inputJpgLarge) .limitInputPixels(true) .toBuffer(function(err) { assert.strictEqual(true, !!err);