citgm
citgm copied to clipboard
Re-enable "got"
Skipped in https://github.com/nodejs/citgm/pull/795
Node.js v14.10.0 just broke the module: https://github.com/nodejs/node/issues/35116
citgm got
against v14.9.0: https://ci.nodejs.org/job/citgm-smoker-nobuild/935/
https://ci.nodejs.org/job/citgm-smoker-pipeline/121/
It looks like the tests are broken on macOS and flaky otherwise?
Looks like it is flaky on AIX and Ubuntu1804. I've started another run just to check: https://ci.nodejs.org/job/citgm-smoker-pipeline/122/
For macOS, 10.14 is timing out. Our 10.14 macs appear to be generally slow -- I don't think we've worked out why as it should be the same set up (via Orka) as the 10.15 machines (cc @AshCripps).
It does look one test is broken on macOS 10.15:
https.ts https request with expired certificate
Rejected promise returned by test. Reason:
Error {
message: `Invalid openssl exit code: 1
% openssl x509 -req -sha256 -days -1 -in /Users/iojs/tmp/citgm_tmp/6c71821d-852e-4a26-b762-dc7f1362e6f3/npm_config_tmp/87d41d380a85709a673f0aefce00efbdf65bc57d -CA /Users/iojs/tmp/citgm_tmp/6c71821d-852e-4a26-b762-dc7f1362e6f3/npm_config_tmp/7041f249bfd7599593ca6502cafb16db1ed995a6 -CAkey /Users/iojs/tmp/citgm_tmp/6c71821d-852e-4a26-b762-dc7f1362e6f3/npm_config_tmp/96e139c0d53bb9187dadd0ab29b49d9eee663eb9 -CAcreateserial
bad number of days: too small
usage: x509 args
-inform arg - input format - default PEM (one of DER, NET or PEM)
-outform arg - output format - default PEM (one of DER, NET or PEM)
-keyform arg - private key format - default PEM
-CAform arg - CA format - default PEM
-CAkeyform arg - CA key format - default PEM
-in arg - input file - default stdin
-out arg - output file - default stdout
-passin arg - private key password source
-serial - print serial number value
-subject_hash - print subject hash value
-subject_hash_old - print old-style (MD5) subject hash value
-issuer_hash - print issuer hash value
-issuer_hash_old - print old-style (MD5) issuer hash value
-hash - synonym for -subject_hash
-subject - print subject DN
-issuer - print issuer DN
-email - print email address(es)
-startdate - notBefore field
-enddate - notAfter field
-purpose - print out certificate purposes
-dates - both Before and After dates
-modulus - print the RSA key modulus
-pubkey - output the public key
-fingerprint - print the certificate fingerprint
-alias - output certificate alias
-noout - no certificate output
-ocspid - print OCSP hash values for the subject name and public key
-ocsp_uri - print OCSP Responder URL(s)
-trustout - output a "trusted" certificate
-clrtrust - clear all trusted purposes
-clrreject - clear all rejected purposes
-addtrust arg - trust certificate for a given purpose
-addreject arg - reject certificate for a given purpose
-setalias arg - set certificate alias
-days arg - How long till expiry of a signed certificate - def 30 days
-checkend arg - check whether the cert expires in the next arg seconds
exit 1 if so, 0 if not
-signkey arg - self sign cert with arg
-x509toreq - output a certification request object
-req - input is a certificate request, sign and output.
-CA arg - set the CA certificate, must be PEM format.
-CAkey arg - set the CA key, must be PEM format
missing, it is assumed to be in the CA file.
-CAcreateserial - create serial number file if it does not exist
-CAserial arg - serial file
-set_serial - serial number to use
-text - print the certificate in text form
-C - print out C code forms
-md5/-sha1 - digest to use
-extfile - configuration file with X509V3 extensions to add
-extensions - section from config file with X509V3 extensions to add
-clrext - delete extensions before signing and input certificate
-nameopt arg - various certificate name options
-certopt arg - various certificate text options
`,
}
-certopt arg - various certificate text options
done (node_modules/pem/lib/openssl.js:158:27)
ChildProcess.<anonymous> (node_modules/pem/lib/openssl.js:175:7)
maybeClose (internal/child_process.js:1047:16)
Socket.<anonymous> (internal/child_process.js:438:11)
I think re-enabling with flaky on AIX and Ubuntu and skipping on macOS would be a good start.
This PR should address nearly all the issues: https://github.com/sindresorhus/got/pull/1461
The only issue not resolved are:
- The EOF errors on Node.JS v12 on aix71-ppc64: https://ci.nodejs.org/job/citgm-smoker-nobuild/nodes=aix71-ppc64/940/testReport/junit/(root)/citgm/got_v11_6_2/
- The
ERR_OSSL_ASN1_WRONG_TAG
error on Node.JS v12 on ubuntu 18.04: https://ci.nodejs.org/job/citgm-smoker-nobuild/nodes=ubuntu1804-64/940/testReport/(root)/citgm/got_v11_6_2/
About the ERR_OSSL_ASN1_WRONG_TAG
I don't know what happened, I'm unable to reproduce it in docker (ubuntu:bionic
, Node.JS v12.18.3
and OpenSSL 1.1.1-1ubuntu2.1~18.04.6
)
@richardlau I've an update on the "compatibility" of Got with CITGM.
The current master branch of Got has the fixes needed to run on CITGM.
https://travis-ci.com/github/sindresorhus/got/builds/184382788 (we also tested it on older ubuntu versions and macOS 10.14, but we removed the tests from the CI).
The ERR_OSSL_ASN1_WRONG_TAG
error seems to be a rare OpenSSL error (might be due to the pem
module), in my testing I've never saw it before today (I re-ran the tests, without any modification, and it disappeared).
About the EOF errors on aix71-ppc64 currently I've no way of testing it, I think I could set-up something with QEMU...
Another CI: https://ci.nodejs.org/job/citgm-smoker-pipeline/123/
Another CI: ci.nodejs.org/job/citgm-smoker-pipeline/123
I see you ran CITGM on the NPM release of Got, but actually the fixes are only on the master branch, we have not yet released and update on NPM.
CI: https://github.com/nodejs/citgm/actions/runs/629234453