From 0f6b49f7e9908168fceffd028d48aa539b8a6ae3 Mon Sep 17 00:00:00 2001 From: Lucas Wojciechowski Date: Mon, 9 Jan 2017 14:53:58 -0800 Subject: [PATCH] Update test suite Updated to https://github.com/mapbox/mapbox-gl-test-suite/commit/9ab19437e6a5272f1d fd7aaf12a7b5bbec208895 --- test/integration/image/marker.png | Bin 0 -> 2098 bytes test/integration/lib/harness.js | 72 ++++++++-------- test/integration/lib/query.js | 77 +++++++++--------- test/integration/lib/render.js | 54 ++++++------ test/integration/lib/server.js | 20 ++--- .../zoom-and-property-function/style.json | 4 +- .../mapbox-gl-js#3723/expected.png | Bin 0 -> 6719 bytes .../regressions/mapbox-gl-js#3723/style.json | 29 +++++++ .../mapbox-gl-js#3819/expected.png | Bin 0 -> 188 bytes .../regressions/mapbox-gl-js#3819/style.json | 41 ++++++++++ .../mapbox-gl-js#3903/expected.png | Bin 0 -> 80 bytes .../regressions/mapbox-gl-js#3903/style.json | 32 ++++++++ .../mapbox-gl-native#7572/expected.png | Bin 0 -> 1490 bytes .../mapbox-gl-native#7572/style.json | 50 ++++++++++++ .../runtime-styling/image-add/expected.png | Bin 0 -> 871 bytes .../runtime-styling/image-add/style.json | 42 ++++++++++ .../symbol-geometry/multipoint/style.json | 5 +- .../symbol-geometry/multipolygon/style.json | 5 +- .../symbol-geometry/polygon/style.json | 5 +- .../symbol-placement/point-polygon/style.json | 3 - .../text-arabic/line-break-mixed/expected.png | Bin 4618 -> 4606 bytes .../text-arabic/line-break/expected.png | Bin 2373 -> 2300 bytes .../text-arabic/multi-paragraph/expected.png | Bin 6573 -> 6560 bytes .../force-double-newline/style.json | 3 - .../text-max-width/force-newline/style.json | 3 - .../ideographic-breaking/style.json | 3 - .../expected.png | Bin 53585 -> 50586 bytes .../style.json | 5 +- .../text-max-width/literal/expected.png | Bin 11074 -> 10974 bytes test/integration/tiles/upgrade.js | 26 +++--- 30 files changed, 323 insertions(+), 156 deletions(-) create mode 100644 test/integration/image/marker.png create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#3723/expected.png create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#3723/style.json create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#3819/expected.png create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#3819/style.json create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#3903/expected.png create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#3903/style.json create mode 100644 test/integration/render-tests/regressions/mapbox-gl-native#7572/expected.png create mode 100644 test/integration/render-tests/regressions/mapbox-gl-native#7572/style.json create mode 100644 test/integration/render-tests/runtime-styling/image-add/expected.png create mode 100644 test/integration/render-tests/runtime-styling/image-add/style.json diff --git a/test/integration/image/marker.png b/test/integration/image/marker.png new file mode 100644 index 0000000000000000000000000000000000000000..753598624702338e2ec59ee83189a52165018bd7 GIT binary patch literal 2098 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 RR_#1qGh=I`dw+Oe`Zr?|!x#Vn literal 0 HcmV?d00001 diff --git a/test/integration/lib/harness.js b/test/integration/lib/harness.js index 308493949ad..c9b6c5a448d 100644 --- a/test/integration/lib/harness.js +++ b/test/integration/lib/harness.js @@ -1,27 +1,25 @@ 'use strict'; -/* eslint-disable no-process-exit */ - -const fs = require('fs'); -const path = require('path'); -const queue = require('d3-queue').queue; -const colors = require('colors/safe'); -const handlebars = require('handlebars'); +var fs = require('fs'); +var path = require('path'); +var queue = require('d3-queue').queue; +var colors = require('colors/safe'); +var handlebars = require('handlebars'); module.exports = function (directory, implementation, options, run) { - const q = queue(1); - const server = require('./server')(); + var q = queue(1); + var server = require('./server')(); - const tests = options.tests || []; + var tests = options.tests || []; function shouldRunTest(group, test) { if (tests.length === 0) return true; - const id = `${group}/${test}`; + var id = group + '/' + test; - for (let i = 0; i < tests.length; i++) { - const k = id.indexOf(tests[i]); + for (var i = 0; i < tests.length; i++) { + var k = id.indexOf(tests[i]); if (k === 0 || id[k - 1] === '-' || id[k - 1] === '/') return true; } @@ -31,11 +29,11 @@ module.exports = function (directory, implementation, options, run) { q.defer(server.listen); - fs.readdirSync(directory).forEach((group) => { - if (group === 'index.html' || group === 'results.html.tmpl' || group[0] === '.') + fs.readdirSync(directory).forEach(function (group) { + if (group === 'index.html' || group == 'results.html.tmpl' || group[0] === '.') return; - fs.readdirSync(path.join(directory, group)).forEach((test) => { + fs.readdirSync(path.join(directory, group)).forEach(function (test) { if (!shouldRunTest(group, test)) return; @@ -43,11 +41,11 @@ module.exports = function (directory, implementation, options, run) { !fs.lstatSync(path.join(directory, group, test, 'style.json')).isFile()) return; - const style = require(path.join(directory, group, test, 'style.json')); + var style = require(path.join(directory, group, test, 'style.json')); server.localizeURLs(style); - const params = Object.assign({ + var params = Object.assign({ group: group, test: test, width: 512, @@ -57,14 +55,14 @@ module.exports = function (directory, implementation, options, run) { }, style.metadata && style.metadata.test); if (implementation === 'native' && process.env.BUILDTYPE === 'Release' && params.group === 'debug') { - console.log(colors.gray(`* skipped ${params.group} ${params.test}`)); + console.log(colors.gray('* skipped ' + params.group + ' ' + params.test)); return; } - const skipped = params.skipped && params.skipped[implementation]; + var skipped = params.skipped && params.skipped[implementation] if (skipped) { - console.log(colors.gray(`* skipped ${params.group} ${params.test - } (${skipped})`)); + console.log(colors.gray('* skipped ' + params.group + ' ' + params.test + + ' (' + skipped + ')')); return; } @@ -78,22 +76,22 @@ module.exports = function (directory, implementation, options, run) { params.ignored = params.ignored && implementation in params.ignored; - q.defer((callback) => { - run(style, params, (err) => { + q.defer(function (callback) { + run(style, params, function(err) { if (err) return callback(err); if (params.ignored && !params.ok) { params.color = '#9E9E9E'; - console.log(colors.white(`* ignore ${params.group} ${params.test}`)); + console.log(colors.white('* ignore ' + params.group + ' ' + params.test)); } else if (params.ignored) { params.color = '#E8A408'; - console.log(colors.yellow(`* ignore ${params.group} ${params.test}`)); + console.log(colors.yellow('* ignore ' + params.group + ' ' + params.test)); } else if (!params.ok) { params.color = 'red'; - console.log(colors.red(`* failed ${params.group} ${params.test}`)); + console.log(colors.red('* failed ' + params.group + ' ' + params.test)); } else { params.color = 'green'; - console.log(colors.green(`* passed ${params.group} ${params.test}`)); + console.log(colors.green('* passed ' + params.group + ' ' + params.test)); } callback(null, params); @@ -104,26 +102,26 @@ module.exports = function (directory, implementation, options, run) { q.defer(server.close); - q.awaitAll((err, results) => { + q.awaitAll(function (err, results) { if (err) { console.error(err); - setTimeout(() => { process.exit(-1); }, 0); + setTimeout(function () { process.exit(-1); }, 0); return; } results = results.slice(1, -1); if (process.env.UPDATE) { - console.log(`Updated ${results.length} tests.`); + console.log('Updated ' + results.length + ' tests.'); process.exit(0); } - let passedCount = 0, + var passedCount = 0, ignoreCount = 0, ignorePassCount = 0, failedCount = 0; - results.forEach((params) => { + results.forEach(function (params) { if (params.ignored && !params.ok) { ignoreCount++; } else if (params.ignored) { @@ -135,7 +133,7 @@ module.exports = function (directory, implementation, options, run) { } }); - const totalCount = passedCount + ignorePassCount + ignoreCount + failedCount; + var totalCount = passedCount + ignorePassCount + ignoreCount + failedCount; if (passedCount > 0) { console.log(colors.green('%d passed (%s%)'), @@ -157,10 +155,10 @@ module.exports = function (directory, implementation, options, run) { failedCount, (100 * failedCount / totalCount).toFixed(1)); } - const template = handlebars.compile(fs.readFileSync(path.join(directory, 'results.html.tmpl'), 'utf8')); - const p = path.join(directory, 'index.html'); + var template = handlebars.compile(fs.readFileSync(path.join(directory, 'results.html.tmpl'), 'utf8')); + var p = path.join(directory, 'index.html'); fs.writeFileSync(p, template({results: results})); - console.log(`Results at: ${p}`); + console.log('Results at: ' + p); process.exit(failedCount === 0 ? 0 : 1); }); diff --git a/test/integration/lib/query.js b/test/integration/lib/query.js index 16bcb8f9948..15067a1a118 100644 --- a/test/integration/lib/query.js +++ b/test/integration/lib/query.js @@ -1,10 +1,8 @@ -'use strict'; - -const path = require('path'); -const harness = require('./harness'); -const diff = require('diff'); -const PNG = require('pngjs').PNG; -const fs = require('fs'); +var path = require('path'); +var harness = require('./harness'); +var diff = require('diff'); +var PNG = require('pngjs').PNG; +var fs = require('fs'); function deepEqual(a, b) { if (typeof a !== typeof b) @@ -14,17 +12,17 @@ function deepEqual(a, b) { if (a === null || typeof a !== 'object') return a === b; - const ka = Object.keys(a); - const kb = Object.keys(b); + var ka = Object.keys(a); + var kb = Object.keys(b); - if (ka.length !== kb.length) + if (ka.length != kb.length) return false; ka.sort(); kb.sort(); - for (let i = 0; i < ka.length; i++) - if (ka[i] !== kb[i] || !deepEqual(a[ka[i]], b[ka[i]])) + for (var i = 0; i < ka.length; i++) + if (ka[i] != kb[i] || !deepEqual(a[ka[i]], b[ka[i]])) return false; return true; @@ -42,30 +40,30 @@ function deepEqual(a, b) { * @returns {undefined} terminates the process when testing is complete */ exports.run = function (implementation, options, query) { - const directory = path.join(__dirname, '../query-tests'); - harness(directory, implementation, options, (style, params, done) => { - query(style, params, (err, data, results) => { + var directory = path.join(__dirname, '../query-tests'); + harness(directory, implementation, options, function(style, params, done) { + query(style, params, function(err, data, results) { if (err) return done(err); - const dir = path.join(directory, params.group, params.test); + var dir = path.join(directory, params.group, params.test); if (process.env.UPDATE) { fs.writeFile(path.join(dir, 'expected.json'), JSON.stringify(results, null, 2), done); return; } - const expected = require(path.join(dir, 'expected.json')); + var expected = require(path.join(dir, 'expected.json')); params.ok = deepEqual(results, expected); if (!params.ok) { - const msg = diff.diffJson(expected, results) - .map((hunk) => { + var msg = diff.diffJson(expected, results) + .map(function (hunk) { if (hunk.added) { - return `+ ${hunk.value}`; + return '+ ' + hunk.value; } else if (hunk.removed) { - return `- ${hunk.value}`; + return '- ' + hunk.value; } else { - return ` ${hunk.value}`; + return ' ' + hunk.value; } }) .join(''); @@ -74,32 +72,33 @@ exports.run = function (implementation, options, query) { console.log(msg); } - const width = params.width * params.pixelRatio; - const height = params.height * params.pixelRatio; + var width = params.width * params.pixelRatio; + var height = params.height * params.pixelRatio; + var x, y; - const color = [255, 0, 0, 255]; + var color = [255, 0, 0, 255]; function scaleByPixelRatio(x) { return x * params.pixelRatio; } if (!Array.isArray(params.queryGeometry[0])) { - const p = params.queryGeometry.map(scaleByPixelRatio); - const d = 30; + var p = params.queryGeometry.map(scaleByPixelRatio); + var d = 30; drawAxisAlignedLine([p[0] - d, p[1]], [p[0] + d, p[1]], data, width, height, color); drawAxisAlignedLine([p[0], p[1] - d], [p[0], p[1] + d], data, width, height, color); } else { - const a = params.queryGeometry[0].map(scaleByPixelRatio); - const b = params.queryGeometry[1].map(scaleByPixelRatio); + var a = params.queryGeometry[0].map(scaleByPixelRatio); + var b = params.queryGeometry[1].map(scaleByPixelRatio); drawAxisAlignedLine([a[0], a[1]], [a[0], b[1]], data, width, height, color); drawAxisAlignedLine([a[0], b[1]], [b[0], b[1]], data, width, height, color); drawAxisAlignedLine([b[0], b[1]], [b[0], a[1]], data, width, height, color); drawAxisAlignedLine([b[0], a[1]], [a[0], a[1]], data, width, height, color); } - const actual = path.join(dir, 'actual.png'); + var actual = path.join(dir, 'actual.png'); - const png = new PNG({ + var png = new PNG({ width: params.width * params.pixelRatio, height: params.height * params.pixelRatio }); @@ -108,7 +107,7 @@ exports.run = function (implementation, options, query) { png.pack() .pipe(fs.createWriteStream(actual)) - .on('finish', () => { + .on('finish', function() { params.actual = fs.readFileSync(actual).toString('base64'); done(); }); @@ -117,14 +116,14 @@ exports.run = function (implementation, options, query) { }; function drawAxisAlignedLine(a, b, pixels, width, height, color) { - const fromX = clamp(Math.min(a[0], b[0]), 0, width); - const toX = clamp(Math.max(a[0], b[0]), 0, width); - const fromY = clamp(Math.min(a[1], b[1]), 0, height); - const toY = clamp(Math.max(a[1], b[1]), 0, height); + var fromX = clamp(Math.min(a[0], b[0]), 0, width); + var toX = clamp(Math.max(a[0], b[0]), 0, width); + var fromY = clamp(Math.min(a[1], b[1]), 0, height); + var toY = clamp(Math.max(a[1], b[1]), 0, height); - let index; + var index; if (fromX === toX) { - for (let y = fromY; y <= toY; y++) { + for (var y = fromY; y <= toY; y++) { index = getIndex(fromX, y); pixels[index + 0] = color[0]; pixels[index + 1] = color[1]; @@ -132,7 +131,7 @@ function drawAxisAlignedLine(a, b, pixels, width, height, color) { pixels[index + 3] = color[3]; } } else { - for (let x = fromX; x <= toX; x++) { + for (var x = fromX; x <= toX; x++) { index = getIndex(x, fromY); pixels[index + 0] = color[0]; pixels[index + 1] = color[1]; diff --git a/test/integration/lib/render.js b/test/integration/lib/render.js index 178852f7a2c..ec12b92bbd5 100644 --- a/test/integration/lib/render.js +++ b/test/integration/lib/render.js @@ -1,27 +1,27 @@ 'use strict'; -const fs = require('fs'); -const path = require('path'); -const PNG = require('pngjs').PNG; -const harness = require('./harness'); -const pixelmatch = require('pixelmatch'); +var fs = require('fs'); +var path = require('path'); +var PNG = require('pngjs').PNG; +var harness = require('./harness'); +var pixelmatch = require('pixelmatch'); function compare(path1, path2, diffPath, callback) { - const img1 = fs.createReadStream(path1).pipe(new PNG()).on('parsed', doneReading); - const img2 = fs.createReadStream(path2).pipe(new PNG()).on('parsed', doneReading); - let read = 0; + var img1 = fs.createReadStream(path1).pipe(new PNG()).on('parsed', doneReading); + var img2 = fs.createReadStream(path2).pipe(new PNG()).on('parsed', doneReading); + var read = 0; function doneReading() { if (++read < 2) return; - const diff = new PNG({width: img1.width, height: img1.height}); + var diff = new PNG({width: img1.width, height: img1.height}); - const numPixels = pixelmatch(img1.data, img2.data, diff.data, img1.width, img1.height, { + var numPixels = pixelmatch(img1.data, img2.data, diff.data, img1.width, img1.height, { threshold: 0.13 }); - diff.pack().pipe(fs.createWriteStream(diffPath)).on('finish', () => { + diff.pack().pipe(fs.createWriteStream(diffPath)).on('finish', function () { callback(null, numPixels / (diff.width * diff.height)); }); } @@ -57,25 +57,26 @@ function compare(path1, path2, diffPath, callback) { * @returns {undefined} terminates the process when testing is complete */ exports.run = function (implementation, options, render) { - const directory = path.join(__dirname, '../render-tests'); - harness(directory, implementation, options, (style, params, done) => { - render(style, params, (err, data) => { + var directory = path.join(__dirname, '../render-tests'); + harness(directory, implementation, options, function(style, params, done) { + render(style, params, function (err, data) { if (err) return done(err); - let stats; - const dir = path.join(directory, params.group, params.test); + var stats; + var dir = path.join(directory, params.group, params.test); try { stats = fs.statSync(dir, fs.R_OK | fs.W_OK); - if (!stats.isDirectory()) throw new Error(); - } catch (e) { + if (!stats.isDirectory()) throw true; + } + catch (e) { fs.mkdirSync(dir); } - const expected = path.join(dir, 'expected.png'); - const actual = path.join(dir, 'actual.png'); - const diff = path.join(dir, 'diff.png'); + var expected = path.join(dir, 'expected.png'); + var actual = path.join(dir, 'actual.png'); + var diff = path.join(dir, 'diff.png'); - const png = new PNG({ + var png = new PNG({ width: params.width * params.pixelRatio, height: params.height * params.pixelRatio }); @@ -89,19 +90,20 @@ exports.run = function (implementation, options, render) { } else { png.pack() .pipe(fs.createWriteStream(actual)) - .on('finish', () => { + .on('finish', function () { try { stats = fs.statSync(expected, fs.R_OK | fs.W_OK); - if (!stats.isFile()) throw new Error(); - } catch (e) { // no expected.png, create it + if (!stats.isFile()) throw true; + } + catch (e) { // no expected.png, create it png.pack() .pipe(fs.createWriteStream(expected)) .on('finish', done); return; } - compare(actual, expected, diff, (err, difference) => { + compare(actual, expected, diff, function (err, difference) { if (err) return done(err); params.difference = difference; diff --git a/test/integration/lib/server.js b/test/integration/lib/server.js index 847f977f42a..888fcb2c2c4 100644 --- a/test/integration/lib/server.js +++ b/test/integration/lib/server.js @@ -1,11 +1,11 @@ 'use strict'; -const st = require('st'); -const http = require('http'); -const path = require('path'); +var st = require('st'); +var http = require('http'); +var path = require('path'); module.exports = function () { - const server = http.createServer(st({path: path.join(__dirname, '..')})); + var server = http.createServer(st({path: path.join(__dirname, '..')})); function localURL(url) { return url.replace(/^local:\/\//, 'http://localhost:2900/'); @@ -17,12 +17,12 @@ module.exports = function () { }, close: function (callback) { - server.close(callback); + server.close(callback) }, localizeURLs: function (style) { function localizeSourceURLs(source) { - for (const l in source.tiles) { + for (var l in source.tiles) { source.tiles[l] = localURL(source.tiles[l]); } @@ -41,7 +41,7 @@ module.exports = function () { // localize the source, glyphs, and sprite URLs in the given style JSON function localizeStyleURLs (style) { - for (const k in style.sources) { + for (var k in style.sources) { localizeSourceURLs(style.sources[k]); } @@ -55,16 +55,16 @@ module.exports = function () { } if (style.metadata && style.metadata.test && style.metadata.test.operations) { - style.metadata.test.operations.forEach((op) => { + style.metadata.test.operations.forEach(function (op) { if (op[0] === 'addSource') { localizeSourceURLs(op[2]); } else if (op[0] === 'setStyle' && op[1]) { - localizeStyleURLs(op[1]); + localizeStyleURLs(op[1]) } }); } - localizeStyleURLs(style); + localizeStyleURLs(style) } }; }; diff --git a/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/style.json b/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/style.json index 6a6a9277679..8e0b0c3e14a 100644 --- a/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/style.json +++ b/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/style.json @@ -163,11 +163,11 @@ "value": 0 }, 0], [{ - "zoom": 18.5, + "zoom": 17, "value": 0 }, 0], [{ - "zoom": 17, + "zoom": 18.5, "value": 0 }, 0], [{ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3723/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3723/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..fc7b137712a9368b5ad019031efe36abee9f83b2 GIT binary patch literal 6719 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%0A>}BG z|IY-2!InrQ(pl2NB><}%3!Q-A;*$EhjJ4``)q zu0v_9wAPA$BGFj9&lidH=51b4%*__FnJKNc!!>xl-k8_xjoKP&ikC??m;wY)tJR8J zrg@oi>?;4500b`+D6Jf=wZkS-3WI-0vjqatSic#L_1hZU66{=RET2w|a~-i*tXFHO zD$u+_Ql|k^fDqs~PEGR)0Vt(vT$kY0`2B$fTk|pjD65)f3j{*p_L@7;NS#-r%h}9i zCX<=sI-=2Nw+1Roqj`m7gDF4&HLF(C{E$}4<|ZYYn)g+dMr$wyWLK9@vjt+&NM}J| zP-oayzLd+(R4SD;*Aa`wdNoj1{D9;#4Tca11WGwIt@#11oEn=6AvD()Zf-r`Xb=MY zhG1oJ@i<$+7mW`T9T0#jWTvb6>?LkMBAMK#fwH6dKFJ0{fDmBStfB@q8(d&_4rpHS{{UWH VAXPs}xV8WQ002ovPDHLkV1ilmS%v@r literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3723/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3723/style.json new file mode 100644 index 00000000000..5481ce5592e --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3723/style.json @@ -0,0 +1,29 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/alpha.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0, + "raster-brightness-min": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3819/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3819/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2d70062987394ec11e0565aef82a8bad38cdd2 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Or9=|Ar*{or0OmKd8HuU(}RqR s3=AC2221LnOSimbQ}%hJ;zvUy7i`K@XSBiO3(x@!p00i_>zopr0FY!s_5c6? literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3819/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3819/style.json new file mode 100644 index 00000000000..14adeb2c265 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3819/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [] + } + } + }, + "layers": [ + { + "id": "red", + "type": "background", + "paint": { + "background-color": "rgb(255, 0, 0)", + "background-opacity": 1 + } + }, + { + "id": "green", + "type": "background", + "paint": { + "background-color": "rgb(0, 255, 0)", + "background-opacity": 0 + } + }, + { + "id": "other", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3903/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3903/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8ae763ee78607d1fea6ca5661ab97d4bd8c9ad GIT binary patch literal 80 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blCQlc~kP5~(QgxSrJWdcVnW5=F Y10xF~!%W*ncY%Top00i_>zopr04)g+z5oCK literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3903/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3903/style.json new file mode 100644 index 00000000000..57acc74aeb2 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3903/style.json @@ -0,0 +1,32 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 1, + "height": 1, + "operations": [ + [ + "removeLayer", + "background" + ], + [ + "addLayer", + { + "id": "background", + "type": "background" + } + ], + [ + "wait" + ] + ] + } + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#7572/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#7572/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..766127938f76a614b288df4140cdecfc0bb54d28 GIT binary patch literal 1490 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 diff --git a/test/integration/render-tests/text-arabic/line-break/expected.png b/test/integration/render-tests/text-arabic/line-break/expected.png index 2fb67ab7dc3474b38281ae0afa32d5bf86b27b04..e7a66418d700ea99c8a2a407a9a808b56ce3aa38 100644 GIT binary patch delta 2175 zcmV-_2!Qv+68sU6GHSI+L_t*T!3&Vr1)Tu!&;P&w-TkvK9)b^8E@j+6K~O|d1PV~R zPD~!%T{3E@ITn@H)b!BGyUxr>k7F7kI@1%)l*bi%f}#j@cY&yRc#@Kc3K(F>V;AuNZ$Hl04!4RA2;}(1NqDO&63A{=ZWE6HY`kcHu3& zs0&ItHqtmvVw1y{#%U6pbgtg$juyPBt#i;5A3+%wVVf=}?bzsp1(=T_hp!J7U_Od; zu8(6SuG8Lsp#tB->DZ==N;`J?pvaNygCa*qFJv6tNyzHLGP;f|`k@Y4G-7|Va7Y=Q zuMkD3LA@h44i#8|YKQM5xE~8J4Xf~X{ydGrnb?R5yo?O8*oHUI;26m0JQ>WyRGfl8 z;Fp-|;4=6$dg4J;;-k0?>#@nPB@tAiVb=_tigEW+FP zK2E?I)H`w+iAIN(hgq0`G@6iynYatLN~AFzm*PGA48O%wSdVJFj02d2GL&FA&co+$ zFBV|0R--T-rC5rEIw+&_j6gAdgyk59t1$*EwRZ_VkBunDG~9!~!AO71!*8@V5OXn1 z;tFK(pv0Fk67%p2i6UH&GAzY9?RCS$$iwFyS_wuV4~wxDV{ti#AdO~Rg*hmZ7>`e3 zBSzqQ{0etrGU`!`({VP&;#N$N!;6;~0RI7>_UF zfVR?@ffjrgi%^4<#5jKxdVg19Fy`Y96yRzUYBdgpTGgNkU&mAj*B@v3V3l|PyRjR; z#(wO;gJ?zxZa@S69!oF?leHR+9%#lc?8m#4VUco%vk4Ds^7y6?GAH#F#hm-I)cA^|<)S-V7_2`BE*o{ee6L+B= zGcX)y<7Jd1jXG_uMiYi3je4}8FG_JTdZGyje6V}b4>w{QvY3sfNZ}$>UdFX@7unBjg0W(mJ66|q=GCC%MvoI8YkZ8hOJc${& z2D7mjzr=b>!2*9Y;1mqQdDwzsScx;S2OF>l>oElj(1>$Ui@7L4Ux|lMkAc{O4cgj; z2J}GzHlPZhLIv_M0L!r32OEmf66L7HB^ZSgoQRV!5r2WfD8NLlzzHb8G>k+w&O`yW zV-7~+Ty(=o6ysdfVlGP17i&Y=QZ)2>)7QBjy*pCMM9ItDuH}X-11K5Ox_$s7|Ah8JRFahV|Z?O=AupKX<7Z&3MG)XMN zI!wT+cm|tsDbiSlcQF}5@hF~0lU8X=LU%lmCW)_O5iY~2*ou0(3_?w&DepVkCB8CA#BkY{4%u2IH^_&trcZ@{q!FxC#^SQIz37u^E>ljbGsv z9hA~>eK8ADP@ug^%*QRL*471h7C*%kxD)@5ucBG!7>#=L!e#gjQus@()>ayekwq2C zF%dQ1-!S|d8}UhO*H#vFIwpmCP>LH->nO_TxNW!&_hAGokU=#zVhz@!S$qGD)%a_? zfJT2@f)lXQpRN$!!-dEojeYn>tkGUGZo@Sw#B9_!xYw~36R;4^Vi&sMbo9av*rQ_# zkai4Y{Ap_N44!dhYA_3Pa1RQx6nk}!BBZbb`|%%GhGl5+{?_9(^u#)cR*UbTCq`p5 zT9A_1ir(1c$hF`L5)F>Bln>WS>l2XBAqJY~qD9+eKyaHQ~Chv#H`5*MNrRoI3X z@htWUA%qaZhb@CFQo{eqbNsjgci{JUNBCbE$CvGB)+&n@q$KJbXHt$I`6xsUnlTVR z#FMxbYjLOJOh)cY;T)WcUf78>culJ;#^6-Eg*6hpZ~(i};5d|$`@V~t&>bl>V<&(9 z0rQZ>985(wG~#i54*Sp@88l+A4|X0thDtn!KgwZwa$8T_jZ^UwRw0E7&$trz<35QO zu>~`5EoNXlRwIQnq|vCYXOWMKP>8cJ3`_AP%)$W-mBTV}UnvSugp2Vy(zq4

