[Pkg-javascript-devel] Bug#1009509: node-vasync: FTBFS: ERROR: Coverage for statements (71.91%) does not meet global threshold (100%)

Lucas Nussbaum lucas at debian.org
Tue Apr 12 20:21:12 BST 2022


Source: node-vasync
Version: 2.2.1-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20220412 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary
>    dh_update_autotools_config
>    dh_autoreconf
>    dh_auto_configure --buildsystem=nodejs
>    dh_auto_build --buildsystem=nodejs
> No build command found, searching known files
>    dh_auto_test --buildsystem=nodejs
> 	mkdir -p node_modules
> 	ln -s ../. node_modules/vasync
> 	/bin/sh -ex debian/tests/pkg-js/test
> + tap tests/
> TAP version 13
> ok 1 - tests/compat.js # SKIP no tests found {
>     1..0 # no tests found
> }
> 
> ok 2 - tests/compat_tryEach.js # SKIP no tests found {
>     1..0 # no tests found
> }
> 
> (node:3381817) DeprecationWarning: deepEqual() is deprecated, use same() instead
> (Use `node --trace-deprecation ...` to show where the warning was created)
> ok 3 - tests/filter.js # time=511.999ms {
>     # Subtest: filterSeries
>         ok 1 - input 0: current tasks 1 <= 1
>         ok 2 - input 1: current tasks 1 <= 1
>         ok 3 - input 2: current tasks 1 <= 1
>         ok 4 - input 3: current tasks 1 <= 1
>         ok 5 - input 4: current tasks 1 <= 1
>         ok 6 - input 5: current tasks 1 <= 1
>         ok 7 - error unset
>         ok 8 - max tasks reached limit
>         ok 9 - results array correct
>         1..9
>     ok 1 - filterSeries # time=340.365ms
>     
>     # Subtest: filterLimit
>         ok 1 - input 0: current tasks 1 <= 2
>         ok 2 - input 1: current tasks 2 <= 2
>         ok 3 - input 2: current tasks 2 <= 2
>         ok 4 - input 3: current tasks 2 <= 2
>         ok 5 - input 4: current tasks 1 <= 2
>         ok 6 - input 5: current tasks 2 <= 2
>         ok 7 - error unset
>         ok 8 - max tasks reached limit
>         ok 9 - results array correct
>         1..9
>     ok 2 - filterLimit # time=155.832ms
>     
>     # Subtest: filter (maintain order)
>         ok 1 - input 0: current tasks 1 <= 6
>         ok 2 - input 1: current tasks 2 <= 6
>         ok 3 - input 2: current tasks 3 <= 6
>         ok 4 - input 3: current tasks 4 <= 6
>         ok 5 - input 4: current tasks 5 <= 6
>         ok 6 - input 5: current tasks 6 <= 6
>         ok 7 - error unset
>         ok 8 - max tasks reached limit
>         ok 9 - results array correct
>         1..9
>     ok 3 - filter (maintain order) # time=2.841ms
>     
>     # Subtest: filterSeries error handling
>         ok 1 - error set
>         ok 2 - error on input 3
>         ok 3 - results is unset
>         1..3
>     ok 4 - filterSeries error handling # time=1.424ms
>     
>     # Subtest: filterSeries double callback
>         ok 1 - expected to throw
>         ok 2 - expected to throw
>         ok 3 - error not set
>         ok 4 - results array correct
>         1..4
>     ok 5 - filterSeries double callback # time=3.376ms
>     
>     # Subtest: filter push to queue object error
>         ok 1 - queue is closed
>         ok 2 - expected to throw
>         1..2
>     ok 6 - filter push to queue object error # time=1.273ms
>     
>     1..6
>     # time=511.999ms
> }
> 
> ok 4 - tests/issue-21.js # SKIP no tests found {
>     1..0 # no tests found
> }
> 
> ok 5 - tests/pipeline.js # time=32.315ms {
>     # Subtest: empty pipeline
>         ok 1 - expect truthy value
>         ok 2 - expect truthy value
>         ok 3 - expect truthy value
>         ok 4 - expect truthy value
>         ok 5 - expect truthy value
>         ok 6 - expect truthy value
>         ok 7 - expect truthy value
>         ok 8 - expect truthy value
>         ok 9 - expect truthy value
>         ok 10 - should be equal
>         1..10
>     ok 1 - empty pipeline # time=19.19ms
>     
>     # Subtest: normal 4-stage pipeline
>         ok 1 - func1: successes
>         ok 2 - func1: count === 0
>         ok 3 - expect truthy value
>         ok 4 - expect truthy value
>         ok 5 - expect truthy value
>         ok 6 - expect truthy value
>         ok 7 - func1 name
>         ok 8 - expect truthy value
>         ok 9 - func2 name
>         ok 10 - expect truthy value
>         ok 11 - anon name
>         ok 12 - expect truthy value
>         ok 13 - func4 name
>         ok 14 - expect truthy value
>         ok 15 - expect truthy value
>         ok 16 - func2: successes
>         ok 17 - func2: count == 1
>         ok 18 - expect truthy value
>         ok 19 - expect truthy value
>         ok 20 - expect truthy value
>         ok 21 - expect truthy value
>         ok 22 - func3: successes
>         ok 23 - func3: successes
>         ok 24 - func3: count == 2
>         ok 25 - expect truthy value
>         ok 26 - func4: successes
>         ok 27 - func4: successes
>         ok 28 - func4: successes
>         ok 29 - func4: count == 3
>         ok 30 - expect truthy value
>         ok 31 - final: count == 4
>         ok 32 - no error
>         ok 33 - expect truthy value
>         ok 34 - final-cb: st == result
>         ok 35 - final-cb: successes
>         ok 36 - final-cb: successes
>         ok 37 - final-cb: successes
>         ok 38 - final-cb: successes
>         ok 39 - expect truthy value
>         ok 40 - expect truthy value
>         ok 41 - expect truthy value
>         ok 42 - expect truthy value
>         ok 43 - expect truthy value
>         ok 44 - expect truthy value
>         ok 45 - expect truthy value
>         ok 46 - expect truthy value
>         1..46
>     ok 2 - normal 4-stage pipeline # time=6.669ms
>     
>     # Subtest: bailing out early
>         ok 1 - func1: count === 0
>         ok 2 - func2: count == 1
>         ok 3 - final: count == 3
>         ok 4 - should be equal
>         ok 5 - expect truthy value
>         ok 6 - final-cb: st == result
>         ok 7 - expect truthy value
>         ok 8 - expect truthy value
>         ok 9 - expect truthy value
>         ok 10 - expect truthy value
>         ok 11 - expect truthy value
>         ok 12 - expect truthy value
>         1..12
>     ok 3 - bailing out early # time=1.995ms
>     
>     1..3
>     # time=32.315ms
> }
> 
> ok 6 - tests/queue.js # time=1208.859ms {
>     # Subtest: must not push after close
>         1..3
>         ok 1 - expect truthy value
>         ok 2 - push should not throw _before_ close()
>         ok 3 - push should throw _after_ close()
>     ok 1 - must not push after close # time=11.598ms
>     
>     # Subtest: get 'end' event with close()
>         1..59
>         ok 1 - expect truthy value
>         ok 2 - should be equal
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - should be equal
>         ok 6 - expect falsey value
>         ok 7 - expect falsey value
>         ok 8 - expect truthy value
>         ok 9 - expect truthy value
>         ok 10 - expect truthy value
>         ok 11 - expect truthy value
>         ok 12 - expect truthy value
>         ok 13 - expect truthy value
>         ok 14 - expect truthy value
>         ok 15 - expect truthy value
>         ok 16 - expect truthy value
>         ok 17 - expect truthy value
>         ok 18 - expect truthy value
>         ok 19 - expect truthy value
>         ok 20 - expect truthy value
>         ok 21 - expect truthy value
>         ok 22 - expect truthy value
>         ok 23 - expect truthy value
>         ok 24 - expect truthy value
>         ok 25 - expect truthy value
>         ok 26 - expect truthy value
>         ok 27 - expect truthy value
>         ok 28 - expect truthy value
>         ok 29 - expect truthy value
>         ok 30 - expect truthy value
>         ok 31 - expect truthy value
>         ok 32 - expect truthy value
>         ok 33 - expect truthy value
>         ok 34 - expect truthy value
>         ok 35 - expect truthy value
>         ok 36 - expect truthy value
>         ok 37 - expect truthy value
>         ok 38 - expect truthy value
>         ok 39 - expect truthy value
>         ok 40 - expect truthy value
>         ok 41 - expect truthy value
>         ok 42 - expect truthy value
>         ok 43 - expect truthy value
>         ok 44 - expect truthy value
>         ok 45 - expect truthy value
>         ok 46 - expect truthy value
>         ok 47 - expect truthy value
>         ok 48 - expect truthy value
>         ok 49 - expect truthy value
>         ok 50 - expect truthy value
>         ok 51 - expect truthy value
>         ok 52 - expect truthy value
>         ok 53 - expect falsey value
>         ok 54 - expect falsey value
>         ok 55 - expect truthy value
>         ok 56 - expect falsey value
>         ok 57 - should be equal
>         ok 58 - should be equal
>         ok 59 - should be equal
>     ok 2 - get 'end' event with close() # time=1175.794ms
>     
>     # Subtest: get 'end' event with close() and no tasks
>         1..10
>         ok 1 - should be equal
>         ok 2 - should be equal
>         ok 3 - should be equal
>         ok 4 - should be equal
>         ok 5 - expect falsey value
>         ok 6 - expect falsey value
>         ok 7 - expect falsey value
>         ok 8 - expect falsey value
>         ok 9 - should be equal
>         ok 10 - should be equal
>     ok 3 - get 'end' event with close() and no tasks # time=2.019ms
>     
>     # Subtest: equivalence of on('drain') and q.drain()
>         1..11
>         ok 1 - task completion
>         ok 2 - task completion
>         ok 3 - drain called
>         ok 4 - drain called
>         ok 5 - task completion
>         ok 6 - task completion
>         ok 7 - drain called
>         ok 8 - drain called
>         ok 9 - not closed
>         ok 10 - not ended
>         ok 11 - same number of calls
>     ok 4 - equivalence of on('drain') and q.drain() # time=3.51ms
>     
>     # Subtest: ensure all arguments passed to push() callback
>         1..13
>         ok 1 - got the error
>         ok 2 - should be equal
>         ok 3 - type is undefined
>         ok 4 - type is undefined
>         ok 5 - type is undefined
>         ok 6 - type is undefined
>         ok 7 - type is undefined
>         ok 8 - got no error
>         ok 9 - should be equal
>         ok 10 - should be equal
>         ok 11 - should be equal
>         ok 12 - should be equal
>         ok 13 - should be equal
>     ok 5 - ensure all arguments passed to push() callback # time=3.516ms
>     
>     # Subtest: queue kill
>         ok 1 - Function should be called once
>         ok 2 - expect truthy value
>         1..2
>     ok 6 - queue kill # time=1.555ms
>     
>     1..6
>     # time=1208.859ms
> }
> 
> ok 7 - tests/queue_concurrency.js # time=304.334ms {
>     # Subtest: test serial tasks
>         1..2
>         ok 1 - expect truthy value
>         ok 2 - expect truthy value
>     ok 1 - test serial tasks # time=206.216ms
>     
>     # Subtest: test parallel tasks
>         1..2
>         ok 1 - expect truthy value
>         ok 2 - expect truthy value
>     ok 2 - test parallel tasks # time=14.517ms
>     
>     # Subtest: test ratchet up and down
>         1..8
>         ok 1 - expect truthy value
>         ok 2 - expect truthy value
>         ok 3 - expect truthy value
>         ok 4 - expect truthy value
>         ok 5 - expect truthy value
>         ok 6 - expect truthy value
>         ok 7 - expect truthy value
>         ok 8 - expect truthy value
>     ok 3 - test ratchet up and down # time=67.533ms
>     
>     1..3
>     # time=304.334ms
> }
> 
> ok 8 - tests/waterfall.js # time=528.204ms {
>     # Subtest: empty waterfall
>         ok 1 - expect truthy value
>         ok 2 - expect truthy value
>         ok 3 - expect truthy value
>         ok 4 - expect truthy value
>         ok 5 - expect truthy value
>         ok 6 - expect truthy value
>         ok 7 - expect truthy value
>         ok 8 - expect truthy value
>         ok 9 - expect truthy value
>         ok 10 - should be equal
>         1..10
>     ok 1 - empty waterfall # time=31.881ms
>     
>     # Subtest: normal 4-stage waterfall
>         ok 1 - func1: count === 0
>         ok 2 - expect truthy value
>         ok 3 - expect truthy value
>         ok 4 - expect truthy value
>         ok 5 - expect truthy value
>         ok 6 - func1 name
>         ok 7 - expect truthy value
>         ok 8 - func2 name
>         ok 9 - expect truthy value
>         ok 10 - anon name
>         ok 11 - expect truthy value
>         ok 12 - func4 name
>         ok 13 - expect truthy value
>         ok 14 - expect truthy value
>         ok 15 - func2: extra arg
>         ok 16 - func2: count == 1
>         ok 17 - expect truthy value
>         ok 18 - expect truthy value
>         ok 19 - expect truthy value
>         ok 20 - expect truthy value
>         ok 21 - func3: extra arg
>         ok 22 - func3: extra arg
>         ok 23 - func3: extra arg
>         ok 24 - func3: count == 2
>         ok 25 - expect truthy value
>         ok 26 - func4: count == 2
>         ok 27 - expect truthy value
>         ok 28 - final: count == 4
>         ok 29 - no error
>         ok 30 - expect truthy value
>         ok 31 - expect truthy value
>         ok 32 - expect truthy value
>         ok 33 - expect truthy value
>         ok 34 - expect truthy value
>         ok 35 - expect truthy value
>         ok 36 - expect truthy value
>         ok 37 - expect truthy value
>         ok 38 - expect truthy value
>         ok 39 - expect truthy value
>         1..39
>     ok 2 - normal 4-stage waterfall # time=90.561ms
>     
>     # Subtest: bailing out early
>         ok 1 - func1: count === 0
>         ok 2 - func2: count == 1
>         ok 3 - final: count == 3
>         ok 4 - should be equal
>         ok 5 - expect truthy value
>         ok 6 - expect truthy value
>         ok 7 - expect truthy value
>         ok 8 - expect truthy value
>         ok 9 - expect truthy value
>         ok 10 - expect truthy value
>         1..10
>     ok 3 - bailing out early # time=43.021ms
>     
>     # Subtest: bad function
>         ok 1 - vasync.waterfall: function 0 ("func1") invoked its callback twice
>         ok 2 - should be equal
>         1..2
>     ok 4 - bad function # time=105.446ms
>     
>     # Subtest: badargs
>         ok 1 - expected to throw
>         ok 2 - expected to throw
>         ok 3 - expected to throw
>         1..3
>     ok 5 - badargs # time=45.408ms
>     
>     # Subtest: normal waterfall, no callback
>         ok 1 - expect truthy value
>         ok 2 - expect truthy value
>         ok 3 - expect truthy value
>         1..3
>     ok 6 - normal waterfall, no callback # time=102.556ms
>     
>     # Subtest: empty waterfall, no callback
>         1..0
>     ok 7 - empty waterfall, no callback # time=101.125ms
>     
>     1..7
>     # time=528.204ms
> }
> 
> ok 9 - tests/whilst.js # time=29.698ms {
>     # Subtest: basic whilst
>         ok 1 - error unset
>         ok 2 - n == 5
>         ok 3 - n == arg
>         1..3
>     ok 1 - basic whilst # time=15.251ms
>     
>     # Subtest: whilst return object
>         ok 1 - whilst returns an object
>         ok 2 - whilst is not finished
>         ok 3 - whilst has not started yet
>         ok 4 - n == w.iterations: 1
>         ok 5 - n == w.iterations: 2
>         ok 6 - n == w.iterations: 3
>         ok 7 - n == w.iterations: 4
>         ok 8 - n == w.iterations: 5
>         ok 9 - error unset
>         ok 10 - whilst had 5 iterations
>         ok 11 - whilst has finished
>         ok 12 - whilst arg1 == n
>         ok 13 - whilst arg2 == "foo"
>         ok 14 - whilst arg3 == undefined
>         1..14
>     ok 2 - whilst return object # time=6.961ms
>     
>     # Subtest: whilst false condition
>         ok 1 - error is unset
>         ok 2 - arg is unset
>         1..2
>     ok 3 - whilst false condition # time=0.876ms
>     
>     # Subtest: whilst error
>         ok 1 - error is set
>         ok 2 - should be equal
>         ok 3 - should be equal
>         ok 4 - whilst is finished
>         ok 5 - whilst had 6 iterations
>         1..5
>     ok 4 - whilst error # time=1.348ms
>     
>     1..4
>     # time=29.698ms
> }
> 
> 1..9
> # skip: 3
> # time=3257.331ms
> ERROR: Coverage for lines (72.13%) does not meet global threshold (100%)
> ERROR: Coverage for functions (61.81%) does not meet global threshold (100%)
> ERROR: Coverage for branches (66.66%) does not meet global threshold (100%)
> ERROR: Coverage for statements (71.91%) does not meet global threshold (100%)
> -----------|---------|----------|---------|---------|-----------------------------------------------
> File       | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                             
> -----------|---------|----------|---------|---------|-----------------------------------------------
> All files  |   71.91 |    66.66 |   61.81 |   72.13 |                                               
>  vasync.js |   71.91 |    66.66 |   61.81 |   72.13 | ...31,551,576,592-611,618-620,625-667,841,877 
> -----------|---------|----------|---------|---------|-----------------------------------------------
> dh_auto_test: error: /bin/sh -ex debian/tests/pkg-js/test returned exit code 1


The full build log is available from:
http://qa-logs.debian.net/2022/04/12/node-vasync_2.2.1-1_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20220412;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20220412&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.



More information about the Pkg-javascript-devel mailing list