Diff of the two buildlogs: -- --- b1/build.log 2025-08-29 00:48:00.276231652 +0000 +++ b2/build.log 2025-08-29 00:52:23.368562098 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Aug 28 12:46:09 -12 2025 -I: pbuilder-time-stamp: 1756428369 +I: Current time: Thu Oct 1 21:11:02 +14 2026 +I: pbuilder-time-stamp: 1790838662 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -24,52 +24,84 @@ dpkg-source: info: applying 246.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/4166945/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4099577/tmp/hooks/D01_modify_environment starting +debug: Running on infom02-amd64. +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 1 07:11 /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/4099577/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4099577/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='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='amd64' + 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]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=16 ' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='8e18bffa22fc420ca1e016d69ba8639f' - 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='4166945' - PS1='# ' - PS2='> ' + INVOCATION_ID=e8a82e3158c04186a2b1a7b710345838 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-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=4099577 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.C1fmqB5a/pbuilderrc_lGL1 --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.C1fmqB5a/b1 --logfile b1/build.log golang-github-rogpeppe-go-internal_1.12.0-3.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' + 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.C1fmqB5a/pbuilderrc_a9mU --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.C1fmqB5a/b2 --logfile b2/build.log golang-github-rogpeppe-go-internal_1.12.0-3.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' I: uname -a - Linux infom01-amd64 6.12.41+deb13-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/4166945/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/4099577/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -163,7 +195,7 @@ Get: 44 http://deb.debian.org/debian forky/main amd64 golang-golang-x-net-dev all 1:0.27.0-2 [904 kB] Get: 45 http://deb.debian.org/debian forky/main amd64 golang-golang-x-sync-dev all 0.7.0-1 [19.0 kB] Get: 46 http://deb.debian.org/debian forky/main amd64 golang-golang-x-tools-dev all 1:0.25.0+ds-1 [1608 kB] -Fetched 71.8 MB in 2s (42.4 MB/s) +Fetched 71.8 MB in 1s (77.0 MB/s) Preconfiguring packages ... Selecting previously unselected package sensible-utils. (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 ... 19855 files and directories currently installed.) @@ -369,7 +401,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/ && 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 > ../golang-github-rogpeppe-go-internal_1.12.0-3_source.changes +I: user script /srv/workspace/pbuilder/4099577/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/4099577/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/ && 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 > ../golang-github-rogpeppe-go-internal_1.12.0-3_source.changes dpkg-buildpackage: info: source package golang-github-rogpeppe-go-internal dpkg-buildpackage: info: source version 1.12.0-3 dpkg-buildpackage: info: source distribution unstable @@ -387,210 +423,211 @@ dh_autoreconf -O--builddirectory=_build -O--buildsystem=golang dh_auto_configure -O--builddirectory=_build -O--buildsystem=golang dh_auto_build -O--builddirectory=_build -O--buildsystem=golang - cd _build && go install -trimpath -v -p 12 github.com/rogpeppe/go-internal/cache github.com/rogpeppe/go-internal/cmd/testscript github.com/rogpeppe/go-internal/cmd/txtar-addmod github.com/rogpeppe/go-internal/cmd/txtar-c github.com/rogpeppe/go-internal/cmd/txtar-goproxy github.com/rogpeppe/go-internal/cmd/txtar-x github.com/rogpeppe/go-internal/diff github.com/rogpeppe/go-internal/dirhash github.com/rogpeppe/go-internal/fmtsort github.com/rogpeppe/go-internal/goproxytest github.com/rogpeppe/go-internal/gotooltest github.com/rogpeppe/go-internal/imports github.com/rogpeppe/go-internal/internal/misspell github.com/rogpeppe/go-internal/internal/os/execpath github.com/rogpeppe/go-internal/internal/syscall/windows github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll github.com/rogpeppe/go-internal/lockedfile github.com/rogpeppe/go-internal/lockedfile/internal/filelock github.com/rogpeppe/go-internal/modfile github.com/rogpeppe/go-internal/module github.com/rogpeppe/go-internal/par github.com/rogpeppe/go-internal/renameio github.com/rogpeppe/go-internal/robustio github.com/rogpeppe/go-internal/semver github.com/rogpeppe/go-internal/testenv github.com/rogpeppe/go-internal/testscript github.com/rogpeppe/go-internal/testscript/internal/pty github.com/rogpeppe/go-internal/txtar + cd _build && go install -trimpath -v -p 16 github.com/rogpeppe/go-internal/cache github.com/rogpeppe/go-internal/cmd/testscript github.com/rogpeppe/go-internal/cmd/txtar-addmod github.com/rogpeppe/go-internal/cmd/txtar-c github.com/rogpeppe/go-internal/cmd/txtar-goproxy github.com/rogpeppe/go-internal/cmd/txtar-x github.com/rogpeppe/go-internal/diff github.com/rogpeppe/go-internal/dirhash github.com/rogpeppe/go-internal/fmtsort github.com/rogpeppe/go-internal/goproxytest github.com/rogpeppe/go-internal/gotooltest github.com/rogpeppe/go-internal/imports github.com/rogpeppe/go-internal/internal/misspell github.com/rogpeppe/go-internal/internal/os/execpath github.com/rogpeppe/go-internal/internal/syscall/windows github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll github.com/rogpeppe/go-internal/lockedfile github.com/rogpeppe/go-internal/lockedfile/internal/filelock github.com/rogpeppe/go-internal/modfile github.com/rogpeppe/go-internal/module github.com/rogpeppe/go-internal/par github.com/rogpeppe/go-internal/renameio github.com/rogpeppe/go-internal/robustio github.com/rogpeppe/go-internal/semver github.com/rogpeppe/go-internal/testenv github.com/rogpeppe/go-internal/testscript github.com/rogpeppe/go-internal/testscript/internal/pty github.com/rogpeppe/go-internal/txtar +internal/goarch internal/godebugs internal/msan -internal/byteorder -internal/goarch -internal/coverage/rtcov internal/asan internal/unsafeheader -internal/goos -internal/profilerecord +unicode internal/goexperiment -internal/cpu -internal/runtime/atomic -internal/runtime/syscall -internal/abi -internal/runtime/math -sync/atomic +internal/coverage/rtcov +internal/byteorder +internal/profilerecord math/bits +internal/goos unicode/utf8 -unicode -internal/runtime/sys -internal/chacha8rand +internal/runtime/math crypto/internal/fips140/alias -crypto/internal/fips140deps/byteorder -crypto/internal/fips140/subtle internal/itoa cmp -crypto/internal/boring/sig log/internal -crypto/internal/fips140deps/cpu encoding -internal/bytealg unicode/utf16 -math -internal/runtime/exithook internal/nettrace -container/list +crypto/internal/fips140deps/byteorder +internal/cpu vendor/golang.org/x/crypto/cryptobyte/asn1 +container/list +internal/runtime/syscall +internal/abi +internal/runtime/sys +crypto/internal/fips140/subtle +crypto/internal/boring/sig +sync/atomic +internal/runtime/atomic vendor/golang.org/x/crypto/internal/alias +internal/chacha8rand github.com/rogpeppe/go-internal/internal/misspell internal/goversion internal/platform internal/syslist github.com/rogpeppe/go-internal/internal/syscall/windows github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll +internal/bytealg +math +crypto/internal/fips140deps/cpu +internal/runtime/exithook internal/stringslite internal/race -internal/sync internal/runtime/maps +internal/sync runtime -internal/reflectlite iter -weak crypto/subtle sync +weak +internal/reflectlite maps slices -errors -sort -internal/oserror -path -vendor/golang.org/x/net/dns/dnsmessage -math/rand/v2 -io -strconv internal/bisect -internal/singleflight internal/testlog +internal/singleflight unique -syscall runtime/cgo internal/godebug -bytes -crypto/internal/randutil +errors +sort +crypto/internal/fips140deps/godebug +math/rand +io hash +internal/oserror strings -hash/crc32 -golang.org/x/mod/semver +bytes +path +vendor/golang.org/x/net/dns/dnsmessage +math/rand/v2 +strconv crypto -crypto/internal/fips140deps/godebug crypto/internal/impl -bufio +crypto/internal/fips140 +golang.org/x/mod/semver +crypto/internal/randutil +hash/crc32 +syscall net/netip -vendor/golang.org/x/text/transform net/http/internal/ascii -math/rand +vendor/golang.org/x/text/transform +github.com/rogpeppe/go-internal/par regexp/syntax reflect -crypto/internal/fips140 -github.com/rogpeppe/go-internal/par -internal/syscall/execenv -github.com/rogpeppe/go-internal/semver -time -regexp -internal/syscall/unix -go/build/constraint +bufio +crypto/tls/internal/fips140tls crypto/internal/fips140/sha256 -crypto/internal/fips140/sha512 crypto/internal/fips140/sha3 -crypto/tls/internal/fips140tls +crypto/internal/fips140/sha512 +go/build/constraint +github.com/rogpeppe/go-internal/semver crypto/internal/fips140/hmac crypto/sha3 -internal/fmtsort -encoding/binary -github.com/rogpeppe/go-internal/fmtsort crypto/internal/fips140/check +regexp crypto/internal/fips140hash -crypto/internal/fips140/aes -crypto/internal/fips140/nistec/fiat crypto/internal/fips140/edwards25519/field -crypto/internal/fips140/bigmod crypto/internal/fips140/hkdf crypto/internal/fips140/tls12 +crypto/internal/fips140/bigmod +crypto/internal/fips140/aes +crypto/internal/fips140/nistec/fiat crypto/internal/fips140/tls13 crypto/internal/fips140/edwards25519 -internal/poll +internal/syscall/execenv +internal/syscall/unix +time +crypto/internal/fips140/nistec +internal/fmtsort +github.com/rogpeppe/go-internal/fmtsort +encoding/binary io/fs context -vendor/golang.org/x/crypto/internal/poly1305 -encoding/base64 +internal/poll internal/filepathlite -encoding/pem +encoding/base64 +vendor/golang.org/x/crypto/internal/poly1305 os -crypto/internal/fips140/nistec +encoding/pem crypto/internal/sysrand -golang.org/x/mod/internal/lazyregexp github.com/rogpeppe/go-internal/lockedfile/internal/filelock path/filepath -fmt +golang.org/x/mod/internal/lazyregexp +vendor/golang.org/x/sys/cpu io/ioutil -internal/lazyregexp internal/sysinfo -vendor/golang.org/x/sys/cpu +internal/lazyregexp github.com/rogpeppe/go-internal/robustio +fmt crypto/internal/entropy +net crypto/internal/fips140/drbg +github.com/rogpeppe/go-internal/renameio +os/exec +crypto/internal/fips140/aes/gcm crypto/internal/fips140only +crypto/internal/fips140/ecdh +crypto/internal/fips140/ecdsa +crypto/internal/fips140/rsa crypto/internal/fips140/ed25519 crypto/internal/fips140/mlkem -crypto/internal/fips140/aes/gcm -crypto/internal/fips140/rsa -github.com/rogpeppe/go-internal/renameio -os/exec crypto/md5 crypto/rc4 -github.com/rogpeppe/go-internal/internal/os/execpath internal/goroot +github.com/rogpeppe/go-internal/internal/os/execpath +crypto/cipher encoding/hex log -flag github.com/rogpeppe/go-internal/lockedfile -compress/flate golang.org/x/mod/module -encoding/json golang.org/x/tools/txtar -crypto/cipher -math/big -crypto/internal/fips140/ecdh -crypto/internal/fips140/ecdsa -net/url -vendor/golang.org/x/text/unicode/bidi -vendor/golang.org/x/text/unicode/norm vendor/golang.org/x/net/http2/hpack +flag +encoding/json +net/url mime +compress/flate +vendor/golang.org/x/text/unicode/norm +math/big crypto/internal/boring crypto/des -archive/zip -compress/gzip +vendor/golang.org/x/crypto/chacha20 +mime/quotedprintable crypto/sha256 crypto/aes crypto/ecdh -github.com/rogpeppe/go-internal/cache crypto/sha512 crypto/hmac -vendor/golang.org/x/crypto/chacha20 crypto/sha1 -vendor/golang.org/x/text/secure/bidirule -mime/quotedprintable -net/http/internal vendor/golang.org/x/crypto/chacha20poly1305 +net/http/internal github.com/rogpeppe/go-internal/diff github.com/rogpeppe/go-internal/imports runtime/debug -github.com/rogpeppe/go-internal/testscript/internal/pty +github.com/rogpeppe/go-internal/cache +vendor/golang.org/x/text/unicode/bidi runtime/trace +compress/gzip +archive/zip +github.com/rogpeppe/go-internal/testscript/internal/pty github.com/rogpeppe/go-internal/txtar go/token go/doc/comment +testing internal/buildcfg github.com/rogpeppe/go-internal/cmd/txtar-addmod -testing -vendor/golang.org/x/net/idna github.com/rogpeppe/go-internal/cmd/txtar-c github.com/rogpeppe/go-internal/cmd/txtar-x golang.org/x/mod/modfile -go/scanner github.com/rogpeppe/go-internal/module +go/scanner +vendor/golang.org/x/text/secure/bidirule go/ast +vendor/golang.org/x/net/idna github.com/rogpeppe/go-internal/dirhash +crypto/rand crypto/elliptic crypto/internal/boring/bbig -encoding/asn1 -crypto/rand crypto/dsa +encoding/asn1 github.com/rogpeppe/go-internal/modfile crypto/internal/hpke crypto/ed25519 @@ -602,11 +639,10 @@ vendor/golang.org/x/crypto/cryptobyte crypto/ecdsa go/build -net github.com/rogpeppe/go-internal/testscript github.com/rogpeppe/go-internal/gotooltest -net/textproto vendor/golang.org/x/net/http/httpproxy +net/textproto crypto/x509 vendor/golang.org/x/net/http/httpguts mime/multipart @@ -614,34 +650,34 @@ net/http/httptrace net/http github.com/rogpeppe/go-internal/goproxytest -github.com/rogpeppe/go-internal/cmd/testscript github.com/rogpeppe/go-internal/cmd/txtar-goproxy +github.com/rogpeppe/go-internal/cmd/testscript debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0' patch -N -p1 -i debian/0001-Allow-TestSimple-cover-to-PASS.patch patching file _build/src/github.com/rogpeppe/go-internal/testscript/testscript.go Hunk #1 succeeded at 1155 (offset 57 lines). GOPROXY= dh_auto_test - cd _build && go test -vet=off -v -p 12 github.com/rogpeppe/go-internal/cache github.com/rogpeppe/go-internal/cmd/testscript github.com/rogpeppe/go-internal/cmd/txtar-addmod github.com/rogpeppe/go-internal/cmd/txtar-c github.com/rogpeppe/go-internal/cmd/txtar-goproxy github.com/rogpeppe/go-internal/cmd/txtar-x github.com/rogpeppe/go-internal/diff github.com/rogpeppe/go-internal/dirhash github.com/rogpeppe/go-internal/fmtsort github.com/rogpeppe/go-internal/goproxytest github.com/rogpeppe/go-internal/gotooltest github.com/rogpeppe/go-internal/imports github.com/rogpeppe/go-internal/internal/misspell github.com/rogpeppe/go-internal/internal/os/execpath github.com/rogpeppe/go-internal/internal/syscall/windows github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll github.com/rogpeppe/go-internal/lockedfile github.com/rogpeppe/go-internal/lockedfile/internal/filelock github.com/rogpeppe/go-internal/modfile github.com/rogpeppe/go-internal/module github.com/rogpeppe/go-internal/par github.com/rogpeppe/go-internal/renameio github.com/rogpeppe/go-internal/robustio github.com/rogpeppe/go-internal/semver github.com/rogpeppe/go-internal/testenv github.com/rogpeppe/go-internal/testscript github.com/rogpeppe/go-internal/testscript/internal/pty github.com/rogpeppe/go-internal/txtar + cd _build && go test -vet=off -v -p 16 github.com/rogpeppe/go-internal/cache github.com/rogpeppe/go-internal/cmd/testscript github.com/rogpeppe/go-internal/cmd/txtar-addmod github.com/rogpeppe/go-internal/cmd/txtar-c github.com/rogpeppe/go-internal/cmd/txtar-goproxy github.com/rogpeppe/go-internal/cmd/txtar-x github.com/rogpeppe/go-internal/diff github.com/rogpeppe/go-internal/dirhash github.com/rogpeppe/go-internal/fmtsort github.com/rogpeppe/go-internal/goproxytest github.com/rogpeppe/go-internal/gotooltest github.com/rogpeppe/go-internal/imports github.com/rogpeppe/go-internal/internal/misspell github.com/rogpeppe/go-internal/internal/os/execpath github.com/rogpeppe/go-internal/internal/syscall/windows github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll github.com/rogpeppe/go-internal/lockedfile github.com/rogpeppe/go-internal/lockedfile/internal/filelock github.com/rogpeppe/go-internal/modfile github.com/rogpeppe/go-internal/module github.com/rogpeppe/go-internal/par github.com/rogpeppe/go-internal/renameio github.com/rogpeppe/go-internal/robustio github.com/rogpeppe/go-internal/semver github.com/rogpeppe/go-internal/testenv github.com/rogpeppe/go-internal/testscript github.com/rogpeppe/go-internal/testscript/internal/pty github.com/rogpeppe/go-internal/txtar === RUN TestBasic ---- PASS: TestBasic (0.04s) +--- PASS: TestBasic (0.07s) === RUN TestGrowth ---- PASS: TestGrowth (1.47s) +--- PASS: TestGrowth (2.42s) === RUN TestVerifyPanic cache_test.go:138: go: internal cache error: cache verify failed: id=0100000000000000000000000000000000000000000000000000000000000000 changed:<<< >>> old: cb8379ac2098aa165029e3938a51da0bcecfc008fd6795f401178647f96c5b34 3 new: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad 3 ---- PASS: TestVerifyPanic (0.02s) +--- PASS: TestVerifyPanic (0.05s) === RUN TestCacheTrim ---- PASS: TestCacheTrim (0.30s) +--- PASS: TestCacheTrim (0.31s) === RUN TestHash --- PASS: TestHash (0.00s) === RUN TestHashFile --- PASS: TestHashFile (0.00s) PASS -ok github.com/rogpeppe/go-internal/cache 1.840s +ok github.com/rogpeppe/go-internal/cache 2.854s === RUN TestScripts === RUN TestScripts/continue === PAUSE TestScripts/continue @@ -669,69 +705,19 @@ === PAUSE TestScripts/work === CONT TestScripts/continue === CONT TestScripts/nogo -=== CONT TestScripts/env_var_with_go -=== CONT TestScripts/env_var_no_go -=== CONT TestScripts/help === CONT TestScripts/skip -=== CONT TestScripts/work === CONT TestScripts/simple -=== CONT TestScripts/update -=== CONT TestScripts/env_values +=== CONT TestScripts/work +=== CONT TestScripts/help === CONT TestScripts/error +=== CONT TestScripts/update === CONT TestScripts/noproxy -=== NAME TestScripts/nogo - testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - GOTRACEBACK=system - HOME=/no-home - TMPDIR=$WORK/.tmp - devnull=/dev/null - /=/ - :=: - $=$ - exe= - GOPATH=$WORK/.gopath - CCACHE_DISABLE=1 - GOARCH=amd64 - GOOS=linux - GOROOT=/usr/lib/go-1.24 - GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=https://proxy.golang.org,direct - goversion=1.24 - GOINTERNALMODPATH=. - GONOSUMDB=* - - # should support skip (0.000s) - > unquote file.txt - # We can't just set PATH to empty because we need the part of it that - # contains the command names, so use a special builtin instead. (0.007s) - > dropgofrompath - > ! testscript -v file.txt - [stdout] - WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games - GOTRACEBACK=system - HOME=/no-home - TMPDIR=$WORK/.tmp - devnull=/dev/null - /=/ - :=: - $=$ - exe= - - > go env - FAIL: $WORK/.tmp/testscript3776869104/file.txt/script.txtar:1: unknown command "go" - [stderr] - error running file.txt in $WORK/.tmp/testscript3776869104/file.txt - - [exit status 1] - > stdout 'unknown command "go"' - > stderr 'error running file.txt in' - PASS - +=== CONT TestScripts/env_var_no_go +=== CONT TestScripts/env_values +=== CONT TestScripts/env_var_with_go === NAME TestScripts/help testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -751,7 +737,7 @@ GOINTERNALMODPATH=. GONOSUMDB=* - # Simply sanity check on help output (0.007s) + # Simply sanity check on help output (0.013s) > ! testscript -help [stderr] The testscript command runs github.com/rogpeppe/go-internal/testscript scripts @@ -881,9 +867,59 @@ > stderr 'Examples' PASS +=== NAME TestScripts/nogo + testscript.go:558: WORK=$WORK + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + GOTRACEBACK=system + HOME=/no-home + TMPDIR=$WORK/.tmp + devnull=/dev/null + /=/ + :=: + $=$ + exe= + GOPATH=$WORK/.gopath + CCACHE_DISABLE=1 + GOARCH=amd64 + GOOS=linux + GOROOT=/usr/lib/go-1.24 + GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build + GOPROXY=https://proxy.golang.org,direct + goversion=1.24 + GOINTERNALMODPATH=. + GONOSUMDB=* + + # should support skip (0.048s) + > unquote file.txt + # We can't just set PATH to empty because we need the part of it that + # contains the command names, so use a special builtin instead. (0.092s) + > dropgofrompath + > ! testscript -v file.txt + [stdout] + WORK=$WORK + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path + GOTRACEBACK=system + HOME=/no-home + TMPDIR=$WORK/.tmp + devnull=/dev/null + /=/ + :=: + $=$ + exe= + + > go env + FAIL: $WORK/.tmp/testscript57770682/file.txt/script.txtar:1: unknown command "go" + [stderr] + error running file.txt in $WORK/.tmp/testscript57770682/file.txt + + [exit status 1] + > stdout 'unknown command "go"' + > stderr 'error running file.txt in' + PASS + === NAME TestScripts/env_var_no_go testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -905,18 +941,18 @@ # Test passing environment variables to scripts with no go command on PATH # - # This is the counterpart to env_var_with_go.txt (0.000s) + # This is the counterpart to env_var_with_go.txt (0.071s) > unquote noproxy.txt > unquote withproxy.txt > dropgofrompath > env BANANA=banana > env GOPATH=$WORK/ourgopath > env GOPROXY= - # no GOPROXY, no pass-through, no proxy (0.008s) + # no GOPROXY, no pass-through, no proxy (0.074s) > testscript -v noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -937,11 +973,11 @@ > stdout ^GOPATH=$ > stdout ^GOPROXY=$ > ! stderr .+ - # no GOPROXY, no pass-through, with proxy (0.005s) + # no GOPROXY, no pass-through, with proxy (0.061s) > testscript -v withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -950,7 +986,7 @@ :=: $=$ exe= - GOPROXY=http://127.0.0.1:37557/mod + GOPROXY=http://127.0.0.1:34347/mod GONOSUMDB=* > env BANANA @@ -958,17 +994,17 @@ > env GOPATH GOPATH= > env GOPROXY - GOPROXY=http://127.0.0.1:37557/mod + GOPROXY=http://127.0.0.1:34347/mod PASS > stdout ^BANANA=$ > stdout ^GOPATH=$ > stdout ^GOPROXY=http://.*/mod$ > ! stderr .+ - # no GOPROXY, with pass-through, no proxy (0.010s) + # no GOPROXY, with pass-through, no proxy (0.017s) > testscript -v -e BANANA -e GOPATH -e GOPROXY noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -992,11 +1028,11 @@ > stdout ^GOPATH=${WORK@R}[/\\]ourgopath$ > stdout ^GOPROXY=$ > ! stderr .+ - # no GOPROXY, with pass-through, with proxy (0.073s) + # no GOPROXY, with pass-through, with proxy (0.016s) > testscript -v -e BANANA -e GOPATH -e GOPROXY withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1026,7 +1062,7 @@ > testscript -v noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1047,11 +1083,11 @@ > stdout ^GOPATH=$ > stdout ^GOPROXY=$ > ! stderr .+ - # with GOPROXY, no pass-through, with proxy (0.019s) + # with GOPROXY, no pass-through, with proxy (0.014s) > testscript -v withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1060,7 +1096,7 @@ :=: $=$ exe= - GOPROXY=http://127.0.0.1:40159/mod + GOPROXY=http://127.0.0.1:32877/mod GONOSUMDB=* > env BANANA @@ -1068,17 +1104,17 @@ > env GOPATH GOPATH= > env GOPROXY - GOPROXY=http://127.0.0.1:40159/mod + GOPROXY=http://127.0.0.1:32877/mod PASS > stdout ^BANANA=$ > stdout ^GOPATH=$ > stdout ^GOPROXY=http://.*/mod$ > ! stderr .+ - # with GOPROXY, with pass-through, no proxy (0.015s) + # with GOPROXY, with pass-through, no proxy (0.019s) > testscript -v -e BANANA -e GOPATH -e GOPROXY noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1102,11 +1138,11 @@ > stdout ^GOPATH=${WORK@R}[/\\]ourgopath$ > stdout ^GOPROXY=$GOPROXY$ > ! stderr .+ - # with GOPROXY, with pass-through, with proxy (0.014s) + # with GOPROXY, with pass-through, with proxy (0.083s) > testscript -v -e BANANA -e GOPATH -e GOPROXY withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/sbin:/sbin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/sbin:/sbin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1133,9 +1169,53 @@ > ! stderr .+ PASS +=== NAME TestScripts/continue + testscript.go:558: WORK=$WORK + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + GOTRACEBACK=system + HOME=/no-home + TMPDIR=$WORK/.tmp + devnull=/dev/null + /=/ + :=: + $=$ + exe= + GOPATH=$WORK/.gopath + CCACHE_DISABLE=1 + GOARCH=amd64 + GOOS=linux + GOROOT=/usr/lib/go-1.24 + GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build + GOPROXY=https://proxy.golang.org,direct + goversion=1.24 + GOINTERNALMODPATH=. + GONOSUMDB=* + + # should support -continue (0.001s) + > unquote file.txt + # Running with continue, the testscript command itself + # should fail, but we should see the results of executing + # both commands. (2.537s) + > ! testscript -continue file.txt + [stdout] + > grep banana in + [in] + apple + + FAIL: $WORK/.tmp/testscript3483991694/file.txt/script.txtar:1: no match for `banana` found in in + > grep apple in + [stderr] + error running file.txt in $WORK/.tmp/testscript3483991694/file.txt + + [exit status 1] + > stdout 'grep banana in' + > stdout 'no match for `banana` found in in' + > stdout 'grep apple in' + PASS + === NAME TestScripts/work testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1161,12 +1241,12 @@ # # This test also covers the use of multiple scripts which share # the same basename, ensuring that the naming of the directories - # within the working directory. (0.219s) + # within the working directory. (2.532s) > unquote file.txt dir/file.txt > testscript -v -work file.txt dir/file.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1187,7 +1267,7 @@ > exec true PASS WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1208,9 +1288,9 @@ > exec true PASS [stderr] - temporary work directory: $WORK/.tmp/testscript51700341 - temporary work directory for file.txt: $WORK/.tmp/go-test-script2803551988/script-script - temporary work directory for dir/file.txt: $WORK/.tmp/go-test-script159219992/script-script + temporary work directory: $WORK/.tmp/testscript2942126514 + temporary work directory for file.txt: $WORK/.tmp/go-test-script4115214698/script-script + temporary work directory for dir/file.txt: $WORK/.tmp/go-test-script762840342/script-script > stderr '^temporary work directory: \Q'$WORK'\E[/\\]\.tmp[/\\]' > stderr '^temporary work directory for file.txt: \Q'$WORK'\E[/\\]\.tmp[/\\]' > stderr '^temporary work directory for dir[/\\]file.txt: \Q'$WORK'\E[/\\]\.tmp[/\\]' @@ -1220,7 +1300,7 @@ === NAME TestScripts/skip testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1240,12 +1320,12 @@ GOINTERNALMODPATH=. GONOSUMDB=* - # should support skip (0.220s) + # should support skip (2.537s) > unquote file.txt > testscript -v file.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1272,94 +1352,9 @@ > ! stderr .+ PASS -=== NAME TestScripts/continue - testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - GOTRACEBACK=system - HOME=/no-home - TMPDIR=$WORK/.tmp - devnull=/dev/null - /=/ - :=: - $=$ - exe= - GOPATH=$WORK/.gopath - CCACHE_DISABLE=1 - GOARCH=amd64 - GOOS=linux - GOROOT=/usr/lib/go-1.24 - GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=https://proxy.golang.org,direct - goversion=1.24 - GOINTERNALMODPATH=. - GONOSUMDB=* - - # should support -continue (0.000s) - > unquote file.txt - # Running with continue, the testscript command itself - # should fail, but we should see the results of executing - # both commands. (0.222s) - > ! testscript -continue file.txt - [stdout] - > grep banana in - [in] - apple - - FAIL: $WORK/.tmp/testscript26342534/file.txt/script.txtar:1: no match for `banana` found in in - > grep apple in - [stderr] - error running file.txt in $WORK/.tmp/testscript26342534/file.txt - - [exit status 1] - > stdout 'grep banana in' - > stdout 'no match for `banana` found in in' - > stdout 'grep apple in' - PASS - -=== NAME TestScripts/update - testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - GOTRACEBACK=system - HOME=/no-home - TMPDIR=$WORK/.tmp - devnull=/dev/null - /=/ - :=: - $=$ - exe= - GOPATH=$WORK/.gopath - CCACHE_DISABLE=1 - GOARCH=amd64 - GOOS=linux - GOROOT=/usr/lib/go-1.24 - GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=https://proxy.golang.org,direct - goversion=1.24 - GOINTERNALMODPATH=. - GONOSUMDB=* - - # should support the -update flag (0.000s) - > unquote in.txt res.txt - # Should be an error to use -u with only stdin (0.005s) - > stdin in.txt - > ! testscript -u - [stderr] - cannot use -u when reading from stdin - [exit status 1] - > stderr 'cannot use -u when reading from stdin' - # It is ok to use -u when reading from stdin and - # a regular file (0.223s) - > testscript -u - in.txt - [stdout] - PASS - PASS - $WORK/.tmp/testscript3474076449/in.txt/script.txtar updated - > cmp in.txt res.txt - PASS - === NAME TestScripts/noproxy testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1382,13 +1377,13 @@ # With no .gomodproxy supporting files, we use the GOPROXY from # the environment. # Note that Go 1.21 started quoting with single quotes in "go env", - # where older versions used double quotes. (0.242s) + # where older versions used double quotes. (2.540s) > env GOPROXY=0.1.2.3 > unquote file.txt > testscript -v file.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1431,7 +1426,7 @@ GOEXPERIMENT='' GOFIPS140='off' GOFLAGS='' - GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/.tmp/go-build2128208843=/tmp/go-build -gno-record-gcc-switches' + GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/.tmp/go-build3152281699=/tmp/go-build -gno-record-gcc-switches' GOHOSTARCH='amd64' GOHOSTOS='linux' GOINSECURE='' @@ -1460,9 +1455,50 @@ PASS PASS +=== NAME TestScripts/update + testscript.go:558: WORK=$WORK + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + GOTRACEBACK=system + HOME=/no-home + TMPDIR=$WORK/.tmp + devnull=/dev/null + /=/ + :=: + $=$ + exe= + GOPATH=$WORK/.gopath + CCACHE_DISABLE=1 + GOARCH=amd64 + GOOS=linux + GOROOT=/usr/lib/go-1.24 + GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build + GOPROXY=https://proxy.golang.org,direct + goversion=1.24 + GOINTERNALMODPATH=. + GONOSUMDB=* + + # should support the -update flag (0.073s) + > unquote in.txt res.txt + # Should be an error to use -u with only stdin (0.083s) + > stdin in.txt + > ! testscript -u + [stderr] + cannot use -u when reading from stdin + [exit status 1] + > stderr 'cannot use -u when reading from stdin' + # It is ok to use -u when reading from stdin and + # a regular file (2.397s) + > testscript -u - in.txt + [stdout] + PASS + PASS + $WORK/.tmp/testscript1582755966/in.txt/script.txtar updated + > cmp in.txt res.txt + PASS + === NAME TestScripts/simple testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1483,13 +1519,13 @@ GONOSUMDB=* # With .gomodproxy supporting files, any GOPROXY from the - # environment should be overridden by the test proxy. (0.286s) + # environment should be overridden by the test proxy. (2.589s) > env GOPROXY=0.1.2.3 > unquote file.txt > testscript -v file.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1504,7 +1540,7 @@ GOOS=linux GOROOT=/usr/lib/go-1.24 GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=http://127.0.0.1:42071/mod + GOPROXY=http://127.0.0.1:35873/mod goversion=1.24 GONOSUMDB=* @@ -1532,7 +1568,7 @@ === NAME TestScripts/env_values testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1552,22 +1588,22 @@ GOINTERNALMODPATH=. GONOSUMDB=* - # Test that passing env values, e.g. ENV1=val, works (0.000s) + # Test that passing env values, e.g. ENV1=val, works (0.082s) > unquote test.txt > env BLAH1= > env BLAH2=junk - # Normal operation (0.213s) + # Normal operation (2.450s) > testscript -e BLAH1=rubbish -e BLAH2 test.txt [stdout] PASS # It is an error to specify WORK. Note the error message # appears on stdout because it is written to the log output - # of testscript, which has no concept of stderr. (0.072s) + # of testscript, which has no concept of stderr. (0.112s) > ! testscript -e BLAH1=rubbish -e BLAH2 -e WORK test.txt [stdout] - FAIL: $WORK/.tmp/testscript2117395886/test.txt/script.txtar:0: cannot override WORK variable + FAIL: $WORK/.tmp/testscript384947141/test.txt/script.txtar:0: cannot override WORK variable [stderr] - error running test.txt in $WORK/.tmp/testscript2117395886/test.txt + error running test.txt in $WORK/.tmp/testscript384947141/test.txt [exit status 1] > stdout 'cannot override WORK variable' @@ -1575,7 +1611,7 @@ === NAME TestScripts/error testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1595,14 +1631,14 @@ GOINTERNALMODPATH=. GONOSUMDB=* - # should support skip (0.000s) + # should support skip (0.045s) > unquote file.txt - # stdin (0.216s) + # stdin (2.476s) > stdin file.txt > ! testscript -v [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1622,17 +1658,17 @@ > exec false [exit status 1] - FAIL: $WORK/.tmp/testscript362974266/-/script.txtar:1: unexpected command failure + FAIL: $WORK/.tmp/testscript22797886/-/script.txtar:1: unexpected command failure [stderr] - error running in $WORK/.tmp/testscript362974266/- + error running in $WORK/.tmp/testscript22797886/- [exit status 1] > stderr 'error running in' - # file-based (0.072s) + # file-based (0.185s) > ! testscript -v file.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1652,9 +1688,9 @@ > exec false [exit status 1] - FAIL: $WORK/.tmp/testscript51830342/file.txt/script.txtar:1: unexpected command failure + FAIL: $WORK/.tmp/testscript685091476/file.txt/script.txtar:1: unexpected command failure [stderr] - error running file.txt in $WORK/.tmp/testscript51830342/file.txt + error running file.txt in $WORK/.tmp/testscript685091476/file.txt [exit status 1] > stderr 'error running file.txt in' @@ -1662,7 +1698,7 @@ === NAME TestScripts/env_var_with_go testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1688,14 +1724,14 @@ # the string literal $WORK because testscript rewrites the actual directory # to $WORK. Hence we don't want to expand this script's $WORK in such a comparison. # - # This is the counterpart to env_var_no_go.txt (0.000s) + # This is the counterpart to env_var_no_go.txt (0.071s) > unquote noproxy.txt > unquote withproxy.txt - # Baseline (0.216s) + # Baseline (2.468s) > testscript -v noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1727,11 +1763,11 @@ > env BANANA=banana > env GOPATH=$WORK/ourgopath > env GOPROXY= - # no GOPROXY, no pass-through, no proxy (0.077s) + # no GOPROXY, no pass-through, no proxy (0.100s) > testscript -v noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1760,11 +1796,11 @@ > stdout '^GOPATH=\$WORK[/\\]\.gopath'$ > stdout ^GOPROXY=https://proxy.golang.org,direct$ > ! stderr .+ - # no GOPROXY, no pass-through, with proxy (0.036s) + # no GOPROXY, no pass-through, with proxy (0.099s) > testscript -v withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1779,7 +1815,7 @@ GOOS=linux GOROOT=/usr/lib/go-1.24 GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=http://127.0.0.1:40097/mod + GOPROXY=http://127.0.0.1:44425/mod goversion=1.24 GONOSUMDB=* @@ -1788,17 +1824,17 @@ > env GOPATH GOPATH=$WORK/.gopath > env GOPROXY - GOPROXY=http://127.0.0.1:40097/mod + GOPROXY=http://127.0.0.1:44425/mod PASS > stdout ^BANANA=$ > stdout '^GOPATH=\$WORK[/\\]\.gopath'$ > stdout ^GOPROXY=http://.*/mod$ > ! stderr .+ - # no GOPROXY, with pass-through, no proxy (0.033s) + # no GOPROXY, with pass-through, no proxy (0.109s) > testscript -v -e BANANA -e GOPATH -e GOPROXY noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1828,11 +1864,11 @@ > stdout ^GOPATH=${WORK@R}[/\\]ourgopath$ > stdout ^GOPROXY=$ > ! stderr .+ - # no GOPROXY, with pass-through, with proxy (0.047s) + # no GOPROXY, with pass-through, with proxy (0.092s) > testscript -v -e BANANA -e GOPATH -e GOPROXY withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1864,11 +1900,11 @@ > stdout ^GOPROXY=$ > ! stderr .+ > setfilegoproxy $WORK/proxy - # with GOPROXY, no pass-through, no proxy (0.051s) + # with GOPROXY, no pass-through, no proxy (0.087s) > testscript -v noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1897,11 +1933,11 @@ > stdout '^GOPATH=\$WORK[/\\]\.gopath'$ > stdout ^GOPROXY=$GOPROXY$ > ! stderr .+ - # with GOPROXY, no pass-through, with proxy (0.033s) + # with GOPROXY, no pass-through, with proxy (0.138s) > testscript -v withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1916,7 +1952,7 @@ GOOS=linux GOROOT=/usr/lib/go-1.24 GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=http://127.0.0.1:45685/mod + GOPROXY=http://127.0.0.1:33195/mod goversion=1.24 GONOSUMDB=* @@ -1925,17 +1961,17 @@ > env GOPATH GOPATH=$WORK/.gopath > env GOPROXY - GOPROXY=http://127.0.0.1:45685/mod + GOPROXY=http://127.0.0.1:33195/mod PASS > stdout ^BANANA=$ > stdout '^GOPATH=\$WORK[/\\]\.gopath'$ > stdout ^GOPROXY=http://.*/mod$ > ! stderr .+ - # with GOPROXY, with pass-through, no proxy (0.031s) + # with GOPROXY, with pass-through, no proxy (0.094s) > testscript -v -e BANANA -e GOPATH -e GOPROXY noproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -1965,11 +2001,11 @@ > stdout ^GOPATH=${WORK@R}[/\\]ourgopath$ > stdout ^GOPROXY=$GOPROXY$ > ! stderr .+ - # with GOPROXY, with pass-through, with proxy (0.032s) + # with GOPROXY, with pass-through, with proxy (0.088s) > testscript -v -e BANANA -e GOPATH -e GOPROXY withproxy.txt [stdout] WORK=$WORK - PATH=/tmp/testscript-main2810598911/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main2475664148/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2002,21 +2038,21 @@ > ! stderr .+ PASS ---- PASS: TestScripts (0.03s) - --- PASS: TestScripts/help (0.01s) - --- PASS: TestScripts/nogo (0.09s) - --- PASS: TestScripts/env_var_no_go (0.17s) - --- PASS: TestScripts/skip (0.22s) - --- PASS: TestScripts/continue (0.22s) - --- PASS: TestScripts/work (0.23s) - --- PASS: TestScripts/update (0.23s) - --- PASS: TestScripts/noproxy (0.24s) - --- PASS: TestScripts/simple (0.29s) - --- PASS: TestScripts/env_values (0.29s) - --- PASS: TestScripts/error (0.29s) - --- PASS: TestScripts/env_var_with_go (0.56s) +--- PASS: TestScripts (0.14s) + --- PASS: TestScripts/help (0.03s) + --- PASS: TestScripts/nogo (0.16s) + --- PASS: TestScripts/env_var_no_go (0.39s) + --- PASS: TestScripts/continue (2.55s) + --- PASS: TestScripts/work (2.55s) + --- PASS: TestScripts/skip (2.55s) + --- PASS: TestScripts/noproxy (2.55s) + --- PASS: TestScripts/update (2.57s) + --- PASS: TestScripts/simple (2.60s) + --- PASS: TestScripts/env_values (2.66s) + --- PASS: TestScripts/error (2.72s) + --- PASS: TestScripts/env_var_with_go (3.36s) PASS -ok github.com/rogpeppe/go-internal/cmd/testscript 0.590s +ok github.com/rogpeppe/go-internal/cmd/testscript 3.532s === RUN TestScripts === RUN TestScripts/encode === PAUSE TestScripts/encode @@ -2031,7 +2067,7 @@ go proxy: no archive github.com v0.0.0-20171119174359-809beceb2371 === NAME TestScripts/encode testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2641561772/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main969491805/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2046,7 +2082,7 @@ GOOS=linux GOROOT=/usr/lib/go-1.24 GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=http://127.0.0.1:34085/mod + GOPROXY=http://127.0.0.1:35145/mod goversion=1.24 GONOSUMDB=* @@ -2059,7 +2095,7 @@ === NAME TestScripts/to_stdout testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2641561772/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main969491805/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2074,7 +2110,7 @@ GOOS=linux GOROOT=/usr/lib/go-1.24 GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=http://127.0.0.1:34085/mod + GOPROXY=http://127.0.0.1:35145/mod goversion=1.24 GONOSUMDB=* @@ -2101,7 +2137,7 @@ === NAME TestScripts/txtar-addmod-self testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main2641561772/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main969491805/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2116,7 +2152,7 @@ GOOS=linux GOROOT=/usr/lib/go-1.24 GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=http://127.0.0.1:34085/mod + GOPROXY=http://127.0.0.1:35145/mod goversion=1.24 GONOSUMDB=* @@ -2130,12 +2166,12 @@ > grep '-- foobar --' $WORK/out/github.com_gobin-testrepos_simple-main_v1.0.0.txtar PASS ---- PASS: TestScripts (0.09s) - --- PASS: TestScripts/encode (0.11s) - --- PASS: TestScripts/to_stdout (0.12s) - --- PASS: TestScripts/txtar-addmod-self (0.20s) +--- PASS: TestScripts (0.08s) + --- PASS: TestScripts/encode (0.07s) + --- PASS: TestScripts/to_stdout (0.23s) + --- PASS: TestScripts/txtar-addmod-self (0.31s) PASS -ok github.com/rogpeppe/go-internal/cmd/txtar-addmod 0.293s +ok github.com/rogpeppe/go-internal/cmd/txtar-addmod 0.397s === RUN TestScripts === RUN TestScripts/all === PAUSE TestScripts/all @@ -2146,12 +2182,12 @@ === RUN TestScripts/txtar-savedir-self === PAUSE TestScripts/txtar-savedir-self === CONT TestScripts/all -=== CONT TestScripts/quote === CONT TestScripts/txtar-savedir-self +=== CONT TestScripts/quote === CONT TestScripts/needquote -=== NAME TestScripts/quote +=== NAME TestScripts/txtar-savedir-self testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main1730601966/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main630480719/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2161,21 +2197,29 @@ $=$ exe= - > unquote blah/withsep > unquote expect - > txtar-c -quote blah + > txtar-c blah [stdout] - unquote withsep - -- withsep -- - >-- separator -- - >foo + -- go.mod -- + module example.com/blah + + -- main.go -- + package main + + import "fmt" + + func main() { + fmt.Println("Hello, world!") + } + -- subdir/x -- + x contents > ! stderr .+ > cmp stdout expect PASS === NAME TestScripts/needquote testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main1730601966/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main630480719/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2197,9 +2241,9 @@ > cmp stdout expect PASS -=== NAME TestScripts/txtar-savedir-self +=== NAME TestScripts/quote testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main1730601966/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main630480719/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2209,29 +2253,21 @@ $=$ exe= + > unquote blah/withsep > unquote expect - > txtar-c blah + > txtar-c -quote blah [stdout] - -- go.mod -- - module example.com/blah - - -- main.go -- - package main - - import "fmt" - - func main() { - fmt.Println("Hello, world!") - } - -- subdir/x -- - x contents + unquote withsep + -- withsep -- + >-- separator -- + >foo > ! stderr .+ > cmp stdout expect PASS === NAME TestScripts/all testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main1730601966/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main630480719/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2259,7 +2295,7 @@ } > ! stderr .+ > cmp stdout expect-no-all - # With the -a flag, it should include them. (0.003s) + # With the -a flag, it should include them. (0.011s) > txtar-c -a blah [stdout] -- .foo/foo -- @@ -2282,12 +2318,12 @@ PASS --- PASS: TestScripts (0.00s) - --- PASS: TestScripts/all (0.09s) - --- PASS: TestScripts/quote (0.09s) - --- PASS: TestScripts/needquote (0.09s) - --- PASS: TestScripts/txtar-savedir-self (0.09s) + --- PASS: TestScripts/txtar-savedir-self (0.01s) + --- PASS: TestScripts/needquote (0.01s) + --- PASS: TestScripts/quote (0.01s) + --- PASS: TestScripts/all (0.02s) PASS -ok github.com/rogpeppe/go-internal/cmd/txtar-c 0.092s +ok github.com/rogpeppe/go-internal/cmd/txtar-c 0.041s ? github.com/rogpeppe/go-internal/cmd/txtar-goproxy [no test files] === RUN TestScripts === RUN TestScripts/extract-dir @@ -2299,12 +2335,12 @@ === RUN TestScripts/extract === PAUSE TestScripts/extract === CONT TestScripts/extract-dir -=== CONT TestScripts/extract-out-of-bounds === CONT TestScripts/extract-stdin +=== CONT TestScripts/extract-out-of-bounds === CONT TestScripts/extract === NAME TestScripts/extract-stdin testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main567420768/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main3764142668/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2321,9 +2357,9 @@ > cmp a/b/bar expect/a/b/bar PASS -=== NAME TestScripts/extract-dir +=== NAME TestScripts/extract testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main567420768/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main3764142668/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2334,14 +2370,14 @@ exe= > unquote file.txtar - > txtar-x -C x/y file.txtar - > cmp x/y/foo expect/foo - > cmp x/y/a/b/bar expect/a/b/bar + > txtar-x file.txtar + > cmp foo expect/foo + > cmp a/b/bar expect/a/b/bar PASS -=== NAME TestScripts/extract +=== NAME TestScripts/extract-dir testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main567420768/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main3764142668/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2352,14 +2388,14 @@ exe= > unquote file.txtar - > txtar-x file.txtar - > cmp foo expect/foo - > cmp a/b/bar expect/a/b/bar + > txtar-x -C x/y file.txtar + > cmp x/y/foo expect/foo + > cmp x/y/a/b/bar expect/a/b/bar PASS === NAME TestScripts/extract-out-of-bounds testscript.go:558: WORK=$WORK - PATH=/tmp/testscript-main567420768/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main3764142668/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2383,12 +2419,12 @@ PASS --- PASS: TestScripts (0.00s) + --- PASS: TestScripts/extract-stdin (0.01s) + --- PASS: TestScripts/extract (0.01s) --- PASS: TestScripts/extract-dir (0.02s) - --- PASS: TestScripts/extract (0.02s) - --- PASS: TestScripts/extract-stdin (0.02s) --- PASS: TestScripts/extract-out-of-bounds (0.02s) PASS -ok github.com/rogpeppe/go-internal/cmd/txtar-x 0.028s +ok github.com/rogpeppe/go-internal/cmd/txtar-x 0.031s === RUN Test === RUN Test/allnew.txt === RUN Test/allold.txt @@ -2416,7 +2452,7 @@ --- PASS: Test/start.txt (0.00s) --- PASS: Test/triv.txt (0.00s) PASS -ok github.com/rogpeppe/go-internal/diff 0.006s +ok github.com/rogpeppe/go-internal/diff 0.007s === RUN TestHash1 --- PASS: TestHash1 (0.00s) === RUN TestHashDir @@ -2424,9 +2460,9 @@ === RUN TestHashZip --- PASS: TestHashZip (0.00s) === RUN TestDirFiles ---- PASS: TestDirFiles (0.00s) +--- PASS: TestDirFiles (0.01s) PASS -ok github.com/rogpeppe/go-internal/dirhash 0.005s +ok github.com/rogpeppe/go-internal/dirhash 0.014s === RUN TestCompare --- PASS: TestCompare (0.00s) === RUN TestOrder @@ -2434,13 +2470,13 @@ === RUN TestInterface --- PASS: TestInterface (0.00s) PASS -ok github.com/rogpeppe/go-internal/fmtsort 0.002s +ok github.com/rogpeppe/go-internal/fmtsort 0.021s === RUN TestScripts === RUN TestScripts/list === PAUSE TestScripts/list === CONT TestScripts/list testscript.go:558: WORK=$WORK - PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2455,7 +2491,7 @@ GOOS=linux GOROOT=/usr/lib/go-1.24 GOCACHE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/go-build - GOPROXY=http://127.0.0.1:38141/mod + GOPROXY=http://127.0.0.1:42861/mod goversion=1.24 GONOSUMDB=* @@ -2480,19 +2516,19 @@ # as that places GOMODCACHE inside the Go module and "mod tidy" walks it. # "mod tidy" then complains about invalid import paths such as # "mod/gopath/pkg/mod/fruit.com@v1.1.0/fruit". - # It's for that reason that we moved the default GOPATH to ${WORK}/.gopath. (0.007s) + # It's for that reason that we moved the default GOPATH to ${WORK}/.gopath. (0.024s) > go mod tidy [stderr] go: warning: "all" matched no packages PASS ---- PASS: TestScripts (0.03s) - --- PASS: TestScripts/list (0.04s) +--- PASS: TestScripts (0.13s) + --- PASS: TestScripts/list (0.22s) PASS -ok github.com/rogpeppe/go-internal/goproxytest 0.083s +ok github.com/rogpeppe/go-internal/goproxytest 0.367s === RUN TestInitGoEnv ---- PASS: TestInitGoEnv (0.04s) +--- PASS: TestInitGoEnv (0.09s) === RUN TestSimple === RUN TestSimple/cover === PAUSE TestSimple/cover @@ -2504,7 +2540,7 @@ === CONT TestSimple/version === CONT TestSimple/env testscript.go:558: WORK=$WORK - PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2524,7 +2560,7 @@ GOINTERNAL_MODULE=/build/reproducible-path/golang-github-rogpeppe-go-internal-1.12.0/_build/src/github.com/rogpeppe/go-internal # GOPATH and GOMODCACHE are not shared with the host, - # but GOCACHE is. (0.019s) + # but GOCACHE is. (0.034s) > go env [stdout] AR='ar' @@ -2550,7 +2586,7 @@ GOEXPERIMENT='' GOFIPS140='off' GOFLAGS='' - GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/.tmp/go-build119780214=/tmp/go-build -gno-record-gcc-switches' + GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/.tmp/go-build4226182836=/tmp/go-build -gno-record-gcc-switches' GOHOSTARCH='amd64' GOHOSTOS='linux' GOINSECURE='' @@ -2581,7 +2617,7 @@ === NAME TestSimple/version testscript.go:558: WORK=$WORK - PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2612,7 +2648,7 @@ === NAME TestSimple/cover testscript.go:1163: testscript.go:558: WORK=$WORK - PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -2633,25 +2669,25 @@ > unquote scripts/exec.txt # The module uses testscript itself. - # Use the checked out module, based on where the test binary ran. (0.110s) + # Use the checked out module, based on where the test binary ran. (1.126s) > go mod edit -replace=github.com/rogpeppe/go-internal=${GOINTERNAL_MODULE} > go mod tidy [stderr] go: found github.com/rogpeppe/go-internal/gotooltest in github.com/rogpeppe/go-internal v0.0.0-00010101000000-000000000000 go: found github.com/rogpeppe/go-internal/testscript in github.com/rogpeppe/go-internal v0.0.0-00010101000000-000000000000 go: github.com/rogpeppe/go-internal@v0.0.0-00010101000000-000000000000 requires - golang.org/x/mod@v0.9.0: Get "https://proxy.golang.org/golang.org/x/mod/@v/v0.9.0.mod": dial tcp: lookup proxy.golang.org on [::1]:53: read udp [::1]:42754->[::1]:53: read: connection refused + golang.org/x/mod@v0.9.0: Get "https://proxy.golang.org/golang.org/x/mod/@v/v0.9.0.mod": dial tcp: lookup proxy.golang.org on [::1]:53: read udp [::1]:59284->[::1]:53: read: connection refused [exit status 1] FAIL: testdata/cover.txt:6: unexpected go command failure SKIP: TestSimple/cover: Possible restricted network access ---- PASS: TestSimple (0.03s) - --- PASS: TestSimple/env (0.02s) - --- PASS: TestSimple/version (0.06s) - --- SKIP: TestSimple/cover (0.11s) +--- PASS: TestSimple (0.09s) + --- PASS: TestSimple/env (0.03s) + --- PASS: TestSimple/version (0.09s) + --- SKIP: TestSimple/cover (1.14s) PASS -ok github.com/rogpeppe/go-internal/gotooltest 0.176s +ok github.com/rogpeppe/go-internal/gotooltest 1.343s === RUN TestReadImports --- PASS: TestReadImports (0.00s) === RUN TestReadComments @@ -2665,7 +2701,7 @@ === RUN TestScanStar --- PASS: TestScanStar (0.00s) PASS -ok github.com/rogpeppe/go-internal/imports 0.003s +ok github.com/rogpeppe/go-internal/imports 0.010s === RUN TestAlmostEqual === PAUSE TestAlmostEqual === CONT TestAlmostEqual @@ -2697,7 +2733,7 @@ --- PASS: FuzzAlmostEqual/b323cef1fc26e507 (0.00s) --- PASS: FuzzAlmostEqual/c6edde4256d6f5eb (0.00s) PASS -ok github.com/rogpeppe/go-internal/internal/misspell 0.004s +ok github.com/rogpeppe/go-internal/internal/misspell 0.012s ? github.com/rogpeppe/go-internal/internal/os/execpath [no test files] ? github.com/rogpeppe/go-internal/internal/syscall/windows [no test files] ? github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll [no test files] @@ -2710,29 +2746,26 @@ === RUN TestSpuriousEDEADLK --- PASS: TestSpuriousEDEADLK (0.02s) === RUN TestTransform ---- PASS: TestTransform (0.30s) +--- PASS: TestTransform (0.56s) === CONT TestMutexExcludes -=== CONT TestCanLockExistingFile -=== CONT TestReadWaitsForLock -=== NAME TestMutexExcludes lockedfile_test.go:85: mu := MutexAt(_) lockedfile_test.go:91: unlock, _ := mu.Lock() lockedfile_test.go:94: mu2 := MutexAt(mu.Path) -=== NAME TestReadWaitsForLock +=== CONT TestCanLockExistingFile +=== CONT TestReadWaitsForLock lockedfile_test.go:134: WriteString("part 1\n") = - lockedfile_test.go:156: WriteString("part 2\n") = === NAME TestMutexExcludes lockedfile_test.go:107: unlock() -=== NAME TestReadWaitsForLock - lockedfile_test.go:146: Read(_) = "part 1\npart 2\n" -=== NAME TestMutexExcludes lockedfile_test.go:102: unlock2, _ := mu2.Lock() lockedfile_test.go:103: unlock2() ---- PASS: TestCanLockExistingFile (0.01s) --- PASS: TestMutexExcludes (0.01s) +=== NAME TestReadWaitsForLock + lockedfile_test.go:156: WriteString("part 2\n") = + lockedfile_test.go:146: Read(_) = "part 1\npart 2\n" +--- PASS: TestCanLockExistingFile (0.01s) --- PASS: TestReadWaitsForLock (0.01s) PASS -ok github.com/rogpeppe/go-internal/lockedfile 0.339s +ok github.com/rogpeppe/go-internal/lockedfile 0.618s === RUN TestLockExcludesLock === PAUSE TestLockExcludesLock === RUN TestLockExcludesRLock @@ -2740,54 +2773,56 @@ === RUN TestRLockExcludesOnlyLock === PAUSE TestRLockExcludesOnlyLock === RUN TestLockNotDroppedByExecCommand - filelock_test.go:188: fd 6 = /tmp/TestLockNotDroppedByExecCommand2990224928 + filelock_test.go:188: fd 6 = /tmp/TestLockNotDroppedByExecCommand451575358 filelock_test.go:191: Lock(fd 6) = - filelock_test.go:193: fd 7 = os.Open("/tmp/TestLockNotDroppedByExecCommand2990224928") + filelock_test.go:193: fd 7 = os.Open("/tmp/TestLockNotDroppedByExecCommand451575358") filelock_test.go:204: Lock(fd 7) is blocked (as expected) filelock_test.go:205: Unlock(fd 6) = asm_amd64.s:1700: Lock(fd 7) = filelock_test.go:207: Unlock(fd 7) = ---- PASS: TestLockNotDroppedByExecCommand (0.01s) +--- PASS: TestLockNotDroppedByExecCommand (0.02s) === CONT TestLockExcludesLock - filelock_test.go:121: fd 6 = /tmp/TestLockExcludesLock842213918 + filelock_test.go:121: fd 6 = /tmp/TestLockExcludesLock3103595997 + filelock_test.go:124: fd 7 = os.Open("/tmp/TestLockExcludesLock3103595997") + filelock_test.go:127: Lock(fd 6) = === CONT TestRLockExcludesOnlyLock === CONT TestLockExcludesRLock - filelock_test.go:137: fd 8 = /tmp/TestLockExcludesRLock6413587 - filelock_test.go:140: fd 10 = os.Open("/tmp/TestLockExcludesRLock6413587") + filelock_test.go:137: fd 8 = /tmp/TestLockExcludesRLock1036819661 + filelock_test.go:140: fd 10 = os.Open("/tmp/TestLockExcludesRLock1036819661") filelock_test.go:143: Lock(fd 8) = === NAME TestRLockExcludesOnlyLock - filelock_test.go:153: fd 9 = /tmp/TestRLockExcludesOnlyLock291138287 + filelock_test.go:153: fd 9 = /tmp/TestRLockExcludesOnlyLock3242696671 filelock_test.go:155: RLock(fd 9) = - filelock_test.go:157: fd 11 = os.Open("/tmp/TestRLockExcludesOnlyLock291138287") + filelock_test.go:157: fd 11 = os.Open("/tmp/TestRLockExcludesOnlyLock3242696671") filelock_test.go:171: RLock(fd 11) = - filelock_test.go:175: fd 12 = os.Open("/tmp/TestRLockExcludesOnlyLock291138287") -=== NAME TestLockExcludesLock - filelock_test.go:124: fd 7 = os.Open("/tmp/TestLockExcludesLock842213918") - filelock_test.go:127: Lock(fd 6) = + filelock_test.go:175: fd 12 = os.Open("/tmp/TestRLockExcludesOnlyLock3242696671") === NAME TestLockExcludesRLock filelock_test.go:144: RLock(fd 10) is blocked (as expected) filelock_test.go:145: Unlock(fd 8) = === NAME TestLockExcludesLock filelock_test.go:128: Lock(fd 7) is blocked (as expected) - filelock_test.go:129: Unlock(fd 6) = === NAME TestLockExcludesRLock asm_amd64.s:1700: RLock(fd 10) = - filelock_test.go:147: Unlock(fd 10) = === NAME TestLockExcludesLock - asm_amd64.s:1700: Lock(fd 7) = - filelock_test.go:131: Unlock(fd 7) = ---- PASS: TestLockExcludesRLock (0.01s) + filelock_test.go:129: Unlock(fd 6) = === NAME TestRLockExcludesOnlyLock filelock_test.go:177: Lock(fd 12) is blocked (as expected) +=== NAME TestLockExcludesRLock + filelock_test.go:147: Unlock(fd 10) = +=== NAME TestRLockExcludesOnlyLock filelock_test.go:179: Unlock(fd 11) = + filelock_test.go:181: Unlock(fd 9) = +--- PASS: TestLockExcludesRLock (0.01s) +=== NAME TestLockExcludesLock + asm_amd64.s:1700: Lock(fd 7) = + filelock_test.go:131: Unlock(fd 7) = --- PASS: TestLockExcludesLock (0.01s) === NAME TestRLockExcludesOnlyLock - filelock_test.go:181: Unlock(fd 9) = asm_amd64.s:1700: Lock(fd 12) = filelock_test.go:184: Unlock(fd 12) = --- PASS: TestRLockExcludesOnlyLock (0.01s) PASS -ok github.com/rogpeppe/go-internal/lockedfile/internal/filelock 0.027s +ok github.com/rogpeppe/go-internal/lockedfile/internal/filelock 0.046s ? github.com/rogpeppe/go-internal/modfile [no test files] ? github.com/rogpeppe/go-internal/module [no test files] === RUN TestWork @@ -2889,173 +2924,28 @@ === CONT TestScripts/big_diff === CONT TestScripts/readfile === CONT TestScripts/exec_path_change -=== CONT TestScripts/commandstatus +=== CONT TestScripts/pty +=== CONT TestScripts/nothing +=== CONT TestScripts/long_diff +=== CONT TestScripts/interrupt +=== CONT TestScripts/hello +=== CONT TestScripts/exists +=== CONT TestScripts/execguard +=== CONT TestScripts/cond +=== CONT TestScripts/evalsymlink +=== CONT TestScripts/defer +=== CONT TestScripts/cpstdout === CONT TestScripts/command +=== CONT TestScripts/commandstatus +=== NAME TestScripts/nothing + testscript.go:558: # Intentionally blank file, used to test that -testwork doesn't remove the work directory (0.000s) + PASS + === CONT TestScripts/cmpenv -=== CONT TestScripts/cmd_stdout_stderr -=== CONT TestScripts/testscript_stdout_stderr_error -=== NAME TestScripts/cmpenv testscript.go:558: > env $=$ > cmpenv file1 file2 PASS -=== CONT TestScripts/wait -=== CONT TestScripts/testscript_update_script_expected_not_in_archive -=== CONT TestScripts/values - testscript.go:558: > test-values - PASS - -=== CONT TestScripts/testscript_update_script_stderr -=== CONT TestScripts/testscript_update_script_quote -=== NAME TestScripts/testscript_stdout_stderr_error - testscript.go:558: # Verify that stdout and stderr get set event when a user-builtin - # command aborts. Note that we need to assert against stdout - # because our meta testscript command sees only a single log. (0.000s) - > unquote scripts/testscript.txt - > ! testscript -v scripts - [stdout] - > printargs hello world - [stdout] - ["printargs" "hello" "world"] - > echoandexit 1 'this is stdout' 'this is stderr' - [stdout] - this is stdout - [stderr] - this is stderr - FAIL: $WORK/scripts/testscript.txt:2: told to exit with code 1 - - > cmpenv stdout stdout.golden - PASS - -=== NAME TestScripts/readfile - testscript.go:558: > fprintargs stdout stdout - [stdout] - stdout - > testreadfile stdout - > fprintargs stderr stderr - [stderr] - stderr - > testreadfile stderr - > testreadfile x/somefile - PASS - -=== CONT TestScripts/testscript_update_script_actual_is_file -=== NAME TestScripts/command - testscript.go:558: > printargs a b 'c d' - [stdout] - ["printargs" "a" "b" "c d"] - > stdout '\["printargs" "a" "b" "c d"\]\n' - PASS - -=== NAME TestScripts/testscript_update_script_expected_not_in_archive - testscript.go:558: # Verify that comparing stdout against a file not in the archive does nothing (0.000s) - > unquote scripts/testscript.txt - > cp scripts/testscript.txt unchanged - > ! testscript -update scripts - [stdout] - > fprintargs stdout right - [stdout] - right - > cp file expect - > cmp stdout expect - diff stdout expect - --- stdout - +++ expect - @@ -1,1 +1,1 @@ - -right - +wrong - - FAIL: $WORK/scripts/testscript.txt:3: stdout and expect differ - - > cmp scripts/testscript.txt unchanged - PASS - -=== CONT TestScripts/testscript_update_script -=== CONT TestScripts/testscript_duplicate_name -=== CONT TestScripts/testscript_notfound -=== NAME TestScripts/testscript_update_script_quote - testscript.go:558: > unquote scripts/testscript.txt - > unquote testscript-new.txt - > testscript -update scripts - [stdout] - PASS - $WORK/scripts/testscript.txt updated - - > cmp scripts/testscript.txt testscript-new.txt - PASS - -=== NAME TestScripts/testscript_update_script_stderr - testscript.go:558: > unquote scripts/testscript.txt - > unquote testscript-new.txt - > testscript -update scripts - [stdout] - PASS - $WORK/scripts/testscript.txt updated - - > cmp scripts/testscript.txt testscript-new.txt - PASS - -=== NAME TestScripts/testscript_update_script_actual_is_file - testscript.go:558: > unquote scripts/testscript.txt - > unquote testscript-new.txt - > testscript -update scripts - [stdout] - PASS - $WORK/scripts/testscript.txt updated - - > cmp scripts/testscript.txt testscript-new.txt - PASS - -=== NAME TestScripts/testscript_duplicate_name - testscript.go:558: # Check that RequireUniqueNames works; - # it should reject txtar archives with duplicate names as defined by the host system. (0.000s) - > unquote scripts-normalized/testscript.txt - > testscript scripts-normalized - [stdout] - PASS - - > ! testscript -unique-names scripts-normalized - [stdout] - FAIL: $WORK/scripts-normalized/testscript.txt:0: dir/../file would overwrite $WORK/file (because RequireUniqueNames is enabled) - - > stdout '.* would overwrite .* \(because RequireUniqueNames is enabled\)' - PASS - -=== CONT TestScripts/testscript_logging -=== CONT TestScripts/testscript_explicit_exec -=== CONT TestScripts/interrupt -=== CONT TestScripts/pty -=== NAME TestScripts/testscript_notfound - testscript.go:558: # Check that unknown commands output a useful error message (0.000s) - > ! testscript notfound - [stdout] - > notexist - FAIL: $WORK/notfound/script.txt:1: unknown command "notexist" - - > stdout 'unknown command "notexist"' - > ! testscript negation - [stdout] - > !exists file - FAIL: $WORK/negation/script.txt:1: unknown command "!exists" (did you mean "! exists"?) - - > stdout 'unknown command "!exists" \(did you mean "! exists"\?\)' - > ! testscript misspelled - [stdout] - > exits file - FAIL: $WORK/misspelled/script.txt:1: unknown command "exits" (did you mean "exists"?) - - > stdout 'unknown command "exits" \(did you mean "exists"\?\)' - PASS - -=== NAME TestScripts/commandstatus - testscript.go:558: > ! status 1 - [exit status 1] - > ! status 2 - [exit status 2] - > status 0 - PASS - -=== CONT TestScripts/long_diff === NAME TestScripts/big_diff testscript.go:558: # Verify the behaviour of cmp in the case of a diff between two # large files (with a large diff) (0.000s) @@ -5124,7 +5014,7 @@ > env WORK=$WORK - PATH=/tmp/testscript-main615626208/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main770383474/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -5137,20 +5027,51 @@ > cmpenv stdout stdout.golden PASS -=== CONT TestScripts/setupfiles -=== CONT TestScripts/nothing -=== CONT TestScripts/stdin -=== NAME TestScripts/nothing - testscript.go:558: # Intentionally blank file, used to test that -testwork doesn't remove the work directory (0.000s) +=== NAME TestScripts/exists + testscript.go:558: > chmod 444 foo_r + > exists foo + > ! exists unfoo + # TODO The following line fails but probably should not. + # ! exists -readonly foo (0.000s) + > exists foo_r + > exists -readonly foo_r PASS -=== NAME TestScripts/setupfiles - testscript.go:558: # check that the Setup function saw the unarchived files, - # including the temp directory that's always created. (0.000s) - > setup-filenames .tmp a b +=== NAME TestScripts/cond + testscript.go:558: # test that exactly one of gc and gccgo is set (0.000s) + > [gc] mkdir gc_true + > [gccgo] mkdir gccgo_true + > [gc] ! exists gccgo_true + > [!gc] exists gccgo_true + > [gccgo] ! exists gc_true + > [!gccgo] exists gc_true + # test that go version build tags are set (0.000s) + > [go1.1] mkdir go1.x + > [go2.1] mkdir go2.x + > exists go1.x + > ! exists go2.x + # unix should be true on Linux and MacOS, but not on Windows. + # Both platforms are tested on CI. (0.000s) + > [unix] mkdir unix_true + > [linux] exists unix_true + > [darwin] exists unix_true + > [windows] ! exists unix_true PASS -=== CONT TestScripts/hello +=== CONT TestScripts/values + testscript.go:558: > test-values + PASS + +=== CONT TestScripts/testscript_update_script_quote +=== CONT TestScripts/testscript_update_script_stderr +=== CONT TestScripts/wait +=== NAME TestScripts/defer + testscript.go:558: > testdefer + > testdefer + > testdefer + PASS + +=== CONT TestScripts/testscript_update_script_expected_not_in_archive === NAME TestScripts/long_diff testscript.go:558: # Verify the behaviour of cmp in the case of a small diff between # two large files (0.000s) @@ -5172,7 +5093,7 @@ > env WORK=$WORK - PATH=/tmp/testscript-main615626208/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PATH=/tmp/testscript-main770383474/bin:/usr/lib/go-1.24/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path GOTRACEBACK=system HOME=/no-home TMPDIR=$WORK/.tmp @@ -5185,209 +5106,51 @@ > cmpenv stdout stdout.golden PASS -=== CONT TestScripts/exists -=== CONT TestScripts/defer - testscript.go:558: > testdefer - > testdefer - > testdefer - PASS - -=== NAME TestScripts/exists - testscript.go:558: > chmod 444 foo_r - > exists foo - > ! exists unfoo - # TODO The following line fails but probably should not. - # ! exists -readonly foo (0.000s) - > exists foo_r - > exists -readonly foo_r - PASS - -=== CONT TestScripts/evalsymlink -=== NAME TestScripts/pty - testscript.go:558: > [!linux] [!darwin] skip - > [darwin] skip # https://go.dev/issue/61779 - > ttyin secretwords.txt - > terminalprompt - > ttyout 'magic words' - > ! stderr . - > ! stdout . - PASS - -=== NAME TestScripts/testscript_update_script - testscript.go:558: # Check that we support both txt and txtar extensions. (0.000s) - > unquote scripts/testscript.txt +=== CONT TestScripts/testscript_update_script_actual_is_file +=== NAME TestScripts/testscript_update_script_stderr + testscript.go:558: > unquote scripts/testscript.txt > unquote testscript-new.txt - > cp scripts/testscript.txt scripts/testscript2.txtar > testscript -update scripts [stdout] PASS $WORK/scripts/testscript.txt updated - PASS - $WORK/scripts/testscript2.txtar updated > cmp scripts/testscript.txt testscript-new.txt - > cmp scripts/testscript2.txtar testscript-new.txt - PASS - -=== CONT TestScripts/setenv -=== NAME TestScripts/hello - testscript.go:558: > [!exec:cat] stop - # hello world (0.000s) - > exec cat hello.text - [stdout] - hello world - > stdout 'hello world\n' - > ! stderr . PASS -=== NAME TestScripts/cmd_stdout_stderr - testscript.go:558: # Verify that when we don't update stdout when we don't attempt to write via Stdout() (0.000s) - > fprintargs stdout hello stdout from fprintargs - [stdout] - hello stdout from fprintargs - > stdout 'hello stdout from fprintargs' - > echoandexit 0 - > stdout 'hello stdout from fprintargs' - # Verify that when we don't update stderr when we don't attempt to write via Stderr() (0.000s) - > fprintargs stderr hello stderr from fprintargs - [stderr] - hello stderr from fprintargs - > stderr 'hello stderr from fprintargs' - > echoandexit 0 - > stderr 'hello stderr from fprintargs' - # Verify that we do update stdout when we attempt to write via Stdout() or Stderr() (0.000s) - > fprintargs stdout hello stdout from fprintargs - [stdout] - hello stdout from fprintargs - > stdout 'hello stdout from fprintargs' - > ! stderr .+ - > echoandexit 0 'hello stdout from echoandexit' - [stdout] - hello stdout from echoandexit - > stdout 'hello stdout from echoandexit' - > ! stderr .+ - > fprintargs stdout hello stdout from fprintargs - [stdout] - hello stdout from fprintargs - > stdout 'hello stdout from fprintargs' - > ! stderr .+ - > echoandexit 0 '' 'hello stderr from echoandexit' - [stderr] - hello stderr from echoandexit - > ! stdout .+ - > stderr 'hello stderr from echoandexit' - # Verify that we do update stderr when we attempt to write via Stdout() or Stderr() (0.000s) - > fprintargs stderr hello stderr from fprintargs - [stderr] - hello stderr from fprintargs - > ! stdout .+ - > stderr 'hello stderr from fprintargs' - > echoandexit 0 'hello stdout from echoandexit' - [stdout] - hello stdout from echoandexit - > stdout 'hello stdout from echoandexit' - > ! stderr .+ - > fprintargs stdout hello stdout from fprintargs +=== NAME TestScripts/testscript_update_script_quote + testscript.go:558: > unquote scripts/testscript.txt + > unquote testscript-new.txt + > testscript -update scripts [stdout] - hello stdout from fprintargs - > stdout 'hello stdout from fprintargs' - > ! stderr .+ - > echoandexit 0 '' 'hello stderr from echoandexit' - [stderr] - hello stderr from echoandexit - > ! stdout .+ - > stderr 'hello stderr from echoandexit' PASS + $WORK/scripts/testscript.txt updated -=== CONT TestScripts/cpstdout -=== CONT TestScripts/execguard -=== CONT TestScripts/regexpquote -=== CONT TestScripts/cond -=== NAME TestScripts/setenv - testscript.go:558: > setSpecialVal - > exists $SPECIALVAL.txt - > ensureSpecialVal + > cmp scripts/testscript.txt testscript-new.txt PASS -=== NAME TestScripts/wait - testscript.go:558: > [!exec:echo] skip - > [!exec:false] skip - # TODO: the '\n' below doesn't work on Windows on Github Actions, which does - # have coreutils like "echo" installed. Perhaps they emit CRLF? (0.000s) - > [windows] skip - > exec echo foo - [stdout] - foo - > stdout foo - > exec echo foo & - > exec echo bar & - > ! exec false & - # Starting a background process should clear previous output. (0.000s) - > ! stdout foo - # Wait should set the output to the concatenated outputs of the background - # programs, in the order in which they were started. (0.000s) - > wait - [background] echo foo: exit status 0 - [stdout] - foo - [background] echo bar: exit status 0 - [stdout] - bar - [background] false: exit status 1 - > stdout 'foo\nbar' - > exec echo bg1 &b1& - > exec echo bg2 &b2& - > exec echo bg3 &b3& - > exec echo bg4 &b4& - > wait b3 - [stdout] - bg3 - > stdout bg3 - > wait b2 - [stdout] - bg2 - > stdout bg2 - > wait - [background] echo bg1: exit status 0 +=== CONT TestScripts/testscript_stdout_stderr_error +=== NAME TestScripts/testscript_update_script_expected_not_in_archive + testscript.go:558: # Verify that comparing stdout against a file not in the archive does nothing (0.000s) + > unquote scripts/testscript.txt + > cp scripts/testscript.txt unchanged + > ! testscript -update scripts [stdout] - bg1 - [background] echo bg4: exit status 0 + > fprintargs stdout right [stdout] - bg4 - > stdout 'bg1\nbg4' - # We should be able to start several background processes and wait for them - # individually. - # The end of the test should interrupt or kill any remaining background - # programs. (0.000s) - > [!exec:sleep] skip - > ! exec sleep 86400 & - [background] sleep 86400: signal: interrupt - PASS + right + > cp file expect + > cmp stdout expect + diff stdout expect + --- stdout + +++ expect + @@ -1,1 +1,1 @@ + -right + +wrong -=== NAME TestScripts/regexpquote - testscript.go:558: > env XXX='hello)' - > grep ^${XXX@R}$ file.txt - PASS + FAIL: $WORK/scripts/testscript.txt:3: stdout and expect differ -=== NAME TestScripts/cond - testscript.go:558: # test that exactly one of gc and gccgo is set (0.000s) - > [gc] mkdir gc_true - > [gccgo] mkdir gccgo_true - > [gc] ! exists gccgo_true - > [!gc] exists gccgo_true - > [gccgo] ! exists gc_true - > [!gccgo] exists gc_true - # test that go version build tags are set (0.000s) - > [go1.1] mkdir go1.x - > [go2.1] mkdir go2.x - > exists go1.x - > ! exists go2.x - # unix should be true on Linux and MacOS, but not on Windows. - # Both platforms are tested on CI. (0.000s) - > [unix] mkdir unix_true - > [linux] exists unix_true - > [darwin] exists unix_true - > [windows] ! exists unix_true + > cmp scripts/testscript.txt unchanged PASS === NAME TestScripts/evalsymlink @@ -5405,6 +5168,55 @@ > stdout ^$WORK$ PASS +=== CONT TestScripts/testscript_update_script +=== CONT TestScripts/testscript_duplicate_name + testscript.go:558: # Check that RequireUniqueNames works; + # it should reject txtar archives with duplicate names as defined by the host system. (0.000s) + > unquote scripts-normalized/testscript.txt + > testscript scripts-normalized + [stdout] + PASS + + > ! testscript -unique-names scripts-normalized + [stdout] + FAIL: $WORK/scripts-normalized/testscript.txt:0: dir/../file would overwrite $WORK/file (because RequireUniqueNames is enabled) + + > stdout '.* would overwrite .* \(because RequireUniqueNames is enabled\)' + PASS + +=== NAME TestScripts/testscript_update_script_actual_is_file + testscript.go:558: > unquote scripts/testscript.txt + > unquote testscript-new.txt + > testscript -update scripts + [stdout] + PASS + $WORK/scripts/testscript.txt updated + + > cmp scripts/testscript.txt testscript-new.txt + PASS + +=== CONT TestScripts/testscript_notfound + testscript.go:558: # Check that unknown commands output a useful error message (0.000s) + > ! testscript notfound + [stdout] + > notexist + FAIL: $WORK/notfound/script.txt:1: unknown command "notexist" + + > stdout 'unknown command "notexist"' + > ! testscript negation + [stdout] + > !exists file + FAIL: $WORK/negation/script.txt:1: unknown command "!exists" (did you mean "! exists"?) + + > stdout 'unknown command "!exists" \(did you mean "! exists"\?\)' + > ! testscript misspelled + [stdout] + > exits file + FAIL: $WORK/misspelled/script.txt:1: unknown command "exits" (did you mean "exists"?) + + > stdout 'unknown command "exits" \(did you mean "exists"\?\)' + PASS + === NAME TestScripts/execguard testscript.go:558: > [exec:nosuchcommand] exec nosuchcommand > [!exec:cat] stop @@ -5429,6 +5241,125 @@ > cmp new hello.text PASS +=== CONT TestScripts/setupfiles +=== CONT TestScripts/stdin +=== NAME TestScripts/hello + testscript.go:558: > [!exec:cat] stop + # hello world (0.000s) + > exec cat hello.text + [stdout] + hello world + > stdout 'hello world\n' + > ! stderr . + PASS + +=== CONT TestScripts/cmd_stdout_stderr +=== NAME TestScripts/setupfiles + testscript.go:558: # check that the Setup function saw the unarchived files, + # including the temp directory that's always created. (0.000s) + > setup-filenames .tmp a b + PASS + +=== CONT TestScripts/setenv +=== CONT TestScripts/regexpquote +=== NAME TestScripts/interrupt + testscript.go:558: > [windows] skip + > signalcatcher & + > waitfile catchsignal + > interrupt + > wait + [background] signalcatcher: exit status 0 + [stdout] + caught interrupt + > stdout 'caught interrupt' + PASS + +=== NAME TestScripts/regexpquote + testscript.go:558: > env XXX='hello)' + > grep ^${XXX@R}$ file.txt + PASS + +=== CONT TestScripts/testscript_logging +=== NAME TestScripts/setenv + testscript.go:558: > setSpecialVal + > exists $SPECIALVAL.txt + > ensureSpecialVal + PASS + +=== NAME TestScripts/pty + testscript.go:558: > [!linux] [!darwin] skip + > [darwin] skip # https://go.dev/issue/61779 + > ttyin secretwords.txt + > terminalprompt + > ttyout 'magic words' + > ! stderr . + > ! stdout . + PASS + +=== NAME TestScripts/readfile + testscript.go:558: > fprintargs stdout stdout + [stdout] + stdout + > testreadfile stdout + > fprintargs stderr stderr + [stderr] + stderr + > testreadfile stderr + > testreadfile x/somefile + PASS + +=== NAME TestScripts/testscript_stdout_stderr_error + testscript.go:558: # Verify that stdout and stderr get set event when a user-builtin + # command aborts. Note that we need to assert against stdout + # because our meta testscript command sees only a single log. (0.000s) + > unquote scripts/testscript.txt + > ! testscript -v scripts + [stdout] + > printargs hello world + [stdout] + ["printargs" "hello" "world"] + > echoandexit 1 'this is stdout' 'this is stderr' + [stdout] + this is stdout + [stderr] + this is stderr + FAIL: $WORK/scripts/testscript.txt:2: told to exit with code 1 + + > cmpenv stdout stdout.golden + PASS + +=== NAME TestScripts/command + testscript.go:558: > printargs a b 'c d' + [stdout] + ["printargs" "a" "b" "c d"] + > stdout '\["printargs" "a" "b" "c d"\]\n' + PASS + +=== CONT TestScripts/testscript_explicit_exec +=== NAME TestScripts/testscript_update_script + testscript.go:558: # Check that we support both txt and txtar extensions. (0.000s) + > unquote scripts/testscript.txt + > unquote testscript-new.txt + > cp scripts/testscript.txt scripts/testscript2.txtar + > testscript -update scripts + [stdout] + PASS + $WORK/scripts/testscript.txt updated + PASS + $WORK/scripts/testscript2.txtar updated + + > cmp scripts/testscript.txt testscript-new.txt + > cmp scripts/testscript2.txtar testscript-new.txt + PASS + +=== NAME TestScripts/commandstatus + testscript.go:558: > ! status 1 + [exit status 1] + > ! status 2 + [exit status 2] + > status 0 + PASS + === NAME TestScripts/stdin testscript.go:558: > [!exec:cat] skip > stdin hello.txt @@ -5453,18 +5384,6 @@ > stdout hello PASS -=== NAME TestScripts/interrupt - testscript.go:558: > [windows] skip - > signalcatcher & - > waitfile catchsignal - > interrupt - > wait - [background] signalcatcher: exit status 0 - [stdout] - caught interrupt - > stdout 'caught interrupt' - PASS - === NAME TestScripts/testscript_explicit_exec testscript.go:558: # Check that RequireExplicitExec works; # it should reject `fprintargs` in favor of `exec fprintargs`, @@ -5491,6 +5410,120 @@ PASS +=== NAME TestScripts/wait + testscript.go:558: > [!exec:echo] skip + > [!exec:false] skip + # TODO: the '\n' below doesn't work on Windows on Github Actions, which does + # have coreutils like "echo" installed. Perhaps they emit CRLF? (0.000s) + > [windows] skip + > exec echo foo + [stdout] + foo + > stdout foo + > exec echo foo & + > exec echo bar & + > ! exec false & + # Starting a background process should clear previous output. (0.000s) + > ! stdout foo + # Wait should set the output to the concatenated outputs of the background + # programs, in the order in which they were started. (0.000s) + > wait + [background] echo foo: exit status 0 + [stdout] + foo + [background] echo bar: exit status 0 + [stdout] + bar + [background] false: exit status 1 + > stdout 'foo\nbar' + > exec echo bg1 &b1& + > exec echo bg2 &b2& + > exec echo bg3 &b3& + > exec echo bg4 &b4& + > wait b3 + [stdout] + bg3 + > stdout bg3 + > wait b2 + [stdout] + bg2 + > stdout bg2 + > wait + [background] echo bg1: exit status 0 + [stdout] + bg1 + [background] echo bg4: exit status 0 + [stdout] + bg4 + > stdout 'bg1\nbg4' + # We should be able to start several background processes and wait for them + # individually. + # The end of the test should interrupt or kill any remaining background + # programs. (0.000s) + > [!exec:sleep] skip + > ! exec sleep 86400 & + [background] sleep 86400: signal: interrupt + PASS + +=== NAME TestScripts/cmd_stdout_stderr + testscript.go:558: # Verify that when we don't update stdout when we don't attempt to write via Stdout() (0.000s) + > fprintargs stdout hello stdout from fprintargs + [stdout] + hello stdout from fprintargs + > stdout 'hello stdout from fprintargs' + > echoandexit 0 + > stdout 'hello stdout from fprintargs' + # Verify that when we don't update stderr when we don't attempt to write via Stderr() (0.000s) + > fprintargs stderr hello stderr from fprintargs + [stderr] + hello stderr from fprintargs + > stderr 'hello stderr from fprintargs' + > echoandexit 0 + > stderr 'hello stderr from fprintargs' + # Verify that we do update stdout when we attempt to write via Stdout() or Stderr() (0.000s) + > fprintargs stdout hello stdout from fprintargs + [stdout] + hello stdout from fprintargs + > stdout 'hello stdout from fprintargs' + > ! stderr .+ + > echoandexit 0 'hello stdout from echoandexit' + [stdout] + hello stdout from echoandexit + > stdout 'hello stdout from echoandexit' + > ! stderr .+ + > fprintargs stdout hello stdout from fprintargs + [stdout] + hello stdout from fprintargs + > stdout 'hello stdout from fprintargs' + > ! stderr .+ + > echoandexit 0 '' 'hello stderr from echoandexit' + [stderr] + hello stderr from echoandexit + > ! stdout .+ + > stderr 'hello stderr from echoandexit' + # Verify that we do update stderr when we attempt to write via Stdout() or Stderr() (0.000s) + > fprintargs stderr hello stderr from fprintargs + [stderr] + hello stderr from fprintargs + > ! stdout .+ + > stderr 'hello stderr from fprintargs' + > echoandexit 0 'hello stdout from echoandexit' + [stdout] + hello stdout from echoandexit + > stdout 'hello stdout from echoandexit' + > ! stderr .+ + > fprintargs stdout hello stdout from fprintargs + [stdout] + hello stdout from fprintargs + > stdout 'hello stdout from fprintargs' + > ! stderr .+ + > echoandexit 0 '' 'hello stderr from echoandexit' + [stderr] + hello stderr from echoandexit + > ! stdout .+ + > stderr 'hello stderr from echoandexit' + PASS + === NAME TestScripts/testscript_logging testscript.go:558: # non-verbose, non-continue (0.000s) > ! testscript scripts @@ -5606,48 +5639,48 @@ PASS --- PASS: TestScripts (0.00s) + --- PASS: TestScripts/nothing (0.01s) --- PASS: TestScripts/cmpenv (0.00s) + --- PASS: TestScripts/exists (0.00s) + --- PASS: TestScripts/big_diff (0.02s) + --- PASS: TestScripts/cond (0.00s) --- PASS: TestScripts/values (0.00s) - --- PASS: TestScripts/readfile (0.01s) - --- PASS: TestScripts/testscript_stdout_stderr_error (0.01s) - --- PASS: TestScripts/command (0.01s) + --- PASS: TestScripts/defer (0.09s) + --- PASS: TestScripts/long_diff (0.09s) + --- PASS: TestScripts/evalsymlink (0.10s) --- PASS: TestScripts/testscript_update_script_expected_not_in_archive (0.01s) - --- PASS: TestScripts/testscript_update_script_actual_is_file (0.00s) - --- PASS: TestScripts/testscript_duplicate_name (0.00s) - --- PASS: TestScripts/testscript_update_script_stderr (0.01s) - --- PASS: TestScripts/testscript_update_script_quote (0.01s) - --- PASS: TestScripts/commandstatus (0.01s) - --- PASS: TestScripts/testscript_notfound (0.01s) - --- PASS: TestScripts/big_diff (0.02s) - --- PASS: TestScripts/nothing (0.00s) + --- PASS: TestScripts/testscript_duplicate_name (0.01s) + --- PASS: TestScripts/testscript_update_script_actual_is_file (0.02s) + --- PASS: TestScripts/testscript_notfound (0.00s) + --- PASS: TestScripts/execguard (0.11s) + --- PASS: TestScripts/cpstdout (0.11s) + --- PASS: TestScripts/testscript_update_script_stderr (0.11s) + --- PASS: TestScripts/testscript_update_script_quote (0.11s) + --- PASS: TestScripts/hello (0.11s) --- PASS: TestScripts/setupfiles (0.00s) - --- PASS: TestScripts/long_diff (0.00s) - --- PASS: TestScripts/defer (0.00s) - --- PASS: TestScripts/exists (0.00s) - --- PASS: TestScripts/pty (0.01s) - --- PASS: TestScripts/hello (0.00s) - --- PASS: TestScripts/testscript_update_script (0.01s) - --- PASS: TestScripts/cmd_stdout_stderr (0.02s) - --- PASS: TestScripts/wait (0.02s) - --- PASS: TestScripts/setenv (0.00s) + --- PASS: TestScripts/interrupt (0.03s) --- PASS: TestScripts/regexpquote (0.00s) - --- PASS: TestScripts/cond (0.00s) - --- PASS: TestScripts/evalsymlink (0.00s) - --- PASS: TestScripts/execguard (0.00s) - --- PASS: TestScripts/cpstdout (0.00s) - --- PASS: TestScripts/stdin (0.01s) - --- PASS: TestScripts/interrupt (0.01s) - --- PASS: TestScripts/testscript_explicit_exec (0.01s) - --- PASS: TestScripts/testscript_logging (0.04s) - --- PASS: TestScripts/exec_path_change (3.24s) + --- PASS: TestScripts/setenv (0.01s) + --- PASS: TestScripts/pty (0.13s) + --- PASS: TestScripts/readfile (0.13s) + --- PASS: TestScripts/testscript_stdout_stderr_error (0.03s) + --- PASS: TestScripts/command (0.13s) + --- PASS: TestScripts/testscript_update_script (0.03s) + --- PASS: TestScripts/commandstatus (0.13s) + --- PASS: TestScripts/stdin (0.04s) + --- PASS: TestScripts/testscript_explicit_exec (0.04s) + --- PASS: TestScripts/wait (0.16s) + --- PASS: TestScripts/cmd_stdout_stderr (0.09s) + --- PASS: TestScripts/testscript_logging (0.24s) + --- PASS: TestScripts/exec_path_change (8.03s) === RUN TestTestwork ---- PASS: TestTestwork (0.92s) +--- PASS: TestTestwork (2.61s) === RUN TestWorkdirRoot === RUN TestWorkdirRoot/run_tests === RUN TestWorkdirRoot/run_tests/nothing === PAUSE TestWorkdirRoot/run_tests/nothing === CONT TestWorkdirRoot/run_tests/nothing - testscript.go:558: WORK=/tmp/1265477627/script-nothing + testscript.go:558: WORK=/tmp/186481702/script-nothing # Intentionally empty test script; used to test Params.WorkdirRoot (0.000s) PASS @@ -5659,7 +5692,7 @@ === RUN TestUNIX2DOS --- PASS: TestUNIX2DOS (0.00s) PASS -ok github.com/rogpeppe/go-internal/testscript 4.262s +ok github.com/rogpeppe/go-internal/testscript 10.651s ? github.com/rogpeppe/go-internal/testscript/internal/pty [no test files] === RUN Test === RUN Test/basic @@ -5688,7 +5721,7 @@ --- PASS: TestQuote/bad_data (0.00s) --- PASS: TestQuote/no_final_newline (0.00s) PASS -ok github.com/rogpeppe/go-internal/txtar 0.002s +ok github.com/rogpeppe/go-internal/txtar 0.011s patch -R -p1 -i debian/0001-Allow-TestSimple-cover-to-PASS.patch patching file _build/src/github.com/rogpeppe/go-internal/testscript/testscript.go Hunk #1 succeeded at 1155 (offset 57 lines). @@ -5727,12 +5760,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/4099577/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4099577/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/4166945 and its subdirectories -I: Current time: Thu Aug 28 12:47:59 -12 2025 -I: pbuilder-time-stamp: 1756428479 +I: removing directory /srv/workspace/pbuilder/4099577 and its subdirectories +I: Current time: Thu Oct 1 21:15:23 +14 2026 +I: pbuilder-time-stamp: 1790838923