Automattic / Automattic/node-canvas

s390x test failure

Open
#2,599 9 comments 0 reactions 0 assignees View on GitHub
Compatibility
Dominant language
JavaScript
Stars
10.7k
Forks
1.2k
Avg merge
4d 8h
Merged PRs (30d)
1

Description

From debian on s390:
```
1) Canvas
Context2d#createPattern(Canvas).setTransform():

AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

assert.ok(r==clr && g==clr && b==clr && a==255)

+ expected - actual

-false
+true

at /build/reproducible-path/node-canvas-3.2.3+dfsg/test/canvas.test.js:1951:16
at eachPixel (test/canvas.test.js:1931:11)
at isCheckerboard (test/canvas.test.js:1949:7)
at /build/reproducible-path/node-canvas-3.2.3+dfsg/test/canvas.test.js:1970:7
at Array.forEach ()
at Context. (test/canvas.test.js:1966:32)
at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

2) Canvas
Context2d#putImageData()
works for negative source values:

AssertionError [ERR_ASSERTION]: Expected values to be loosely deep-equal:

Uint8ClampedArray(16) [
212,
170,
85,
6,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]

should loosely deep-equal

Uint8ClampedArray(16) [
4,
5,
6,
255,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
+ expected - actual

-{"0":212,"1":170,"2":85,"3":6,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0}
+{"0":4,"1":5,"2":6,"3":255,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0}

at Context. (test/canvas.test.js:2102:14)
at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

3) Canvas
Context2d#putImageData()
works, RGBA32:

AssertionError [ERR_ASSERTION]: 0 == 255
+ expected - actual

-0
+255

at Context. (test/canvas.test.js:2119:14)
at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

4) Canvas
Context2d#putImageData()
works, RGB24/alpha:false:

AssertionError [ERR_ASSERTION]: 0 == 255
+ expected - actual

-0
+255

at Context. (test/canvas.test.js:2136:14)
at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

5) Image
supports BMP
parses 1-bit image:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:62:9)
at Context. (test/image.test.js:359:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

6) Image
supports BMP
parses 4-bit image:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:62:9)
at Context. (test/image.test.js:372:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

7) Image
supports BMP
parses 24-bit image:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:62:9)
at Context. (test/image.test.js:395:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

8) Image
supports BMP
parses 32-bit image:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:65:7)
at Context. (test/image.test.js:420:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

9) Image
supports BMP
parses minimal BMP:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:62:9)
at Context. (test/image.test.js:438:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

10) Image
supports BMP
properly handles negative height:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:62:9)
at Context. (test/image.test.js:457:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

11) Image
supports BMP
color palette:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:62:9)
at Context. (test/image.test.js:470:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)

12) Image
supports BMP
V3 header:
Error: Error while processing file header - inconsistent file size
at setSource (lib/image.js:95:13)
at Image.set (lib/image.js:62:9)
at Context. (test/image.test.js:483:15)
at callFnAsync (/usr/share/nodejs/mocha/lib/runnable.js:394:21)
at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:338:7)
at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:719:10)
at /usr/share/nodejs/mocha/lib/runner.js:842:12
at next (/usr/share/nodejs/mocha/lib/runner.js:634:14)
at /usr/share/nodejs/mocha/lib/runner.js:644:7
at next (/usr/share/nodejs/mocha/lib/runner.js:527:14)
at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:612:5)
at process.processImmediate (node:internal/timers:504:21)
```

```
Distribution: sid
Fail-Stage: build
Host Architecture: s390x
Install-Time: 48
Job: node-canvas_3.2.3+dfsg-1
Machine Architecture: s390x

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the Debian sid s390x failures in test/canvas.test.js and test/image.test.js. Read the failing assertions around lines 1931-2136 and lib/image.js around line 95, then compare behavior with another architecture. Done means the listed Canvas and BMP tests pass on s390x without weakening their assertions.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
build-system, operating-systems, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.