Diff of the two buildlogs: -- --- b1/build.log 2025-09-09 19:56:16.421626409 +0000 +++ b2/build.log 2025-09-09 19:58:33.461786704 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Oct 12 14:16:03 -12 2026 -I: pbuilder-time-stamp: 1791857763 +I: Current time: Wed Sep 10 09:56:19 +14 2025 +I: pbuilder-time-stamp: 1757447779 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -27,53 +27,85 @@ dpkg-source: info: applying change-test-ports.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1048100/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/684566/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 Sep 9 19:56 /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/684566/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/684566/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='c268af3f883f4dda87870d33ee568e59' - 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='1048100' - PS1='# ' - PS2='> ' + INVOCATION_ID=d593ec4809a44316bc97be5d3836ce85 + 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=684566 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.dtx0VIbB/pbuilderrc_FXJG --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.dtx0VIbB/b1 --logfile b1/build.log node-nodemailer_7.0.6+~7.0.1-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.dtx0VIbB/pbuilderrc_Mfou --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.dtx0VIbB/b2 --logfile b2/build.log node-nodemailer_7.0.6+~7.0.1-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.43+deb13-cloud-arm64 #1 SMP Debian 6.12.43-1 (2025-08-27) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.43+deb13-cloud-arm64 #1 SMP Debian 6.12.43-1 (2025-08-27) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1048100/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/684566/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -446,7 +478,7 @@ Get: 317 http://deb.debian.org/debian unstable/main arm64 node-path-to-regexp all 6.3.0-1 [20.0 kB] Get: 318 http://deb.debian.org/debian unstable/main arm64 node-punycode all 2.3.1+~2.1.4-1 [10.8 kB] Get: 319 http://deb.debian.org/debian unstable/main arm64 node-sinon all 18.0.0+ds2+~cs75.4.16-1 [223 kB] -Fetched 45.0 MB in 1s (59.6 MB/s) +Fetched 45.0 MB in 0s (177 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 ... 20020 files and directories currently installed.) @@ -1749,7 +1781,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/node-nodemailer-7.0.6+~7.0.1/ && 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.6+~7.0.1-1_source.changes +I: user script /srv/workspace/pbuilder/684566/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/684566/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/node-nodemailer-7.0.6+~7.0.1/ && 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.6+~7.0.1-1_source.changes dpkg-buildpackage: info: source package node-nodemailer dpkg-buildpackage: info: source version 7.0.6+~7.0.1-1 dpkg-buildpackage: info: source distribution unstable @@ -1787,120 +1823,120 @@ 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 -+ + 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 +++ 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 + 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: 9.60652 + duration_ms: 4.327588 ... # Subtest: should handle multiple addresses correctly ok 2 - should handle multiple addresses correctly --- - duration_ms: 0.74984 + duration_ms: 0.616524 ... # Subtest: should handle unquoted name correctly ok 3 - should handle unquoted name correctly --- - duration_ms: 0.86248 + duration_ms: 0.732964 ... # Subtest: should handle quoted name correctly ok 4 - should handle quoted name correctly --- - duration_ms: 0.57164 + duration_ms: 0.476403 ... # Subtest: should handle quoted semicolons correctly ok 5 - should handle quoted semicolons correctly --- - duration_ms: 4.8064 + duration_ms: 0.352683 ... # Subtest: should handle unquoted name, unquoted address correctly ok 6 - should handle unquoted name, unquoted address correctly --- - duration_ms: 0.73492 + duration_ms: 0.496723 ... # Subtest: should handle emtpy group correctly ok 7 - should handle emtpy group correctly --- - duration_ms: 0.46076 + duration_ms: 0.350362 ... # Subtest: should handle address group correctly ok 8 - should handle address group correctly --- - duration_ms: 0.5128 + duration_ms: 0.407962 ... # Subtest: should handle semicolon as a delimiter ok 9 - should handle semicolon as a delimiter --- - duration_ms: 5.46724 + duration_ms: 0.982206 ... # Subtest: should handle mixed group correctly ok 10 - should handle mixed group correctly --- - duration_ms: 1.60352 + duration_ms: 1.220688 ... # Subtest: should flatten mixed group correctly ok 11 - should flatten mixed group correctly --- - duration_ms: 1.04532 + duration_ms: 0.789165 ... # Subtest: semicolon as delimiter should not break group parsing ok 12 - semicolon as delimiter should not break group parsing --- - duration_ms: 0.87128 + duration_ms: 0.455603 ... # Subtest: should handle name from comment correctly ok 13 - should handle name from comment correctly --- - duration_ms: 0.86972 + duration_ms: 0.626244 ... # Subtest: should handle skip comment correctly ok 14 - should handle skip comment correctly --- - duration_ms: 0.75408 + duration_ms: 0.566243 ... # Subtest: should handle missing address correctly ok 15 - should handle missing address correctly --- - duration_ms: 0.72328 + duration_ms: 0.556363 ... # Subtest: should handle apostrophe in name correctly ok 16 - should handle apostrophe in name correctly --- - duration_ms: 0.44796 + duration_ms: 0.318322 ... # Subtest: should handle particularily bad input, unescaped colon correctly ok 17 - should handle particularily bad input, unescaped colon correctly --- - duration_ms: 0.65344 + duration_ms: 0.439923 ... # Subtest: should handle invalid email address correctly ok 18 - should handle invalid email address correctly --- - duration_ms: 1.00556 + duration_ms: 0.842846 ... # Subtest: should handle unexpected < ok 19 - should handle unexpected < --- - duration_ms: 1.07104 + duration_ms: 1.030807 ... # Subtest: should handle escapes ok 20 - should handle escapes --- - duration_ms: 0.4608 + duration_ms: 0.397083 ... # Subtest: should handle quoted usernames ok 21 - should handle quoted usernames --- - duration_ms: 4.69756 + duration_ms: 2.019813 ... 1..21 ok 1 - \#addressparser --- - duration_ms: 47.19352 + duration_ms: 22.074264 type: 'suite' ... # Subtest: Base64 Tests @@ -1908,156 +1944,156 @@ # Subtest: shoud encode UTF-8 string to base64 ok 1 - shoud encode UTF-8 string to base64 --- - duration_ms: 2.08644 + duration_ms: 1.727852 ... # Subtest: shoud encode Buffer to base64 ok 2 - shoud encode Buffer to base64 --- - duration_ms: 0.94272 + duration_ms: 0.754684 ... 1..2 ok 1 - \#encode --- - duration_ms: 8.77844 + duration_ms: 3.668264 type: 'suite' ... # Subtest: \#wrap # Subtest: should wrap long base64 encoded lines ok 1 - should wrap long base64 encoded lines --- - duration_ms: 0.73168 + duration_ms: 0.603444 ... 1..1 ok 2 - \#wrap --- - duration_ms: 1.3016 + duration_ms: 1.132807 type: 'suite' ... # Subtest: base64 Streams # Subtest: should transform incoming bytes to base64 ok 1 - should transform incoming bytes to base64 --- - duration_ms: 72.65016 + duration_ms: 26.810854 ... # Subtest: should transform incoming bytes to base64 and back ok 2 - should transform incoming bytes to base64 and back --- - duration_ms: 40.52924 + duration_ms: 17.107831 ... # Subtest: should flush incomplete trailing base64 chunks correctly ok 3 - should flush incomplete trailing base64 chunks correctly --- - duration_ms: 2.32436 + duration_ms: 2.103814 ... -# Encoded 100MB in 3555ms +# Encoded 100MB in 2816ms # Subtest: should handle large payload efficiently ok 4 - should handle large payload efficiently --- - duration_ms: 3875.93556 + duration_ms: 2988.881143 ... 1..4 ok 3 - base64 Streams --- - duration_ms: 3992.8556 + duration_ms: 3036.159889 type: 'suite' ... 1..3 ok 2 - Base64 Tests --- - duration_ms: 4009.23296 + duration_ms: 3042.461811 type: 'suite' ... # Subtest: DKIM Tests # Subtest: should sign message ok 1 - should sign message --- - duration_ms: 106.96284 + duration_ms: 38.070887 ... # Subtest: should sign large message using cache dir ok 2 - should sign large message using cache dir --- - duration_ms: 502.5008 + duration_ms: 235.92097 ... # Subtest: should sign large message without cache dir ok 3 - should sign large message without cache dir --- - duration_ms: 433.35312 + duration_ms: 192.195526 ... # Subtest: should emit cache error ok 4 - should emit cache error --- - duration_ms: 119.03276 + duration_ms: 38.643011 ... # Subtest: should sign large message as Buffer ok 5 - should sign large message as Buffer --- - duration_ms: 334.46656 + duration_ms: 114.698903 ... # Subtest: should sign large message as String ok 6 - should sign large message as String --- - duration_ms: 318.29872 + duration_ms: 130.301285 ... 1..6 ok 3 - DKIM Tests --- - duration_ms: 1818.0696 + duration_ms: 753.400325 type: 'suite' ... # Subtest: DKIM MessageParser Tests # Subtest: should extract header and body ok 1 - should extract header and body --- - duration_ms: 37.1756 + duration_ms: 12.673003 ... 1..1 ok 4 - DKIM MessageParser Tests --- - duration_ms: 47.96596 + duration_ms: 15.345899 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: 415.523 + duration_ms: 150.399495 ... # Subtest: Should calculate body hash all at once ok 2 - Should calculate body hash all at once --- - duration_ms: 20.01748 + duration_ms: 4.248867 ... 1..2 ok 5 - DKIM RelaxedBody Tests --- - duration_ms: 437.99004 + duration_ms: 157.122779 type: 'suite' ... # Subtest: DKIM Sign Tests # Subtest: should create relaxed headers ok 1 - should create relaxed headers --- - duration_ms: 4.15728 + duration_ms: 3.404342 ... # Subtest: should skip specific headers ok 2 - should skip specific headers --- - duration_ms: 0.4576 + duration_ms: 0.474244 ... # Subtest: should sign headers ok 3 - should sign headers --- - duration_ms: 6.59764 + duration_ms: 4.59531 ... # Subtest: should sign headers for unicode domain ok 4 - should sign headers for unicode domain --- - duration_ms: 6.74288 + duration_ms: 1.946532 ... 1..4 ok 6 - DKIM Sign Tests --- - duration_ms: 23.4686 + duration_ms: 13.252966 type: 'suite' ... # Subtest: Cookie Tests @@ -2065,97 +2101,97 @@ # Subtest: should return root path ok 1 - should return root path --- - duration_ms: 13.06428 + duration_ms: 2.356136 ... # Subtest: should return without file ok 2 - should return without file --- - duration_ms: 0.66508 + duration_ms: 0.575684 ... 1..2 ok 1 - \#getPath --- - duration_ms: 15.8418 + duration_ms: 4.893112 type: 'suite' ... # Subtest: \#isExpired # Subtest: should match expired cookie ok 1 - should match expired cookie --- - duration_ms: 0.62984 + duration_ms: 0.708485 ... 1..1 ok 2 - \#isExpired --- - duration_ms: 0.86676 + duration_ms: 0.952926 type: 'suite' ... # Subtest: \#compare # Subtest: should match similar cookies ok 1 - should match similar cookies --- - duration_ms: 9.35576 + duration_ms: 0.701804 ... 1..1 ok 3 - \#compare --- - duration_ms: 10.437 + duration_ms: 1.748611 type: 'suite' ... # Subtest: \#add # Subtest: should append new cookie ok 1 - should append new cookie --- - duration_ms: 1.18112 + duration_ms: 1.128887 ... # Subtest: should update existing cookie ok 2 - should update existing cookie --- - duration_ms: 2.65008 + duration_ms: 0.923286 ... 1..2 ok 4 - \#add --- - duration_ms: 4.81848 + duration_ms: 2.934099 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: 3.24032 + duration_ms: 3.141541 ... # 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.54192 + duration_ms: 1.58601 ... # Subtest: should check if a cookie is secure ok 3 - should check if a cookie is secure --- - duration_ms: 1.87028 + duration_ms: 1.640011 ... 1..3 ok 5 - \#match --- - duration_ms: 12.16756 + duration_ms: 6.919925 type: 'suite' ... # Subtest: \#parse # Subtest: should parse Set-Cookie value ok 1 - should parse Set-Cookie value --- - duration_ms: 10.47224 + duration_ms: 4.965032 ... # Subtest: should ignore invalid expire header ok 2 - should ignore invalid expire header --- - duration_ms: 0.88724 + duration_ms: 0.922526 ... 1..2 ok 6 - \#parse --- - duration_ms: 11.70028 + duration_ms: 6.258561 type: 'suite' ... # Subtest: Listing @@ -2163,351 +2199,351 @@ # Subtest: should return matching cookies for an URL ok 1 - should return matching cookies for an URL --- - duration_ms: 5.71728 + duration_ms: 1.436089 ... 1..1 ok 1 - \#list --- - duration_ms: 5.90516 + duration_ms: 1.609811 type: 'suite' ... # Subtest: \#get # Subtest: should return matching cookies for an URL ok 1 - should return matching cookies for an URL --- - duration_ms: 0.8434 + duration_ms: 0.701324 ... 1..1 ok 2 - \#get --- - duration_ms: 1.04232 + duration_ms: 0.874326 type: 'suite' ... 1..2 ok 7 - Listing --- - duration_ms: 7.24408 + duration_ms: 2.783258 type: 'suite' ... # Subtest: \#set # Subtest: should set cookie ok 1 - should set cookie --- - duration_ms: 2.8798 + duration_ms: 2.611577 ... 1..1 ok 8 - \#set --- - duration_ms: 9.23412 + duration_ms: 3.19006 type: 'suite' ... 1..8 ok 7 - Cookie Tests --- - duration_ms: 74.76928 + duration_ms: 33.91454 type: 'suite' ... # Subtest: NMFetch Tests # Subtest: should fetch HTTP data ok 1 - should fetch HTTP data --- - duration_ms: 155.424 + duration_ms: 70.976701 ... # Subtest: should fetch HTTPS data ok 2 - should fetch HTTPS data --- - duration_ms: 56.4964 + duration_ms: 26.023049 ... # Subtest: should fetch HTTP data with redirects ok 3 - should fetch HTTP data with redirects --- - duration_ms: 53.43588 + duration_ms: 23.988715 ... # Subtest: should return error for too many redirects ok 4 - should return error for too many redirects --- - duration_ms: 57.11688 + duration_ms: 27.944502 ... # Subtest: should fetch HTTP data with custom redirect limit ok 5 - should fetch HTTP data with custom redirect limit --- - duration_ms: 33.66996 + duration_ms: 16.132625 ... # Subtest: should return error for custom redirect limit ok 6 - should return error for custom redirect limit --- - duration_ms: 38.504 + duration_ms: 14.161092 ... # Subtest: should return disable redirects ok 7 - should return disable redirects --- - duration_ms: 15.95308 + duration_ms: 6.862844 ... # Subtest: should unzip compressed HTTP data ok 8 - should unzip compressed HTTP data --- - duration_ms: 33.12956 + duration_ms: 13.82277 ... # Subtest: should return error for unresolved host ok 9 - should return error for unresolved host --- - duration_ms: 15.62372 + duration_ms: 6.865165 ... # Subtest: should return error for invalid status ok 10 - should return error for invalid status --- - duration_ms: 27.59192 + duration_ms: 7.71089 ... # Subtest: should allow invalid status ok 11 - should allow invalid status --- - duration_ms: 26.58452 + duration_ms: 6.707803 ... # Subtest: should return error for invalid url ok 12 - should return error for invalid url --- - duration_ms: 13.58396 + duration_ms: 6.22744 ... # Subtest: should return timeout error ok 13 - should return timeout error --- - duration_ms: 1008.2806 + duration_ms: 1009.889309 ... # Subtest: should handle basic HTTP auth ok 14 - should handle basic HTTP auth --- - duration_ms: 16.23492 + duration_ms: 14.328733 ... # Subtest: should return error for invalid protocol ok 15 - should return error for invalid protocol --- - duration_ms: 14.4476 + duration_ms: 10.707629 ... # Subtest: should set cookie value ok 16 - should set cookie value --- - duration_ms: 15.22576 + duration_ms: 12.624282 ... # Subtest: should set user agent ok 17 - should set user agent --- - duration_ms: 18.14664 + duration_ms: 10.896031 ... # Subtest: should post data ok 18 - should post data --- - duration_ms: 16.79244 + duration_ms: 11.948838 ... # Subtest: should post stream data ok 19 - should post stream data --- - duration_ms: 23.13892 + duration_ms: 23.268511 ... # Subtest: should return error for invalid cert ok 20 - should return error for invalid cert --- - duration_ms: 43.97324 + duration_ms: 17.264512 ... 1..20 ok 8 - NMFetch Tests --- - duration_ms: 1693.81236 + duration_ms: 1345.460606 type: 'suite' ... # Subtest: JSON Transport Tests # Subtest: should return an JSON string ok 1 - should return an JSON string --- - duration_ms: 116.69968 + duration_ms: 31.902967 ... # Subtest: should return an JSON string for calendar event ok 2 - should return an JSON string for calendar event --- - duration_ms: 19.12588 + duration_ms: 8.119293 ... 1..2 ok 9 - JSON Transport Tests --- - duration_ms: 142.64424 + duration_ms: 42.434155 type: 'suite' ... # Subtest: MailComposer unit tests # Subtest: should create new MailComposer ok 1 - should create new MailComposer --- - duration_ms: 1.66036 + duration_ms: 1.53281 ... # Subtest: \#compile # Subtest: should use Mixed structure with text and attachment ok 1 - should use Mixed structure with text and attachment --- - duration_ms: 16.71564 + duration_ms: 7.226327 ... # Subtest: should use Mixed structure with multiple attachments ok 2 - should use Mixed structure with multiple attachments --- - duration_ms: 2.17936 + duration_ms: 3.760065 ... # Subtest: should create Alternative structure with text and html ok 3 - should create Alternative structure with text and html --- - duration_ms: 1.74048 + duration_ms: 1.338288 ... # Subtest: should create Alternative structure with text, watchHtml and html ok 4 - should create Alternative structure with text, watchHtml and html --- - duration_ms: 4.42236 + duration_ms: 1.389489 ... # Subtest: should create Alternative structure with text, amp and html ok 5 - should create Alternative structure with text, amp and html --- - duration_ms: 5.58976 + duration_ms: 1.308049 ... # Subtest: should create Alternative structure with text, icalEvent and html ok 6 - should create Alternative structure with text, icalEvent and html --- - duration_ms: 2.27124 + duration_ms: 1.924652 ... # Subtest: should create Alternative structure using encoded icalEvent ok 7 - should create Alternative structure using encoded icalEvent --- - duration_ms: 92.21676 + duration_ms: 37.188361 ... # 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: 10.97764 + duration_ms: 2.435496 ... # Subtest: should create Related structure with html and cid attachment ok 9 - should create Related structure with html and cid attachment --- - duration_ms: 1.6266 + duration_ms: 1.44921 ... # Subtest: should create content node with only text ok 10 - should create content node with only text --- - duration_ms: 1.29156 + duration_ms: 1.265689 ... # Subtest: should create content node with only an attachment ok 11 - should create content node with only an attachment --- - duration_ms: 1.20396 + duration_ms: 1.259288 ... # Subtest: should create content node with encoded buffer ok 12 - should create content node with encoded buffer --- - duration_ms: 6.50712 + duration_ms: 2.296375 ... # Subtest: should create content node from data url ok 13 - should create content node from data url --- - duration_ms: 1.48496 + duration_ms: 1.47421 ... # Subtest: should not treat invalid content-type as multipart ok 14 - should not treat invalid content-type as multipart --- - duration_ms: 6.90612 + duration_ms: 4.53127 ... # Subtest: should create the same output ok 15 - should create the same output --- - duration_ms: 37.78436 + duration_ms: 11.082272 ... # Subtest: should use raw input for the message ok 16 - should use raw input for the message --- - duration_ms: 17.54148 + duration_ms: 6.101439 ... # Subtest: should use raw input for different parts ok 17 - should use raw input for different parts --- - duration_ms: 20.19104 + duration_ms: 8.351534 ... # Subtest: should discard BCC ok 18 - should discard BCC --- - duration_ms: 9.6946 + duration_ms: 3.180261 ... # Subtest: should autodetect text encoding ok 19 - should autodetect text encoding --- - duration_ms: 10.41768 + duration_ms: 4.141907 ... # Subtest: should use quoted-printable text encoding ok 20 - should use quoted-printable text encoding --- - duration_ms: 11.05672 + duration_ms: 2.903779 ... # Subtest: should use base64 text encoding ok 21 - should use base64 text encoding --- - duration_ms: 8.11152 + duration_ms: 3.425703 ... # Subtest: should keep BCC ok 22 - should keep BCC --- - duration_ms: 11.49904 + duration_ms: 3.224901 ... # Subtest: should set headers for attachment ok 23 - should set headers for attachment --- - duration_ms: 12.63012 + duration_ms: 4.233227 ... # Subtest: should encode filename ok 24 - should encode filename --- - duration_ms: 4.94592 + duration_ms: 4.60119 ... # Subtest: should keep plaintext for attachment ok 25 - should keep plaintext for attachment --- - duration_ms: 9.51848 + duration_ms: 3.216661 ... # Subtest: should use default transfer encoding ok 26 - should use default transfer encoding --- - duration_ms: 11.54744 + duration_ms: 3.627744 ... # Subtest: should keep provided transfer encoding ok 27 - should keep provided transfer encoding --- - duration_ms: 11.20688 + duration_ms: 3.373382 ... # Subtest: should use 7bit transfer encoding for message/rfc822 ok 28 - should use 7bit transfer encoding for message/rfc822 --- - duration_ms: 3.36544 + duration_ms: 3.236101 ... # Subtest: should ignore attachment filename ok 29 - should ignore attachment filename --- - duration_ms: 15.59152 + duration_ms: 3.850185 ... # Subtest: should add ical alternative ok 30 - should add ical alternative --- - duration_ms: 12.8036 + duration_ms: 4.981432 ... # Subtest: should use load attachment from file ok 31 - should use load attachment from file --- - duration_ms: 21.57936 + duration_ms: 11.160472 ... # Subtest: should not load attachment from file ok 32 - should not load attachment from file --- - duration_ms: 7.49128 + duration_ms: 3.246501 ... 1..32 ok 2 - \#compile --- - duration_ms: 402.5758 + duration_ms: 161.554968 type: 'suite' ... 1..2 ok 10 - MailComposer unit tests --- - duration_ms: 411.04636 + duration_ms: 165.378393 type: 'suite' ... # Subtest: MailComposer ReDoS Protection Tests @@ -2515,62 +2551,62 @@ # Subtest: should handle malicious data URLs without ReDoS ok 1 - should handle malicious data URLs without ReDoS --- - duration_ms: 10.46396 + duration_ms: 6.428161 ... # Subtest: should handle various data URL formats correctly ok 2 - should handle various data URL formats correctly --- - duration_ms: 1.59356 + duration_ms: 1.56593 ... # Subtest: should reject excessively long data URLs gracefully ok 3 - should reject excessively long data URLs gracefully --- - duration_ms: 1.2446 + duration_ms: 1.035926 ... # Subtest: should handle malformed data URLs without crashing ok 4 - should handle malformed data URLs without crashing --- - duration_ms: 1.35628 + duration_ms: 1.268288 ... 1..4 ok 1 - parseDataURI security --- - duration_ms: 19.24572 + duration_ms: 10.74787 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: 5.26976 + duration_ms: 0.498443 ... # Subtest: should handle data URLs in alternatives safely ok 2 - should handle data URLs in alternatives safely --- - duration_ms: 0.50088 + duration_ms: 0.361282 ... 1..2 ok 2 - getAttachments with data URLs --- - duration_ms: 6.01144 + duration_ms: 1.051847 type: 'suite' ... # Subtest: performance with malicious inputs # Subtest: should process PoC examples quickly ok 1 - should process PoC examples quickly --- - duration_ms: 1.67884 + duration_ms: 3.298221 ... 1..1 ok 3 - performance with malicious inputs --- - duration_ms: 7.5576 + duration_ms: 3.463863 type: 'suite' ... 1..3 ok 11 - MailComposer ReDoS Protection Tests --- - duration_ms: 33.26468 + duration_ms: 15.649581 type: 'suite' ... # Subtest: Mime-Funcs Tests @@ -2578,212 +2614,212 @@ # Subtest: should detect plain text ok 1 - should detect plain text --- - duration_ms: 6.5568 + duration_ms: 2.249294 ... # Subtest: should return true ok 2 - should return true --- - duration_ms: 0.35096 + duration_ms: 0.321202 ... # Subtest: should return false on low bits ok 3 - should return false on low bits --- - duration_ms: 0.339 + duration_ms: 0.317962 ... # Subtest: should return false on high bits ok 4 - should return false on high bits --- - duration_ms: 0.25896 + duration_ms: 0.248841 ... 1..4 ok 1 - \#isPlainText --- - duration_ms: 9.2976 + duration_ms: 4.789991 type: 'suite' ... # Subtest: \#hasLongerLines # Subtest: should detect longer lines ok 1 - should detect longer lines --- - duration_ms: 0.5432 + duration_ms: 0.569804 ... 1..1 ok 2 - \#hasLongerLines --- - duration_ms: 5.25524 + duration_ms: 1.087047 type: 'suite' ... # Subtest: \#encodeWord # Subtest: should encode quoted-printable ok 1 - should encode quoted-printable --- - duration_ms: 1.76116 + duration_ms: 1.63865 ... # Subtest: should encode base64 ok 2 - should encode base64 --- - duration_ms: 0.58196 + duration_ms: 0.499684 ... 1..2 ok 3 - \#encodeWord --- - duration_ms: 3.058 + duration_ms: 2.807338 type: 'suite' ... # Subtest: \#encodeWords # Subtest: should encode Ascii range ok 1 - should encode Ascii range --- - duration_ms: 3.43048 + duration_ms: 1.606131 ... # Subtest: should split QP on maxLength ok 2 - should split QP on maxLength --- - duration_ms: 3.0954 + duration_ms: 2.97126 ... # Subtest: should split base64 on maxLength ok 3 - should split base64 on maxLength --- - duration_ms: 3.35128 + duration_ms: 2.352696 ... 1..3 ok 4 - \#encodeWords --- - duration_ms: 14.84916 + duration_ms: 7.613249 type: 'suite' ... # Subtest: \#buildHeaderParam # Subtest: should return unmodified ok 1 - should return unmodified --- - duration_ms: 2.45616 + duration_ms: 2.389415 ... # Subtest: should encode and split ascii ok 2 - should encode and split ascii --- - duration_ms: 0.74152 + duration_ms: 0.677684 ... # Subtest: should encode double byte unicode characters ok 3 - should encode double byte unicode characters --- - duration_ms: 0.76736 + duration_ms: 0.710325 ... # Subtest: should encode and split unicode ok 4 - should encode and split unicode --- - duration_ms: 2.25072 + duration_ms: 0.752845 ... # Subtest: should encode and split filename with dashes ok 5 - should encode and split filename with dashes --- - duration_ms: 0.97888 + duration_ms: 0.798725 ... # Subtest: should encode and decode ok 6 - should encode and decode --- - duration_ms: 2.32536 + duration_ms: 2.278494 ... 1..6 ok 5 - \#buildHeaderParam --- - duration_ms: 10.52864 + duration_ms: 8.629256 type: 'suite' ... # Subtest: \#parseHeaderValue # Subtest: should handle default value only ok 1 - should handle default value only --- - duration_ms: 0.48208 + duration_ms: 0.436883 ... # Subtest: should handle unquoted params ok 2 - should handle unquoted params --- - duration_ms: 0.81904 + duration_ms: 0.826566 ... # Subtest: should handle quoted params ok 3 - should handle quoted params --- - duration_ms: 0.3624 + duration_ms: 0.399363 ... # Subtest: should handle multi line values ok 4 - should handle multi line values --- - duration_ms: 1.94948 + duration_ms: 1.106447 ... # Subtest: should handle params only ok 5 - should handle params only --- - duration_ms: 0.44172 + duration_ms: 0.329962 ... 1..5 ok 6 - \#parseHeaderValue --- - duration_ms: 4.4986 + duration_ms: 3.509222 type: 'suite' ... # Subtest: \#_buildHeaderValue # Subtest: should build header value ok 1 - should build header value --- - duration_ms: 1.01132 + duration_ms: 1.019247 ... # Subtest: should handle unicode filename ok 2 - should handle unicode filename --- - duration_ms: 0.64928 + duration_ms: 0.646724 ... # Subtest: should handle dashed filename ok 3 - should handle dashed filename --- - duration_ms: 1.70204 + duration_ms: 0.386562 ... # Subtest: should split emoji filename ok 4 - should split emoji filename --- - duration_ms: 0.87508 + duration_ms: 0.735764 ... # Subtest: should quote filename with spaces ok 5 - should quote filename with spaces --- - duration_ms: 0.32596 + duration_ms: 0.300402 ... # Subtest: should quote filename with special characters ok 6 - should quote filename with special characters --- - duration_ms: 0.48388 + duration_ms: 0.476803 ... 1..6 ok 7 - \#_buildHeaderValue --- - duration_ms: 5.577 + duration_ms: 4.072706 type: 'suite' ... # Subtest: \#foldLines # Subtest: should Fold long header line ok 1 - should Fold long header line --- - duration_ms: 5.55104 + duration_ms: 1.135847 ... # Subtest: should Fold flowed text ok 2 - should Fold flowed text --- - duration_ms: 0.41688 + duration_ms: 0.321802 ... # Subtest: should fold one long line ok 3 - should fold one long line --- - duration_ms: 0.51808 + duration_ms: 0.529763 ... 1..3 ok 8 - \#foldLines --- - duration_ms: 6.83836 + duration_ms: 2.299375 type: 'suite' ... 1..8 ok 12 - Mime-Funcs Tests --- - duration_ms: 66.9916 + duration_ms: 37.258282 type: 'suite' ... # Subtest: Mime-Type Tests @@ -2791,608 +2827,608 @@ # Subtest: should detect default extension ok 1 - should detect default extension --- - duration_ms: 14.15848 + duration_ms: 1.677731 ... # Subtest: should detect single extension ok 2 - should detect single extension --- - duration_ms: 0.36308 + duration_ms: 0.344962 ... # Subtest: should detect first matching extension ok 3 - should detect first matching extension --- - duration_ms: 0.33712 + duration_ms: 0.342002 ... 1..3 ok 1 - \#detectExtension --- - duration_ms: 29.1288 + duration_ms: 4.308468 type: 'suite' ... # Subtest: \#detectMimeType # Subtest: should detect default mime type ok 1 - should detect default mime type --- - duration_ms: 0.70016 + duration_ms: 0.615444 ... # Subtest: should detect single mime type ok 2 - should detect single mime type --- - duration_ms: 0.35584 + duration_ms: 0.318962 ... # Subtest: should detect first matching mime type ok 3 - should detect first matching mime type --- - duration_ms: 0.60396 + duration_ms: 0.632124 ... 1..3 ok 2 - \#detectMimeType --- - duration_ms: 2.48408 + duration_ms: 2.354736 type: 'suite' ... 1..2 ok 13 - Mime-Type Tests --- - duration_ms: 33.23508 + duration_ms: 8.127892 type: 'suite' ... # Subtest: MimeNode Tests # Subtest: should create MimeNode object ok 1 - should create MimeNode object --- - duration_ms: 11.93092 + duration_ms: 3.561023 ... # Subtest: \#createChild # Subtest: should create child ok 1 - should create child --- - duration_ms: 6.12252 + duration_ms: 1.745691 ... 1..1 ok 2 - \#createChild --- - duration_ms: 6.51388 + duration_ms: 2.095774 type: 'suite' ... # Subtest: \#appendChild # Subtest: should append child node ok 1 - should append child node --- - duration_ms: 0.90264 + duration_ms: 0.947646 ... 1..1 ok 3 - \#appendChild --- - duration_ms: 1.20792 + duration_ms: 1.286289 type: 'suite' ... # Subtest: \#replace # Subtest: should replace node ok 1 - should replace node --- - duration_ms: 9.25632 + duration_ms: 0.975926 ... 1..1 ok 4 - \#replace --- - duration_ms: 9.51776 + duration_ms: 1.210888 type: 'suite' ... # Subtest: \#remove # Subtest: should remove node ok 1 - should remove node --- - duration_ms: 1.16904 + duration_ms: 1.074167 ... 1..1 ok 5 - \#remove --- - duration_ms: 2.15804 + duration_ms: 2.059293 type: 'suite' ... # Subtest: \#setHeader # Subtest: should set header ok 1 - should set header --- - duration_ms: 10.99032 + duration_ms: 2.551496 ... # Subtest: should set multiple headers with the same key ok 2 - should set multiple headers with the same key --- - duration_ms: 0.58028 + duration_ms: 0.516883 ... 1..2 ok 6 - \#setHeader --- - duration_ms: 11.93156 + duration_ms: 3.434782 type: 'suite' ... # Subtest: \#addHeader # Subtest: should add header ok 1 - should add header --- - duration_ms: 9.44052 + duration_ms: 1.038847 ... # Subtest: should set multiple headers with the same key ok 2 - should set multiple headers with the same key --- - duration_ms: 1.06276 + duration_ms: 1.034126 ... 1..2 ok 7 - \#addHeader --- - duration_ms: 11.137 + duration_ms: 2.698457 type: 'suite' ... # Subtest: \#getHeader # Subtest: should return first matching header value ok 1 - should return first matching header value --- - duration_ms: 0.81072 + duration_ms: 0.730125 ... 1..1 ok 8 - \#getHeader --- - duration_ms: 1.05124 + duration_ms: 0.970207 type: 'suite' ... # Subtest: \#setContent # Subtest: should set the contents for a node ok 1 - should set the contents for a node --- - duration_ms: 9.39608 + duration_ms: 1.018166 ... 1..1 ok 9 - \#setContent --- - duration_ms: 9.6392 + duration_ms: 1.239368 type: 'suite' ... # Subtest: \#build # Subtest: should build root node ok 1 - should build root node --- - duration_ms: 145.498 + duration_ms: 38.904453 ... # Subtest: should build child node ok 2 - should build child node --- - duration_ms: 15.52632 + duration_ms: 3.364701 ... # Subtest: should build multipart node ok 3 - should build multipart node --- - duration_ms: 12.48388 + duration_ms: 4.025786 ... # Subtest: should build root with generated headers ok 4 - should build root with generated headers --- - duration_ms: 21.77776 + duration_ms: 3.645703 ... # 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: 13.7514 + duration_ms: 5.331035 ... # Subtest: should include bcc missing in output and in envelope ok 6 - should include bcc missing in output and in envelope --- - duration_ms: 16.73444 + duration_ms: 4.62567 ... # Subtest: should use set envelope ok 7 - should use set envelope --- - duration_ms: 17.72096 + duration_ms: 4.992312 ... # Subtest: should have unicode subject ok 8 - should have unicode subject --- - duration_ms: 9.6924 + duration_ms: 4.023666 ... # Subtest: should have unicode subject with strange characters ok 9 - should have unicode subject with strange characters --- - duration_ms: 17.3612 + duration_ms: 3.442902 ... # Subtest: should keep 7bit text as is ok 10 - should keep 7bit text as is --- - duration_ms: 11.43252 + duration_ms: 2.956099 ... # Subtest: should prefer base64 ok 11 - should prefer base64 --- - duration_ms: 14.75648 + duration_ms: 5.023632 ... # Subtest: should force quoted-printable ok 12 - should force quoted-printable --- - duration_ms: 21.32192 + duration_ms: 4.097387 ... # Subtest: should prefer quoted-printable ok 13 - should prefer quoted-printable --- - duration_ms: 2.6914 + duration_ms: 2.763937 ... # Subtest: should not flow text ok 14 - should not flow text --- - duration_ms: 15.74444 + duration_ms: 3.403582 ... # Subtest: should not flow html ok 15 - should not flow html --- - duration_ms: 7.22456 + duration_ms: 3.190061 ... # Subtest: should use 7bit for html ok 16 - should use 7bit for html --- - duration_ms: 10.72772 + duration_ms: 2.396256 ... # Subtest: should fetch ascii filename ok 17 - should fetch ascii filename --- - duration_ms: 11.95612 + duration_ms: 2.835698 ... # Subtest: should set unicode filename ok 18 - should set unicode filename --- - duration_ms: 16.19396 + duration_ms: 3.961265 ... # Subtest: should set dashed filename ok 19 - should set dashed filename --- - duration_ms: 19.08836 + duration_ms: 3.02762 ... # Subtest: should encode filename with a space ok 20 - should encode filename with a space --- - duration_ms: 12.6212 + duration_ms: 3.300702 ... # Subtest: should detect content type from filename ok 21 - should detect content type from filename --- - duration_ms: 19.60672 + duration_ms: 3.683503 ... # Subtest: should convert address objects ok 22 - should convert address objects --- - duration_ms: 5.59488 + duration_ms: 3.185621 ... # Subtest: should skip empty header ok 23 - should skip empty header --- - duration_ms: 12.06928 + duration_ms: 2.253375 ... # Subtest: should not process prepared headers ok 24 - should not process prepared headers --- - duration_ms: 1.90756 + duration_ms: 2.231414 ... # Subtest: should set default transfer encoding for application content ok 25 - should set default transfer encoding for application content --- - duration_ms: 1.597 + duration_ms: 4.804231 ... # Subtest: should not set transfer encoding for multipart content ok 26 - should not set transfer encoding for multipart content --- - duration_ms: 14.20356 + duration_ms: 2.112734 ... # Subtest: should not set transfer encoding for message/ content ok 27 - should not set transfer encoding for message/ content --- - duration_ms: 2.25252 + duration_ms: 2.186614 ... # Subtest: should use from domain for message-id ok 28 - should use from domain for message-id --- - duration_ms: 22.3836 + duration_ms: 1.855253 ... # Subtest: should fallback to hostname for message-id ok 29 - should fallback to hostname for message-id --- - duration_ms: 1.48424 + duration_ms: 1.61577 ... 1..29 ok 10 - \#build --- - duration_ms: 498.59864 + duration_ms: 136.450165 type: 'suite' ... # Subtest: \#getEnvelope # Subtest: should get envelope ok 1 - should get envelope --- - duration_ms: 1.343 + duration_ms: 1.107607 ... 1..1 ok 11 - \#getEnvelope --- - duration_ms: 9.65684 + duration_ms: 1.280569 type: 'suite' ... # Subtest: \#messageId # Subtest: should create and return message-Id ok 1 - should create and return message-Id --- - duration_ms: 0.69856 + duration_ms: 0.685925 ... 1..1 ok 12 - \#messageId --- - duration_ms: 0.90152 + duration_ms: 0.861765 type: 'suite' ... # Subtest: \#getAddresses # Subtest: should get address object ok 1 - should get address object --- - duration_ms: 6.26612 + duration_ms: 1.928533 ... 1..1 ok 13 - \#getAddresses --- - duration_ms: 6.46392 + duration_ms: 2.122734 type: 'suite' ... # Subtest: \#_parseAddresses # Subtest: should normalize header key ok 1 - should normalize header key --- - duration_ms: 1.40572 + duration_ms: 1.320408 ... 1..1 ok 14 - \#_parseAddresses --- - duration_ms: 1.59992 + duration_ms: 1.50765 type: 'suite' ... # Subtest: \#_normalizeHeaderKey # Subtest: should normalize header key ok 1 - should normalize header key --- - duration_ms: 0.42696 + duration_ms: 0.434163 ... 1..1 ok 15 - \#_normalizeHeaderKey --- - duration_ms: 0.57464 + duration_ms: 0.603324 type: 'suite' ... # Subtest: \#_handleContentType # Subtest: should do nothing on non multipart ok 1 - should do nothing on non multipart --- - duration_ms: 0.36172 + duration_ms: 0.375082 ... # Subtest: should use provided boundary ok 2 - should use provided boundary --- - duration_ms: 3.31356 + duration_ms: 0.318482 ... # Subtest: should generate boundary ok 3 - should generate boundary --- - duration_ms: 1.4284 + duration_ms: 1.078727 ... 1..3 ok 16 - \#_handleContentType --- - duration_ms: 5.45756 + duration_ms: 2.065653 type: 'suite' ... # Subtest: \#_generateBoundary # Subtest: should genereate boundary string ok 1 - should genereate boundary string --- - duration_ms: 0.34228 + duration_ms: 0.297841 ... 1..1 ok 17 - \#_generateBoundary --- - duration_ms: 0.51924 + duration_ms: 0.433923 type: 'suite' ... # Subtest: \#_encodeHeaderValue # Subtest: should do noting if possible ok 1 - should do noting if possible --- - duration_ms: 0.37612 + duration_ms: 0.396483 ... # Subtest: should encode non ascii characters ok 2 - should encode non ascii characters --- - duration_ms: 0.35104 + duration_ms: 0.344242 ... # Subtest: should format references ok 3 - should format references --- - duration_ms: 0.72584 + duration_ms: 0.776405 ... # Subtest: should format message-id ok 4 - should format message-id --- - duration_ms: 0.29824 + duration_ms: 0.289322 ... # Subtest: should format addresses ok 5 - should format addresses --- - duration_ms: 0.3748 + duration_ms: 0.369403 ... 1..5 ok 18 - \#_encodeHeaderValue --- - duration_ms: 2.43184 + duration_ms: 2.470616 type: 'suite' ... # Subtest: \#_convertAddresses # Subtest: should convert address object to a string ok 1 - should convert address object to a string --- - duration_ms: 8.4228 + duration_ms: 0.735164 ... # Subtest: should keep ascii name as is ok 2 - should keep ascii name as is --- - duration_ms: 0.5392 + duration_ms: 0.358562 ... # Subtest: should encode single quote ok 3 - should encode single quote --- - duration_ms: 0.40084 + duration_ms: 0.311962 ... # Subtest: should include name in quotes for special symbols ok 4 - should include name in quotes for special symbols --- - duration_ms: 0.33664 + duration_ms: 0.368802 ... # Subtest: should escape quotes ok 5 - should escape quotes --- - duration_ms: 0.38912 + duration_ms: 0.336363 ... # Subtest: should mime encode unicode names ok 6 - should mime encode unicode names --- - duration_ms: 0.36032 + duration_ms: 0.401322 ... 1..6 ok 19 - \#_convertAddresses --- - duration_ms: 10.81716 + duration_ms: 2.865619 type: 'suite' ... # Subtest: \#_generateMessageId # Subtest: should generate uuid-looking message-id ok 1 - should generate uuid-looking message-id --- - duration_ms: 0.45212 + duration_ms: 0.472523 ... 1..1 ok 20 - \#_generateMessageId --- - duration_ms: 0.58132 + duration_ms: 0.606124 type: 'suite' ... # Subtest: should use default header keys ok 21 - should use default header keys --- - duration_ms: 61.86252 + duration_ms: 13.124365 ... # Subtest: should use custom header keys ok 22 - should use custom header keys --- - duration_ms: 2.34764 + duration_ms: 1.947213 ... # Subtest: Attachment streaming # Subtest: should pipe URL as an attachment ok 1 - should pipe URL as an attachment --- - duration_ms: 903.01904 + duration_ms: 281.257784 ... # Subtest: should reject URL attachment ok 2 - should reject URL attachment --- - duration_ms: 15.26312 + duration_ms: 3.467582 ... # Subtest: should return an error on invalid url ok 3 - should return an error on invalid url --- - duration_ms: 8.8316 + duration_ms: 4.779271 ... # Subtest: should pipe file as an attachment ok 4 - should pipe file as an attachment --- - duration_ms: 42.59928 + duration_ms: 10.604869 ... # Subtest: should reject file as an attachment ok 5 - should reject file as an attachment --- - duration_ms: 3.98116 + duration_ms: 2.479296 ... # Subtest: should return an error on invalid file path ok 6 - should return an error on invalid file path --- - duration_ms: 13.62352 + duration_ms: 2.751138 ... # Subtest: should return a error for an errored stream ok 7 - should return a error for an errored stream --- - duration_ms: 103.7234 + duration_ms: 104.793479 ... # Subtest: should return a stream error ok 8 - should return a stream error --- - duration_ms: 109.31052 + duration_ms: 103.25359 ... 1..8 ok 23 - Attachment streaming --- - duration_ms: 1201.36068 + duration_ms: 514.551297 type: 'suite' ... # Subtest: \#transform # Subtest: should pipe through provided stream ok 1 - should pipe through provided stream --- - duration_ms: 2.45612 + duration_ms: 5.331475 ... 1..1 ok 24 - \#transform --- - duration_ms: 2.67616 + duration_ms: 5.785798 type: 'suite' ... # Subtest: \#processFunc # Subtest: should pipe through provided process function ok 1 - should pipe through provided process function --- - duration_ms: 15.73532 + duration_ms: 5.533356 ... 1..1 ok 25 - \#processFunc --- - duration_ms: 15.98096 + duration_ms: 5.983959 type: 'suite' ... # Subtest: Raw content # Subtest: should return pregenerated content ok 1 - should return pregenerated content --- - duration_ms: 5.06192 + duration_ms: 5.178313 ... # Subtest: should return pregenerated content for a child node ok 2 - should return pregenerated content for a child node --- - duration_ms: 1.8838 + duration_ms: 4.029187 ... # Subtest: should return pregenerated content from a stream ok 3 - should return pregenerated content from a stream --- - duration_ms: 1.40476 + duration_ms: 3.265181 ... # Subtest: should catch error from a raw stream 1 ok 4 - should catch error from a raw stream 1 --- - duration_ms: 1.04836 + duration_ms: 2.368495 ... # Subtest: should catch error from a raw stream 2 ok 5 - should catch error from a raw stream 2 --- - duration_ms: 17.48956 + duration_ms: 2.509737 ... 1..5 ok 26 - Raw content --- - duration_ms: 29.58528 + duration_ms: 18.50244 type: 'suite' ... 1..26 ok 14 - MimeNode Tests --- - duration_ms: 1920.6926 + duration_ms: 733.912079 type: 'suite' ... # Subtest: Quoted-Printable Tests @@ -3400,125 +3436,125 @@ # Subtest: shoud encode UTF-8 string to QP ok 1 - shoud encode UTF-8 string to QP --- - duration_ms: 6.93784 + duration_ms: 1.832292 ... # Subtest: shoud encode Buffer to QP ok 2 - shoud encode Buffer to QP --- - duration_ms: 0.49212 + duration_ms: 0.466403 ... 1..2 ok 1 - \#encode --- - duration_ms: 15.23788 + duration_ms: 4.113986 type: 'suite' ... # Subtest: \#wrap # Subtest: should wrap long QP encoded lines ok 1 - should wrap long QP encoded lines --- - duration_ms: 1.44104 + duration_ms: 1.295809 ... # Subtest: should wrap line ending with ok 2 - should wrap line ending with --- - duration_ms: 0.49048 + duration_ms: 0.427163 ... 1..2 ok 2 - \#wrap --- - duration_ms: 2.294 + duration_ms: 2.157414 type: 'suite' ... # Subtest: QP Streams # Subtest: should transform incoming bytes to QP ok 1 - should transform incoming bytes to QP --- - duration_ms: 64.00644 + duration_ms: 27.508338 ... -# (node:1108539) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. +# (node:705589) [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: 95.75248 + duration_ms: 50.624449 ... 1..2 ok 3 - QP Streams --- - duration_ms: 160.66616 + duration_ms: 78.980632 type: 'suite' ... 1..3 ok 15 - Quoted-Printable Tests --- - duration_ms: 180.16132 + duration_ms: 87.116885 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: 18.80464 + duration_ms: 17.03159 ... # Subtest: should rewrite all linebreaks (all at once) ok 2 - should rewrite all linebreaks (all at once) --- - duration_ms: 3.233 + duration_ms: 1.829332 ... 1..2 ok 16 - Sendmail Windows Newlines --- - duration_ms: 25.11112 + duration_ms: 21.54126 type: 'suite' ... # Subtest: Sendmail Transport Tests # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 6.27204 + duration_ms: 1.778452 ... # Subtest: Should send message ok 2 - Should send message --- - duration_ms: 48.231 + duration_ms: 23.369951 ... # Subtest: Should reject message ok 3 - Should reject message --- - duration_ms: 0.97404 + duration_ms: 0.865005 ... # Subtest: Should return an error ok 4 - Should return an error --- - duration_ms: 17.33608 + duration_ms: 3.780064 ... 1..4 ok 17 - Sendmail Transport Tests --- - duration_ms: 75.58608 + duration_ms: 32.217249 type: 'suite' ... # Subtest: SES Transport Tests # Subtest: should return MessageId ok 1 - should return MessageId --- - duration_ms: 96.44304 + duration_ms: 44.667489 ... # Subtest: should verify ses configuration ok 2 - should verify ses configuration --- - duration_ms: 8.9668 + duration_ms: 2.799098 ... # 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: 56.69108 + duration_ms: 28.286503 ... 1..3 ok 18 - SES Transport Tests --- - duration_ms: 167.38104 + duration_ms: 79.070233 type: 'suite' ... # Subtest: SMTP-Connection Tests @@ -3526,12 +3562,12 @@ # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 15.76724 + duration_ms: 7.411288 ... 1..1 ok 1 - Version test --- - duration_ms: 16.8554 + duration_ms: 8.554055 type: 'suite' ... # Failed to resolve IPv4 addresses with current network @@ -3539,379 +3575,379 @@ # Subtest: should connect to unsecure server ok 1 - should connect to unsecure server --- - duration_ms: 188.0976 + duration_ms: 139.127982 ... -# (node:1109758) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. +# (node:706881) 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: 196.46192 + duration_ms: 181.641538 ... # Subtest: should connect and be rejected ok 3 - should connect and be rejected --- - duration_ms: 143.38476 + duration_ms: 133.316504 ... # 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: 191.52716 + duration_ms: 172.978882 ... # 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: 121.61988 + duration_ms: 118.435248 ... # Subtest: should try upgrade with STARTTLS where not advertised ok 6 - should try upgrade with STARTTLS where not advertised --- - duration_ms: 126.55208 + duration_ms: 113.486696 ... # Subtest: should close connection after STARTTLS ok 7 - should close connection after STARTTLS --- - duration_ms: 194.0658 + duration_ms: 160.421801 ... # Subtest: should connect to a secure server ok 8 - should connect to a secure server --- - duration_ms: 125.21972 + duration_ms: 134.065949 ... # Subtest: should emit error for invalid port ok 9 - should emit error for invalid port --- - duration_ms: 22.39784 + duration_ms: 10.966671 ... # Subtest: should emit error for too large port ok 10 - should emit error for too large port --- - duration_ms: 7.86968 + duration_ms: 4.428229 ... # Subtest: should emit inactivity timeout error ok 11 - should emit inactivity timeout error --- - duration_ms: 116.93456 + duration_ms: 108.076741 ... # Subtest: should connect through proxy ok 12 - should connect through proxy --- - duration_ms: 197.21924 + duration_ms: 183.670911 ... -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] Resolved localhost as localhost [cache hit] +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] 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: 163.93568 + duration_ms: 139.750787 ... -# [2026-10-13 02:17:43] INFO [DNIAizVEfTc] Connection established to 127.0.0.1:8400 -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 220 codethink03-arm64 ESMTP -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] C: EHLO [127.0.0.1] -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 250-codethink03-arm64 Nice to meet you, localhost.localdomain -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 250-PIPELINING -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 250-8BITMIME -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 250 SMTPUTF8 -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] SMTP handshake finished -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] C: MAIL FROM: -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 250 Accepted -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] C: RCPT TO: -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 250 Accepted -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] C: DATA -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 354 End data with . -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] Copyright (c) 2011-2023 Andris Reinman -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] Permission is hereby granted, free of charge, to any person obtaining a copy -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] of this software and associated documentation files (the "Software"), to deal -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] in the Software without restriction, including without limitation the rights -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] copies of the Software, and to permit persons to whom the Software is -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] furnished to do so, subject to the following conditions: -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] SOFTWARE. -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] . -# [2026-10-13 02:17:43] INFO [DNIAizVEfTc] <954 bytes encoded mime message (source size 935 bytes)> -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] S: 250 OK: message queued -# [2026-10-13 02:17:43] DEBUG [DNIAizVEfTc] Closing connection to the server using "end" +# [2025-09-09 19:57:13] INFO [rVd6qYXm5gk] Connection established to 127.0.0.1:8400 +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 220 i-capture-the-hostname ESMTP +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] C: EHLO [127.0.0.1] +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 250-i-capture-the-hostname Nice to meet you, localhost.localdomain +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 250-PIPELINING +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 250-8BITMIME +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 250 SMTPUTF8 +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] SMTP handshake finished +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] C: MAIL FROM: +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 250 Accepted +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] C: RCPT TO: +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 250 Accepted +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] C: DATA +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 354 End data with . +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] Copyright (c) 2011-2023 Andris Reinman +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] Permission is hereby granted, free of charge, to any person obtaining a copy +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] of this software and associated documentation files (the "Software"), to deal +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] in the Software without restriction, including without limitation the rights +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] copies of the Software, and to permit persons to whom the Software is +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] furnished to do so, subject to the following conditions: +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] SOFTWARE. +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] . +# [2025-09-09 19:57:13] INFO [rVd6qYXm5gk] <954 bytes encoded mime message (source size 935 bytes)> +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] S: 250 OK: message queued +# [2025-09-09 19:57:13] DEBUG [rVd6qYXm5gk] Closing connection to the server using "end" # Subtest: should send to unsecure server ok 14 - should send to unsecure server --- - duration_ms: 217.7318 + duration_ms: 193.176693 ... 1..14 ok 2 - Connection tests --- - duration_ms: 2070.87588 + duration_ms: 1828.504619 type: 'suite' ... -# [2026-10-13 02:17:43] INFO [DNIAizVEfTc] Connection closed +# [2025-09-09 19:57:13] INFO [rVd6qYXm5gk] Connection closed # Subtest: Login tests # Subtest: should login ok 1 - should login --- - duration_ms: 237.95092 + duration_ms: 230.365654 ... # Subtest: should return error for invalid login ok 2 - should return error for invalid login --- - duration_ms: 225.32704 + duration_ms: 221.94832 ... # Subtest: should return error for missing credentials ok 3 - should return error for missing credentials --- - duration_ms: 249.8482 + duration_ms: 223.081327 ... # Subtest: should return error for incomplete credentials ok 4 - should return error for incomplete credentials --- - duration_ms: 240.05744 + duration_ms: 220.792752 ... # Subtest: xoauth2 login # Subtest: should login with xoauth2 string ok 1 - should login with xoauth2 string --- - duration_ms: 245.01528 + duration_ms: 229.197367 ... # Subtest: should return error for invalid xoauth2 string token ok 2 - should return error for invalid xoauth2 string token --- - duration_ms: 255.94584 + duration_ms: 225.701704 ... # Subtest: should login with xoauth2 object ok 3 - should login with xoauth2 object --- - duration_ms: 280.84216 + duration_ms: 258.418396 ... # Subtest: should fail with xoauth2 object ok 4 - should fail with xoauth2 object --- - duration_ms: 255.4384 + duration_ms: 227.369835 ... # Subtest: should fail with invalid xoauth2 response ok 5 - should fail with invalid xoauth2 response --- - duration_ms: 244.78876 + duration_ms: 222.787885 ... 1..5 ok 5 - xoauth2 login --- - duration_ms: 1283.11968 + duration_ms: 1168.6269 type: 'suite' ... # Subtest: custom login # Subtest: should login ok 1 - should login --- - duration_ms: 340.96168 + duration_ms: 326.92728 ... # Subtest: should login without pass ok 2 - should login without pass --- - duration_ms: 330.90724 + duration_ms: 323.254416 ... 1..2 ok 6 - custom login --- - duration_ms: 675.85368 + duration_ms: 650.977102 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: 382.44248 + duration_ms: 378.405214 ... 1..1 ok 7 - Send without PIPELINING --- - duration_ms: 391.0546 + duration_ms: 379.134659 type: 'suite' ... # Subtest: Send messages # Subtest: should send message ok 1 - should send message --- - duration_ms: 293.79944 + duration_ms: 274.671862 ... # Subtest: should send multiple messages ok 2 - should send multiple messages --- - duration_ms: 335.8522 + duration_ms: 311.684861 ... # Subtest: should send only to valid recipients ok 3 - should send only to valid recipients --- - duration_ms: 319.76696 + duration_ms: 311.091937 ... # Subtest: should reject all recipients ok 4 - should reject all recipients --- - duration_ms: 279.8406 + duration_ms: 255.188935 ... # Subtest: should reject too large SIZE arguments ok 5 - should reject too large SIZE arguments --- - duration_ms: 226.4256 + duration_ms: 213.030302 ... # Subtest: should reject too large message ok 6 - should reject too large message --- - duration_ms: 233.17004 + duration_ms: 219.365703 ... # Subtest: should declare SIZE ok 7 - should declare SIZE --- - duration_ms: 264.32008 + duration_ms: 277.187958 ... # Subtest: lmtp should send only to valid recipients ok 8 - lmtp should send only to valid recipients --- - duration_ms: 355.38908 + duration_ms: 354.411058 ... # Subtest: should send using SMTPUTF8 ok 9 - should send using SMTPUTF8 --- - duration_ms: 324.12344 + duration_ms: 312.271386 ... # Subtest: should send using 8BITMIME ok 10 - should send using 8BITMIME --- - duration_ms: 328.43344 + duration_ms: 309.736049 ... # 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: 319.275 + duration_ms: 305.911784 ... # Subtest: should return error for invalidly formatted recipients ok 12 - should return error for invalidly formatted recipients --- - duration_ms: 219.98648 + duration_ms: 219.532864 ... # Subtest: should return error for no valid recipients ok 13 - should return error for no valid recipients --- - duration_ms: 275.6068 + duration_ms: 259.514803 ... # Subtest: should return error for invalid sender ok 14 - should return error for invalid sender --- - duration_ms: 219.0954 + duration_ms: 217.161008 ... # Subtest: should send message string ok 15 - should send message string --- - duration_ms: 259.98364 + duration_ms: 231.580342 ... # Subtest: should send message buffer ok 16 - should send message buffer --- - duration_ms: 254.57304 + duration_ms: 224.204695 ... # Subtest: should send message stream ok 17 - should send message stream --- - duration_ms: 282.1222 + duration_ms: 262.357661 ... 1..17 ok 8 - Send messages --- - duration_ms: 4793.63836 + duration_ms: 4562.683313 type: 'suite' ... 1..8 ok 3 - Login tests --- - duration_ms: 8098.46356 + duration_ms: 7660.704366 type: 'suite' ... 1..3 ok 19 - SMTP-Connection Tests --- - duration_ms: 10192.86768 + duration_ms: 9500.361257 type: 'suite' ... # Subtest: SMTP Pool Tests # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 63.0866 + duration_ms: 31.866366 ... # Subtest: Should detect wellknown data ok 2 - Should detect wellknown data --- - duration_ms: 11.11832 + duration_ms: 9.565862 ... # Failed to resolve IPv4 addresses with current network # Subtest: should send mail ok 3 - should send mail --- - duration_ms: 207.666 + duration_ms: 156.090732 ... # Subtest: should send multiple mails ok 4 - should send multiple mails --- - duration_ms: 2179.55236 + duration_ms: 1289.474564 ... # Subtest: should tolerate connection errors ok 5 - should tolerate connection errors --- - duration_ms: 2006.329 + duration_ms: 1853.372742 ... # 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: 2126.14168 + duration_ms: 2137.751146 ... # 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: 343.37492 + duration_ms: 338.364915 ... # Subtest: should not send more then allowed for one connection ok 8 - should not send more then allowed for one connection --- - duration_ms: 7255.73288 + duration_ms: 5982.126004 ... # Subtest: should send multiple mails with rate limit ok 9 - should send multiple mails with rate limit --- - duration_ms: 29743.93856 + duration_ms: 25987.872113 ... # Subtest: should return pending messages once closed ok 10 - should return pending messages once closed --- - duration_ms: 31.1162 + duration_ms: 14.496534 ... # Subtest: should emit idle for free slots in the pool ok 11 - should emit idle for free slots in the pool --- - duration_ms: 20460.1808 + duration_ms: 20230.657469 ... # Subtest: Should login and send mail using proxied socket ok 12 - Should login and send mail using proxied socket --- - duration_ms: 156.57696 + duration_ms: 113.347695 ... # Subtest: Should verify connection with success ok 13 - Should verify connection with success --- - duration_ms: 129.07316 + duration_ms: 112.763932 ... # Subtest: Should not verify connection ok 14 - Should not verify connection --- - duration_ms: 12.203 + duration_ms: 7.283567 ... 1..14 ok 20 - SMTP Pool Tests --- - duration_ms: 64730.30764 + duration_ms: 58270.298515 type: 'suite' ... # Subtest: SMTP Transport Tests @@ -3919,234 +3955,234 @@ # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 107.87212 + duration_ms: 31.562565 ... # Subtest: Should detect wellknown data ok 2 - Should detect wellknown data --- - duration_ms: 35.72036 + duration_ms: 10.73235 ... # Failed to resolve IPv4 addresses with current network # Subtest: Should fail envelope ok 3 - Should fail envelope --- - duration_ms: 240.1618 + duration_ms: 140.23143 ... # Subtest: Should not fail auth ok 4 - Should not fail auth --- - duration_ms: 193.83232 + duration_ms: 166.667842 ... # Subtest: Should fail auth if forceAuth=true ok 5 - Should fail auth if forceAuth=true --- - duration_ms: 136.88672 + duration_ms: 113.008933 ... # Subtest: Should send mail ok 6 - Should send mail --- - duration_ms: 179.34536 + duration_ms: 127.401627 ... # Subtest: Should recover unexpeced close during transmission ok 7 - Should recover unexpeced close during transmission --- - duration_ms: 311.86736 + duration_ms: 270.601356 ... # Subtest: Should verify connection without credentials with success ok 8 - Should verify connection without credentials with success --- - duration_ms: 139.43928 + duration_ms: 121.86315 ... 1..8 ok 1 - Anonymous sender tests --- - duration_ms: 1347.54164 + duration_ms: 984.796391 type: 'suite' ... # Subtest: Authenticated sender tests # Subtest: Should login and send mail ok 1 - Should login and send mail --- - duration_ms: 152.94176 + duration_ms: 129.620721 ... # Subtest: Should verify connection with success ok 2 - Should verify connection with success --- - duration_ms: 127.27196 + duration_ms: 115.847392 ... # Subtest: Should verify connection without credentials with success ok 3 - Should verify connection without credentials with success --- - duration_ms: 123.5094 + duration_ms: 114.575303 ... # Subtest: Should not verify connection without credentials ok 4 - Should not verify connection without credentials --- - duration_ms: 138.02272 + duration_ms: 113.975739 ... # Subtest: Should not verify connection ok 5 - Should not verify connection --- - duration_ms: 13.97168 + duration_ms: 10.058425 ... # Subtest: Should login and send mail using proxied socket ok 6 - Should login and send mail using proxied socket --- - duration_ms: 154.20504 + duration_ms: 126.637501 ... 1..6 ok 2 - Authenticated sender tests --- - duration_ms: 731.57756 + duration_ms: 612.759337 type: 'suite' ... 1..2 ok 21 - SMTP Transport Tests --- - duration_ms: 2081.65916 + duration_ms: 1600.600906 type: 'suite' ... # Subtest: Stream Transport Tests # Subtest: Should expose version number ok 1 - Should expose version number --- - duration_ms: 6.51464 + duration_ms: 1.967813 ... # Subtest: Send as stream # Subtest: Should send mail using unix newlines 1 ok 1 - Should send mail using unix newlines 1 --- - duration_ms: 92.14168 + duration_ms: 26.910615 ... # Subtest: Should send mail using unix newlines 2 ok 2 - Should send mail using unix newlines 2 --- - duration_ms: 17.01588 + duration_ms: 6.322321 ... # Subtest: Should send mail using windows newlines ok 3 - Should send mail using windows newlines --- - duration_ms: 26.0262 + duration_ms: 6.785244 ... 1..3 ok 2 - Send as stream --- - duration_ms: 136.27924 + duration_ms: 41.127547 type: 'suite' ... # Subtest: Send as buffer # Subtest: Should send mail using unix newlines ok 1 - Should send mail using unix newlines --- - duration_ms: 27.3896 + duration_ms: 7.203646 ... # Subtest: Should send mail using windows newlines ok 2 - Should send mail using windows newlines --- - duration_ms: 12.50196 + duration_ms: 4.56267 ... 1..2 ok 3 - Send as buffer --- - duration_ms: 40.47612 + duration_ms: 12.365121 type: 'suite' ... 1..3 ok 22 - Stream Transport Tests --- - duration_ms: 196.9862 + duration_ms: 58.721901 type: 'suite' ... # Subtest: XOAuth2 tests # Subtest: should get an existing access token ok 1 - should get an existing access token --- - duration_ms: 30.3994 + duration_ms: 13.306327 ... # Subtest: should convert access token to XOAuth2 token ok 2 - should convert access token to XOAuth2 token --- - duration_ms: 16.82088 + duration_ms: 3.20386 ... # Subtest: should get an existing access token, no timeout ok 3 - should get an existing access token, no timeout --- - duration_ms: 8.67524 + duration_ms: 2.626617 ... # Subtest: should generate a fresh access token ok 4 - should generate a fresh access token --- - duration_ms: 128.58836 + duration_ms: 45.678016 ... # Subtest: should generate a fresh access token with custom method ok 5 - should generate a fresh access token with custom method --- - duration_ms: 15.15008 + duration_ms: 2.722778 ... # 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.89452 + duration_ms: 2.595217 ... # Subtest: should generate a fresh access token after timeout ok 7 - should generate a fresh access token after timeout --- - duration_ms: 3024.16368 + duration_ms: 3021.691409 ... # Subtest: should emit access token update ok 8 - should emit access token update --- - duration_ms: 26.37768 + duration_ms: 9.461182 ... # Subtest: should sign payload ok 9 - should sign payload --- - duration_ms: 30.16804 + duration_ms: 9.464341 ... # Subtest: should handle concurrent token requests ok 10 - should handle concurrent token requests --- - duration_ms: 52.863 + duration_ms: 15.193579 ... # Subtest: should propagate renewal errors to all concurrent requests ok 11 - should propagate renewal errors to all concurrent requests --- - duration_ms: 43.21956 + duration_ms: 14.497614 ... # Subtest: should handle sequential token requests with varying tokens ok 12 - should handle sequential token requests with varying tokens --- - duration_ms: 2732.33548 + duration_ms: 965.984469 ... # 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.62324 + duration_ms: 1.743611 ... # 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: 15.75776 + duration_ms: 2.218175 ... # Subtest: should attempt renewal when refresh mechanism is available ok 15 - should attempt renewal when refresh mechanism is available --- - duration_ms: 1.8392 + duration_ms: 1.916493 ... # Subtest: should use provisionCallback when available instead of refresh ok 16 - should use provisionCallback when available instead of refresh --- - duration_ms: 11.29732 + duration_ms: 1.730691 ... # Subtest: should use serviceClient when available for token generation ok 17 - should use serviceClient when available for token generation --- - duration_ms: 8.21484 + duration_ms: 1.745491 ... 1..17 ok 23 - XOAuth2 tests --- - duration_ms: 6163.87872 + duration_ms: 4121.146463 type: 'suite' ... 1..23 @@ -4157,7 +4193,7 @@ # cancelled 0 # skipped 0 # todo 0 -# duration_ms 108876.2922 +# duration_ms 87053.252934 Removing node_modules/base32.js Removing node_modules/encoding-japanese Removing node_modules/ipv6-normalize @@ -4316,12 +4352,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/684566/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/684566/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/1048100 and its subdirectories -I: Current time: Mon Oct 12 14:19:15 -12 2026 -I: pbuilder-time-stamp: 1791857955 +I: removing directory /srv/workspace/pbuilder/684566 and its subdirectories +I: Current time: Wed Sep 10 09:58:32 +14 2025 +I: pbuilder-time-stamp: 1757447912