Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] test/git.js is failing with code coverage for all not meeting global threshold #411

Open
1 task done
ramnathnayak-ibm opened this issue Oct 21, 2024 · 3 comments
Open
1 task done
Labels
Bug thing that needs fixing Needs Triage needs an initial review

Comments

@ramnathnayak-ibm
Copy link

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When i try to run the test command npm test --ignore-scripts on RHEL ppc64le I am facing test errors.

test/git.js error:

 FAIL ​ test/git.js
 ✖ test unfinished


  t.test('spawn daemon', t => {
----^
    const daemon = spawn('git', [
      'daemon',

  test: spawn daemon
  stack: |
    Test.<anonymous> (test/git.js:201:5)
    Object.<anonymous> (test/git.js:86:3)
    Module.replacementCompile (node_modules/append-transform/index.js:60:13)
    Object.<anonymous> (node_modules/append-transform/index.js:64:4)
  at:
    line: 201
    column: 5
    file: test/git.js
    function: Test.<anonymous>

Code coverage error:

Suites:   ​11 passed​, ​11 of 13 completed​
Asserts:  ​​​1 failed​, ​309 passed​, ​of 310​
Time:​   ​11s​
ERROR: Coverage for lines (85.97%) does not meet global threshold (100%)
ERROR: Coverage for functions (86.53%) does not meet global threshold (100%)
ERROR: Coverage for branches (78.55%) does not meet global threshold (100%)
ERROR: Coverage for statements (86.25%) does not meet global threshold (100%)
------------------------|---------|----------|---------|---------|--------------------------
File                    | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
------------------------|---------|----------|---------|---------|--------------------------
All files               |   86.25 |    78.55 |   86.53 |   85.97 |
 bin                    |     100 |      100 |     100 |     100 |
  index.js              |     100 |      100 |     100 |     100 |
 lib                    |   83.56 |    73.78 |   84.21 |   83.11 |
  dir.js                |   95.34 |    95.83 |     100 |   95.34 | 76-77
  fetcher.js            |     100 |      100 |     100 |     100 |
  file.js               |     100 |      100 |     100 |     100 |
  git.js                |   22.03 |     6.18 |    8.69 |    22.6 | 22,34-35,46-48,60,70-314
  index.js              |     100 |      100 |     100 |     100 |
  registry.js           |     100 |      100 |     100 |     100 |
  remote.js             |     100 |      100 |     100 |     100 |
 lib/util               |     100 |      100 |     100 |     100 |
  add-git-sha.js        |     100 |      100 |     100 |     100 |
  cache-dir.js          |     100 |      100 |     100 |     100 |
  is-package-bin.js     |     100 |      100 |     100 |     100 |
  npm.js                |     100 |      100 |     100 |     100 |
  protected.js          |     100 |      100 |     100 |     100 |
  tar-create-options.js |     100 |      100 |     100 |     100 |
  trailing-slashes.js   |     100 |      100 |     100 |     100 |
------------------------|---------|----------|---------|---------|--------------------------

Expected Behavior

Expected behaviour as per ci after running npm test --ignore-scripts should be :

TAP version 13
# Subtest: test/bin.js
    # Subtest: running bin runs main file
        ok 1 - should be equal
        ok 2 - should be equal
        ok 3 - helpful output
        1..3
    ok 1 - running bin runs main file # time=265.513ms
    
    # Subtest: parseArg
        ok 1 - should be equivalent
        ok 2 - should be equivalent
        ok 3 - should be equivalent
        ok 4 - should be equivalent
        ok 5 - should be equivalent
        1..5
    ok 2 - parseArg # time=15.2[9](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:10)3ms
    
    # Subtest: parse
        ok 1 - should be equivalent
        ok 2 - should be equivalent
        ok 3 - should be equivalent
        ok 4 - should match pattern provided
        1..4
    ok 3 - parse # time=8.116ms
    
    # Subtest: run
        ok 1 - expect resolving Promise
        ok 2 - expect resolving Promise
        ok 3 - expect resolving Promise
        ok 4 - expect resolving Promise
        ok 5 - expect resolving Promise
        ok 6 - expected to throw
        ok 7 - expect resolving Promise
        ok 8 - should be equal
        1..8
    ok 4 - run # time=40.13ms
    
    # Subtest: main
        # Subtest: --help
            ok 1 - must match snapshot
            1..1
        ok 1 - --help # time=24.789ms
        
        # Subtest: resolve foo@bar
            ok 1 - must match snapshot
            1..1
        ok 2 - resolve foo@bar # time=1.159ms
        
        # Subtest: resolve foo@bar --long
            ok 1 - must match snapshot
            1..1
        ok 3 - resolve foo@bar --long # time=1.774ms
        
        # Subtest: resolve string
            ok 1 - must match snapshot
            1..1
        ok 4 - resolve string # time=1.272ms
        
        # Subtest: resolve string --json
            ok 1 - must match snapshot
            1..1
        ok 5 - resolve string --json # time=1.451ms
        
        # Subtest: manifest bar@foo
            ok 1 - must match snapshot
            1..1
        ok 6 - manifest bar@foo # time=1.073ms
        
        # Subtest: packument paku@mint
            ok 1 - must match snapshot
            1..1
        ok 7 - packument paku@mint # time=1.018ms
        
        # Subtest: tarball tar@ball file.tgz
            ok 1 - must match snapshot
            1..1
        ok 8 - tarball tar@ball file.tgz # time=0.891ms
        
        # Subtest: extract npm@latest-6 folder --no-json
            ok 1 - must match snapshot
            1..1
        ok 9 - extract npm@latest-6 folder --no-json # time=0.913ms
        
        # Subtest: extract npm@latest-6 folder --json
            ok 1 - must match snapshot
            1..1
        ok [10](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:11) - extract npm@latest-6 folder --json # time=1.354ms
        
        # Subtest: blerg glorb glork
            ok 1 - must match snapshot
            1..1
        ok [11](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:12) - blerg glorb glork # time=1.073ms
        
        # Subtest: resolve fail
            ok 1 - must match snapshot
            1..1
        ok [12](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:13) - resolve fail # time=1.264ms
        
        1..12
    ok 5 - main # time=57.541ms
    
    1..5
    # time=392.106ms
ok 1 - test/bin.js # time=392.106ms

# Subtest: test/dir.js
    # Subtest: basic
        ok 1 - should be equivalent
        ok 2 - packument
        ok 3 - manifest
        ok 4 - extract
        ok 5 - package.json extracted
        ok 6 - saved package.json
        ok 7 - should be equal
        1..7
    ok 1 - basic # time=276.627ms
    
    # Subtest: dir with integrity
        ok 1 - should be equivalent
        ok 2 - packument
        1..2
    ok 2 - dir with integrity # time=15.555ms
    
    # Subtest: with prepare script
        ok 1 - packument
        ok 2 - manifest
        ok 3 - extract
        # Subtest: test prepared result
            1..1
            ok 1 - no dev dep
        ok 4 - test prepared result # time=254.251ms
        
        ok 5 - file list
        ok 6 - should run in background
        1..6
    ok 3 - with prepare script # time=5[13](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:14).387ms
    
    # Subtest: with prepare script with scriptshell configuration
        ok 1 - packument
        ok 2 - manifest
        ok 3 - extract
        # Subtest: test prepared result
            1..1
            ok 1 - no dev dep
        ok 4 - test prepared result # time=187.193ms
        
        ok 5 - file list
        ok 6 - should run in background and use scriptshell configuration
        1..6
    ok 4 - with prepare script with scriptshell configuration # time=437.73ms
    
    # Subtest: responds to foregroundScripts: true
        ok 1 - packument
        ok 2 - manifest
        ok 3 - extract
        # Subtest: test prepared result
            1..1
            ok 1 - no dev dep
        ok 4 - test prepared result # time=207.317ms
        
        ok 5 - file list
        ok 6 - should run in foreground
        1..6
    ok 5 - responds to foregroundScripts: true # time=508.895ms
    
    # Subtest: missing dir cannot be packed
        ok 1 - expect rejected Promise
        1..1
    ok 6 - missing dir cannot be packed # time=1262.912ms
    
    # Subtest: when read fails
        ok 1 - expect rejected Promise: Error poop
        1..1
    ok 7 - when read fails # time=[14](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:15)04.291ms
    
    # Subtest: make bins executable
        ok 1 - results of unpack
        ok 2 - should be equal
        1..2
    ok 8 - make bins executable # time=6.573ms
    
    # Subtest: exposes tarCreateOptions method
        ok 1 - should return standard options
        1..1
    ok 9 - exposes tarCreateOptions method # time=1.254ms
    
    # Subtest: fails without a tree or constructor
        ok 1 - expect rejected Promise
        1..1
    ok 10 - fails without a tree or constructor # time=2.116ms
    
    # Subtest: with prepare script and ignoreScripts true
        ok 1 - expect truthy value
        1..1
    ok 11 - with prepare script and ignoreScripts true # time=43.139ms
    
    1..11
    # time=4494.123ms
ok 2 - test/dir.js # time=4494.123ms

# Subtest: test/fetcher.js
    # Subtest: do not mutate opts object passed in
        ok 1 - should be equivalent strictly
        ok 2 - should match pattern provided
        1..2
    ok 1 - do not mutate opts object passed in # time=11.853ms
    
    # Subtest: snapshot the npmInstallCmd and npmInstallConfig
        ok 1 - use default npm bin
        ok 2 - default install cmd
        ok 3 - default install config
        ok 4 - do not have a _cacache folder on cache config passed to npm cli
        ok 5 - have a _cacache folder on default pacote config itself
        ok 6 - use default npm bin
        ok 7 - default install cmd with before
        ok 8 - default install config with before
        ok 9 - use default yarn bin
        ok 10 - customized npmInstallCmd
        ok 11 - yarn style cli config stuff
        1..11
    ok 2 - snapshot the npmInstallCmd and npmInstallConfig # time=33.008ms
    
    # Subtest: tarball data
        ok 1 - without integrity
        ok 2 - integrity calculated
        ok 3 - with integrity
        1..3
    ok 3 - tarball data # time=104.567ms
    
    # Subtest: tarballFile
        # Subtest: basic
            ok 1 - 1.tgz
            ok 2 - 2.tgz
            1..2
        ok 1 - basic # time=51.061ms
        
        # Subtest: fs read stream error
            ok 1 - tarballFile
            ok 2 - tarball stream
            1..2
        ok 2 - fs read stream error # time=48.184ms
        
        # Subtest: fs write stream error
            ok 1 - expect rejected Promise
            1..1
        ok 3 - fs write stream error # time=25.326ms
        
        # Subtest: file not found
            ok 1 - expect rejected Promise
            1..1
        ok 4 - file not found # time=16.382ms
        
        1..4
    ok 4 - tarballFile # time=[15](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:16)6.517ms
    
    # Subtest: extract
        # Subtest: uncached
            ok 1 - resolved to filename
            ok 2 - integrity match
            ok 3 - name in package.json
            ok 4 - version in package.json
            1..4
        ok 1 - uncached # time=1.139ms
        
        # Subtest: cached
            ok 1 - resolved to filename
            ok 2 - integrity match
            ok 3 - name in package.json
            ok 4 - version in package.json
            1..4
        ok 2 - cached # time=1.693ms
        
        ok 3 - got expected logs
        # Subtest: badcache
            ok 1 - resolved to filename
            ok 2 - integrity match
            ok 3 - name in package.json
            ok 4 - version in package.json
            1..4
        ok 4 - badcache # time=1.812ms
        
        ok 5 - expect rejected Promise
        ok 6 - expect rejected Promise
        ok 7 - got expected error
        ok 8 - got expected logs
        1..8
    ok 5 - extract # time=284.938ms
    
    # Subtest: extract into folder that already has a package in it
        ok 1 - excluded or removedindex-hardlink.js
        ok 2 - excluded or removedindex-symlink.js
        ok 3 - excluded or removed.gitignore
        ok 4 - excluded or removedlib/.gitignore
        ok 5 - excluded or removedno-gitignore-here/.gitignore
        ok 6 - excluded or removednode_modules/foo
        ok 7 - excluded or removednode_modules/.bin/foo
        ok 8 - still have file at no-gitignore-here/.npmignore
        ok 9 - still have file at node_modules/bar/package.json
        ok 10 - still have file at node_modules/bar/index.js
        ok 11 - still have file at node_modules/.bin/bar
        1..11
    ok 6 - extract into folder that already has a package in it # time=55.708ms
    
    # Subtest: a non-retriable cache error
        ok 1 - expect rejected Promise: Error poop
        1..1
    ok 7 - a non-retriable cache error # time=9.864ms
    
    # Subtest: before implies full metadata
        ok 1 - should be equal
        1..1
    ok 8 - before implies full metadata # time=5.087ms
    
    # Subtest: various projectiles
        ok 1 - expected to throw
        ok 2 - expect rejected Promise
        ok 3 - has resolved
        ok 4 - expect rejected Promise
        ok 5 - expect rejected Promise
        ok 6 - expect rejected Promise
        ok 7 - expect rejected Promise
        ok 8 - expected to throw
        ok 9 - expected to throw
        1..9
    ok 9 - various projectiles # time=30.615ms
    
    # Subtest: fetcher.get
        ok 1 - should be equal
        ok 2 - should be equal
        ok 3 - should be equal
        ok 4 - should be equal
        ok 5 - should be equal
        ok 6 - should be equal
        ok 7 - should be equal
        ok 8 - should be equal
        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
        1..13
    ok 10 - fetcher.get # time=8.115ms
    
    # Subtest: make bins executable
        ok 1 - should be equal
        ok 2 - results of unpack
        ok 3 - should be equal
        1..3
    ok 11 - make bins executable # time=57.064ms
    
    # Subtest: set integrity, pick default algo
        ok 1 - should be equal
        ok 2 - type is Object
        ok 3 - cannot remove integrity
        ok 4 - should be equal
        1..4
    ok 12 - set integrity, pick default algo # time=2.622ms
    
    # Subtest: replace opts defaults to default registry
        ok 1 - should be equal
        1..1
    ok 13 - replace opts defaults to default registry # time=0.593ms
    
    # Subtest: replace opts never
        ok 1 - should be equal
        1..1
    ok 14 - replace opts never # time=0.609ms
    
    # Subtest: replace opts always
        ok 1 - should be equal
        1..1
    ok 15 - replace opts always # time=0.557ms
    
    1..15
    # time=775.93ms
ok 3 - test/fetcher.js # time=775.93ms

# Subtest: test/file.js
    # Subtest: basic
        ok 1 - should be equivalent
        ok 2 - manifest
        ok 3 - should be equal
        ok 4 - cached manifest
        ok 5 - packument
        ok 6 - extract
        ok 7 - package.json extracted
        ok 8 - write cache content file
        1..8
    ok 1 - basic # time=222.237ms
    
    # Subtest: make bins executable
        1..3
        # Subtest: bin-string
            ok 1 - results of unpack
            ok 2 - should be equal
            1..2
        ok 1 - bin-string # time=22.415ms
        
        # Subtest: bin-object
            ok 1 - results of unpack
            ok 2 - should be equal
            1..2
        ok 2 - bin-object # time=6.057ms
        
        # Subtest: bin-good
            ok 1 - results of unpack
            ok 2 - should be equal
            1..2
        ok 3 - bin-good # time=15.732ms
        
    ok 2 - make bins executable # time=49.773ms
    
    # Subtest: dont bork on missing script
        ok 1 - should be missing
        1..1
    ok 3 - dont bork on missing script # time=6.126ms
    
    # Subtest: with readme
        ok 1 - should be equivalent
        ok 2 - manifest-slow-json
        ok 3 - should be equal
        ok 4 - cached manifest
        ok 5 - packument-slow-json
        ok 6 - extract-slow-json
        ok 7 - package.json extracted slow json
        ok 8 - write cache content file
        1..8
    ok 4 - with readme # time=99.793ms
    
    1..4
    # time=382.402ms
ok 4 - test/file.js # time=382.402ms

# Subtest: test/git.js
    # Subtest: setup
        # Subtest: create repo
            1..0
        ok 1 - create repo # time=1083.471ms
        
        # Subtest: create cycle of git prepared deps
            1..0
        ok 2 - create cycle of git prepared deps # time=1196.796ms
        
        # Subtest: spawn daemon
            1..0
        ok 3 - spawn daemon # time=96.987ms
        
        # Subtest: create a repo with a submodule
            1..0
        ok 4 - create a repo with a submodule # time=521.819ms
        
        # Subtest: create a repo with workspaces
            1..0
        ok 5 - create a repo with workspaces # time=46.209ms
        
        # Subtest: create a repo with only a prepack script
            1..0
        ok 6 - create a repo with only a prepack script # time=35.194ms
        
        # Subtest: hosted service
            1..0
        ok 7 - hosted service # time=2.141ms
        
        1..7
    ok 1 - setup # time=2993.079ms
    
    # Subtest: basic stuff
        ok 1 - should be equivalent
        ok 2 - should be equal
        ok 3 - should be equal
        ok 4 - should be equal
        ok 5 - should be equal
        ok 6 - should not be equal
        ok 7 - got the same resolved
        ok 8 - got the same integrity
        ok 9 - expected to throw
        ok 10 - should be equal
        ok 11 - should match pattern provided
        ok 12 - cached manifest
        1..12
    ok 2 - basic stuff # time=1978.389ms
    
    # Subtest: ignores integrity for git deps
        1..3
        ok 1 - should be equal
        ok 2 - should match pattern provided
        ok 3 - should match pattern provided
    ok 3 - ignores integrity for git deps # time=134.52ms
    
    # Subtest: weird hosted that doesnt provide any fetch targets
        ok 1 - expect rejected Promise
        ok 2 - expect rejected Promise
        1..2
    ok 4 - weird hosted that doesnt provide any fetch targets # time=2.802ms
    
    # Subtest: extract from tarball from hosted git service
        # Subtest: localhost
            # Subtest: with repo@ on the spec
                ok 1 - should match pattern provided
                ok 2 - should match pattern provided
                ok 3 - expected to throw
                1..3
            ok 1 - with repo@ on the spec # time=638.172ms
            
            # Subtest: without repo@on the spec
                ok 1 - should match pattern provided
                ok 2 - should match pattern provided
                ok 3 - expected to throw
                1..3
            ok 2 - without repo@on the spec # time=630.82ms
            
            1..2
        ok 1 - localhost # time=1271.532ms
        
        # Subtest: localhostssh
            # Subtest: with repo@ on the spec
                ok 1 - should match pattern provided
                ok 2 - should match pattern provided
                ok 3 - expected to throw
                1..3
            ok 1 - with repo@ on the spec # time=604.[16](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:17)3ms
            
            # Subtest: without repo@on the spec
                ok 1 - should match pattern provided
                ok 2 - should match pattern provided
                ok 3 - expected to throw
                1..3
            ok 2 - without repo@on the spec # time=597.398ms
            
            1..2
        ok 2 - localhostssh # time=1204.702ms
        
        1..2
    ok 5 - extract from tarball from hosted git service # time=2478.8ms
    
    # Subtest: include auth with hosted https when provided
        ok 1 - should be equal
        ok 2 - using the correct dummy hosted service
        # Subtest: fail, but do not fall through to sshurl
            ok 1 - using the correct dummy hosted service
            ok 2 - expect rejected Promise
            1..2
        ok 3 - fail, but do not fall through to sshurl # time=13.539ms
        
        1..3
    ok 6 - include auth with hosted https when provided # time=66.241ms
    
    # Subtest: include .gitignore in hosted tarballs for preparation
        ok 1 - should be equivalent strictly
        1..1
    ok 7 - include .gitignore in hosted tarballs for preparation # time=569.294ms
    
    # Subtest: add git sha to hosted git shorthand
        ok 1 - should be equal
        1..1
    ok 8 - add git sha to hosted git shorthand # time=0.657ms
    
    # Subtest: fetch a weird ref
        # Subtest: hosted
            ok 1 - got git url as resolved value
            ok 2 - git url for HEAD~3 is not the same as HEAD
            1..2
        ok 1 - hosted # time=827.811ms
        
        # Subtest: regular
            ok 1 - got the same HEAD~3 sha as before
            1..1
        ok 2 - regular # time=822.38ms
        
        1..2
    ok 9 - fetch a weird ref # time=1651.893ms
    
    # Subtest: fetch a private repo where the tgz is a 404
        1..0
    ok 10 - fetch a private repo where the tgz is a 404 # time=732.815ms
    
    # Subtest: fetch a private repo where the tgz is not a tarball
        ok 1 - expect rejected Promise
        1..1
    ok 11 - fetch a private repo where the tgz is not a tarball # time=10.165ms
    
    # Subtest: resolved is a git+ssh url for hosted repos that support it
        ok 1 - should be equal
        1..1
    ok 12 - resolved is a git+ssh url for hosted repos that support it # time=0.793ms
    
    # Subtest: resolved preserves git+ssh url for non-hosted repos
        ok 1 - should be equal
        1..1
    ok 13 - resolved preserves git+ssh url for non-hosted repos # time=0.547ms
    
    # Subtest: fall back to ssh url if https url fails or is missing
        ok 1 - should be equal
        1..1
    ok 14 - fall back to ssh url if https url fails or is missing # time=780.814ms
    
    # Subtest: repoUrl function
        ok 1 - should match pattern provided
        ok 2 - should match pattern provided
        ok 3 - should match pattern provided
        ok 4 - should match pattern provided
        ok 5 - should match pattern provided
        1..5
    ok 15 - repoUrl function # time=1.77ms
    
    # Subtest: handle it when prepared git deps depend on each other
        ok 1 - should match pattern provided
        ok 2 - should be equivalent strictly
        ok 3 - does not continue installing once loop is detected
        ok 4 - should match pattern provided
        ok 5 - should be equivalent strictly
        ok 6 - does not continue installing once loop is detected
        1..6
    ok 16 - handle it when prepared git deps depend on each other # time=3988.84ms
    
    # Subtest: missing branch name throws pathspec error
        ok 1 - localhostssh
        ok 2 - localhostssh
        ok 3 - localhosthttps
        ok 4 - localhosthttps
        ok 5 - localhost
        ok 6 - localhost
        1..6
    ok [17](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:18) - missing branch name throws pathspec error # time=695.165ms
    
    # Subtest: simple repo with workspaces
        ok 1 - should run prepare phase when finding workspaces
        1..1
    ok [18](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:19) - simple repo with workspaces # time=684.699ms
    
    # Subtest: simple repo with only a prepack script
        ok 1 - should run prepack lifecycle script
        1..1
    ok [19](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:20) - simple repo with only a prepack script # time=641.123ms
    
    # Subtest: fails without arborist constructor
        ok 1 - expect rejected Promise
        1..1
    ok [20](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:21) - fails without arborist constructor # time=571.878ms
    
    1..20
    # time=17995.766ms
ok 5 - test/git.js # time=17995.766ms

# Subtest: test/index.js
    ok 1 - resolve
    ok 2 - extract
    ok 3 - manifest
    ok 4 - packument
    ok 5 - tarball
    ok 6 - tarball to file
    ok 7 - manifest
    ok 8 - should expose fetcher classes
    ok 9 - should expose fetcher classes
    ok 10 - should expose fetcher classes
    ok 11 - should expose fetcher classes
    ok 12 - should expose fetcher classes
    ok 13 - should match pattern provided
    ok 14 - should match pattern provided
    1..14
    # time=263.037ms
ok 6 - test/index.js # time=263.037ms

# Subtest: test/registry.js
    # Subtest: underscore, no tag or version
        ok 1 - should be equal
        ok 2 - should be equal
        ok 3 - should match pattern provided
        ok 4 - manifest cached
        ok 5 - should be equivalent
        1..5
    ok 1 - underscore, no tag or version # time=206.255ms
    
    # Subtest: scoped, no tag or version
        ok 1 - should be equal
        ok 2 - should match pattern provided
        ok 3 - should be equivalent
        1..3
    ok 2 - scoped, no tag or version # time=69.976ms
    
    # Subtest: provide invalid integrity, fails to unpack
        ok 1 - expect rejected Promise
        1..1
    ok 3 - provide invalid integrity, fails to unpack # time=36.725ms
    
    # Subtest: provide invalid integrity, fails to manifest
        ok 1 - expect rejected Promise
        1..1
    ok 4 - provide invalid integrity, fails to manifest # time=33.939ms
    
    # Subtest: provide different type of integrity, concats
        ok 1 - should be equal
        1..1
    ok 5 - provide different type of integrity, concats # time=23.606ms
    
    # Subtest: provide matching integrity, totes ok, includes signature
        ok 1 - should match pattern provided
        1..1
    ok 6 - provide matching integrity, totes ok, includes signature # time=40.32ms
    
    # Subtest: verifySignatures valid signature
        ok 1 - expect truthy value
        ok 2 - expect truthy value
        1..2
    ok 7 - verifySignatures valid signature # time=24.256ms
    
    # Subtest: verifySignatures expired key
        ok 1 - expect rejected Promise
        1..1
    ok 8 - verifySignatures expired key # time=25.4ms
    
    # Subtest: verifySignatures rotated keys
        ok 1 - should match pattern provided
        1..1
    ok 9 - verifySignatures rotated keys # time=26.058ms
    
    # Subtest: verifySignatures invalid signature
        ok 1 - expect rejected Promise
        1..1
    ok 10 - verifySignatures invalid signature # time=26.367ms
    
    # Subtest: verifySignatures no valid key
        ok 1 - expect rejected Promise
        1..1
    ok 11 - verifySignatures no valid key # time=22.477ms
    
    # Subtest: verifySignatures no registry keys at all
        ok 1 - expect rejected Promise
        1..1
    ok 12 - verifySignatures no registry keys at all # time=19.417ms
    
    # Subtest: verifyAttestations valid attestations
        ok 1 - expect truthy value
        ok 2 - expect truthy value
        1..2
    ok 13 - verifyAttestations valid attestations # time=32.984ms
    
    # Subtest: verifyAttestations when registry returns no attestations
        ok 1 - expect rejected Promise
        1..1
    ok 14 - verifyAttestations when registry returns no attestations # time=19.72ms
    
    # Subtest: verifyAttestations when package has no attestations
        ok 1 - expect truthy value
        1..1
    ok 15 - verifyAttestations when package has no attestations # time=11.725ms
    
    # Subtest: disable verifyAttestations when package has attestations
        ok 1 - expect truthy value
        ok 2 - expect truthy value
        1..2
    ok 16 - disable verifyAttestations when package has attestations # time=17.659ms
    
    # Subtest: verifyAttestations invalid signature
        ok 1 - expect rejected Promise
        1..1
    ok 17 - verifyAttestations invalid signature # time=20.254ms
    
    # Subtest: verifyAttestations publish attestation for unknown public key
        ok 1 - expect rejected Promise
        1..1
    ok 18 - verifyAttestations publish attestation for unknown public key # time=27.816ms
    
    # Subtest: verifyAttestations no attestation with keyid
        ok 1 - expect rejected Promise
        1..1
    ok 19 - verifyAttestations no attestation with keyid # time=24.741ms
    
    # Subtest: verifyAttestations valid attestations
        ok 1 - expect rejected Promise
        1..1
    ok 20 - verifyAttestations valid attestations # time=23.436ms
    
    # Subtest: verifyAttestations no matching registry keys
        ok 1 - expect rejected Promise
        1..1
    ok [21](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:22) - verifyAttestations no matching registry keys # time=14.55ms
    
    # Subtest: verifyAttestations no valid key
        ok 1 - expect rejected Promise
        1..1
    ok [22](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:23) - verifyAttestations no valid key # time=31.188ms
    
    # Subtest: verifyAttestations rotated key
        ok 1 - expect truthy value
        ok 2 - expect truthy value
        1..2
    ok [23](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:24) - verifyAttestations rotated key # time=31.725ms
    
    # Subtest: verifyAttestations no registry keys at all
        ok 1 - expect rejected Promise
        1..1
    ok [24](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:25) - verifyAttestations no registry keys at all # time=21.284ms
    
    # Subtest: verifyAttestations fetching without version
        ok 1 - expect rejected Promise
        1..1
    ok [25](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:26) - verifyAttestations fetching without version # time=18.708ms
    
    # Subtest: verifyAttestations mismatched subject name
        ok 1 - expect rejected Promise
        1..1
    ok [26](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:27) - verifyAttestations mismatched subject name # time=21.086ms
    
    # Subtest: verifyAttestations mismatched subject sha512 digest
        ok 1 - expect rejected Promise
        1..1
    ok [27](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:28) - verifyAttestations mismatched subject sha512 digest # time=22.681ms
    
    # Subtest: verifyAttestations bundle payload that does not match the tlog entry
        ok 1 - expect rejected Promise
        1..1
    ok [28](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:29) - verifyAttestations bundle payload that does not match the tlog entry # time=33.594ms
    
    # Subtest: 404 fails with E404
        ok 1 - expect rejected Promise
        ok 2 - tried again with got full metadata
        1..2
    ok [29](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:30) - 404 fails with E404 # time=13.946ms
    
    # Subtest: respect default tag
        ok 1 - should be equal
        1..1
    ok [30](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:31) - respect default tag # time=52.329ms
    
    # Subtest: fail resolution if no dist.tarball
        ok 1 - expect rejected Promise
        1..1
    ok [31](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:32) - fail resolution if no dist.tarball # time=33.158ms
    
    # Subtest: a manifest that lacks integrity
        ok 1 - should have no integrity
        ok 2 - calculated integrity anyway
        ok 3 - serve cached packument
        1..3
    ok [32](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:33) - a manifest that lacks integrity # time=59.813ms
    
    # Subtest: packument that has been cached
        ok 1 - got cached packument
        1..1
    ok [33](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:34) - packument that has been cached # time=0.986ms
    
    # Subtest: corgi packument is not cached as full packument
        ok 1 - did not get cached packument
        ok 2 - full packument is also now cached
        1..2
    ok [34](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:35) - corgi packument is not cached as full packument # time=19.362ms
    
    # Subtest: packument that falls back to fullMetadata
        ok 1 - got packument (eventually)
        ok 2 - sent a 404 for the missing corgi doc
        1..2
    ok [35](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:36) - packument that falls back to fullMetadata # time=26.772ms
    
    # Subtest: option replaceRegistryHost
        # Subtest: host should not be replaced
            ok 1 - should be equal
            ok 2 - should be equal
            ok 3 - Underscores are preserved
            ok 4 - should match pattern provided
            1..4
        ok 1 - host should not be replaced # time=93.006ms
        
        # Subtest: host should be replaced
            ok 1 - should be equal
            ok 2 - should be equal
            ok 3 - should match pattern provided
            1..3
        ok 2 - host should be replaced # time=40.98ms
        
        # Subtest: host should be replaced if set to npmjs
            ok 1 - should be equal
            ok 2 - should be equal
            ok 3 - should match pattern provided
            1..3
        ok 3 - host should be replaced if set to npmjs # time=26.128ms
        
        1..3
    ok [36](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:37) - option replaceRegistryHost # time=169.354ms
    
    # Subtest: packument contentLength from registry
        ok 1 - content length is undefined from registry requests
        1..1
    ok [37](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:38) - packument contentLength from registry # time=30.039ms
    
    1..37
    # time=1454.065ms
ok 7 - test/registry.js # time=1454.065ms

# Subtest: test/remote.js
    # Subtest: start server
        1..0
    ok 1 - start server # time=93.272ms
    
    # Subtest: packument
        ok 1 - packument
        ok 2 - packument 2
        ok 3 - only one request hit the server
        ok 4 - should match pattern provided
        1..4
    ok 2 - packument # time=222.662ms
    
    # Subtest: bad integrity
        ok 1 - expect rejected Promise
        1..1
    ok 3 - bad integrity # time=41.371ms
    
    # Subtest: known integrity
        ok 1 - got the right integrity back out
        1..1
    ok 4 - known integrity # time=12.429ms
    
    # Subtest: an missing tarball
        ok 1 - expect rejected Promise
        1..1
    ok 5 - an missing tarball # time=29.105ms
    
    # Subtest: not a tarball
        ok 1 - expect rejected Promise
        1..1
    ok 6 - not a tarball # time=32.21ms
    
    # Subtest: get a timeout error from the http fetch
        ok 1 - expect rejected Promise
        1..1
    ok 7 - get a timeout error from the http fetch # time=17.27ms
    
    # Subtest: option replaceRegistryHost
        # Subtest: host should be replaced if set to always on npmjs registry
            ok 1 - should be equal
            ok 2 - should match pattern provided
            1..2
        ok 1 - host should be replaced if set to always on npmjs registry # time=43.613ms
        
        # Subtest: host should be replaced if set to always on other registry
            ok 1 - should be equal
            ok 2 - should match pattern provided
            1..2
        ok 2 - host should be replaced if set to always on other registry # time=25.621ms
        
        1..2
    ok 8 - option replaceRegistryHost # time=84.07ms
    
    1..8
    # time=543.48ms
ok 8 - test/remote.js # time=543.48ms

# Subtest: test/util/add-git-sha.js
    1..21
    ok 1 - git+ssh://git@some-host:user/repo + sha = git+ssh://git@some-host:user/repo\#sha
    ok 2 - git+ssh://git@some-host:user/repo\#othersha + sha = git+ssh://git@some-host:user/repo\#sha
    ok 3 - git+ssh://git@some-host:user/repo\#othersha\#otherothersha + sha = git+ssh://git@some-host:user/repo\#sha
    ok 4 - git+ssh://git@some-host/user/repo + sha = git+ssh://git@some-host/user/repo\#sha
    ok 5 - git+ssh://git@some-host/user/repo\#othersha + sha = git+ssh://git@some-host/user/repo\#sha
    ok 6 - git+ssh://git@some-host/user/repo\#othersha\#otherothersha + sha = git+ssh://git@some-host/user/repo\#sha
    ok 7 - github:user/repo + sha = github:user/repo\#sha
    ok 8 - github:user/repo\#othersha + sha = github:user/repo\#sha
    ok 9 - github:user/repo\#othersha\#otherothersha + sha = github:user/repo\#sha
    ok 10 - git+https://[email protected]/user/repo + sha = https://[email protected]/user/repo.git\#sha
    ok 11 - git+https://[email protected]/user/repo\#othersha + sha = https://[email protected]/user/repo.git\#sha
    ok 12 - git+https://[email protected]/user/repo\#othersha\#otherothersha + sha = https://[email protected]/user/repo.git\#sha
    ok 13 - git+https://github.com/user/repo + sha = github:user/repo\#sha
    ok 14 - git+https://github.com/user/repo\#othersha + sha = github:user/repo\#sha
    ok 15 - git+https://github.com/user/repo\#othersha\#otherothersha + sha = github:user/repo\#sha
    ok 16 - git+ssh://[email protected]/user/repo + sha = github:user/repo\#sha
    ok 17 - git+ssh://[email protected]/user/repo\#othersha + sha = github:user/repo\#sha
    ok 18 - git+ssh://[email protected]/user/repo\#othersha\#otherothersha + sha = github:user/repo\#sha
    ok 19 - git+ssh://[email protected]:user/repo + sha = github:user/repo\#sha
    ok 20 - git+ssh://[email protected]:user/repo\#othersha + sha = github:user/repo\#sha
    ok 21 - git+ssh://[email protected]:user/repo\#othersha\#otherothersha + sha = github:user/repo\#sha
    # time=32.901ms
ok 9 - test/util/add-git-sha.js # time=32.901ms

# Subtest: test/util/cache-dir.js
    ok 1 - a cache dir is ok
    ok 2 - should be equal
    ok 3 - should be equal
    ok 4 - should be equal
    ok 5 - should be equal
    ok 6 - should be equal
    ok 7 - should be equal
    ok 8 - should be equal
    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
    1..13
    # time=8.858ms
ok 10 - test/util/cache-dir.js # time=8.858ms

# Subtest: test/util/is-package-bin.js
    ok 1 - finds string
    ok 2 - finds in obj
    ok 3 - return false if pkg is not
    ok 4 - not the bin string
    ok 5 - not in obj
    1..5
    # time=5.221ms
ok 11 - test/util/is-package-bin.js # time=5.221ms

# Subtest: test/util/npm.js
    # Subtest: do the things
        ok 1 - expect resolving Promise
        ok 2 - expect resolving Promise
        1..2
    ok 1 - do the things # time=31.471ms
    
    1..1
    # time=[38](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:39).526ms
ok 12 - test/util/npm.js # time=38.526ms

# Subtest: test/util/tar-create-options.js
    ok 1 - should return standard options
    ok 2 - should not filter anything
    ok 3 - should return an executable stat
    ok 4 - should not filter out files
    1..4
    # time=3.7[51](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:52)ms
ok 13 - test/util/tar-create-options.js # time=3.751ms

1..13
# time=22164.866ms
------------------------|---------|----------|---------|---------|-------------------
File                    | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
------------------------|---------|----------|---------|---------|-------------------
All files               |     100 |      100 |     100 |     100 |                   
 bin                    |     100 |      100 |     100 |     100 |                   
  index.js              |     100 |      100 |     100 |     100 |                   
 lib                    |     100 |      100 |     100 |     100 |                   
  dir.js                |     100 |      100 |     100 |     100 |                   
  fetcher.js            |     100 |      100 |     100 |     100 |                   
  file.js               |     100 |      100 |     100 |     100 |                   
  git.js                |     100 |      100 |     100 |     100 |                   
  index.js              |     [100](https://github.com/npm/pacote/actions/runs/11387861584/job/31683651199#step:8:101) |      100 |     100 |     100 |                   
  registry.js           |     100 |      100 |     100 |     100 |                   
  remote.js             |     100 |      100 |     100 |     100 |                   
 lib/util               |     100 |      100 |     100 |     100 |                   
  add-git-sha.js        |     100 |      100 |     100 |     100 |                   
  cache-dir.js          |     100 |      100 |     100 |     100 |                   
  is-package-bin.js     |     100 |      100 |     100 |     100 |                   
  npm.js                |     100 |      100 |     100 |     100 |                   
  protected.js          |     100 |      100 |     100 |     100 |                   
  tar-create-options.js |     100 |      100 |     100 |     100 |                   
  trailing-slashes.js   |     100 |      100 |     100 |     100 |                   
------------------------|---------|----------|---------|---------|-------------------

Steps To Reproduce

  1. In this environment Linux.
  2. Configuration is RHEL ppc64le.
  3. Run 'npm i --ignore-scripts --no-audit --no-fund
    ' first after cloning the repo and then run 'npm test --ignore-scripts' for tests to run.
  4. See error given for the tests particulary for test/git.js and code coverage error.

Environment

  • npm: 9.8.0
  • Node: 20.5.0
  • OS: RHEL 9
  • platform: ppc64le
@ramnathnayak-ibm ramnathnayak-ibm added Bug thing that needs fixing Needs Triage needs an initial review labels Oct 21, 2024
@mbtools
Copy link
Contributor

mbtools commented Nov 22, 2024

Can you test if #412 resolves this?

@ramnathnayak-ibm
Copy link
Author

Yes, tested it @mbtools. The issue is not resolved with this.
Thanks.

@mbtools
Copy link
Contributor

mbtools commented Nov 25, 2024

AFAIK, none of the npm CI tests run on ppc64 platform. Issues should not be a surprise. The problem seems to be with spawning npm. Do the tests in https://github.com/npm/promise-spawn run successfully?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug thing that needs fixing Needs Triage needs an initial review
Projects
None yet
Development

No branches or pull requests

2 participants