t6x z6+@850fO>ON!6DHsx6r(Rr!8dUcve+z#W#qO3+>Ob25PNV9zAS(7E_x${ zDs05*xB|_nL=QZMSGAQzK1whiJyDDEFk0d@JSB%^jNMk#Gj4Fp#jQ%(gb$AK?hPi0eg{5>2=i@3|fMV>&4!nqe!8;Bu zg~2Gper!Uu<3LK+l0_jJP=^+gpEDbT5W=6g{{eC1HYFscKvn<%002ovPDHLkV1m79 B^NIif delta 2270 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 s2e#rhY(&AwlS2asU7T diff --git a/test/integration/render-tests/text-arabic/multi-paragraph/expected.png b/test/integration/render-tests/text-arabic/multi-paragraph/expected.png index 8baf6d418141895dfad17dd90fb504a51a609c2c..4b613557d956ac7437eaf2acddbf3e578b376d36 100644 GIT binary patch literal 6560 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 XdoQ}X_{RAE#UwRpO=2IRsP?}A1Hw^k diff --git a/test/integration/render-tests/text-max-width/force-double-newline/style.json b/test/integration/render-tests/text-max-width/force-double-newline/style.json index 32e58212894..6ec69c8ee15 100644 --- a/test/integration/render-tests/text-max-width/force-double-newline/style.json +++ b/test/integration/render-tests/text-max-width/force-double-newline/style.json @@ -2,9 +2,6 @@ "version": 8, "metadata": { "test": { - "ignored": { - "native": "https://github.com/mapbox/mapbox-gl-native/issues/7253" - }, "height": 256 } }, diff --git a/test/integration/render-tests/text-max-width/force-newline/style.json b/test/integration/render-tests/text-max-width/force-newline/style.json index af91a88f17b..3d04fb8c38e 100644 --- a/test/integration/render-tests/text-max-width/force-newline/style.json +++ b/test/integration/render-tests/text-max-width/force-newline/style.json @@ -2,9 +2,6 @@ "version": 8, "metadata": { "test": { - "ignored": { - "native": "https://github.com/mapbox/mapbox-gl-native/issues/7253" - }, "height": 256 } }, diff --git a/test/integration/render-tests/text-max-width/ideographic-breaking/style.json b/test/integration/render-tests/text-max-width/ideographic-breaking/style.json index 17e9ea8029c..e412c016f14 100644 --- a/test/integration/render-tests/text-max-width/ideographic-breaking/style.json +++ b/test/integration/render-tests/text-max-width/ideographic-breaking/style.json @@ -2,9 +2,6 @@ "version": 8, "metadata": { "test": { - "ignored": { - "native": "https://github.com/mapbox/mapbox-gl-native/issues/7253" - }, "height": 512 } }, diff --git a/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/expected.png b/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/expected.png index cc87e6e63415acbf2bfb019faa36bee6ad547a57..52d6fe46a65670dbcb456dd900c15f79a2705548 100644 GIT binary patch literal 50586 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%0ALr;;^4_9$NEPb&`nAQl&2J}C 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 diff --git a/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/style.json b/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/style.json index 88085933b52..156f657605a 100644 --- a/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/style.json +++ b/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/style.json @@ -2,9 +2,6 @@ "version": 8, "metadata": { "test": { - "ignored": { - "native": "https://github.com/mapbox/mapbox-gl-native/issues/7253" - }, "height": 512 } }, @@ -30,7 +27,7 @@ { "type": "Feature", "properties": { - "name": "技指計代式灣文人觀觀人之之" + "name": "黄岩岛\n(民主礁)" }, "geometry": { "type": "Point", diff --git a/test/integration/render-tests/text-max-width/literal/expected.png b/test/integration/render-tests/text-max-width/literal/expected.png index 8abc5bbc2085f03064cba01748b9979378d92c57..8a1250b3ec5c05fc0212a36f9f7e7b7e1c5e3930 100644 GIT binary patch literal 10974 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 literal 11074 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 JWB { + var buffer = fs.readFileSync(path); + var vt = new mapnik.VectorTile(z, x, y); + vt.addData(buffer, {upgrade: true, validate: true}, function(err) { if (err) throw err; fs.writeFileSync(path, vt.getDataSync()); callback(); - }); + }); } function createExtent1024(callback) { console.log('Creating extent1024'); - const buffer = fs.readFileSync('14-8802-5374.mvt'); - const vt = new mapnik.VectorTile(14, 8802, 5374, { tileSize: 1024 }); - vt.addData(buffer, {validate: true}, (err) => { + var buffer = fs.readFileSync('14-8802-5374.mvt'); + var vt = new mapnik.VectorTile(14, 8802, 5374, { tileSize: 1024 }); + vt.addData(buffer, {validate: true}, function(err) { if (err) throw err; fs.writeFileSync('extent1024-14-8802-5374.mvt', vt.getDataSync()); callback(); }); } -const q = queue(1); +var q = queue(1); q.defer(upgrade, 0, 0, 0, '0-0-0.mvt'); q.defer(upgrade, 14, 8802, 5374, '14-8802-5374.mvt'); @@ -40,7 +38,7 @@ q.defer(upgrade, 2, 2, 2, '2-2-2.mvt'); q.defer(upgrade, 7, 37, 48, 'counties-7-37-48.mvt'); q.defer(createExtent1024); -q.await((err) => { +q.await(function (err) { if (err) throw err; console.log('Done.'); });