Diff of the two buildlogs: -- --- b1/build.log 2025-10-24 12:06:01.565134200 +0000 +++ b2/build.log 2025-10-24 12:08:36.849319919 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Nov 26 06:27:02 -12 2026 -I: pbuilder-time-stamp: 1795717622 +I: Current time: Sat Oct 25 02:06:04 +14 2025 +I: pbuilder-time-stamp: 1761307564 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -28,53 +28,85 @@ dpkg-source: info: applying fix-test-for-i386.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3945792/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Oct 24 12:06 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='567be1066aa7427686bf32a5395302ae' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='3945792' - PS1='# ' - PS2='> ' + INVOCATION_ID=398d51541cab454ba60cb0b636a864d6 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=3439783 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.WK8tehWJ/pbuilderrc_ApFI --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.WK8tehWJ/b1 --logfile b1/build.log node-nodemailer_7.0.10+~7.0.2-1.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.WK8tehWJ/pbuilderrc_7nhZ --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.WK8tehWJ/b2 --logfile b2/build.log node-nodemailer_7.0.10+~7.0.2-1.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3945792/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -448,7 +480,7 @@ Get: 318 http://deb.debian.org/debian unstable/main arm64 node-path-to-regexp all 6.3.0-1 [20.0 kB] Get: 319 http://deb.debian.org/debian unstable/main arm64 node-punycode all 2.3.1+~2.1.4-1 [10.8 kB] Get: 320 http://deb.debian.org/debian unstable/main arm64 node-sinon all 18.0.0+ds2+~cs75.4.16-1 [223 kB] -Fetched 45.4 MB in 0s (139 MB/s) +Fetched 45.4 MB in 1s (84.8 MB/s) Preconfiguring packages ... Selecting previously unselected package netbase. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19962 files and directories currently installed.) @@ -1760,7 +1792,11 @@ fakeroot is already the newest version (1.37.1.2-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/node-nodemailer-7.0.10+~7.0.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../node-nodemailer_7.0.10+~7.0.2-1_source.changes +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/node-nodemailer-7.0.10+~7.0.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../node-nodemailer_7.0.10+~7.0.2-1_source.changes dpkg-buildpackage: info: source package node-nodemailer dpkg-buildpackage: info: source version 7.0.10+~7.0.2-1 dpkg-buildpackage: info: source distribution unstable @@ -1798,451 +1834,451 @@ ln -s ../debian/tests/test_modules/smtp-server node_modules/smtp-server ln -s ../. node_modules/nodemailer /bin/sh -ex debian/tests/pkg-js/test -+ + grep -v -f debian/tests/network-tests -ls test/addressparser/addressparser-test.js test/base64/base64-test.js test/dkim/dkim-test.js test/dkim/message-parser-test.js test/dkim/relaxed-body-test.js test/dkim/sign-test.js test/fetch/cookies-test.js test/fetch/nmfetch-test.js test/json-transport/json-transport-test.js test/mail-composer/mail-composer-test.js test/mime-funcs/mime-funcs-test.js test/mime-funcs/mime-types-test.js test/mime-node/mime-node-test.js test/qp/qp-test.js test/sendmail/le-windows-test.js test/sendmail/sendmail-test.js test/ses-transport/ses-transport-test.js test/shared/shared-test.js test/smtp-connection/http-proxy-client-test.js test/smtp-connection/smtp-connection-test.js test/smtp-pool/smtp-pool-test.js test/smtp-transport/smtp-tranport-test.js test/stream-transport/stream-transport-test.js test/well-known/well-known-test.js test/xoauth2/xoauth2-test.js +++ ls test/addressparser/addressparser-test.js test/base64/base64-test.js test/dkim/dkim-test.js test/dkim/message-parser-test.js test/dkim/relaxed-body-test.js test/dkim/sign-test.js test/fetch/cookies-test.js test/fetch/nmfetch-test.js test/json-transport/json-transport-test.js test/mail-composer/mail-composer-test.js test/mime-funcs/mime-funcs-test.js test/mime-funcs/mime-types-test.js test/mime-node/mime-node-test.js test/qp/qp-test.js test/sendmail/le-windows-test.js test/sendmail/sendmail-test.js test/ses-transport/ses-transport-test.js test/shared/shared-test.js test/smtp-connection/http-proxy-client-test.js test/smtp-connection/smtp-connection-test.js test/smtp-pool/smtp-pool-test.js test/smtp-transport/smtp-tranport-test.js test/stream-transport/stream-transport-test.js test/well-known/well-known-test.js test/xoauth2/xoauth2-test.js +++ grep -v -f debian/tests/network-tests + node --test --test-concurrency=1 test/addressparser/addressparser-test.js test/base64/base64-test.js test/dkim/dkim-test.js test/dkim/message-parser-test.js test/dkim/relaxed-body-test.js test/dkim/sign-test.js test/fetch/cookies-test.js test/fetch/nmfetch-test.js test/json-transport/json-transport-test.js test/mail-composer/mail-composer-test.js test/mime-funcs/mime-funcs-test.js test/mime-funcs/mime-types-test.js test/mime-node/mime-node-test.js test/qp/qp-test.js test/sendmail/le-windows-test.js test/sendmail/sendmail-test.js test/ses-transport/ses-transport-test.js test/smtp-connection/smtp-connection-test.js test/smtp-pool/smtp-pool-test.js test/smtp-transport/smtp-tranport-test.js test/stream-transport/stream-transport-test.js test/xoauth2/xoauth2-test.js TAP version 13 # Subtest: \#addressparser # Subtest: should handle single address correctly ok 1 - should handle single address correctly --- - duration_ms: 5.27352 + duration_ms: 6.267842 ... # Subtest: should handle multiple addresses correctly ok 2 - should handle multiple addresses correctly --- - duration_ms: 0.81164 + duration_ms: 1.004647 ... # Subtest: should handle unquoted name correctly ok 3 - should handle unquoted name correctly --- - duration_ms: 0.47904 + duration_ms: 0.534283 ... # Subtest: should handle quoted name correctly ok 4 - should handle quoted name correctly --- - duration_ms: 0.44692 + duration_ms: 0.521643 ... # Subtest: should handle quoted semicolons correctly ok 5 - should handle quoted semicolons correctly --- - duration_ms: 0.3534 + duration_ms: 0.373722 ... # Subtest: should handle unquoted name, unquoted address correctly ok 6 - should handle unquoted name, unquoted address correctly --- - duration_ms: 2.23768 + duration_ms: 0.511403 ... # Subtest: should handle emtpy group correctly ok 7 - should handle emtpy group correctly --- - duration_ms: 0.63436 + duration_ms: 3.318742 ... # Subtest: should handle address group correctly ok 8 - should handle address group correctly --- - duration_ms: 0.45204 + duration_ms: 0.602684 ... # Subtest: should handle semicolon as a delimiter ok 9 - should handle semicolon as a delimiter --- - duration_ms: 1.06268 + duration_ms: 1.280089 ... # Subtest: should handle mixed group correctly ok 10 - should handle mixed group correctly --- - duration_ms: 1.24408 + duration_ms: 9.730826 ... # Subtest: should flatten mixed group correctly ok 11 - should flatten mixed group correctly --- - duration_ms: 0.80348 + duration_ms: 0.949006 ... # Subtest: semicolon as delimiter should not break group parsing ok 12 - semicolon as delimiter should not break group parsing --- - duration_ms: 0.46004 + duration_ms: 0.517043 ... # Subtest: should handle name from comment correctly ok 13 - should handle name from comment correctly --- - duration_ms: 0.60856 + duration_ms: 0.683124 ... # Subtest: should handle skip comment correctly ok 14 - should handle skip comment correctly --- - duration_ms: 0.56988 + duration_ms: 4.814952 ... # Subtest: should handle missing address correctly ok 15 - should handle missing address correctly --- - duration_ms: 0.62284 + duration_ms: 0.908926 ... # Subtest: should handle apostrophe in name correctly ok 16 - should handle apostrophe in name correctly --- - duration_ms: 0.34512 + duration_ms: 0.390722 ... # Subtest: should handle particularily bad input, unescaped colon correctly ok 17 - should handle particularily bad input, unescaped colon correctly --- - duration_ms: 0.41384 + duration_ms: 0.436643 ... # Subtest: should handle invalid email address correctly ok 18 - should handle invalid email address correctly --- - duration_ms: 0.92792 + duration_ms: 0.956887 ... # Subtest: should handle unexpected < ok 19 - should handle unexpected < --- - duration_ms: 0.578 + duration_ms: 0.631124 ... # Subtest: should handle escapes ok 20 - should handle escapes --- - duration_ms: 0.92284 + duration_ms: 5.293996 ... # Subtest: should handle quoted usernames ok 21 - should handle quoted usernames --- - duration_ms: 0.36744 + duration_ms: 0.465283 ... # Subtest: should not extract email from quoted local-part (security) ok 22 - should not extract email from quoted local-part (security) --- - duration_ms: 0.37896 + duration_ms: 0.406483 ... # Subtest: should handle quoted local-part with attacker domain (security) ok 23 - should handle quoted local-part with attacker domain (security) --- - duration_ms: 0.29552 + duration_ms: 0.293642 ... # Subtest: should handle multiple @ in quoted local-part (security) ok 24 - should handle multiple @ in quoted local-part (security) --- - duration_ms: 0.26104 + duration_ms: 0.268082 ... # Subtest: should handle quoted local-part with angle brackets ok 25 - should handle quoted local-part with angle brackets --- - duration_ms: 0.28864 + duration_ms: 0.280561 ... # Subtest: should handle escaped quotes in quoted string ok 26 - should handle escaped quotes in quoted string --- - duration_ms: 0.25528 + duration_ms: 0.285042 ... # Subtest: should handle escaped backslashes ok 27 - should handle escaped backslashes --- - duration_ms: 0.26076 + duration_ms: 0.263762 ... # Subtest: should handle unclosed quote gracefully ok 28 - should handle unclosed quote gracefully --- - duration_ms: 0.25032 + duration_ms: 0.281721 ... # Subtest: should handle unclosed angle bracket ok 29 - should handle unclosed angle bracket --- - duration_ms: 0.26388 + duration_ms: 0.265842 ... # Subtest: should handle unclosed comment ok 30 - should handle unclosed comment --- - duration_ms: 0.24768 + duration_ms: 0.250402 ... # Subtest: should handle empty string ok 31 - should handle empty string --- - duration_ms: 2.58496 + duration_ms: 1.942333 ... # Subtest: should handle whitespace only ok 32 - should handle whitespace only --- - duration_ms: 0.76364 + duration_ms: 0.745845 ... # Subtest: should handle empty angle brackets ok 33 - should handle empty angle brackets --- - duration_ms: 0.28688 + duration_ms: 0.336722 ... # Subtest: should handle special characters in local-part ok 34 - should handle special characters in local-part --- - duration_ms: 0.35468 + duration_ms: 0.383122 ... # Subtest: should handle leading and trailing whitespace ok 35 - should handle leading and trailing whitespace --- - duration_ms: 0.57256 + duration_ms: 0.583124 ... # Subtest: should handle comment before address ok 36 - should handle comment before address --- - duration_ms: 0.36188 + duration_ms: 0.311282 ... # Subtest: should handle comment after address without space ok 37 - should handle comment after address without space --- - duration_ms: 0.26248 + duration_ms: 0.282922 ... # Subtest: should handle multiple consecutive delimiters ok 38 - should handle multiple consecutive delimiters --- - duration_ms: 0.29656 + duration_ms: 0.288762 ... # Subtest: should handle mixed quotes and unquoted text ok 39 - should handle mixed quotes and unquoted text --- - duration_ms: 0.28088 + duration_ms: 0.300802 ... # Subtest: should handle very long local-part ok 40 - should handle very long local-part --- - duration_ms: 0.30036 + duration_ms: 0.324762 ... # Subtest: should handle very long domain ok 41 - should handle very long domain --- - duration_ms: 0.39044 + duration_ms: 4.803153 ... # Subtest: should not have ReDoS vulnerability with many @ symbols ok 42 - should not have ReDoS vulnerability with many @ symbols --- - duration_ms: 0.44672 + duration_ms: 0.646245 ... # Subtest: should handle double @ (malformed) ok 43 - should handle double @ (malformed) --- - duration_ms: 0.27008 + duration_ms: 0.294322 ... # Subtest: should handle address with only name, no email ok 44 - should handle address with only name, no email --- - duration_ms: 0.26976 + duration_ms: 0.351963 ... # Subtest: should handle nested comments (RFC 5322) ok 45 - should handle nested comments (RFC 5322) --- - duration_ms: 2.57416 + duration_ms: 0.272402 ... # Subtest: should not extract from quoted text even with spaces ok 46 - should not extract from quoted text even with spaces --- - duration_ms: 0.2736 + duration_ms: 0.281082 ... # Subtest: should flatten nested groups correctly ok 47 - should flatten nested groups correctly --- - duration_ms: 0.33568 + duration_ms: 2.777059 ... # Subtest: Nested group flattening (RFC 5322 compliance) # Subtest: should flatten deeply nested groups ok 1 - should flatten deeply nested groups --- - duration_ms: 0.32648 + duration_ms: 0.418162 ... # Subtest: should flatten multiple nested groups at same level ok 2 - should flatten multiple nested groups at same level --- - duration_ms: 0.27792 + duration_ms: 0.301682 ... # Subtest: should handle mixed nested and regular addresses in group ok 3 - should handle mixed nested and regular addresses in group --- - duration_ms: 0.29852 + duration_ms: 0.320682 ... 1..3 ok 48 - Nested group flattening (RFC 5322 compliance) --- - duration_ms: 1.2394 + duration_ms: 1.402009 type: 'suite' ... # Subtest: Unicode and international addresses # Subtest: should handle unicode in display name ok 1 - should handle unicode in display name --- - duration_ms: 0.2996 + duration_ms: 0.290562 ... # Subtest: should handle emoji in display name ok 2 - should handle emoji in display name --- - duration_ms: 0.26332 + duration_ms: 0.285521 ... # Subtest: should handle unicode domain (IDN) ok 3 - should handle unicode domain (IDN) --- - duration_ms: 0.29704 + duration_ms: 0.329162 ... # Subtest: should handle CJK characters in name ok 4 - should handle CJK characters in name --- - duration_ms: 0.37976 + duration_ms: 0.257282 ... 1..4 ok 49 - Unicode and international addresses --- - duration_ms: 1.56248 + duration_ms: 1.47065 type: 'suite' ... # Subtest: Real-world malformed input handling # Subtest: should handle multiple angle brackets ok 1 - should handle multiple angle brackets --- - duration_ms: 0.43356 + duration_ms: 0.388882 ... # Subtest: should handle address with no domain ok 2 - should handle address with no domain --- - duration_ms: 0.26296 + duration_ms: 7.548651 ... # Subtest: should handle address with no local part ok 3 - should handle address with no local part --- - duration_ms: 0.35012 + duration_ms: 0.523044 ... # Subtest: should handle mixed case in domain ok 4 - should handle mixed case in domain --- - duration_ms: 0.27368 + duration_ms: 0.310282 ... # Subtest: should handle tab characters ok 5 - should handle tab characters --- - duration_ms: 0.26776 + duration_ms: 0.266321 ... # Subtest: should handle newlines in input ok 6 - should handle newlines in input --- - duration_ms: 0.2742 + duration_ms: 0.283562 ... # Subtest: should handle CRLF line endings ok 7 - should handle CRLF line endings --- - duration_ms: 0.57188 + duration_ms: 0.386242 ... 1..7 ok 50 - Real-world malformed input handling --- - duration_ms: 2.85376 + duration_ms: 10.171909 type: 'suite' ... # Subtest: Group edge cases # Subtest: should handle group with only spaces ok 1 - should handle group with only spaces --- - duration_ms: 0.31388 + duration_ms: 0.328162 ... # Subtest: should handle group with invalid addresses ok 2 - should handle group with invalid addresses --- - duration_ms: 0.3062 + duration_ms: 0.281682 ... # Subtest: should handle group name with special chars ok 3 - should handle group name with special chars --- - duration_ms: 0.26328 + duration_ms: 0.254961 ... # Subtest: should handle quoted group name ok 4 - should handle quoted group name --- - duration_ms: 0.31312 + duration_ms: 0.276921 ... 1..4 ok 51 - Group edge cases --- - duration_ms: 1.4468 + duration_ms: 1.41845 type: 'suite' ... # Subtest: Comment edge cases # Subtest: should handle multiple comments ok 1 - should handle multiple comments --- - duration_ms: 0.30044 + duration_ms: 4.642631 ... # Subtest: should handle empty comment ok 2 - should handle empty comment --- - duration_ms: 0.2296 + duration_ms: 0.355042 ... # Subtest: should handle comment with special characters ok 3 - should handle comment with special characters --- - duration_ms: 0.29812 + duration_ms: 0.251322 ... 1..3 ok 52 - Comment edge cases --- - duration_ms: 1.02968 + duration_ms: 5.508398 type: 'suite' ... # Subtest: Subdomain handling # Subtest: should handle multiple subdomains ok 1 - should handle multiple subdomains --- - duration_ms: 0.29288 + duration_ms: 0.288202 ... # Subtest: should handle numeric subdomains ok 2 - should handle numeric subdomains --- - duration_ms: 0.23 + duration_ms: 0.223201 ... # Subtest: should handle hyphenated subdomains ok 3 - should handle hyphenated subdomains --- - duration_ms: 0.27924 + duration_ms: 0.226042 ... 1..3 ok 53 - Subdomain handling --- - duration_ms: 1.02732 + duration_ms: 0.956326 type: 'suite' ... # Subtest: IP address domains # Subtest: should handle IPv4 address as domain ok 1 - should handle IPv4 address as domain --- - duration_ms: 0.27644 + duration_ms: 0.284322 ... # Subtest: should handle IPv6 address notation ok 2 - should handle IPv6 address notation --- - duration_ms: 0.27336 + duration_ms: 0.280122 ... 1..2 ok 54 - IP address domains --- - duration_ms: 0.7106 + duration_ms: 0.729405 type: 'suite' ... # Subtest: Performance and pathological inputs # Subtest: should handle very long address list efficiently ok 1 - should handle very long address list efficiently --- - duration_ms: 16.13352 + duration_ms: 39.677469 ... # Subtest: should handle deeply nested quotes ok 2 - should handle deeply nested quotes --- - duration_ms: 0.54412 + duration_ms: 0.497564 ... # Subtest: should handle many consecutive delimiters ok 3 - should handle many consecutive delimiters --- - duration_ms: 0.349 + duration_ms: 0.402123 ... 1..3 ok 55 - Performance and pathological inputs --- - duration_ms: 17.283 + duration_ms: 44.935424 type: 'suite' ... 1..55 ok 1 - \#addressparser --- - duration_ms: 65.0882 + duration_ms: 130.292761 type: 'suite' ... # Subtest: Base64 Tests @@ -2250,150 +2286,150 @@ # Subtest: shoud encode UTF-8 string to base64 ok 1 - shoud encode UTF-8 string to base64 --- - duration_ms: 1.7406 + duration_ms: 6.289402 ... # Subtest: shoud encode Buffer to base64 ok 2 - shoud encode Buffer to base64 --- - duration_ms: 0.66152 + duration_ms: 0.791765 ... 1..2 ok 1 - \#encode --- - duration_ms: 3.57048 + duration_ms: 8.456217 type: 'suite' ... # Subtest: \#wrap # Subtest: should wrap long base64 encoded lines ok 1 - should wrap long base64 encoded lines --- - duration_ms: 0.54176 + duration_ms: 1.003927 ... 1..1 ok 2 - \#wrap --- - duration_ms: 1.09268 + duration_ms: 5.82744 type: 'suite' ... # Subtest: base64 Streams # Subtest: should transform incoming bytes to base64 ok 1 - should transform incoming bytes to base64 --- - duration_ms: 26.33676 + duration_ms: 80.112062 ... # Subtest: should transform incoming bytes to base64 and back ok 2 - should transform incoming bytes to base64 and back --- - duration_ms: 16.53956 + duration_ms: 41.934844 ... # Subtest: should flush incomplete trailing base64 chunks correctly ok 3 - should flush incomplete trailing base64 chunks correctly --- - duration_ms: 1.97684 + duration_ms: 6.535124 ... 1..3 ok 3 - base64 Streams --- - duration_ms: 45.51268 + duration_ms: 129.268595 type: 'suite' ... 1..3 ok 2 - Base64 Tests --- - duration_ms: 51.95308 + duration_ms: 145.538905 type: 'suite' ... # Subtest: DKIM Tests # Subtest: should sign message ok 1 - should sign message --- - duration_ms: 36.76372 + duration_ms: 37.05305 ... # Subtest: should sign large message using cache dir ok 2 - should sign large message using cache dir --- - duration_ms: 209.76076 + duration_ms: 325.737403 ... # Subtest: should sign large message without cache dir ok 3 - should sign large message without cache dir --- - duration_ms: 236.681 + duration_ms: 163.283345 ... # Subtest: should emit cache error ok 4 - should emit cache error --- - duration_ms: 40.3862 + duration_ms: 40.785316 ... # Subtest: should sign large message as Buffer ok 5 - should sign large message as Buffer --- - duration_ms: 111.36184 + duration_ms: 113.948611 ... # Subtest: should sign large message as String ok 6 - should sign large message as String --- - duration_ms: 124.63628 + duration_ms: 123.292954 ... 1..6 ok 3 - DKIM Tests --- - duration_ms: 763.14908 + duration_ms: 807.348741 type: 'suite' ... # Subtest: DKIM MessageParser Tests # Subtest: should extract header and body ok 1 - should extract header and body --- - duration_ms: 11.12444 + duration_ms: 32.593341 ... 1..1 ok 4 - DKIM MessageParser Tests --- - duration_ms: 13.2638 + duration_ms: 43.621335 type: 'suite' ... # Subtest: DKIM RelaxedBody Tests # Subtest: Should calculate body hash byte by byte ok 1 - Should calculate body hash byte by byte --- - duration_ms: 178.3244 + duration_ms: 330.035313 ... # Subtest: Should calculate body hash all at once ok 2 - Should calculate body hash all at once --- - duration_ms: 6.39976 + duration_ms: 12.308844 ... 1..2 ok 5 - DKIM RelaxedBody Tests --- - duration_ms: 187.21548 + duration_ms: 344.785213 type: 'suite' ... # Subtest: DKIM Sign Tests # Subtest: should create relaxed headers ok 1 - should create relaxed headers --- - duration_ms: 3.08224 + duration_ms: 7.590451 ... # Subtest: should skip specific headers ok 2 - should skip specific headers --- - duration_ms: 0.33912 + duration_ms: 0.423963 ... # Subtest: should sign headers ok 3 - should sign headers --- - duration_ms: 4.09092 + duration_ms: 8.694099 ... # Subtest: should sign headers for unicode domain ok 4 - should sign headers for unicode domain --- - duration_ms: 1.59688 + duration_ms: 10.052588 ... 1..4 ok 6 - DKIM Sign Tests --- - duration_ms: 11.75216 + duration_ms: 34.088031 type: 'suite' ... # Subtest: Cookie Tests @@ -2401,97 +2437,97 @@ # Subtest: should return root path ok 1 - should return root path --- - duration_ms: 1.88872 + duration_ms: 2.015214 ... # Subtest: should return without file ok 2 - should return without file --- - duration_ms: 0.4428 + duration_ms: 0.520803 ... 1..2 ok 1 - \#getPath --- - duration_ms: 3.855 + duration_ms: 4.236788 type: 'suite' ... # Subtest: \#isExpired # Subtest: should match expired cookie ok 1 - should match expired cookie --- - duration_ms: 0.48092 + duration_ms: 0.550484 ... 1..1 ok 2 - \#isExpired --- - duration_ms: 0.67472 + duration_ms: 0.759205 type: 'suite' ... # Subtest: \#compare # Subtest: should match similar cookies ok 1 - should match similar cookies --- - duration_ms: 0.53908 + duration_ms: 0.640925 ... 1..1 ok 3 - \#compare --- - duration_ms: 1.29508 + duration_ms: 1.52049 type: 'suite' ... # Subtest: \#add # Subtest: should append new cookie ok 1 - should append new cookie --- - duration_ms: 0.81832 + duration_ms: 0.949566 ... # Subtest: should update existing cookie ok 2 - should update existing cookie --- - duration_ms: 0.70556 + duration_ms: 0.751485 ... 1..2 ok 4 - \#add --- - duration_ms: 2.27116 + duration_ms: 2.476777 type: 'suite' ... # Subtest: \#match # Subtest: should check if a cookie matches particular domain and path ok 1 - should check if a cookie matches particular domain and path --- - duration_ms: 2.49584 + duration_ms: 2.803579 ... # Subtest: should check if a cookie matches particular domain and path ok 2 - should check if a cookie matches particular domain and path --- - duration_ms: 1.18064 + duration_ms: 1.39745 ... # Subtest: should check if a cookie is secure ok 3 - should check if a cookie is secure --- - duration_ms: 1.11648 + duration_ms: 1.350249 ... 1..3 ok 5 - \#match --- - duration_ms: 5.18856 + duration_ms: 6.035801 type: 'suite' ... # Subtest: \#parse # Subtest: should parse Set-Cookie value ok 1 - should parse Set-Cookie value --- - duration_ms: 5.85212 + duration_ms: 6.976888 ... # Subtest: should ignore invalid expire header ok 2 - should ignore invalid expire header --- - duration_ms: 0.63408 + duration_ms: 0.762405 ... 1..2 ok 6 - \#parse --- - duration_ms: 6.72888 + duration_ms: 8.012734 type: 'suite' ... # Subtest: Listing @@ -2499,351 +2535,351 @@ # Subtest: should return matching cookies for an URL ok 1 - should return matching cookies for an URL --- - duration_ms: 1.0614 + duration_ms: 1.170048 ... 1..1 ok 1 - \#list --- - duration_ms: 1.19732 + duration_ms: 1.314849 type: 'suite' ... # Subtest: \#get # Subtest: should return matching cookies for an URL ok 1 - should return matching cookies for an URL --- - duration_ms: 0.59604 + duration_ms: 0.588884 ... 1..1 ok 2 - \#get --- - duration_ms: 0.73476 + duration_ms: 0.731445 type: 'suite' ... 1..2 ok 7 - Listing --- - duration_ms: 2.16728 + duration_ms: 2.317295 type: 'suite' ... # Subtest: \#set # Subtest: should set cookie ok 1 - should set cookie --- - duration_ms: 1.91364 + duration_ms: 2.310656 ... 1..1 ok 8 - \#set --- - duration_ms: 2.36372 + duration_ms: 6.642085 type: 'suite' ... 1..8 ok 7 - Cookie Tests --- - duration_ms: 26.43276 + duration_ms: 33.96011 type: 'suite' ... # Subtest: NMFetch Tests # Subtest: should fetch HTTP data ok 1 - should fetch HTTP data --- - duration_ms: 62.5838 + duration_ms: 144.386417 ... # Subtest: should fetch HTTPS data ok 2 - should fetch HTTPS data --- - duration_ms: 19.51344 + duration_ms: 23.712801 ... # Subtest: should fetch HTTP data with redirects ok 3 - should fetch HTTP data with redirects --- - duration_ms: 19.96708 + duration_ms: 44.554941 ... # Subtest: should return error for too many redirects ok 4 - should return error for too many redirects --- - duration_ms: 18.49636 + duration_ms: 54.807171 ... # Subtest: should fetch HTTP data with custom redirect limit ok 5 - should fetch HTTP data with custom redirect limit --- - duration_ms: 11.88848 + duration_ms: 24.484486 ... # Subtest: should return error for custom redirect limit ok 6 - should return error for custom redirect limit --- - duration_ms: 9.17372 + duration_ms: 17.371837 ... # Subtest: should return disable redirects ok 7 - should return disable redirects --- - duration_ms: 5.42732 + duration_ms: 8.91738 ... # Subtest: should unzip compressed HTTP data ok 8 - should unzip compressed HTTP data --- - duration_ms: 8.63568 + duration_ms: 13.771893 ... # Subtest: should return error for unresolved host ok 9 - should return error for unresolved host --- - duration_ms: 6.25768 + duration_ms: 8.491418 ... # Subtest: should return error for invalid status ok 10 - should return error for invalid status --- - duration_ms: 5.566 + duration_ms: 8.612378 ... # Subtest: should allow invalid status ok 11 - should allow invalid status --- - duration_ms: 5.0336 + duration_ms: 6.968967 ... # Subtest: should return error for invalid url ok 12 - should return error for invalid url --- - duration_ms: 4.16148 + duration_ms: 7.511451 ... # Subtest: should return timeout error ok 13 - should return timeout error --- - duration_ms: 1010.49608 + duration_ms: 1011.13836 ... # Subtest: should handle basic HTTP auth ok 14 - should handle basic HTTP auth --- - duration_ms: 12.7516 + duration_ms: 17.449358 ... # Subtest: should return error for invalid protocol ok 15 - should return error for invalid protocol --- - duration_ms: 9.40012 + duration_ms: 15.438864 ... # Subtest: should set cookie value ok 16 - should set cookie value --- - duration_ms: 10.83524 + duration_ms: 15.931948 ... # Subtest: should set user agent ok 17 - should set user agent --- - duration_ms: 10.07548 + duration_ms: 11.999322 ... # Subtest: should post data ok 18 - should post data --- - duration_ms: 12.02048 + duration_ms: 11.675079 ... # Subtest: should post stream data ok 19 - should post stream data --- - duration_ms: 23.95768 + duration_ms: 27.328265 ... # Subtest: should return error for invalid cert ok 20 - should return error for invalid cert --- - duration_ms: 17.06676 + duration_ms: 35.57136 ... 1..20 ok 8 - NMFetch Tests --- - duration_ms: 1289.17464 + duration_ms: 1517.218903 type: 'suite' ... # Subtest: JSON Transport Tests # Subtest: should return an JSON string ok 1 - should return an JSON string --- - duration_ms: 31.03676 + duration_ms: 52.351354 ... # Subtest: should return an JSON string for calendar event ok 2 - should return an JSON string for calendar event --- - duration_ms: 6.891 + duration_ms: 16.439711 ... 1..2 ok 9 - JSON Transport Tests --- - duration_ms: 40.24888 + duration_ms: 71.072281 type: 'suite' ... # Subtest: MailComposer unit tests # Subtest: should create new MailComposer ok 1 - should create new MailComposer --- - duration_ms: 1.55132 + duration_ms: 1.694332 ... # Subtest: \#compile # Subtest: should use Mixed structure with text and attachment ok 1 - should use Mixed structure with text and attachment --- - duration_ms: 6.97392 + duration_ms: 7.477451 ... # Subtest: should use Mixed structure with multiple attachments ok 2 - should use Mixed structure with multiple attachments --- - duration_ms: 1.58972 + duration_ms: 4.46783 ... # Subtest: should create Alternative structure with text and html ok 3 - should create Alternative structure with text and html --- - duration_ms: 1.13668 + duration_ms: 1.297289 ... # Subtest: should create Alternative structure with text, watchHtml and html ok 4 - should create Alternative structure with text, watchHtml and html --- - duration_ms: 1.24952 + duration_ms: 1.353809 ... # Subtest: should create Alternative structure with text, amp and html ok 5 - should create Alternative structure with text, amp and html --- - duration_ms: 1.19848 + duration_ms: 1.350729 ... # Subtest: should create Alternative structure with text, icalEvent and html ok 6 - should create Alternative structure with text, icalEvent and html --- - duration_ms: 1.705 + duration_ms: 1.800972 ... # Subtest: should create Alternative structure using encoded icalEvent ok 7 - should create Alternative structure using encoded icalEvent --- - duration_ms: 34.05336 + duration_ms: 49.796857 ... # Subtest: should create Alternative structure with text, html and cid attachment ok 8 - should create Alternative structure with text, html and cid attachment --- - duration_ms: 2.1564 + duration_ms: 2.411296 ... # Subtest: should create Related structure with html and cid attachment ok 9 - should create Related structure with html and cid attachment --- - duration_ms: 1.22472 + duration_ms: 1.46725 ... # Subtest: should create content node with only text ok 10 - should create content node with only text --- - duration_ms: 1.046 + duration_ms: 1.222768 ... # Subtest: should create content node with only an attachment ok 11 - should create content node with only an attachment --- - duration_ms: 1.12348 + duration_ms: 1.292209 ... # Subtest: should create content node with encoded buffer ok 12 - should create content node with encoded buffer --- - duration_ms: 1.9702 + duration_ms: 4.156509 ... # Subtest: should create content node from data url ok 13 - should create content node from data url --- - duration_ms: 1.20856 + duration_ms: 1.638171 ... # Subtest: should not treat invalid content-type as multipart ok 14 - should not treat invalid content-type as multipart --- - duration_ms: 4.03416 + duration_ms: 2.424496 ... # Subtest: should create the same output ok 15 - should create the same output --- - duration_ms: 9.8948 + duration_ms: 23.942081 ... # Subtest: should use raw input for the message ok 16 - should use raw input for the message --- - duration_ms: 5.45428 + duration_ms: 6.369363 ... # Subtest: should use raw input for different parts ok 17 - should use raw input for different parts --- - duration_ms: 7.41828 + duration_ms: 8.982701 ... # Subtest: should discard BCC ok 18 - should discard BCC --- - duration_ms: 2.74184 + duration_ms: 4.39123 ... # Subtest: should autodetect text encoding ok 19 - should autodetect text encoding --- - duration_ms: 3.32016 + duration_ms: 4.564111 ... # Subtest: should use quoted-printable text encoding ok 20 - should use quoted-printable text encoding --- - duration_ms: 2.41012 + duration_ms: 3.843186 ... # Subtest: should use base64 text encoding ok 21 - should use base64 text encoding --- - duration_ms: 2.8684 + duration_ms: 3.03446 ... # Subtest: should keep BCC ok 22 - should keep BCC --- - duration_ms: 2.47488 + duration_ms: 7.006447 ... # Subtest: should set headers for attachment ok 23 - should set headers for attachment --- - duration_ms: 3.33408 + duration_ms: 6.094721 ... # Subtest: should encode filename ok 24 - should encode filename --- - duration_ms: 3.93936 + duration_ms: 6.271242 ... # Subtest: should keep plaintext for attachment ok 25 - should keep plaintext for attachment --- - duration_ms: 2.8634 + duration_ms: 4.807192 ... # Subtest: should use default transfer encoding ok 26 - should use default transfer encoding --- - duration_ms: 2.67256 + duration_ms: 4.556311 ... # Subtest: should keep provided transfer encoding ok 27 - should keep provided transfer encoding --- - duration_ms: 2.85376 + duration_ms: 4.49543 ... # Subtest: should use 7bit transfer encoding for message/rfc822 ok 28 - should use 7bit transfer encoding for message/rfc822 --- - duration_ms: 2.6742 + duration_ms: 4.114068 ... # Subtest: should ignore attachment filename ok 29 - should ignore attachment filename --- - duration_ms: 3.51708 + duration_ms: 4.686232 ... # Subtest: should add ical alternative ok 30 - should add ical alternative --- - duration_ms: 4.47632 + duration_ms: 7.136248 ... # Subtest: should use load attachment from file ok 31 - should use load attachment from file --- - duration_ms: 10.22972 + duration_ms: 23.586679 ... # Subtest: should not load attachment from file ok 32 - should not load attachment from file --- - duration_ms: 2.97336 + duration_ms: 3.342943 ... 1..32 ok 2 - \#compile --- - duration_ms: 142.87512 + duration_ms: 218.009955 type: 'suite' ... 1..2 ok 10 - MailComposer unit tests --- - duration_ms: 146.76652 + duration_ms: 230.58048 type: 'suite' ... # Subtest: MailComposer ReDoS Protection Tests @@ -2851,62 +2887,62 @@ # Subtest: should handle malicious data URLs without ReDoS ok 1 - should handle malicious data URLs without ReDoS --- - duration_ms: 6.57048 + duration_ms: 18.502886 ... # Subtest: should handle various data URL formats correctly ok 2 - should handle various data URL formats correctly --- - duration_ms: 1.62416 + duration_ms: 1.556411 ... # Subtest: should reject excessively long data URLs gracefully ok 3 - should reject excessively long data URLs gracefully --- - duration_ms: 1.61448 + duration_ms: 5.94948 ... # Subtest: should handle malformed data URLs without crashing ok 4 - should handle malformed data URLs without crashing --- - duration_ms: 1.21932 + duration_ms: 1.40125 ... 1..4 ok 1 - parseDataURI security --- - duration_ms: 11.45144 + duration_ms: 27.875949 type: 'suite' ... # Subtest: getAttachments with data URLs # Subtest: should process data URLs in attachments safely ok 1 - should process data URLs in attachments safely --- - duration_ms: 0.47068 + duration_ms: 0.532243 ... # Subtest: should handle data URLs in alternatives safely ok 2 - should handle data URLs in alternatives safely --- - duration_ms: 0.359 + duration_ms: 0.361882 ... 1..2 ok 2 - getAttachments with data URLs --- - duration_ms: 1.04036 + duration_ms: 1.124368 type: 'suite' ... # Subtest: performance with malicious inputs # Subtest: should process PoC examples quickly ok 1 - should process PoC examples quickly --- - duration_ms: 2.96652 + duration_ms: 10.27399 ... 1..1 ok 3 - performance with malicious inputs --- - duration_ms: 3.12388 + duration_ms: 10.444471 type: 'suite' ... 1..3 ok 11 - MailComposer ReDoS Protection Tests --- - duration_ms: 15.97864 + duration_ms: 39.831909 type: 'suite' ... # Subtest: Mime-Funcs Tests @@ -2914,212 +2950,212 @@ # Subtest: should detect plain text ok 1 - should detect plain text --- - duration_ms: 1.92216 + duration_ms: 2.012294 ... # Subtest: should return true ok 2 - should return true --- - duration_ms: 0.23384 + duration_ms: 0.279641 ... # Subtest: should return false on low bits ok 3 - should return false on low bits --- - duration_ms: 0.27884 + duration_ms: 0.278722 ... # Subtest: should return false on high bits ok 4 - should return false on high bits --- - duration_ms: 0.22684 + duration_ms: 0.223362 ... 1..4 ok 1 - \#isPlainText --- - duration_ms: 4.10724 + duration_ms: 4.291229 type: 'suite' ... # Subtest: \#hasLongerLines # Subtest: should detect longer lines ok 1 - should detect longer lines --- - duration_ms: 0.51112 + duration_ms: 0.475963 ... 1..1 ok 2 - \#hasLongerLines --- - duration_ms: 0.96916 + duration_ms: 0.931927 type: 'suite' ... # Subtest: \#encodeWord # Subtest: should encode quoted-printable ok 1 - should encode quoted-printable --- - duration_ms: 1.35448 + duration_ms: 1.42777 ... # Subtest: should encode base64 ok 2 - should encode base64 --- - duration_ms: 0.3802 + duration_ms: 0.414963 ... 1..2 ok 3 - \#encodeWord --- - duration_ms: 2.34584 + duration_ms: 2.412097 type: 'suite' ... # Subtest: \#encodeWords # Subtest: should encode Ascii range ok 1 - should encode Ascii range --- - duration_ms: 1.33648 + duration_ms: 1.314169 ... # Subtest: should split QP on maxLength ok 2 - should split QP on maxLength --- - duration_ms: 2.46112 + duration_ms: 2.607017 ... # Subtest: should split base64 on maxLength ok 3 - should split base64 on maxLength --- - duration_ms: 2.05324 + duration_ms: 2.076414 ... 1..3 ok 4 - \#encodeWords --- - duration_ms: 6.39696 + duration_ms: 6.590205 type: 'suite' ... # Subtest: \#buildHeaderParam # Subtest: should return unmodified ok 1 - should return unmodified --- - duration_ms: 2.13612 + duration_ms: 2.223255 ... # Subtest: should encode and split ascii ok 2 - should encode and split ascii --- - duration_ms: 0.53804 + duration_ms: 0.680964 ... # Subtest: should encode double byte unicode characters ok 3 - should encode double byte unicode characters --- - duration_ms: 0.64304 + duration_ms: 0.739645 ... # Subtest: should encode and split unicode ok 4 - should encode and split unicode --- - duration_ms: 0.72364 + duration_ms: 0.712565 ... # Subtest: should encode and split filename with dashes ok 5 - should encode and split filename with dashes --- - duration_ms: 0.7692 + duration_ms: 0.734525 ... # Subtest: should encode and decode ok 6 - should encode and decode --- - duration_ms: 1.94096 + duration_ms: 1.950453 ... 1..6 ok 5 - \#buildHeaderParam --- - duration_ms: 7.61168 + duration_ms: 7.961013 type: 'suite' ... # Subtest: \#parseHeaderValue # Subtest: should handle default value only ok 1 - should handle default value only --- - duration_ms: 0.35656 + duration_ms: 0.381002 ... # Subtest: should handle unquoted params ok 2 - should handle unquoted params --- - duration_ms: 0.73928 + duration_ms: 0.730965 ... # Subtest: should handle quoted params ok 3 - should handle quoted params --- - duration_ms: 0.34568 + duration_ms: 0.326842 ... # Subtest: should handle multi line values ok 4 - should handle multi line values --- - duration_ms: 0.98408 + duration_ms: 1.014047 ... # Subtest: should handle params only ok 5 - should handle params only --- - duration_ms: 0.29852 + duration_ms: 0.318963 ... 1..5 ok 6 - \#parseHeaderValue --- - duration_ms: 3.0436 + duration_ms: 3.118061 type: 'suite' ... # Subtest: \#_buildHeaderValue # Subtest: should build header value ok 1 - should build header value --- - duration_ms: 0.88436 + duration_ms: 0.959486 ... # Subtest: should handle unicode filename ok 2 - should handle unicode filename --- - duration_ms: 0.57972 + duration_ms: 0.582364 ... # Subtest: should handle dashed filename ok 3 - should handle dashed filename --- - duration_ms: 0.3458 + duration_ms: 0.336442 ... # Subtest: should split emoji filename ok 4 - should split emoji filename --- - duration_ms: 0.67016 + duration_ms: 0.684604 ... # Subtest: should quote filename with spaces ok 5 - should quote filename with spaces --- - duration_ms: 0.28168 + duration_ms: 0.278202 ... # Subtest: should quote filename with special characters ok 6 - should quote filename with special characters --- - duration_ms: 0.4618 + duration_ms: 0.445403 ... 1..6 ok 7 - \#_buildHeaderValue --- - duration_ms: 3.7002 + duration_ms: 3.747586 type: 'suite' ... # Subtest: \#foldLines # Subtest: should Fold long header line ok 1 - should Fold long header line --- - duration_ms: 0.94432 + duration_ms: 4.651232 ... # Subtest: should Fold flowed text ok 2 - should Fold flowed text --- - duration_ms: 0.28252 + duration_ms: 0.387203 ... # Subtest: should fold one long line ok 3 - should fold one long line --- - duration_ms: 0.44116 + duration_ms: 0.483083 ... 1..3 ok 8 - \#foldLines --- - duration_ms: 1.94176 + duration_ms: 5.84512 type: 'suite' ... 1..8 ok 12 - Mime-Funcs Tests --- - duration_ms: 32.1378 + duration_ms: 37.064851 type: 'suite' ... # Subtest: Mime-Type Tests @@ -3127,608 +3163,608 @@ # Subtest: should detect default extension ok 1 - should detect default extension --- - duration_ms: 1.63824 + duration_ms: 1.712811 ... # Subtest: should detect single extension ok 2 - should detect single extension --- - duration_ms: 0.27656 + duration_ms: 0.716045 ... # Subtest: should detect first matching extension ok 3 - should detect first matching extension --- - duration_ms: 0.30896 + duration_ms: 0.386802 ... 1..3 ok 1 - \#detectExtension --- - duration_ms: 4.06672 + duration_ms: 9.056581 type: 'suite' ... # Subtest: \#detectMimeType # Subtest: should detect default mime type ok 1 - should detect default mime type --- - duration_ms: 0.5622 + duration_ms: 0.590444 ... # Subtest: should detect single mime type ok 2 - should detect single mime type --- - duration_ms: 0.30708 + duration_ms: 0.305762 ... # Subtest: should detect first matching mime type ok 3 - should detect first matching mime type --- - duration_ms: 0.6052 + duration_ms: 4.842512 ... 1..3 ok 2 - \#detectMimeType --- - duration_ms: 2.16512 + duration_ms: 6.503724 type: 'suite' ... 1..2 ok 13 - Mime-Type Tests --- - duration_ms: 7.69508 + duration_ms: 25.433092 type: 'suite' ... # Subtest: MimeNode Tests # Subtest: should create MimeNode object ok 1 - should create MimeNode object --- - duration_ms: 3.26912 + duration_ms: 3.426983 ... # Subtest: \#createChild # Subtest: should create child ok 1 - should create child --- - duration_ms: 1.52284 + duration_ms: 1.579011 ... 1..1 ok 2 - \#createChild --- - duration_ms: 1.8256 + duration_ms: 1.897613 type: 'suite' ... # Subtest: \#appendChild # Subtest: should append child node ok 1 - should append child node --- - duration_ms: 0.76312 + duration_ms: 0.839246 ... 1..1 ok 3 - \#appendChild --- - duration_ms: 1.04384 + duration_ms: 1.147808 type: 'suite' ... # Subtest: \#replace # Subtest: should replace node ok 1 - should replace node --- - duration_ms: 0.81704 + duration_ms: 0.806325 ... 1..1 ok 4 - \#replace --- - duration_ms: 1.02496 + duration_ms: 1.015167 type: 'suite' ... # Subtest: \#remove # Subtest: should remove node ok 1 - should remove node --- - duration_ms: 0.88484 + duration_ms: 0.890406 ... 1..1 ok 5 - \#remove --- - duration_ms: 1.73072 + duration_ms: 1.676211 type: 'suite' ... # Subtest: \#setHeader # Subtest: should set header ok 1 - should set header --- - duration_ms: 2.30748 + duration_ms: 2.436977 ... # Subtest: should set multiple headers with the same key ok 2 - should set multiple headers with the same key --- - duration_ms: 0.43116 + duration_ms: 0.474043 ... 1..2 ok 6 - \#setHeader --- - duration_ms: 3.02696 + duration_ms: 3.225061 type: 'suite' ... # Subtest: \#addHeader # Subtest: should add header ok 1 - should add header --- - duration_ms: 0.91152 + duration_ms: 1.042007 ... # Subtest: should set multiple headers with the same key ok 2 - should set multiple headers with the same key --- - duration_ms: 0.89144 + duration_ms: 0.849926 ... 1..2 ok 7 - \#addHeader --- - duration_ms: 2.33988 + duration_ms: 2.458857 type: 'suite' ... # Subtest: \#getHeader # Subtest: should return first matching header value ok 1 - should return first matching header value --- - duration_ms: 0.65652 + duration_ms: 0.687724 ... 1..1 ok 8 - \#getHeader --- - duration_ms: 0.90904 + duration_ms: 0.905886 type: 'suite' ... # Subtest: \#setContent # Subtest: should set the contents for a node ok 1 - should set the contents for a node --- - duration_ms: 0.899 + duration_ms: 0.934767 ... 1..1 ok 9 - \#setContent --- - duration_ms: 1.10064 + duration_ms: 1.157327 type: 'suite' ... # Subtest: \#build # Subtest: should build root node ok 1 - should build root node --- - duration_ms: 37.795 + duration_ms: 76.031754 ... # Subtest: should build child node ok 2 - should build child node --- - duration_ms: 3.0664 + duration_ms: 6.783966 ... # Subtest: should build multipart node ok 3 - should build multipart node --- - duration_ms: 3.56968 + duration_ms: 5.750959 ... # Subtest: should build root with generated headers ok 4 - should build root with generated headers --- - duration_ms: 3.35156 + duration_ms: 3.251622 ... # Subtest: should not include bcc missing in output, but in envelope ok 5 - should not include bcc missing in output, but in envelope --- - duration_ms: 4.99616 + duration_ms: 6.539684 ... # Subtest: should include bcc missing in output and in envelope ok 6 - should include bcc missing in output and in envelope --- - duration_ms: 3.90168 + duration_ms: 5.413716 ... # Subtest: should use set envelope ok 7 - should use set envelope --- - duration_ms: 4.72984 + duration_ms: 6.373723 ... # Subtest: should have unicode subject ok 8 - should have unicode subject --- - duration_ms: 3.41692 + duration_ms: 5.114074 ... # Subtest: should have unicode subject with strange characters ok 9 - should have unicode subject with strange characters --- - duration_ms: 2.85184 + duration_ms: 4.683432 ... # Subtest: should keep 7bit text as is ok 10 - should keep 7bit text as is --- - duration_ms: 2.54832 + duration_ms: 3.931467 ... # Subtest: should prefer base64 ok 11 - should prefer base64 --- - duration_ms: 3.95976 + duration_ms: 8.9633 ... # Subtest: should force quoted-printable ok 12 - should force quoted-printable --- - duration_ms: 3.46188 + duration_ms: 6.900687 ... # Subtest: should prefer quoted-printable ok 13 - should prefer quoted-printable --- - duration_ms: 2.28964 + duration_ms: 5.248675 ... # Subtest: should not flow text ok 14 - should not flow text --- - duration_ms: 3.06488 + duration_ms: 4.585871 ... # Subtest: should not flow html ok 15 - should not flow html --- - duration_ms: 2.47156 + duration_ms: 4.021747 ... # Subtest: should use 7bit for html ok 16 - should use 7bit for html --- - duration_ms: 1.88212 + duration_ms: 3.574944 ... # Subtest: should fetch ascii filename ok 17 - should fetch ascii filename --- - duration_ms: 2.35476 + duration_ms: 4.158549 ... # Subtest: should set unicode filename ok 18 - should set unicode filename --- - duration_ms: 3.15284 + duration_ms: 4.568831 ... # Subtest: should set dashed filename ok 19 - should set dashed filename --- - duration_ms: 2.5376 + duration_ms: 2.788179 ... # Subtest: should encode filename with a space ok 20 - should encode filename with a space --- - duration_ms: 2.62848 + duration_ms: 18.389405 ... # Subtest: should detect content type from filename ok 21 - should detect content type from filename --- - duration_ms: 2.85752 + duration_ms: 4.052628 ... # Subtest: should convert address objects ok 22 - should convert address objects --- - duration_ms: 2.909 + duration_ms: 4.668752 ... # Subtest: should skip empty header ok 23 - should skip empty header --- - duration_ms: 1.86612 + duration_ms: 4.094308 ... # Subtest: should not process prepared headers ok 24 - should not process prepared headers --- - duration_ms: 1.86788 + duration_ms: 2.905299 ... # Subtest: should set default transfer encoding for application content ok 25 - should set default transfer encoding for application content --- - duration_ms: 5.05252 + duration_ms: 2.739539 ... # Subtest: should not set transfer encoding for multipart content ok 26 - should not set transfer encoding for multipart content --- - duration_ms: 1.7888 + duration_ms: 2.9615 ... # Subtest: should not set transfer encoding for message/ content ok 27 - should not set transfer encoding for message/ content --- - duration_ms: 1.6922 + duration_ms: 3.413423 ... # Subtest: should use from domain for message-id ok 28 - should use from domain for message-id --- - duration_ms: 1.392 + duration_ms: 5.307396 ... # Subtest: should fallback to hostname for message-id ok 29 - should fallback to hostname for message-id --- - duration_ms: 1.23476 + duration_ms: 2.529457 ... 1..29 ok 10 - \#build --- - duration_ms: 121.35576 + duration_ms: 223.826954 type: 'suite' ... # Subtest: \#getEnvelope # Subtest: should get envelope ok 1 - should get envelope --- - duration_ms: 0.9188 + duration_ms: 1.065287 ... 1..1 ok 11 - \#getEnvelope --- - duration_ms: 1.05756 + duration_ms: 1.274568 type: 'suite' ... # Subtest: \#messageId # Subtest: should create and return message-Id ok 1 - should create and return message-Id --- - duration_ms: 0.52224 + duration_ms: 0.551724 ... 1..1 ok 12 - \#messageId --- - duration_ms: 0.65176 + duration_ms: 0.696324 type: 'suite' ... # Subtest: \#getAddresses # Subtest: should get address object ok 1 - should get address object --- - duration_ms: 1.60596 + duration_ms: 1.834613 ... 1..1 ok 13 - \#getAddresses --- - duration_ms: 1.74412 + duration_ms: 1.999613 type: 'suite' ... # Subtest: \#_parseAddresses # Subtest: should normalize header key ok 1 - should normalize header key --- - duration_ms: 1.12496 + duration_ms: 1.169808 ... 1..1 ok 14 - \#_parseAddresses --- - duration_ms: 1.27052 + duration_ms: 1.334569 type: 'suite' ... # Subtest: \#_normalizeHeaderKey # Subtest: should normalize header key ok 1 - should normalize header key --- - duration_ms: 0.3442 + duration_ms: 0.344843 ... 1..1 ok 15 - \#_normalizeHeaderKey --- - duration_ms: 0.462 + duration_ms: 0.473283 type: 'suite' ... # Subtest: \#_handleContentType # Subtest: should do nothing on non multipart ok 1 - should do nothing on non multipart --- - duration_ms: 0.32896 + duration_ms: 0.333322 ... # Subtest: should use provided boundary ok 2 - should use provided boundary --- - duration_ms: 0.3086 + duration_ms: 0.319642 ... # Subtest: should generate boundary ok 3 - should generate boundary --- - duration_ms: 0.99556 + duration_ms: 1.066447 ... 1..3 ok 16 - \#_handleContentType --- - duration_ms: 1.91372 + duration_ms: 2.018134 type: 'suite' ... # Subtest: \#_generateBoundary # Subtest: should genereate boundary string ok 1 - should genereate boundary string --- - duration_ms: 0.2686 + duration_ms: 1.117367 ... 1..1 ok 17 - \#_generateBoundary --- - duration_ms: 0.38788 + duration_ms: 1.271369 type: 'suite' ... # Subtest: \#_encodeHeaderValue # Subtest: should do noting if possible ok 1 - should do noting if possible --- - duration_ms: 0.3582 + duration_ms: 0.396922 ... # Subtest: should encode non ascii characters ok 2 - should encode non ascii characters --- - duration_ms: 0.31584 + duration_ms: 0.326602 ... # Subtest: should format references ok 3 - should format references --- - duration_ms: 0.66128 + duration_ms: 0.664764 ... # Subtest: should format message-id ok 4 - should format message-id --- - duration_ms: 0.28344 + duration_ms: 0.259121 ... # Subtest: should format addresses ok 5 - should format addresses --- - duration_ms: 0.37012 + duration_ms: 0.354562 ... 1..5 ok 18 - \#_encodeHeaderValue --- - duration_ms: 2.26956 + duration_ms: 2.297936 type: 'suite' ... # Subtest: \#_convertAddresses # Subtest: should convert address object to a string ok 1 - should convert address object to a string --- - duration_ms: 0.65032 + duration_ms: 1.795252 ... # Subtest: should keep ascii name as is ok 2 - should keep ascii name as is --- - duration_ms: 0.3126 + duration_ms: 0.369562 ... # Subtest: should encode single quote ok 3 - should encode single quote --- - duration_ms: 0.33164 + duration_ms: 0.302523 ... # Subtest: should include name in quotes for special symbols ok 4 - should include name in quotes for special symbols --- - duration_ms: 0.35688 + duration_ms: 0.827845 ... # Subtest: should escape quotes ok 5 - should escape quotes --- - duration_ms: 0.32832 + duration_ms: 0.415163 ... # Subtest: should mime encode unicode names ok 6 - should mime encode unicode names --- - duration_ms: 0.41484 + duration_ms: 0.370842 ... 1..6 ok 19 - \#_convertAddresses --- - duration_ms: 2.71364 + duration_ms: 4.43555 type: 'suite' ... # Subtest: \#_generateMessageId # Subtest: should generate uuid-looking message-id ok 1 - should generate uuid-looking message-id --- - duration_ms: 0.42912 + duration_ms: 0.439203 ... 1..1 ok 20 - \#_generateMessageId --- - duration_ms: 0.54992 + duration_ms: 0.558924 type: 'suite' ... # Subtest: should use default header keys ok 21 - should use default header keys --- - duration_ms: 12.18196 + duration_ms: 33.382506 ... # Subtest: should use custom header keys ok 22 - should use custom header keys --- - duration_ms: 1.58872 + duration_ms: 1.633211 ... # Subtest: Attachment streaming # Subtest: should pipe URL as an attachment ok 1 - should pipe URL as an attachment --- - duration_ms: 289.38812 + duration_ms: 387.013858 ... # Subtest: should reject URL attachment ok 2 - should reject URL attachment --- - duration_ms: 3.21328 + duration_ms: 4.51623 ... # Subtest: should return an error on invalid url ok 3 - should return an error on invalid url --- - duration_ms: 4.69992 + duration_ms: 10.252269 ... # Subtest: should pipe file as an attachment ok 4 - should pipe file as an attachment --- - duration_ms: 9.54212 + duration_ms: 24.764727 ... # Subtest: should reject file as an attachment ok 5 - should reject file as an attachment --- - duration_ms: 2.14708 + duration_ms: 4.337069 ... # Subtest: should return an error on invalid file path ok 6 - should return an error on invalid file path --- - duration_ms: 2.68132 + duration_ms: 3.620344 ... # Subtest: should return a error for an errored stream ok 7 - should return a error for an errored stream --- - duration_ms: 103.44996 + duration_ms: 103.195218 ... # Subtest: should return a stream error ok 8 - should return a stream error --- - duration_ms: 102.5038 + duration_ms: 106.887563 ... 1..8 ok 23 - Attachment streaming --- - duration_ms: 518.582 + duration_ms: 645.537767 type: 'suite' ... # Subtest: \#transform # Subtest: should pipe through provided stream ok 1 - should pipe through provided stream --- - duration_ms: 4.69016 + duration_ms: 7.623252 ... 1..1 ok 24 - \#transform --- - duration_ms: 5.10164 + duration_ms: 7.898614 type: 'suite' ... # Subtest: \#processFunc # Subtest: should pipe through provided process function ok 1 - should pipe through provided process function --- - duration_ms: 5.30188 + duration_ms: 7.041408 ... 1..1 ok 25 - \#processFunc --- - duration_ms: 5.7178 + duration_ms: 7.36209 type: 'suite' ... # Subtest: Raw content # Subtest: should return pregenerated content ok 1 - should return pregenerated content --- - duration_ms: 4.55728 + duration_ms: 2.778499 ... # Subtest: should return pregenerated content for a child node ok 2 - should return pregenerated content for a child node --- - duration_ms: 3.66608 + duration_ms: 6.449723 ... # Subtest: should return pregenerated content from a stream ok 3 - should return pregenerated content from a stream --- - duration_ms: 2.8998 + duration_ms: 1.873853 ... # Subtest: should catch error from a raw stream 1 ok 4 - should catch error from a raw stream 1 --- - duration_ms: 2.1168 + duration_ms: 1.637931 ... # Subtest: should catch error from a raw stream 2 ok 5 - should catch error from a raw stream 2 --- - duration_ms: 2.22672 + duration_ms: 1.296809 ... 1..5 ok 26 - Raw content --- - duration_ms: 16.44484 + duration_ms: 18.810568 type: 'suite' ... 1..26 ok 14 - MimeNode Tests --- - duration_ms: 714.25188 + duration_ms: 975.73172 type: 'suite' ... # Subtest: Quoted-Printable Tests @@ -3736,125 +3772,125 @@ # Subtest: shoud encode UTF-8 string to QP ok 1 - shoud encode UTF-8 string to QP --- - duration_ms: 1.73128 + duration_ms: 1.920853 ... # Subtest: shoud encode Buffer to QP ok 2 - shoud encode Buffer to QP --- - duration_ms: 0.37796 + duration_ms: 0.450523 ... 1..2 ok 1 - \#encode --- - duration_ms: 3.80592 + duration_ms: 4.180189 type: 'suite' ... # Subtest: \#wrap # Subtest: should wrap long QP encoded lines ok 1 - should wrap long QP encoded lines --- - duration_ms: 1.23132 + duration_ms: 1.255968 ... # Subtest: should wrap line ending with ok 2 - should wrap line ending with --- - duration_ms: 0.35528 + duration_ms: 0.401802 ... 1..2 ok 2 - \#wrap --- - duration_ms: 1.87888 + duration_ms: 1.959693 type: 'suite' ... # Subtest: QP Streams # Subtest: should transform incoming bytes to QP ok 1 - should transform incoming bytes to QP --- - duration_ms: 25.00668 + duration_ms: 35.174438 ... -# (node:3955598) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. +# (node:3455217) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. # (Use `node --trace-deprecation ...` to show where the warning was created) # Subtest: should transform incoming bytes to QP and back ok 2 - should transform incoming bytes to QP and back --- - duration_ms: 54.09536 + duration_ms: 97.343579 ... 1..2 ok 3 - QP Streams --- - duration_ms: 79.84664 + duration_ms: 133.313501 type: 'suite' ... 1..3 ok 15 - Quoted-Printable Tests --- - duration_ms: 87.27624 + duration_ms: 141.254675 type: 'suite' ... # Subtest: Sendmail Windows Newlines # Subtest: should rewrite all linebreaks (byte by byte) ok 1 - should rewrite all linebreaks (byte by byte) --- - duration_ms: 15.76488 + duration_ms: 16.926794 ... # Subtest: should rewrite all linebreaks (all at once) ok 2 - should rewrite all linebreaks (all at once) --- - duration_ms: 1.60388 + duration_ms: 1.912293 ... 1..2 ok 16 - Sendmail Windows Newlines --- - duration_ms: 19.82724 + duration_ms: 21.142423 type: 'suite' ... # Subtest: Sendmail Transport Tests # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 1.88172 + duration_ms: 3.247902 ... # Subtest: Should send message ok 2 - Should send message --- - duration_ms: 23.28876 + duration_ms: 29.301478 ... # Subtest: Should reject message ok 3 - Should reject message --- - duration_ms: 0.77568 + duration_ms: 0.789206 ... # Subtest: Should return an error ok 4 - Should return an error --- - duration_ms: 3.41936 + duration_ms: 5.993241 ... 1..4 ok 17 - Sendmail Transport Tests --- - duration_ms: 31.8028 + duration_ms: 41.602802 type: 'suite' ... # Subtest: SES Transport Tests # Subtest: should return MessageId ok 1 - should return MessageId --- - duration_ms: 43.89864 + duration_ms: 112.499201 ... # Subtest: should verify ses configuration ok 2 - should verify ses configuration --- - duration_ms: 2.67 + duration_ms: 11.176916 ... # Subtest: should sign message with DKIM, using AWS SES JavaScript SDK v2 ok 3 - should sign message with DKIM, using AWS SES JavaScript SDK v2 --- - duration_ms: 26.83844 + duration_ms: 72.154608 ... 1..3 ok 18 - SES Transport Tests --- - duration_ms: 76.6558 + duration_ms: 199.44647 type: 'suite' ... # Subtest: SMTP-Connection Tests @@ -3862,12 +3898,12 @@ # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 6.31976 + duration_ms: 7.562291 ... 1..1 ok 1 - Version test --- - duration_ms: 7.30172 + duration_ms: 8.623179 type: 'suite' ... # Failed to resolve IPv4 addresses with current network @@ -3875,384 +3911,379 @@ # Subtest: should connect to unsecure server ok 1 - should connect to unsecure server --- - duration_ms: 134.11716 + duration_ms: 158.268431 ... -# (node:3955635) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. +# (node:3455678) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. # (Use `node --trace-warnings ...` to show where the warning was created) # Subtest: should connect to a server and upgrade with STARTTLS ok 2 - should connect to a server and upgrade with STARTTLS --- - duration_ms: 182.25552 + duration_ms: 198.04182 ... # Subtest: should connect and be rejected ok 3 - should connect and be rejected --- - duration_ms: 133.32628 + duration_ms: 136.0236 ... # Subtest: should connect to a server and upgrade with forced STARTTLS ok 4 - should connect to a server and upgrade with forced STARTTLS --- - duration_ms: 168.28128 + duration_ms: 178.91633 ... # Subtest: should connect to a server and try to upgrade STARTTLS ok 5 - should connect to a server and try to upgrade STARTTLS --- - duration_ms: 116.95284 + duration_ms: 113.332767 ... # Subtest: should try upgrade with STARTTLS where not advertised ok 6 - should try upgrade with STARTTLS where not advertised --- - duration_ms: 112.3982 + duration_ms: 115.506101 ... # Subtest: should close connection after STARTTLS ok 7 - should close connection after STARTTLS --- - duration_ms: 170.78052 + duration_ms: 187.306387 ... # Subtest: should connect to a secure server ok 8 - should connect to a secure server --- - duration_ms: 131.22104 + duration_ms: 132.077614 ... # Subtest: should emit error for invalid port ok 9 - should emit error for invalid port --- - duration_ms: 9.28424 + duration_ms: 4.894353 ... # Subtest: should emit error for too large port ok 10 - should emit error for too large port --- - duration_ms: 4.00564 + duration_ms: 3.453743 ... # Subtest: should emit inactivity timeout error ok 11 - should emit inactivity timeout error --- - duration_ms: 107.2094 + duration_ms: 105.898716 ... # Subtest: should connect through proxy ok 12 - should connect through proxy --- - duration_ms: 180.90752 + duration_ms: 182.251993 ... -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] Resolved localhost as localhost [cache hit] +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] Resolved localhost as localhost [cache hit] # Subtest: should connect through proxy to secure server ok 13 - should connect through proxy to secure server --- - duration_ms: 135.48668 + duration_ms: 131.950212 ... -# [2026-11-26 18:27:43] INFO [NCvCmEfWzQ4] Connection established to 127.0.0.1:8400 -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 220 codethink03-arm64 ESMTP -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] C: EHLO [127.0.0.1] -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 250-codethink03-arm64 Nice to meet you, localhost.localdomain -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 250-PIPELINING -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 250-8BITMIME -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 250 SMTPUTF8 -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] SMTP handshake finished -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] C: MAIL FROM: -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 250 Accepted -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] C: RCPT TO: -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 250 Accepted -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] C: DATA -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 354 End data with . -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] Copyright (c) 2011-2023 Andris Reinman -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] Permission is hereby granted, free of charge, to any person obtaining a copy -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] of this software and associated documentation files (the "Software"), to deal -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] in the Software without restriction, including without limitation the rights -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] copies of the Software, and to permit persons to whom the Software is -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] furnished to do so, subject to the following conditions: -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] SOFTWARE. -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] . -# [2026-11-26 18:27:43] INFO [NCvCmEfWzQ4] <954 bytes encoded mime message (source size 935 bytes)> -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] S: 250 OK: message queued -# [2026-11-26 18:27:43] DEBUG [NCvCmEfWzQ4] Closing connection to the server using "end" +# [2025-10-24 12:07:13] INFO [JQOi6rLQBCs] Connection established to 127.0.0.1:8400 +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 220 i-capture-the-hostname ESMTP +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] C: EHLO [127.0.0.1] +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 250-i-capture-the-hostname Nice to meet you, localhost.localdomain +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 250-PIPELINING +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 250-8BITMIME +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 250 SMTPUTF8 +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] SMTP handshake finished +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] C: MAIL FROM: +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 250 Accepted +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] C: RCPT TO: +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 250 Accepted +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] C: DATA +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 354 End data with . +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] Copyright (c) 2011-2023 Andris Reinman +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] Permission is hereby granted, free of charge, to any person obtaining a copy +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] of this software and associated documentation files (the "Software"), to deal +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] in the Software without restriction, including without limitation the rights +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] copies of the Software, and to permit persons to whom the Software is +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] furnished to do so, subject to the following conditions: +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] SOFTWARE. +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] . +# [2025-10-24 12:07:13] INFO [JQOi6rLQBCs] <954 bytes encoded mime message (source size 935 bytes)> +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] S: 250 OK: message queued +# [2025-10-24 12:07:13] DEBUG [JQOi6rLQBCs] Closing connection to the server using "end" # Subtest: should send to unsecure server ok 14 - should send to unsecure server --- - duration_ms: 186.51436 + duration_ms: 206.759639 ... 1..14 ok 2 - Connection tests --- - duration_ms: 1803.21084 + duration_ms: 1885.938998 type: 'suite' ... -# [2026-11-26 18:27:43] INFO [NCvCmEfWzQ4] Connection closed +# [2025-10-24 12:07:14] INFO [JQOi6rLQBCs] Connection closed # Subtest: Login tests # Subtest: should login ok 1 - should login --- - duration_ms: 228.13064 + duration_ms: 234.761108 ... # Subtest: should return error for invalid login ok 2 - should return error for invalid login --- - duration_ms: 218.9766 + duration_ms: 222.499026 ... # Subtest: should return error for missing credentials ok 3 - should return error for missing credentials --- - duration_ms: 221.42724 + duration_ms: 228.132104 ... # Subtest: should return error for incomplete credentials ok 4 - should return error for incomplete credentials --- - duration_ms: 219.08724 + duration_ms: 233.327778 ... # Subtest: xoauth2 login # Subtest: should login with xoauth2 string ok 1 - should login with xoauth2 string --- - duration_ms: 226.74148 + duration_ms: 233.238137 ... # Subtest: should return error for invalid xoauth2 string token ok 2 - should return error for invalid xoauth2 string token --- - duration_ms: 221.97452 + duration_ms: 230.446439 ... # Subtest: should login with xoauth2 object ok 3 - should login with xoauth2 object --- - duration_ms: 253.43664 + duration_ms: 261.416369 ... # Subtest: should fail with xoauth2 object ok 4 - should fail with xoauth2 object --- - duration_ms: 228.75212 + duration_ms: 239.633501 ... # Subtest: should fail with invalid xoauth2 response ok 5 - should fail with invalid xoauth2 response --- - duration_ms: 221.17164 + duration_ms: 240.136465 ... 1..5 ok 5 - xoauth2 login --- - duration_ms: 1153.7696 + duration_ms: 1205.859717 type: 'suite' ... # Subtest: custom login # Subtest: should login ok 1 - should login --- - duration_ms: 325.89428 + duration_ms: 333.566417 ... # Subtest: should login without pass ok 2 - should login without pass --- - duration_ms: 319.75244 + duration_ms: 334.981146 ... 1..2 ok 6 - custom login --- - duration_ms: 646.38236 + duration_ms: 673.218434 type: 'suite' ... # Subtest: Send without PIPELINING # Subtest: should send only to valid recipients without PIPELINING ok 1 - should send only to valid recipients without PIPELINING --- - duration_ms: 378.28892 + duration_ms: 400.883471 ... 1..1 ok 7 - Send without PIPELINING --- - duration_ms: 379.39596 + duration_ms: 401.212034 type: 'suite' ... # Subtest: Send messages # Subtest: should send message ok 1 - should send message --- - duration_ms: 274.64528 + duration_ms: 288.011748 ... # Subtest: should send multiple messages ok 2 - should send multiple messages --- - duration_ms: 312.70992 + duration_ms: 316.108378 ... # Subtest: should send only to valid recipients ok 3 - should send only to valid recipients --- - duration_ms: 305.67596 + duration_ms: 315.424694 ... # Subtest: should reject all recipients ok 4 - should reject all recipients --- - duration_ms: 255.75672 + duration_ms: 267.875612 ... # Subtest: should reject too large SIZE arguments ok 5 - should reject too large SIZE arguments --- - duration_ms: 214.41948 + duration_ms: 217.051429 ... # Subtest: should reject too large message ok 6 - should reject too large message --- - duration_ms: 221.11388 + duration_ms: 218.69108 ... # Subtest: should declare SIZE ok 7 - should declare SIZE --- - duration_ms: 273.41652 + duration_ms: 271.867359 ... # Subtest: lmtp should send only to valid recipients ok 8 - lmtp should send only to valid recipients --- - duration_ms: 350.62032 + duration_ms: 363.68802 ... # Subtest: should send using SMTPUTF8 ok 9 - should send using SMTPUTF8 --- - duration_ms: 304.2646 + duration_ms: 320.174526 ... # Subtest: should send using 8BITMIME ok 10 - should send using 8BITMIME --- - duration_ms: 305.0426 + duration_ms: 316.564022 ... # Subtest: should receive error for 8-bit content without 8BITMIME declaration ok 11 - should receive error for 8-bit content without 8BITMIME declaration --- - duration_ms: 302.69792 + duration_ms: 311.261065 ... # Subtest: should return error for invalidly formatted recipients ok 12 - should return error for invalidly formatted recipients --- - duration_ms: 216.19336 + duration_ms: 231.031243 ... # Subtest: should return error for no valid recipients ok 13 - should return error for no valid recipients --- - duration_ms: 258.87204 + duration_ms: 268.386016 ... # Subtest: should return error for invalid sender ok 14 - should return error for invalid sender --- - duration_ms: 216.13428 + duration_ms: 219.144323 ... # Subtest: should send message string ok 15 - should send message string --- - duration_ms: 231.15436 + duration_ms: 248.891603 ... # Subtest: should send message buffer ok 16 - should send message buffer --- - duration_ms: 222.8396 + duration_ms: 233.042576 ... # Subtest: should send message stream ok 17 - should send message stream --- - duration_ms: 261.39368 + duration_ms: 278.751086 ... 1..17 ok 8 - Send messages --- - duration_ms: 4530.11724 + duration_ms: 4687.790951 type: 'suite' ... 1..8 ok 3 - Login tests --- - duration_ms: 7600.9372 + duration_ms: 7888.320443 type: 'suite' ... 1..3 ok 19 - SMTP-Connection Tests --- - duration_ms: 9413.819 + duration_ms: 9785.083553 type: 'suite' ... # Subtest: SMTP Pool Tests # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 28.95336 + duration_ms: 38.143578 ... # Subtest: Should detect wellknown data ok 2 - Should detect wellknown data --- - duration_ms: 8.36992 + duration_ms: 11.481997 ... # Failed to resolve IPv4 addresses with current network # Subtest: should send mail ok 3 - should send mail --- - duration_ms: 148.00656 + duration_ms: 239.063617 ... # Subtest: should send multiple mails ok 4 - should send multiple mails --- - duration_ms: 1370.38688 + duration_ms: 2127.637753 ... # Subtest: should tolerate connection errors ok 5 - should tolerate connection errors --- - duration_ms: 1653.17856 + duration_ms: 1952.568048 ... # Subtest: should tolerate idle connections and re-assign messages to other connections ok 6 - should tolerate idle connections and re-assign messages to other connections --- - duration_ms: 2162.7842 + duration_ms: 2150.127585 ... # Subtest: should call back with connection errors to senders having messages in flight ok 7 - should call back with connection errors to senders having messages in flight --- - duration_ms: 337.34144 + duration_ms: 343.840646 ... # Subtest: should not send more then allowed for one connection ok 8 - should not send more then allowed for one connection --- - duration_ms: 5952.17492 + duration_ms: 6133.24385 ... # Subtest: should send multiple mails with rate limit ok 9 - should send multiple mails with rate limit --- - duration_ms: 26013.77096 + duration_ms: 27295.924331 ... # Subtest: should return pending messages once closed ok 10 - should return pending messages once closed --- - duration_ms: 13.98572 + duration_ms: 40.941197 ... -# Failed to resolve IPv4 addresses with current network -# Failed to resolve IPv4 addresses with current network -# Failed to resolve IPv4 addresses with current network -# Failed to resolve IPv4 addresses with current network -# Failed to resolve IPv4 addresses with current network # Subtest: should emit idle for free slots in the pool ok 11 - should emit idle for free slots in the pool --- - duration_ms: 20305.12116 + duration_ms: 20326.231023 ... # Subtest: Should login and send mail using proxied socket ok 12 - Should login and send mail using proxied socket --- - duration_ms: 114.976 + duration_ms: 115.31238 ... # Subtest: Should verify connection with success ok 13 - Should verify connection with success --- - duration_ms: 111.04176 + duration_ms: 112.118559 ... # Subtest: Should not verify connection ok 14 - Should not verify connection --- - duration_ms: 6.26796 + duration_ms: 6.874486 ... 1..14 ok 20 - SMTP Pool Tests --- - duration_ms: 58231.2104 + duration_ms: 60898.216003 type: 'suite' ... # Subtest: SMTP Transport Tests @@ -4260,234 +4291,234 @@ # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 29.87596 + duration_ms: 35.961723 ... # Subtest: Should detect wellknown data ok 2 - Should detect wellknown data --- - duration_ms: 9.56676 + duration_ms: 10.432991 ... # Failed to resolve IPv4 addresses with current network # Subtest: Should fail envelope ok 3 - Should fail envelope --- - duration_ms: 140.20728 + duration_ms: 151.258863 ... # Subtest: Should not fail auth ok 4 - Should not fail auth --- - duration_ms: 171.60448 + duration_ms: 158.748994 ... # Subtest: Should fail auth if forceAuth=true ok 5 - Should fail auth if forceAuth=true --- - duration_ms: 122.23632 + duration_ms: 111.731276 ... # Subtest: Should send mail ok 6 - Should send mail --- - duration_ms: 147.74288 + duration_ms: 125.443488 ... # Subtest: Should recover unexpeced close during transmission ok 7 - Should recover unexpeced close during transmission --- - duration_ms: 289.008 + duration_ms: 270.582871 ... # Subtest: Should verify connection without credentials with success ok 8 - Should verify connection without credentials with success --- - duration_ms: 119.87508 + duration_ms: 120.589936 ... 1..8 ok 1 - Anonymous sender tests --- - duration_ms: 1033.21644 + duration_ms: 987.958323 type: 'suite' ... # Subtest: Authenticated sender tests # Subtest: Should login and send mail ok 1 - Should login and send mail --- - duration_ms: 128.52644 + duration_ms: 131.54289 ... # Subtest: Should verify connection with success ok 2 - Should verify connection with success --- - duration_ms: 116.18048 + duration_ms: 116.353387 ... # Subtest: Should verify connection without credentials with success ok 3 - Should verify connection without credentials with success --- - duration_ms: 114.6286 + duration_ms: 116.540749 ... # Subtest: Should not verify connection without credentials ok 4 - Should not verify connection without credentials --- - duration_ms: 111.92496 + duration_ms: 113.441568 ... # Subtest: Should not verify connection ok 5 - Should not verify connection --- - duration_ms: 9.3378 + duration_ms: 9.350784 ... # Subtest: Should login and send mail using proxied socket ok 6 - Should login and send mail using proxied socket --- - duration_ms: 124.50696 + duration_ms: 125.883172 ... 1..6 ok 2 - Authenticated sender tests --- - duration_ms: 607.13812 + duration_ms: 615.231522 type: 'suite' ... 1..2 ok 21 - SMTP Transport Tests --- - duration_ms: 1643.54296 + duration_ms: 1607.909757 type: 'suite' ... # Subtest: Stream Transport Tests # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 1.97344 + duration_ms: 1.818333 ... # Subtest: Send as stream # Subtest: Should send mail using unix newlines 1 ok 1 - Should send mail using unix newlines 1 --- - duration_ms: 25.56172 + duration_ms: 24.432125 ... # Subtest: Should send mail using unix newlines 2 ok 2 - Should send mail using unix newlines 2 --- - duration_ms: 5.76008 + duration_ms: 5.556278 ... # Subtest: Should send mail using windows newlines ok 3 - Should send mail using windows newlines --- - duration_ms: 5.98644 + duration_ms: 5.896279 ... 1..3 ok 2 - Send as stream --- - duration_ms: 38.30588 + duration_ms: 36.851569 type: 'suite' ... # Subtest: Send as buffer # Subtest: Should send mail using unix newlines ok 1 - Should send mail using unix newlines --- - duration_ms: 6.10096 + duration_ms: 5.941601 ... # Subtest: Should send mail using windows newlines ok 2 - Should send mail using windows newlines --- - duration_ms: 4.02184 + duration_ms: 3.837505 ... 1..2 ok 3 - Send as buffer --- - duration_ms: 10.64752 + duration_ms: 10.278589 type: 'suite' ... 1..3 ok 22 - Stream Transport Tests --- - duration_ms: 54.02988 + duration_ms: 51.69659 type: 'suite' ... # Subtest: XOAuth2 tests # Subtest: should get an existing access token ok 1 - should get an existing access token --- - duration_ms: 12.37732 + duration_ms: 13.558812 ... # Subtest: should convert access token to XOAuth2 token ok 2 - should convert access token to XOAuth2 token --- - duration_ms: 2.6112 + duration_ms: 2.84786 ... # Subtest: should get an existing access token, no timeout ok 3 - should get an existing access token, no timeout --- - duration_ms: 2.0808 + duration_ms: 2.256935 ... # Subtest: should generate a fresh access token ok 4 - should generate a fresh access token --- - duration_ms: 39.6688 + duration_ms: 43.237133 ... # Subtest: should generate a fresh access token with custom method ok 5 - should generate a fresh access token with custom method --- - duration_ms: 2.2886 + duration_ms: 2.441777 ... # Subtest: should fail generating a fresh access token with custom method ok 6 - should fail generating a fresh access token with custom method --- - duration_ms: 2.22068 + duration_ms: 2.386096 ... # Subtest: should generate a fresh access token after timeout ok 7 - should generate a fresh access token after timeout --- - duration_ms: 3019.7658 + duration_ms: 3020.397833 ... # Subtest: should emit access token update ok 8 - should emit access token update --- - duration_ms: 17.23972 + duration_ms: 18.292883 ... # Subtest: should sign payload ok 9 - should sign payload --- - duration_ms: 20.99972 + duration_ms: 21.337144 ... # Subtest: should handle concurrent token requests ok 10 - should handle concurrent token requests --- - duration_ms: 25.76436 + duration_ms: 26.59626 ... # Subtest: should propagate renewal errors to all concurrent requests ok 11 - should propagate renewal errors to all concurrent requests --- - duration_ms: 19.897 + duration_ms: 20.554859 ... # Subtest: should handle sequential token requests with varying tokens ok 12 - should handle sequential token requests with varying tokens --- - duration_ms: 726.57924 + duration_ms: 760.129702 ... # Subtest: should reuse existing token when no refresh mechanism is available ok 13 - should reuse existing token when no refresh mechanism is available --- - duration_ms: 1.43296 + duration_ms: 1.52009 ... # Subtest: should return error when no token exists and no refresh mechanism ok 14 - should return error when no token exists and no refresh mechanism --- - duration_ms: 2.53052 + duration_ms: 2.087294 ... # Subtest: should attempt renewal when refresh mechanism is available ok 15 - should attempt renewal when refresh mechanism is available --- - duration_ms: 2.96888 + duration_ms: 1.641411 ... # Subtest: should use provisionCallback when available instead of refresh ok 16 - should use provisionCallback when available instead of refresh --- - duration_ms: 2.7142 + duration_ms: 1.519851 ... # Subtest: should use serviceClient when available for token generation ok 17 - should use serviceClient when available for token generation --- - duration_ms: 2.15708 + duration_ms: 1.319489 ... 1..17 ok 23 - XOAuth2 tests --- - duration_ms: 3908.75128 + duration_ms: 3947.748466 type: 'suite' ... 1..23 @@ -4498,7 +4529,7 @@ # cancelled 0 # skipped 0 # todo 0 -# duration_ms 83254.36604 +# duration_ms 91268.579332 Removing node_modules/base32.js Removing node_modules/encoding-japanese Removing node_modules/ipv6-normalize @@ -4657,12 +4688,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3439783/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/3945792 and its subdirectories -I: Current time: Thu Nov 26 06:29:00 -12 2026 -I: pbuilder-time-stamp: 1795717740 +I: removing directory /srv/workspace/pbuilder/3439783 and its subdirectories +I: Current time: Sat Oct 25 02:08:36 +14 2025 +I: pbuilder-time-stamp: 1761307716