Diff of the two buildlogs: -- --- b1/build.log 2025-10-13 02:12:11.797714079 +0000 +++ b2/build.log 2025-10-13 02:34:03.715366730 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Oct 12 14:09:48 -12 2025 -I: pbuilder-time-stamp: 1760321388 +I: Current time: Sun Nov 15 22:35:15 +14 2026 +I: pbuilder-time-stamp: 1794731715 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -30,53 +30,85 @@ dpkg-source: info: applying fix-newer-viper.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/4097364/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/206720/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Nov 15 08:36 /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/206720/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/206720/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='179c58aa31ae4147bf8bface4e4a9572' - 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='4097364' - PS1='# ' - PS2='> ' + INVOCATION_ID=a10f9f0dc4ea4b86a1cba01293a81d3e + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=206720 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.Cr6XCZ7m/pbuilderrc_yEAq --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Cr6XCZ7m/b1 --logfile b1/build.log notary_0.7.0+git20240416.9d2b3b3+ds1-4.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.Cr6XCZ7m/pbuilderrc_281I --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Cr6XCZ7m/b2 --logfile b2/build.log notary_0.7.0+git20240416.9d2b3b3+ds1-4.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink04-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/4097364/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/206720/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -410,7 +442,7 @@ Get: 240 http://deb.debian.org/debian unstable/main arm64 protobuf-compiler arm64 3.21.12-14 [84.9 kB] Get: 241 http://deb.debian.org/debian unstable/main arm64 protoc-gen-go-1-5 arm64 1.5.4-2 [1579 kB] Get: 242 http://deb.debian.org/debian unstable/main arm64 protoc-gen-go-grpc arm64 1.66.3-2 [1526 kB] -Fetched 172 MB in 1s (178 MB/s) +Fetched 172 MB in 1s (166 MB/s) Preconfiguring packages ... Selecting previously unselected package golang-golang-x-sys-dev. (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 ... 19958 files and directories currently installed.) @@ -1199,8 +1231,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Oct 13 02:10:28 UTC 2025. -Universal Time is now: Mon Oct 13 02:10:28 UTC 2025. +Local time is now: Sun Nov 15 08:42:53 UTC 2026. +Universal Time is now: Sun Nov 15 08:42:53 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up golang-github-cespare-xxhash-dev (2.3.0-1) ... @@ -1399,7 +1431,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/notary-0.7.0+git20240416.9d2b3b3+ds1/ && 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 > ../notary_0.7.0+git20240416.9d2b3b3+ds1-4_source.changes +I: user script /srv/workspace/pbuilder/206720/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/206720/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/notary-0.7.0+git20240416.9d2b3b3+ds1/ && 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 > ../notary_0.7.0+git20240416.9d2b3b3+ds1-4_source.changes dpkg-buildpackage: info: source package notary dpkg-buildpackage: info: source version 0.7.0+git20240416.9d2b3b3+ds1-4 dpkg-buildpackage: info: source distribution unstable @@ -1684,42 +1720,44 @@ src/github.com/theupdateframework/notary/utils/http_test.go src/github.com/theupdateframework/notary/version/version.go cd _build && go install -trimpath -v -p 12 -tags pkcs11 github.com/theupdateframework/notary github.com/theupdateframework/notary/client github.com/theupdateframework/notary/client/changelist github.com/theupdateframework/notary/cmd/escrow github.com/theupdateframework/notary/cmd/notary github.com/theupdateframework/notary/cmd/notary-server github.com/theupdateframework/notary/cmd/notary-signer github.com/theupdateframework/notary/cryptoservice github.com/theupdateframework/notary/passphrase github.com/theupdateframework/notary/proto github.com/theupdateframework/notary/server github.com/theupdateframework/notary/server/errors github.com/theupdateframework/notary/server/handlers github.com/theupdateframework/notary/server/snapshot github.com/theupdateframework/notary/server/storage github.com/theupdateframework/notary/server/timestamp github.com/theupdateframework/notary/signer github.com/theupdateframework/notary/signer/api github.com/theupdateframework/notary/signer/client github.com/theupdateframework/notary/signer/keydbstore github.com/theupdateframework/notary/storage github.com/theupdateframework/notary/storage/rethinkdb github.com/theupdateframework/notary/trustmanager github.com/theupdateframework/notary/trustmanager/remoteks github.com/theupdateframework/notary/trustmanager/yubikey github.com/theupdateframework/notary/trustpinning github.com/theupdateframework/notary/tuf github.com/theupdateframework/notary/tuf/data github.com/theupdateframework/notary/tuf/signed github.com/theupdateframework/notary/tuf/testutils github.com/theupdateframework/notary/tuf/testutils/interfaces github.com/theupdateframework/notary/tuf/testutils/keys github.com/theupdateframework/notary/tuf/utils github.com/theupdateframework/notary/tuf/validation github.com/theupdateframework/notary/utils github.com/theupdateframework/notary/version -internal/goexperiment +internal/byteorder internal/unsafeheader -internal/profilerecord internal/goarch -internal/msan -internal/byteorder -internal/godebugs +internal/profilerecord internal/coverage/rtcov +internal/goexperiment internal/asan -internal/goos -internal/runtime/syscall -internal/abi -internal/runtime/math +internal/godebugs +internal/msan +math/bits internal/cpu +internal/runtime/syscall +internal/bytealg +internal/runtime/atomic sync/atomic -math/bits +internal/goos unicode/utf8 unicode +internal/abi +internal/runtime/math +internal/runtime/sys +internal/stringslite internal/itoa cmp crypto/internal/fips140/alias +crypto/internal/fips140deps/cpu +math +internal/chacha8rand +crypto/internal/fips140deps/byteorder +crypto/internal/fips140/subtle encoding +internal/runtime/exithook unicode/utf16 log/internal crypto/internal/boring/sig vendor/golang.org/x/crypto/cryptobyte/asn1 -crypto/internal/fips140/subtle -internal/chacha8rand -crypto/internal/fips140deps/byteorder internal/nettrace container/list -math -internal/bytealg -internal/runtime/atomic -crypto/internal/fips140deps/cpu -internal/runtime/sys vendor/golang.org/x/crypto/internal/alias github.com/pelletier/go-toml/v2/internal/characters github.com/spf13/viper/internal/features @@ -1729,268 +1767,266 @@ google.golang.org/grpc/serviceconfig github.com/theupdateframework/notary/version github.com/lib/pq/oid -internal/runtime/exithook -internal/stringslite internal/race -internal/runtime/maps internal/sync +internal/runtime/maps runtime -iter -weak -sync crypto/subtle -runtime/metrics +sync +weak internal/reflectlite +iter +runtime/metrics maps slices -errors -sort internal/testlog internal/singleflight unique -internal/bisect github.com/sagikazarmark/locafero/internal/queue log/slog/internal/buffer +internal/bisect google.golang.org/protobuf/internal/pragma -internal/oserror -strconv -io +sort +errors runtime/cgo -math/rand/v2 +io +strconv +internal/oserror path vendor/golang.org/x/net/dns/dnsmessage -syscall +math/rand/v2 github.com/go-viper/mapstructure/internal/errors google.golang.org/grpc/internal/buffer +syscall internal/godebug hash -bytes +github.com/beorn7/perks/quantile +crypto +internal/syscall/unix +time +internal/syscall/execenv strings crypto/internal/randutil internal/saferio -crypto -github.com/beorn7/perks/quantile -crypto/internal/fips140deps/godebug github.com/prometheus/client_golang/prometheus/promhttp/internal -net/netip -math/rand +bytes reflect -vendor/golang.org/x/text/transform +crypto/internal/fips140deps/godebug +math/rand +net/netip hash/crc32 -golang.org/x/text/transform hash/fnv +hash/adler32 +golang.org/x/crypto/blowfish +encoding/base32 crypto/internal/fips140 crypto/internal/impl -hash/adler32 -bufio regexp/syntax net/http/internal/ascii -crypto/internal/fips140/sha256 -crypto/internal/fips140/sha3 -crypto/internal/fips140/sha512 -crypto/tls/internal/fips140tls -golang.org/x/text/runes html github.com/munnerz/goautoneg -internal/syscall/unix -internal/syscall/execenv -time -crypto/sha3 -golang.org/x/crypto/blowfish -encoding/base32 +net/http/internal/testcert +crypto/tls/internal/fips140tls +crypto/internal/fips140/sha3 +crypto/internal/fips140/sha512 +crypto/internal/fips140/sha256 +bufio +vendor/golang.org/x/text/transform +golang.org/x/text/transform github.com/dvsekhvalnov/jose2go/padding +crypto/sha3 +golang.org/x/text/runes crypto/internal/fips140/hmac -net/http/internal/testcert crypto/internal/fips140hash crypto/internal/fips140/check -crypto/internal/fips140/edwards25519/field crypto/internal/fips140/aes -crypto/internal/fips140/bigmod +crypto/internal/fips140/edwards25519/field +crypto/internal/fips140/nistec/fiat crypto/internal/fips140/hkdf crypto/internal/fips140/tls12 -crypto/internal/fips140/nistec/fiat -crypto/internal/fips140/tls13 -crypto/internal/fips140/edwards25519 +crypto/internal/fips140/bigmod regexp +crypto/internal/fips140/edwards25519 io/fs internal/poll context google.golang.org/grpc/backoff google.golang.org/grpc/keepalive +crypto/internal/fips140/tls13 github.com/bugsnag/bugsnag-go/headers -github.com/jinzhu/inflection +internal/filepathlite +github.com/spf13/afero/internal/common +embed golang.org/x/net/context google.golang.org/grpc/internal/backoff google.golang.org/grpc/internal/grpcsync gopkg.in/rethinkdb/rethinkdb-go.v6/vendor/gopkg.in/cenkalti/backoff.v2 -internal/filepathlite -github.com/spf13/afero/internal/common -embed -crypto/internal/fips140/nistec google.golang.org/protobuf/internal/editiondefaults +crypto/internal/fips140/nistec os -encoding/binary -internal/fmtsort -encoding/base64 -vendor/golang.org/x/crypto/internal/poly1305 -golang.org/x/sys/unix -filippo.io/edwards25519/field -github.com/cespare/xxhash -crypto/internal/sysrand -fmt +github.com/jinzhu/inflection path/filepath +crypto/internal/sysrand io/ioutil google.golang.org/grpc/internal/envconfig -google.golang.org/protobuf/internal/detrand github.com/bugsnag/bugsnag-go/device -encoding/pem os/signal -github.com/dvsekhvalnov/jose2go/base64url -filippo.io/edwards25519 github.com/prometheus/procfs/internal/util -net -crypto/internal/entropy -github.com/dvsekhvalnov/jose2go/compact internal/sysinfo +crypto/internal/entropy crypto/internal/fips140/drbg os/exec github.com/spf13/afero/mem crypto/internal/fips140only -crypto/internal/fips140/ecdsa -crypto/internal/fips140/rsa -crypto/internal/fips140/ed25519 crypto/internal/fips140/aes/gcm crypto/internal/fips140/ecdh +crypto/internal/fips140/ecdsa +crypto/internal/fips140/ed25519 +crypto/internal/fips140/rsa crypto/internal/fips140/mlkem -crypto/md5 crypto/rc4 -crypto/cipher +crypto/md5 github.com/theupdateframework/notary +crypto/cipher +encoding/binary +internal/fmtsort github.com/bugsnag/panicwrap -github.com/docker/go/canonical/json -math/big +crypto/internal/boring +crypto/des +fmt +crypto/sha512 +crypto/aes +crypto/hmac +crypto/sha1 +crypto/sha256 +crypto/ecdh +golang.org/x/crypto/pbkdf2 +net +golang.org/x/sys/unix +vendor/golang.org/x/crypto/chacha20 +vendor/golang.org/x/crypto/internal/poly1305 +encoding/base64 +google.golang.org/protobuf/internal/detrand +github.com/cespare/xxhash +filippo.io/edwards25519/field log +math/big encoding/hex -encoding/json net/url -mime mime/quotedprintable compress/flate vendor/golang.org/x/text/unicode/norm +encoding/json +github.com/docker/go/canonical/json +encoding/pem +mime vendor/golang.org/x/text/unicode/bidi -crypto/internal/boring -crypto/des -crypto/ecdh -crypto/sha512 -crypto/sha256 -crypto/aes -crypto/sha1 -crypto/hmac -vendor/golang.org/x/crypto/chacha20 -golang.org/x/crypto/pbkdf2 -compress/gzip -vendor/golang.org/x/text/secure/bidirule +vendor/golang.org/x/crypto/chacha20poly1305 vendor/golang.org/x/net/http2/hpack net/http/internal github.com/miekg/pkcs11 flag encoding/csv +compress/gzip +vendor/golang.org/x/text/secure/bidirule golang.org/x/text/unicode/norm -vendor/golang.org/x/crypto/chacha20poly1305 github.com/spf13/cast/internal text/template/parse github.com/subosito/gotenv github.com/pelletier/go-toml/v2/internal/danger +github.com/pelletier/go-toml/v2/unstable go.yaml.in/yaml/v3 +github.com/pelletier/go-toml/v2/internal/tracker +vendor/golang.org/x/net/idna google.golang.org/protobuf/internal/errors -github.com/pelletier/go-toml/v2/unstable google.golang.org/protobuf/encoding/protowire go/token -google.golang.org/protobuf/reflect/protoreflect -vendor/golang.org/x/net/idna google.golang.org/protobuf/internal/version golang.org/x/net/internal/timeseries +google.golang.org/protobuf/reflect/protoreflect +text/tabwriter crypto/rand crypto/elliptic crypto/internal/boring/bbig -github.com/docker/distribution/uuid encoding/asn1 -crypto/rsa crypto/dsa -github.com/sirupsen/logrus +google.golang.org/grpc/attributes +github.com/docker/distribution/uuid +crypto/rsa crypto/ed25519 -github.com/theupdateframework/notary/tuf/validation -golang.org/x/crypto/ed25519 crypto/internal/hpke -github.com/fsnotify/fsnotify/internal +golang.org/x/crypto/ed25519 text/template +google.golang.org/grpc/internal/idle +golang.org/x/text/unicode/bidi +golang.org/x/net/http2/hpack +github.com/theupdateframework/notary/tuf/validation github.com/spf13/viper/internal/encoding/json -github.com/pelletier/go-toml/v2/internal/tracker +github.com/pelletier/go-toml/v2 log/slog -github.com/fsnotify/fsnotify +google.golang.org/grpc/grpclog/internal +github.com/pkg/errors +vendor/golang.org/x/crypto/cryptobyte +crypto/x509/pkix google.golang.org/protobuf/internal/descfmt google.golang.org/protobuf/internal/descopts google.golang.org/protobuf/internal/strs google.golang.org/protobuf/internal/encoding/messageset -github.com/pelletier/go-toml/v2 -google.golang.org/protobuf/internal/encoding/text -vendor/golang.org/x/crypto/cryptobyte -crypto/x509/pkix google.golang.org/protobuf/internal/genid +google.golang.org/protobuf/internal/encoding/text google.golang.org/protobuf/internal/order google.golang.org/protobuf/reflect/protoregistry google.golang.org/protobuf/runtime/protoiface -google.golang.org/protobuf/internal/protolazy -text/tabwriter -google.golang.org/grpc/grpclog/internal -google.golang.org/protobuf/internal/encoding/defval -google.golang.org/grpc/attributes -google.golang.org/protobuf/internal/encoding/json google.golang.org/grpc/grpclog -google.golang.org/grpc/internal/idle -golang.org/x/text/unicode/bidi -google.golang.org/protobuf/proto -golang.org/x/net/http2/hpack -github.com/pkg/errors crypto/ecdsa -google.golang.org/grpc/connectivity -google.golang.org/grpc/internal/grpclog -html/template +google.golang.org/protobuf/internal/protolazy +google.golang.org/protobuf/proto github.com/spf13/viper/internal/encoding/yaml +google.golang.org/protobuf/internal/encoding/json +golang.org/x/text/secure/bidirule +golang.org/x/net/idna github.com/bugsnag/bugsnag-go/errors +google.golang.org/grpc/connectivity +google.golang.org/protobuf/internal/encoding/defval database/sql/driver +html/template +google.golang.org/grpc/internal/grpclog +github.com/spf13/viper/internal/encoding/toml compress/zlib +google.golang.org/protobuf/encoding/prototext +filippo.io/edwards25519 github.com/opencontainers/go-digest github.com/opencontainers/image-spec/specs-go +google.golang.org/protobuf/encoding/protodelim github.com/prometheus/procfs/internal/fs +google.golang.org/protobuf/internal/filedesc runtime/debug -golang.org/x/term +golang.org/x/crypto/bcrypt github.com/distribution/reference -github.com/spf13/viper/internal/encoding/toml database/sql github.com/opencontainers/image-spec/specs-go/v1 -golang.org/x/crypto/bcrypt -golang.org/x/text/secure/bidirule +github.com/sirupsen/logrus +github.com/fsnotify/fsnotify/internal +golang.org/x/term github.com/lib/pq/scram -google.golang.org/protobuf/internal/filedesc -google.golang.org/protobuf/encoding/prototext -golang.org/x/net/idna -google.golang.org/protobuf/encoding/protodelim os/user go/scanner -github.com/theupdateframework/notary/passphrase github.com/hailocab/go-hostpool github.com/opentracing/opentracing-go/log -gopkg.in/rethinkdb/rethinkdb-go.v6/encoding +github.com/fsnotify/fsnotify +github.com/spf13/cast go/ast +gopkg.in/rethinkdb/rethinkdb-go.v6/encoding gopkg.in/rethinkdb/rethinkdb-go.v6/types -github.com/spf13/cast +github.com/theupdateframework/notary/passphrase internal/profile runtime/pprof runtime/trace -github.com/dvsekhvalnov/jose2go/arrays +github.com/dvsekhvalnov/jose2go/base64url github.com/davecgh/go-spew/spew +github.com/dvsekhvalnov/jose2go/arrays github.com/dvsekhvalnov/jose2go/aes +github.com/dvsekhvalnov/jose2go/compact github.com/dvsekhvalnov/jose2go/kdf github.com/pmezard/go-difflib/difflib gopkg.in/yaml.v3 @@ -2000,78 +2036,77 @@ google.golang.org/protobuf/encoding/protojson github.com/jinzhu/gorm google.golang.org/protobuf/internal/impl -github.com/stretchr/testify/assert/yaml +crypto/x509 net/textproto vendor/golang.org/x/net/http/httpproxy -crypto/x509 github.com/go-viper/mapstructure -google.golang.org/grpc/internal -google.golang.org/grpc/internal/syscall -google.golang.org/grpc/internal/resolver/dns/internal github.com/spf13/pflag -github.com/google/uuid -github.com/prometheus/procfs +google.golang.org/grpc/internal +mime/multipart +vendor/golang.org/x/net/http/httpguts google.golang.org/grpc/experimental/stats google.golang.org/grpc/metadata google.golang.org/grpc/codes google.golang.org/grpc/mem +golang.org/x/net/http/httpguts google.golang.org/grpc/internal/grpcutil google.golang.org/grpc/internal/balancerload -mime/multipart -vendor/golang.org/x/net/http/httpguts google.golang.org/grpc/stats -golang.org/x/net/http/httpguts +google.golang.org/grpc/internal/syscall google.golang.org/grpc/tap -google.golang.org/grpc/internal/stats google.golang.org/grpc/encoding +google.golang.org/grpc/internal/resolver/dns/internal +github.com/google/uuid +google.golang.org/grpc/internal/stats +github.com/prometheus/procfs +github.com/stretchr/testify/assert/yaml +github.com/spf13/cobra github.com/dvsekhvalnov/jose2go/keys/ecc -github.com/theupdateframework/notary/tuf/data crypto/tls +github.com/theupdateframework/notary/tuf/data github.com/dvsekhvalnov/jose2go -github.com/spf13/cobra github.com/theupdateframework/notary/client/changelist github.com/theupdateframework/notary/tuf/utils google.golang.org/protobuf/internal/filetype google.golang.org/protobuf/runtime/protoimpl +google.golang.org/protobuf/types/known/emptypb google.golang.org/protobuf/protoadapt google.golang.org/protobuf/types/known/durationpb -google.golang.org/protobuf/types/known/emptypb google.golang.org/protobuf/types/known/timestamppb google.golang.org/protobuf/types/known/anypb google.golang.org/protobuf/types/descriptorpb +github.com/golang/protobuf/ptypes/empty google.golang.org/grpc/encoding/proto google.golang.org/grpc/internal/pretty -github.com/golang/protobuf/ptypes/empty -github.com/golang/protobuf/ptypes/duration google.golang.org/genproto/googleapis/rpc/status +github.com/golang/protobuf/ptypes/duration github.com/golang/protobuf/ptypes/timestamp github.com/prometheus/client_model/go -google.golang.org/grpc/binarylog/grpc_binarylog_v1 google.golang.org/grpc/internal/status +google.golang.org/grpc/binarylog/grpc_binarylog_v1 github.com/prometheus/common/model google.golang.org/grpc/status -google.golang.org/grpc/internal/binarylog -google.golang.org/protobuf/internal/editionssupport -google.golang.org/protobuf/types/gofeaturespb -google.golang.org/protobuf/reflect/protodesc -github.com/prometheus/client_golang/prometheus/internal -google.golang.org/grpc/internal/credentials -github.com/docker/libtrust net/http/httptrace +google.golang.org/grpc/internal/credentials github.com/docker/go-connections/tlsconfig github.com/go-sql-driver/mysql +github.com/docker/libtrust github.com/lib/pq +google.golang.org/grpc/internal/binarylog google.golang.org/grpc/credentials net/http -github.com/golang/protobuf/proto +google.golang.org/protobuf/internal/editionssupport +google.golang.org/protobuf/types/gofeaturespb +github.com/prometheus/client_golang/prometheus/internal +google.golang.org/grpc/internal/channelz google.golang.org/grpc/resolver google.golang.org/grpc/credentials/insecure -google.golang.org/grpc/internal/channelz google.golang.org/grpc/peer +google.golang.org/protobuf/reflect/protodesc google.golang.org/grpc/internal/metadata google.golang.org/grpc/internal/resolver/passthrough -google.golang.org/grpc/internal/transport/networktype google.golang.org/grpc/balancer/grpclb/state +google.golang.org/grpc/internal/transport/networktype google.golang.org/grpc/internal/resolver/unix google.golang.org/grpc/internal/resolver/dns google.golang.org/grpc/resolver/dns @@ -2081,79 +2116,80 @@ google.golang.org/grpc/balancer/pickfirst google.golang.org/grpc/internal/serviceconfig google.golang.org/grpc/internal/resolver -google.golang.org/grpc/internal/balancer/gracefulswitch google.golang.org/grpc/balancer/roundrobin +google.golang.org/grpc/internal/balancer/gracefulswitch +github.com/golang/protobuf/proto gopkg.in/rethinkdb/rethinkdb-go.v6/ql2 github.com/theupdateframework/notary/storage +github.com/spf13/afero golang.org/x/net/trace +golang.org/x/net/http2 +net/http/httputil github.com/bugsnag/bugsnag-go/sessions -github.com/docker/distribution/registry/api/errcode -github.com/gorilla/mux -github.com/spf13/afero github.com/docker/distribution/registry/auth github.com/docker/distribution -golang.org/x/net/http2 -github.com/docker/distribution/registry/client/transport -net/http/httputil github.com/docker/distribution/registry/client/auth/challenge +github.com/gorilla/mux +github.com/docker/distribution/registry/client/transport +github.com/docker/distribution/registry/api/errcode expvar github.com/prometheus/common/expfmt -github.com/bugsnag/bugsnag-go github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header github.com/theupdateframework/notary/server/errors -github.com/docker/distribution/context -github.com/docker/distribution/registry/api/v2 github.com/opentracing/opentracing-go -github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil -github.com/theupdateframework/notary/trustmanager net/http/pprof +github.com/bugsnag/bugsnag-go +github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil +github.com/docker/distribution/context +github.com/docker/distribution/registry/api/v2 github.com/opentracing/opentracing-go/ext +gopkg.in/rethinkdb/rethinkdb-go.v6 +github.com/theupdateframework/notary/trustmanager net/http/httptest -github.com/docker/distribution/health -github.com/docker/distribution/registry/auth/htpasswd github.com/theupdateframework/notary/cryptoservice github.com/theupdateframework/notary/tuf/signed +github.com/docker/distribution/health +github.com/docker/distribution/registry/auth/htpasswd github.com/docker/distribution/registry/auth/token -github.com/Shopify/logrus-bugsnag -gopkg.in/rethinkdb/rethinkdb-go.v6 -github.com/theupdateframework/notary/vendor/github.com/prometheus/client_golang/prometheus github.com/prometheus/client_golang/prometheus -github.com/stretchr/testify/assert +github.com/theupdateframework/notary/vendor/github.com/prometheus/client_golang/prometheus github.com/theupdateframework/notary/trustmanager/yubikey github.com/theupdateframework/notary/trustpinning github.com/theupdateframework/notary/tuf/testutils/keys +github.com/Shopify/logrus-bugsnag +github.com/stretchr/testify/assert +github.com/theupdateframework/notary/tuf github.com/sagikazarmark/locafero github.com/spf13/viper -github.com/theupdateframework/notary/tuf -github.com/theupdateframework/notary/client github.com/theupdateframework/notary/tuf/testutils -github.com/stretchr/testify/require +github.com/theupdateframework/notary/client github.com/theupdateframework/notary/utils -google.golang.org/grpc/internal/transport +github.com/stretchr/testify/require github.com/prometheus/client_golang/prometheus/promhttp +google.golang.org/grpc/internal/transport github.com/theupdateframework/notary/storage/rethinkdb github.com/theupdateframework/notary/tuf/testutils/interfaces -github.com/theupdateframework/notary/signer/keydbstore github.com/theupdateframework/notary/server/storage +github.com/theupdateframework/notary/signer/keydbstore github.com/docker/go-metrics +github.com/docker/distribution/metrics github.com/theupdateframework/notary/server/snapshot github.com/theupdateframework/notary/server/timestamp -github.com/docker/distribution/metrics github.com/docker/distribution/registry/storage/cache github.com/theupdateframework/notary/server/handlers -google.golang.org/grpc github.com/docker/distribution/registry/storage/cache/memory github.com/docker/distribution/registry/client github.com/theupdateframework/notary/server +google.golang.org/grpc github.com/docker/distribution/registry/client/auth github.com/theupdateframework/notary/cmd/notary github.com/theupdateframework/notary/trustmanager/remoteks github.com/theupdateframework/notary/proto google.golang.org/grpc/health/grpc_health_v1 -github.com/theupdateframework/notary/signer -github.com/theupdateframework/notary/signer/client google.golang.org/grpc/health github.com/theupdateframework/notary/cmd/escrow +github.com/theupdateframework/notary/signer/client +github.com/theupdateframework/notary/signer github.com/theupdateframework/notary/signer/api github.com/theupdateframework/notary/cmd/notary-server github.com/theupdateframework/notary/cmd/notary-signer @@ -2164,10 +2200,10 @@ === RUN Test0Dot1Migration --- PASS: Test0Dot1Migration (0.01s) === RUN Test0Dot3Migration ---- PASS: Test0Dot3Migration (0.00s) +--- PASS: Test0Dot3Migration (0.01s) === RUN Test0Dot1RepoFormat -time="2025-10-12T14:11:10-12:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" ---- PASS: Test0Dot1RepoFormat (0.09s) +time="2026-11-15T22:54:09+14:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" +--- PASS: Test0Dot1RepoFormat (0.11s) === RUN Test0Dot3RepoFormat backwards_compatibility_test.go:248: Disable FTBFS timebomb. https://bugs.debian.org/1078632 --- SKIP: Test0Dot3RepoFormat (0.00s) @@ -2189,23 +2225,23 @@ === RUN TestMatchKeyIDsWithPublicKeys --- PASS: TestMatchKeyIDsWithPublicKeys (0.00s) === RUN TestInitRepositoryNeedsRemoteTimestampKey ---- PASS: TestInitRepositoryNeedsRemoteTimestampKey (0.01s) +--- PASS: TestInitRepositoryNeedsRemoteTimestampKey (0.00s) === RUN TestInitRepositoryNeedsRemoteSnapshotKey --- PASS: TestInitRepositoryNeedsRemoteSnapshotKey (0.00s) === RUN TestInitRepoServerOnlyManagesTimestampKey ---- PASS: TestInitRepoServerOnlyManagesTimestampKey (0.05s) +--- PASS: TestInitRepoServerOnlyManagesTimestampKey (0.09s) === RUN TestInitRepoServerManagesTimestampAndSnapshotKeys ---- PASS: TestInitRepoServerManagesTimestampAndSnapshotKeys (0.04s) +--- PASS: TestInitRepoServerManagesTimestampAndSnapshotKeys (0.07s) === RUN TestInitRepoAttemptsExceeded ---- PASS: TestInitRepoAttemptsExceeded (0.02s) +--- PASS: TestInitRepoAttemptsExceeded (0.03s) === RUN TestInitRepoPasswordInvalid ---- PASS: TestInitRepoPasswordInvalid (0.00s) +--- PASS: TestInitRepoPasswordInvalid (0.01s) === RUN TestAddTargetToTargetRoleByDefault ---- PASS: TestAddTargetToTargetRoleByDefault (0.01s) +--- PASS: TestAddTargetToTargetRoleByDefault (0.02s) === RUN TestAddTargetToSpecifiedValidRoles ---- PASS: TestAddTargetToSpecifiedValidRoles (0.01s) +--- PASS: TestAddTargetToSpecifiedValidRoles (0.03s) === RUN TestAddTargetToSpecifiedInvalidRoles ---- PASS: TestAddTargetToSpecifiedInvalidRoles (0.01s) +--- PASS: TestAddTargetToSpecifiedInvalidRoles (0.02s) === RUN TestAddTargetWithInvalidTarget --- PASS: TestAddTargetWithInvalidTarget (0.01s) === RUN TestAddTargetErrorWritingChanges @@ -2213,13 +2249,13 @@ === RUN TestRemoveTargetToTargetRoleByDefault --- PASS: TestRemoveTargetToTargetRoleByDefault (0.01s) === RUN TestRemoveTargetFromSpecifiedValidRoles ---- PASS: TestRemoveTargetFromSpecifiedValidRoles (0.01s) +--- PASS: TestRemoveTargetFromSpecifiedValidRoles (0.02s) === RUN TestRemoveTargetToSpecifiedInvalidRoles ---- PASS: TestRemoveTargetToSpecifiedInvalidRoles (0.01s) +--- PASS: TestRemoveTargetToSpecifiedInvalidRoles (0.02s) === RUN TestRemoveTargetErrorWritingChanges --- PASS: TestRemoveTargetErrorWritingChanges (0.01s) === RUN TestListTarget ---- PASS: TestListTarget (0.22s) +--- PASS: TestListTarget (0.26s) === RUN TestListTargetRestrictsDelegationPaths --- PASS: TestListTargetRestrictsDelegationPaths (0.03s) === RUN TestValidateRootKey @@ -2227,54 +2263,54 @@ === RUN TestGetChangelist --- PASS: TestGetChangelist (0.02s) === RUN TestPublishBareRepo ---- PASS: TestPublishBareRepo (0.22s) +--- PASS: TestPublishBareRepo (0.27s) === RUN TestPublishUninitializedRepo -time="2025-10-12T14:11:11-12:00" level=info msg="No TUF data found locally or remotely - initializing repository docker.com/notary for the first time" ---- PASS: TestPublishUninitializedRepo (0.01s) +time="2026-11-15T22:54:10+14:00" level=info msg="No TUF data found locally or remotely - initializing repository docker.com/notary for the first time" +--- PASS: TestPublishUninitializedRepo (0.02s) === RUN TestPublishClientHasSnapshotKey ---- PASS: TestPublishClientHasSnapshotKey (0.26s) +--- PASS: TestPublishClientHasSnapshotKey (0.23s) === RUN TestPublishAfterInitServerHasSnapshotKey ---- PASS: TestPublishAfterInitServerHasSnapshotKey (0.19s) +--- PASS: TestPublishAfterInitServerHasSnapshotKey (0.21s) === RUN TestPublishAfterPullServerHasSnapshotKey ---- PASS: TestPublishAfterPullServerHasSnapshotKey (0.09s) +--- PASS: TestPublishAfterPullServerHasSnapshotKey (0.08s) === RUN TestPublishNoOneHasSnapshotKey ---- PASS: TestPublishNoOneHasSnapshotKey (0.05s) +--- PASS: TestPublishNoOneHasSnapshotKey (0.07s) === RUN TestPublishSnapshotCorrupt ---- PASS: TestPublishSnapshotCorrupt (0.10s) +--- PASS: TestPublishSnapshotCorrupt (0.12s) === RUN TestPublishTargetsCorrupt ---- PASS: TestPublishTargetsCorrupt (0.05s) +--- PASS: TestPublishTargetsCorrupt (0.07s) === RUN TestPublishRootCorrupt -time="2025-10-12T14:11:12-12:00" level=error msg="Could not publish Repository since we could not update: invalid character 'h' in literal true (expecting 'r')" -time="2025-10-12T14:11:12-12:00" level=error msg="Could not publish Repository since we could not update: invalid character 'h' in literal true (expecting 'r')" +time="2026-11-15T22:54:10+14:00" level=error msg="Could not publish Repository since we could not update: invalid character 'h' in literal true (expecting 'r')" +time="2026-11-15T22:54:10+14:00" level=error msg="Could not publish Repository since we could not update: invalid character 'h' in literal true (expecting 'r')" --- PASS: TestPublishRootCorrupt (0.03s) === RUN TestPublishSnapshotLocalKeysCreatedFirst --- PASS: TestPublishSnapshotLocalKeysCreatedFirst (0.00s) === RUN TestPublishDelegations ---- PASS: TestPublishDelegations (0.08s) +--- PASS: TestPublishDelegations (0.12s) === RUN TestPublishDelegationsX509 ---- PASS: TestPublishDelegationsX509 (0.07s) +--- PASS: TestPublishDelegationsX509 (0.10s) === RUN TestPublishTargetsDelegationScopeFailIfNoKeys -time="2025-10-12T14:11:12-12:00" level=error msg="couldn't add target to targets/a/b: tuf: invalid role targets/a/b. delegation does not exist" -time="2025-10-12T14:11:12-12:00" level=error msg="couldn't add target to targets/a/b: tuf: invalid role targets/a/b. delegation does not exist" ---- PASS: TestPublishTargetsDelegationScopeFailIfNoKeys (0.06s) +time="2026-11-15T22:54:11+14:00" level=error msg="couldn't add target to targets/a/b: tuf: invalid role targets/a/b. delegation does not exist" +time="2026-11-15T22:54:11+14:00" level=error msg="couldn't add target to targets/a/b: tuf: invalid role targets/a/b. delegation does not exist" +--- PASS: TestPublishTargetsDelegationScopeFailIfNoKeys (0.09s) === RUN TestPublishTargetsDelegationSuccessLocallyHasRoles --- PASS: TestPublishTargetsDelegationSuccessLocallyHasRoles (0.08s) === RUN TestPublishTargetsDelegationNoTargetsKeyNeeded --- PASS: TestPublishTargetsDelegationNoTargetsKeyNeeded (0.08s) === RUN TestPublishTargetsDelegationSuccessNeedsToDownloadRoles ---- PASS: TestPublishTargetsDelegationSuccessNeedsToDownloadRoles (0.08s) +--- PASS: TestPublishTargetsDelegationSuccessNeedsToDownloadRoles (0.11s) === RUN TestPublishTargetsDelegationFromTwoRepos ---- PASS: TestPublishTargetsDelegationFromTwoRepos (0.06s) +--- PASS: TestPublishTargetsDelegationFromTwoRepos (0.08s) === RUN TestPublishRemoveDelegationKeyFromDelegationRole -time="2025-10-12T14:11:12-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:12-12:00" level=error msg="couldn't add target to targets/a: could not find necessary signing keys, at least one of these keys must be available: 4cd0b32f19bad6e276715cd1ca2c0ca2aa6baa5e9f51df09f0ca73b4c18fa0c8" ---- PASS: TestPublishRemoveDelegationKeyFromDelegationRole (0.04s) +time="2026-11-15T22:54:11+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:11+14:00" level=error msg="couldn't add target to targets/a: could not find necessary signing keys, at least one of these keys must be available: 7c6e06e068611790e7d7bb69fd8462b7f1bc6a7a374832022849a003b87355b4" +--- PASS: TestPublishRemoveDelegationKeyFromDelegationRole (0.05s) === RUN TestPublishRemoveDelegation -time="2025-10-12T14:11:12-12:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:12-12:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:12-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:12-12:00" level=error msg="couldn't add target to targets/a: could not find necessary signing keys, at least one of these keys must be available: " ---- PASS: TestPublishRemoveDelegation (0.04s) +time="2026-11-15T22:54:11+14:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:11+14:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:11+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:11+14:00" level=error msg="couldn't add target to targets/a: could not find necessary signing keys, at least one of these keys must be available: " +--- PASS: TestPublishRemoveDelegation (0.05s) === RUN TestPublishSucceedsDespiteDelegationCorrupt --- PASS: TestPublishSucceedsDespiteDelegationCorrupt (0.05s) === RUN TestRotateKeyInvalidRole @@ -2286,213 +2322,213 @@ === RUN TestRemoteRotationNoRootKey --- PASS: TestRemoteRotationNoRootKey (0.03s) === RUN TestRemoteRotationNoInit -time="2025-10-12T14:11:13-12:00" level=info msg="No TUF data found locally or remotely - initializing repository docker.com/notary for the first time" ---- PASS: TestRemoteRotationNoInit (0.03s) +time="2026-11-15T22:54:11+14:00" level=info msg="No TUF data found locally or remotely - initializing repository docker.com/notary for the first time" +--- PASS: TestRemoteRotationNoInit (0.02s) === RUN TestRotateBeforePublishFromRemoteKeyToLocalKey --- PASS: TestRotateBeforePublishFromRemoteKeyToLocalKey (0.09s) === RUN TestRotateKeyAfterPublishNoServerManagementChange ---- PASS: TestRotateKeyAfterPublishNoServerManagementChange (0.27s) +--- PASS: TestRotateKeyAfterPublishNoServerManagementChange (0.25s) === RUN TestRotateKeyAfterPublishServerManagementChange ---- PASS: TestRotateKeyAfterPublishServerManagementChange (0.33s) +--- PASS: TestRotateKeyAfterPublishServerManagementChange (0.25s) === RUN TestRotateRootKey ---- PASS: TestRotateRootKey (0.08s) +--- PASS: TestRotateRootKey (0.11s) === RUN TestRotateRootMultiple ---- PASS: TestRotateRootMultiple (0.15s) +--- PASS: TestRotateRootMultiple (0.12s) === RUN TestRotateRootKeyProvided ---- PASS: TestRotateRootKeyProvided (0.10s) +--- PASS: TestRotateRootKeyProvided (0.12s) === RUN TestRotateRootKeyLegacySupport ---- PASS: TestRotateRootKeyLegacySupport (0.12s) +--- PASS: TestRotateRootKeyLegacySupport (0.15s) === RUN TestRemoteServerUnavailableNoLocalCache -time="2025-10-12T14:11:14-12:00" level=error msg="Could not publish Repository since we could not update: unable to reach trust server at this time: 500." +time="2026-11-15T22:54:12+14:00" level=error msg="Could not publish Repository since we could not update: unable to reach trust server at this time: 500." --- PASS: TestRemoteServerUnavailableNoLocalCache (0.00s) === RUN TestAddDelegationChangefileValid ---- PASS: TestAddDelegationChangefileValid (0.01s) +--- PASS: TestAddDelegationChangefileValid (0.02s) === RUN TestAddDelegationChangefileApplicable --- PASS: TestAddDelegationChangefileApplicable (0.01s) === RUN TestAddDelegationErrorWritingChanges ---- PASS: TestAddDelegationErrorWritingChanges (0.01s) +--- PASS: TestAddDelegationErrorWritingChanges (0.02s) === RUN TestRemoveDelegationChangefileValid ---- PASS: TestRemoveDelegationChangefileValid (0.01s) +--- PASS: TestRemoveDelegationChangefileValid (0.03s) === RUN TestRemoveDelegationChangefileApplicable -time="2025-10-12T14:11:14-12:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:14-12:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" ---- PASS: TestRemoveDelegationChangefileApplicable (0.01s) +time="2026-11-15T22:54:13+14:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:13+14:00" level=warning msg="role targets/a has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +--- PASS: TestRemoveDelegationChangefileApplicable (0.03s) === RUN TestClearAllPathsDelegationChangefileApplicable --- PASS: TestClearAllPathsDelegationChangefileApplicable (0.02s) === RUN TestFullAddDelegationChangefileApplicable ---- PASS: TestFullAddDelegationChangefileApplicable (0.01s) +--- PASS: TestFullAddDelegationChangefileApplicable (0.02s) === RUN TestFullRemoveDelegationChangefileApplicable ---- PASS: TestFullRemoveDelegationChangefileApplicable (0.01s) +--- PASS: TestFullRemoveDelegationChangefileApplicable (0.03s) === RUN TestRemoveDelegationErrorWritingChanges ---- PASS: TestRemoveDelegationErrorWritingChanges (0.01s) +--- PASS: TestRemoveDelegationErrorWritingChanges (0.02s) === RUN TestClientInvalidURL --- PASS: TestClientInvalidURL (0.00s) === RUN TestPublishTargetsDelegationCanUseUserKeyWithArbitraryRole ---- PASS: TestPublishTargetsDelegationCanUseUserKeyWithArbitraryRole (0.17s) +--- PASS: TestPublishTargetsDelegationCanUseUserKeyWithArbitraryRole (0.24s) === RUN TestDeleteRepo ---- PASS: TestDeleteRepo (0.01s) +--- PASS: TestDeleteRepo (0.02s) === RUN TestDeleteRemoteRepo ---- PASS: TestDeleteRemoteRepo (0.05s) +--- PASS: TestDeleteRemoteRepo (0.06s) === RUN TestListRoles ---- PASS: TestListRoles (0.11s) +--- PASS: TestListRoles (0.12s) === RUN TestGetAllTargetInfo ---- PASS: TestGetAllTargetInfo (0.05s) +--- PASS: TestGetAllTargetInfo (0.06s) === RUN TestUpdateSucceedsEvenIfCannotWriteNewRepo -time="2025-10-12T14:11:14-12:00" level=error msg="could not save root to cache: Non-writable" ---- PASS: TestUpdateSucceedsEvenIfCannotWriteNewRepo (0.04s) +time="2026-11-15T22:54:13+14:00" level=error msg="could not save root to cache: Non-writable" +--- PASS: TestUpdateSucceedsEvenIfCannotWriteNewRepo (0.06s) === RUN TestUpdateSucceedsEvenIfCannotWriteExistingRepo ---- PASS: TestUpdateSucceedsEvenIfCannotWriteExistingRepo (0.22s) +--- PASS: TestUpdateSucceedsEvenIfCannotWriteExistingRepo (0.27s) === RUN TestUpdateInOfflineMode -time="2025-10-12T14:11:15-12:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" -time="2025-10-12T14:11:15-12:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" ---- PASS: TestUpdateInOfflineMode (0.02s) +time="2026-11-15T22:54:14+14:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" +time="2026-11-15T22:54:14+14:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" +--- PASS: TestUpdateInOfflineMode (0.03s) === RUN TestUpdateReplacesCorruptOrMissingMetadata -time="2025-10-12T14:11:15-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:15-12:00" level=error msg="Metadata for root expired" ---- PASS: TestUpdateReplacesCorruptOrMissingMetadata (0.46s) +time="2026-11-15T22:54:14+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:14+14:00" level=error msg="Metadata for root expired" +--- PASS: TestUpdateReplacesCorruptOrMissingMetadata (0.88s) === RUN TestUpdateFailsIfServerRootKeyChangedWithoutMultiSign -time="2025-10-12T14:11:15-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:15-12:00" level=error msg="Metadata for root expired" ---- PASS: TestUpdateFailsIfServerRootKeyChangedWithoutMultiSign (0.04s) +time="2026-11-15T22:54:14+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:14+14:00" level=error msg="Metadata for root expired" +--- PASS: TestUpdateFailsIfServerRootKeyChangedWithoutMultiSign (0.10s) === RUN TestUpdateRemoteRootNotExistNoLocalCache ---- PASS: TestUpdateRemoteRootNotExistNoLocalCache (0.01s) +--- PASS: TestUpdateRemoteRootNotExistNoLocalCache (0.03s) === RUN TestUpdateRemoteRootNotExistCanUseLocalCache ---- PASS: TestUpdateRemoteRootNotExistCanUseLocalCache (0.03s) +--- PASS: TestUpdateRemoteRootNotExistCanUseLocalCache (0.07s) === RUN TestUpdateRemoteRootNotExistCannotUseLocalCache ---- PASS: TestUpdateRemoteRootNotExistCannotUseLocalCache (0.04s) +--- PASS: TestUpdateRemoteRootNotExistCannotUseLocalCache (0.11s) === RUN TestUpdateRemoteRoot50XNoLocalCache ---- PASS: TestUpdateRemoteRoot50XNoLocalCache (0.01s) +--- PASS: TestUpdateRemoteRoot50XNoLocalCache (0.03s) === RUN TestUpdateRemoteRoot50XCanUseLocalCache ---- PASS: TestUpdateRemoteRoot50XCanUseLocalCache (0.03s) +--- PASS: TestUpdateRemoteRoot50XCanUseLocalCache (0.05s) === RUN TestUpdateRemoteRoot50XCannotUseLocalCache ---- PASS: TestUpdateRemoteRoot50XCannotUseLocalCache (0.04s) +--- PASS: TestUpdateRemoteRoot50XCannotUseLocalCache (0.09s) === RUN TestUpdateNonRootRemoteMissingMetadataNoLocalCache ---- PASS: TestUpdateNonRootRemoteMissingMetadataNoLocalCache (0.07s) +--- PASS: TestUpdateNonRootRemoteMissingMetadataNoLocalCache (0.12s) === RUN TestUpdateNonRootRemoteMissingMetadataCanUseLocalCache -time="2025-10-12T14:11:15-12:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" ---- PASS: TestUpdateNonRootRemoteMissingMetadataCanUseLocalCache (0.10s) +time="2026-11-15T22:54:15+14:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" +--- PASS: TestUpdateNonRootRemoteMissingMetadataCanUseLocalCache (0.18s) === RUN TestUpdateNonRootRemoteMissingMetadataCannotUseLocalCache -time="2025-10-12T14:11:15-12:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" ---- PASS: TestUpdateNonRootRemoteMissingMetadataCannotUseLocalCache (0.16s) +time="2026-11-15T22:54:15+14:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" +--- PASS: TestUpdateNonRootRemoteMissingMetadataCannotUseLocalCache (0.23s) === RUN TestUpdateNonRootRemote50XNoLocalCache ---- PASS: TestUpdateNonRootRemote50XNoLocalCache (0.16s) +--- PASS: TestUpdateNonRootRemote50XNoLocalCache (0.12s) === RUN TestUpdateNonRootRemote50XCanUseLocalCache -time="2025-10-12T14:11:16-12:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" ---- PASS: TestUpdateNonRootRemote50XCanUseLocalCache (0.20s) +time="2026-11-15T22:54:16+14:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" +--- PASS: TestUpdateNonRootRemote50XCanUseLocalCache (0.11s) === RUN TestUpdateNonRootRemote50XCannotUseLocalCache -time="2025-10-12T14:11:16-12:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" ---- PASS: TestUpdateNonRootRemote50XCannotUseLocalCache (0.30s) +time="2026-11-15T22:54:16+14:00" level=warning msg="Error while downloading remote metadata, using cached timestamp - this might not be the latest version available remotely" +--- PASS: TestUpdateNonRootRemote50XCannotUseLocalCache (0.18s) === RUN TestUpdateRemoteChecksumWrongNoLocalCache ---- PASS: TestUpdateRemoteChecksumWrongNoLocalCache (0.18s) +--- PASS: TestUpdateRemoteChecksumWrongNoLocalCache (0.16s) === RUN TestUpdateRemoteChecksumWrongCanUseLocalCache ---- PASS: TestUpdateRemoteChecksumWrongCanUseLocalCache (0.17s) +--- PASS: TestUpdateRemoteChecksumWrongCanUseLocalCache (0.28s) === RUN TestUpdateRemoteChecksumWrongCannotUseLocalCache ---- PASS: TestUpdateRemoteChecksumWrongCannotUseLocalCache (0.30s) +--- PASS: TestUpdateRemoteChecksumWrongCannotUseLocalCache (0.34s) === RUN TestUpdateRootRemoteCorruptedNoLocalCache -time="2025-10-12T14:11:17-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:17-12:00" level=error msg="Metadata for root expired" ---- PASS: TestUpdateRootRemoteCorruptedNoLocalCache (0.65s) +time="2026-11-15T22:54:17+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:17+14:00" level=error msg="Metadata for root expired" +--- PASS: TestUpdateRootRemoteCorruptedNoLocalCache (0.50s) === RUN TestUpdateRootRemoteCorruptedCanUseLocalCache ---- PASS: TestUpdateRootRemoteCorruptedCanUseLocalCache (1.21s) +--- PASS: TestUpdateRootRemoteCorruptedCanUseLocalCache (1.14s) === RUN TestUpdateRootRemoteCorruptedCannotUseLocalCache -time="2025-10-12T14:11:19-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:20-12:00" level=error msg="Metadata for root expired" ---- PASS: TestUpdateRootRemoteCorruptedCannotUseLocalCache (1.51s) +time="2026-11-15T22:54:19+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:19+14:00" level=error msg="Metadata for root expired" +--- PASS: TestUpdateRootRemoteCorruptedCannotUseLocalCache (1.23s) === RUN TestUpdateNonRootRemoteCorruptedNoLocalCache -time="2025-10-12T14:11:20-12:00" level=error msg="Metadata for targets expired" -time="2025-10-12T14:11:20-12:00" level=error msg="Metadata for targets expired" -time="2025-10-12T14:11:21-12:00" level=error msg="Metadata for snapshot expired" -time="2025-10-12T14:11:21-12:00" level=error msg="Metadata for snapshot expired" -time="2025-10-12T14:11:21-12:00" level=error msg="Metadata for timestamp expired" -time="2025-10-12T14:11:21-12:00" level=error msg="Metadata for timestamp expired" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:21-12:00" level=error msg="Metadata for targets/a expired" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a: targets/a expired at Wed Sep 11 14:11:21 -12 2024" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" -time="2025-10-12T14:11:21-12:00" level=error msg="Metadata for targets/a/b expired" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/a/b: targets/a/b expired at Wed Sep 11 14:11:21 -12 2024" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" -time="2025-10-12T14:11:21-12:00" level=error msg="Metadata for targets/b expired" -time="2025-10-12T14:11:21-12:00" level=warning msg="Error getting targets/b: targets/b expired at Wed Sep 11 14:11:21 -12 2024" ---- PASS: TestUpdateNonRootRemoteCorruptedNoLocalCache (1.02s) +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for targets expired" +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for targets expired" +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for snapshot expired" +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for snapshot expired" +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for timestamp expired" +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for timestamp expired" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for targets/a expired" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a: targets/a expired at Tue Oct 14 22:54:20 +14 2025" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" +time="2026-11-15T22:54:20+14:00" level=error msg="Metadata for targets/a/b expired" +time="2026-11-15T22:54:20+14:00" level=warning msg="Error getting targets/a/b: targets/a/b expired at Tue Oct 14 22:54:20 +14 2025" +time="2026-11-15T22:54:21+14:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" +time="2026-11-15T22:54:21+14:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" +time="2026-11-15T22:54:21+14:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" +time="2026-11-15T22:54:21+14:00" level=error msg="Metadata for targets/b expired" +time="2026-11-15T22:54:21+14:00" level=warning msg="Error getting targets/b: targets/b expired at Tue Oct 14 22:54:21 +14 2025" +--- PASS: TestUpdateNonRootRemoteCorruptedNoLocalCache (1.19s) === RUN TestUpdateNonRootRemoteCorruptedCanUseLocalCache -time="2025-10-12T14:11:22-12:00" level=error msg="Metadata for timestamp expired" -time="2025-10-12T14:11:22-12:00" level=error msg="Metadata for timestamp expired" ---- PASS: TestUpdateNonRootRemoteCorruptedCanUseLocalCache (1.18s) +time="2026-11-15T22:54:21+14:00" level=error msg="Metadata for timestamp expired" +time="2026-11-15T22:54:21+14:00" level=error msg="Metadata for timestamp expired" +--- PASS: TestUpdateNonRootRemoteCorruptedCanUseLocalCache (1.77s) === RUN TestUpdateNonRootRemoteCorruptedCannotUseLocalCache -time="2025-10-12T14:11:23-12:00" level=error msg="Metadata for targets expired" -time="2025-10-12T14:11:23-12:00" level=error msg="Metadata for snapshot expired" -time="2025-10-12T14:11:23-12:00" level=error msg="Metadata for snapshot expired" -time="2025-10-12T14:11:23-12:00" level=error msg="Metadata for timestamp expired" -time="2025-10-12T14:11:23-12:00" level=error msg="Metadata for timestamp expired" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:24-12:00" level=error msg="Metadata for targets/a expired" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a: targets/a expired at Wed Sep 11 14:11:24 -12 2024" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" -time="2025-10-12T14:11:24-12:00" level=error msg="Metadata for targets/a/b expired" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/a/b: targets/a/b expired at Wed Sep 11 14:11:24 -12 2024" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" -time="2025-10-12T14:11:24-12:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" -time="2025-10-12T14:11:25-12:00" level=error msg="Metadata for targets/b expired" -time="2025-10-12T14:11:25-12:00" level=warning msg="Error getting targets/b: targets/b expired at Wed Sep 11 14:11:24 -12 2024" ---- PASS: TestUpdateNonRootRemoteCorruptedCannotUseLocalCache (2.24s) +time="2026-11-15T22:54:23+14:00" level=error msg="Metadata for targets expired" +time="2026-11-15T22:54:23+14:00" level=error msg="Metadata for snapshot expired" +time="2026-11-15T22:54:23+14:00" level=error msg="Metadata for snapshot expired" +time="2026-11-15T22:54:24+14:00" level=error msg="Metadata for timestamp expired" +time="2026-11-15T22:54:24+14:00" level=error msg="Metadata for timestamp expired" +time="2026-11-15T22:54:24+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:24+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:24+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:24+14:00" level=error msg="Metadata for targets/a expired" +time="2026-11-15T22:54:24+14:00" level=warning msg="Error getting targets/a: targets/a expired at Tue Oct 14 22:54:24 +14 2025" +time="2026-11-15T22:54:24+14:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" +time="2026-11-15T22:54:24+14:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" +time="2026-11-15T22:54:24+14:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" +time="2026-11-15T22:54:25+14:00" level=error msg="Metadata for targets/a/b expired" +time="2026-11-15T22:54:25+14:00" level=warning msg="Error getting targets/a/b: targets/a/b expired at Tue Oct 14 22:54:25 +14 2025" +time="2026-11-15T22:54:25+14:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" +time="2026-11-15T22:54:25+14:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" +time="2026-11-15T22:54:25+14:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" +time="2026-11-15T22:54:25+14:00" level=error msg="Metadata for targets/b expired" +time="2026-11-15T22:54:25+14:00" level=warning msg="Error getting targets/b: targets/b expired at Tue Oct 14 22:54:25 +14 2025" +--- PASS: TestUpdateNonRootRemoteCorruptedCannotUseLocalCache (2.67s) === RUN TestUpdateLocalAndRemoteRootCorrupt -time="2025-10-12T14:11:26-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:26-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" -time="2025-10-12T14:11:27-12:00" level=error msg="Metadata for root expired" ---- PASS: TestUpdateLocalAndRemoteRootCorrupt (2.39s) +time="2026-11-15T22:54:32+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:34+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:36+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:37+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:37+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:37+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:37+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:38+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:38+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:38+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:39+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:39+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:40+14:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:40+14:00" level=error msg="Metadata for root expired" +--- PASS: TestUpdateLocalAndRemoteRootCorrupt (14.70s) === RUN TestUpdateRemoteKeyRotated -time="2025-10-12T14:11:27-12:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" -time="2025-10-12T14:11:27-12:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" -time="2025-10-12T14:11:27-12:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" ---- PASS: TestUpdateRemoteKeyRotated (0.17s) +time="2026-11-15T22:54:42+14:00" level=warning msg="Error getting targets/a: valid signatures did not meet threshold for targets/a" +time="2026-11-15T22:54:42+14:00" level=warning msg="Error getting targets/a/b: valid signatures did not meet threshold for targets/a/b" +time="2026-11-15T22:54:43+14:00" level=warning msg="Error getting targets/b: valid signatures did not meet threshold for targets/b" +--- PASS: TestUpdateRemoteKeyRotated (2.98s) === RUN TestValidateRootRotationWithOldRole ---- PASS: TestValidateRootRotationWithOldRole (0.14s) +--- PASS: TestValidateRootRotationWithOldRole (0.15s) === RUN TestRootRoleInvariant ---- PASS: TestRootRoleInvariant (0.10s) +--- PASS: TestRootRoleInvariant (0.16s) === RUN TestBadIntermediateTransitions ---- PASS: TestBadIntermediateTransitions (0.04s) +--- PASS: TestBadIntermediateTransitions (0.26s) === RUN TestExpiredIntermediateTransitions -time="2025-10-12T14:11:28-12:00" level=warning msg="root is nearing expiry, you should re-sign the role metadata" ---- PASS: TestExpiredIntermediateTransitions (0.05s) +time="2026-11-15T22:54:43+14:00" level=warning msg="root is nearing expiry, you should re-sign the role metadata" +--- PASS: TestExpiredIntermediateTransitions (0.07s) === RUN TestDownloadTargetsLarge ---- PASS: TestDownloadTargetsLarge (3.72s) +--- PASS: TestDownloadTargetsLarge (11.64s) === RUN TestDownloadTargetsDeep ---- PASS: TestDownloadTargetsDeep (0.02s) +--- PASS: TestDownloadTargetsDeep (0.03s) === RUN TestDownloadSnapshotLargeDelegationsMany ---- PASS: TestDownloadSnapshotLargeDelegationsMany (3.15s) +--- PASS: TestDownloadSnapshotLargeDelegationsMany (3.43s) === RUN TestRootOnDiskTrustPinning ---- PASS: TestRootOnDiskTrustPinning (0.02s) +--- PASS: TestRootOnDiskTrustPinning (0.03s) === RUN TestLoadTUFRepoBadURL --- PASS: TestLoadTUFRepoBadURL (0.00s) === RUN TestApplyTargetsChange @@ -2504,53 +2540,53 @@ === RUN TestApplyChangelistMulti --- PASS: TestApplyChangelistMulti (0.00s) === RUN TestApplyTargetsDelegationCreateDelete ---- PASS: TestApplyTargetsDelegationCreateDelete (0.01s) +--- PASS: TestApplyTargetsDelegationCreateDelete (0.00s) === RUN TestApplyTargetsDelegationCreate2SharedKey --- PASS: TestApplyTargetsDelegationCreate2SharedKey (0.00s) === RUN TestApplyTargetsDelegationCreateEdit --- PASS: TestApplyTargetsDelegationCreateEdit (0.00s) === RUN TestApplyTargetsDelegationEditNonExisting ---- PASS: TestApplyTargetsDelegationEditNonExisting (0.01s) +--- PASS: TestApplyTargetsDelegationEditNonExisting (0.00s) === RUN TestApplyTargetsDelegationCreateAlreadyExisting --- PASS: TestApplyTargetsDelegationCreateAlreadyExisting (0.00s) === RUN TestApplyTargetsDelegationAlreadyExistingMergePaths --- PASS: TestApplyTargetsDelegationAlreadyExistingMergePaths (0.00s) === RUN TestApplyTargetsDelegationInvalidRole ---- PASS: TestApplyTargetsDelegationInvalidRole (0.01s) +--- PASS: TestApplyTargetsDelegationInvalidRole (0.00s) === RUN TestApplyTargetsDelegationInvalidJSONContent --- PASS: TestApplyTargetsDelegationInvalidJSONContent (0.00s) === RUN TestApplyTargetsDelegationInvalidAction --- PASS: TestApplyTargetsDelegationInvalidAction (0.00s) === RUN TestApplyTargetsChangeInvalidType ---- PASS: TestApplyTargetsChangeInvalidType (0.01s) +--- PASS: TestApplyTargetsChangeInvalidType (0.00s) === RUN TestApplyTargetsDelegationCreate2Deep --- PASS: TestApplyTargetsDelegationCreate2Deep (0.00s) === RUN TestApplyTargetsDelegationParentDoesntExist --- PASS: TestApplyTargetsDelegationParentDoesntExist (0.00s) === RUN TestApplyChangelistCreatesDelegation ---- PASS: TestApplyChangelistCreatesDelegation (0.01s) +--- PASS: TestApplyChangelistCreatesDelegation (0.00s) === RUN TestApplyChangelistTargetsToMultipleRoles --- PASS: TestApplyChangelistTargetsToMultipleRoles (0.00s) === RUN TestApplyChangelistTargetsFailsNonexistentRole -time="2025-10-12T14:11:35-12:00" level=error msg="couldn't add target to targets/level1/level2/level3/level4: tuf: invalid role targets/level1/level2/level3/level4. delegation does not exist" -time="2025-10-12T14:11:35-12:00" level=error msg="couldn't remove target from targets/level1/level2/level3/level4: tuf: invalid role targets/level1/level2/level3/level4. delegation does not exist" +time="2026-11-15T22:54:59+14:00" level=error msg="couldn't add target to targets/level1/level2/level3/level4: tuf: invalid role targets/level1/level2/level3/level4. delegation does not exist" +time="2026-11-15T22:54:59+14:00" level=error msg="couldn't remove target from targets/level1/level2/level3/level4: tuf: invalid role targets/level1/level2/level3/level4. delegation does not exist" --- PASS: TestApplyChangelistTargetsFailsNonexistentRole (0.00s) === RUN TestChangeTargetMetaFailsInvalidRole -time="2025-10-12T14:11:35-12:00" level=error msg="couldn't add target to ruhroh: tuf: invalid role ruhroh. does not exist" ---- PASS: TestChangeTargetMetaFailsInvalidRole (0.01s) +time="2026-11-15T22:54:59+14:00" level=error msg="couldn't add target to ruhroh: tuf: invalid role ruhroh. does not exist" +--- PASS: TestChangeTargetMetaFailsInvalidRole (0.00s) === RUN TestChangeTargetMetaFailsIfPrefixError -time="2025-10-12T14:11:35-12:00" level=error msg="couldn't add target to targets/level1: could not add all targets" +time="2026-11-15T22:54:59+14:00" level=error msg="couldn't add target to targets/level1: could not add all targets" --- PASS: TestChangeTargetMetaFailsIfPrefixError (0.00s) === RUN TestAllNearExpiry --- PASS: TestAllNearExpiry (0.00s) === RUN TestAllNotNearExpiry ---- PASS: TestAllNotNearExpiry (0.01s) +--- PASS: TestAllNotNearExpiry (0.00s) === RUN TestRotateRemoteKeyOffline --- PASS: TestRotateRemoteKeyOffline (0.00s) PASS -ok github.com/theupdateframework/notary/client 24.380s +ok github.com/theupdateframework/notary/client 50.196s === RUN TestTUFDelegation ---- PASS: TestTUFDelegation (0.01s) +--- PASS: TestTUFDelegation (0.00s) === RUN TestMemChangelist --- PASS: TestMemChangelist (0.00s) === RUN TestMemChangeIterator @@ -2560,14 +2596,14 @@ === RUN TestAdd --- PASS: TestAdd (0.00s) === RUN TestErrorConditions -time="2025-10-12T14:11:10-12:00" level=warning msg="invalid character '\\x05' looking for beginning of value" +time="2026-11-15T22:54:08+14:00" level=warning msg="invalid character '\\x05' looking for beginning of value" --- PASS: TestErrorConditions (0.00s) === RUN TestListOrder --- PASS: TestListOrder (0.00s) === RUN TestFileChangeIterator --- PASS: TestFileChangeIterator (0.00s) PASS -ok github.com/theupdateframework/notary/client/changelist 0.036s +ok github.com/theupdateframework/notary/client/changelist 0.018s === RUN TestParseConfigError --- PASS: TestParseConfigError (0.00s) === RUN TestSetupGRPCServer @@ -2577,7 +2613,7 @@ === RUN TestSetupNetListener --- PASS: TestSetupNetListener (0.00s) PASS -ok github.com/theupdateframework/notary/cmd/escrow 0.028s +ok github.com/theupdateframework/notary/cmd/escrow 0.055s === RUN TestPurgeDelegationKeys Usage: delegation [command] @@ -2649,78 +2685,78 @@ Use "delegation [command] --help" for more information about a command. --- PASS: TestRemoveInvalidNumArgs (0.00s) === RUN TestInitWithRootKey ---- PASS: TestInitWithRootKey (0.05s) +--- PASS: TestInitWithRootKey (0.08s) === RUN TestInitWithRootCert integration_test.go:189: Disable FTBFS timebomb. https://bugs.debian.org/1078632 --- SKIP: TestInitWithRootCert (0.00s) === RUN TestClientTUFInteraction ---- PASS: TestClientTUFInteraction (0.09s) +--- PASS: TestClientTUFInteraction (0.13s) === RUN TestClientDeleteTUFInteraction -time="2025-10-12T14:11:11-12:00" level=error msg="could not reach https://invalid-server: Get \"https://invalid-server/v2/\": dial tcp: lookup invalid-server on [::1]:53: read udp [::1]:44853->[::1]:53: read: connection refused" ---- PASS: TestClientDeleteTUFInteraction (0.10s) +time="2026-11-15T22:54:09+14:00" level=error msg="could not reach https://invalid-server: Get \"https://invalid-server/v2/\": dial tcp: lookup invalid-server on [::1]:53: read udp [::1]:47846->[::1]:53: read: connection refused" +--- PASS: TestClientDeleteTUFInteraction (0.11s) === RUN TestClientTUFAddByHashInteraction ---- PASS: TestClientTUFAddByHashInteraction (0.16s) +--- PASS: TestClientTUFAddByHashInteraction (0.18s) === RUN TestClientDelegationsInteraction -time="2025-10-12T14:11:11-12:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:11-12:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" ---- PASS: TestClientDelegationsInteraction (0.39s) +time="2026-11-15T22:54:09+14:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:09+14:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +--- PASS: TestClientDelegationsInteraction (0.50s) === RUN TestClientDelegationsPublishing ---- PASS: TestClientDelegationsPublishing (0.55s) +--- PASS: TestClientDelegationsPublishing (0.62s) === RUN TestClientKeyGenerationRotation ---- PASS: TestClientKeyGenerationRotation (0.49s) +--- PASS: TestClientKeyGenerationRotation (0.64s) === RUN TestKeyRotation --- PASS: TestKeyRotation (0.07s) === RUN TestKeyRotationNonRoot ---- PASS: TestKeyRotationNonRoot (0.09s) +--- PASS: TestKeyRotationNonRoot (0.10s) === RUN TestDefaultRootKeyGeneration --- PASS: TestDefaultRootKeyGeneration (0.00s) === RUN TestLogLevelFlags --- PASS: TestLogLevelFlags (0.00s) === RUN TestClientKeyPassphraseChange ---- PASS: TestClientKeyPassphraseChange (0.07s) +--- PASS: TestClientKeyPassphraseChange (0.12s) === RUN TestPurgeSingleKey Removal of the following keys from all delegations in gun staged for next publish: - - 29ea1c3f85e2e01ec6f5b2d5f77d63afacc4c669aea8c0e6ddf395a8d6dfdccb ---- PASS: TestPurgeSingleKey (0.07s) + - 094ff9a0bc43362d354870001104157aa07c70736f3670852809782d03590b86 +--- PASS: TestPurgeSingleKey (0.08s) === RUN TestWitness -time="2025-10-12T14:11:13-12:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" -time="2025-10-12T14:11:13-12:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" -time="2025-10-12T14:11:13-12:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" -time="2025-10-12T14:11:13-12:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" -time="2025-10-12T14:11:13-12:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:13-12:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:13-12:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" ---- PASS: TestWitness (0.25s) +time="2026-11-15T22:54:12+14:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" +time="2026-11-15T22:54:12+14:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" +time="2026-11-15T22:54:12+14:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" +time="2026-11-15T22:54:12+14:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" +time="2026-11-15T22:54:12+14:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:12+14:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:12+14:00" level=warning msg="Error getting targets/delegation: valid signatures did not meet threshold for targets/delegation" +--- PASS: TestWitness (0.28s) === RUN TestClientTUFInitWithAutoPublish -time="2025-10-12T14:11:13-12:00" level=error msg="could not reach https://notary-server-on-the-moon:12306: Get \"https://notary-server-on-the-moon:12306/v2/\": dial tcp: lookup notary-server-on-the-moon on [::1]:53: read udp [::1]:37699->[::1]:53: read: connection refused" ---- PASS: TestClientTUFInitWithAutoPublish (0.06s) +time="2026-11-15T22:54:12+14:00" level=error msg="could not reach https://notary-server-on-the-moon:12306: Get \"https://notary-server-on-the-moon:12306/v2/\": dial tcp: lookup notary-server-on-the-moon on [::1]:53: read udp [::1]:44737->[::1]:53: read: connection refused" +--- PASS: TestClientTUFInitWithAutoPublish (0.09s) === RUN TestClientTUFAddWithAutoPublish -time="2025-10-12T14:11:13-12:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:42537->[::1]:53: read: connection refused" -time="2025-10-12T14:11:13-12:00" level=error msg="Could not publish Repository since we could not update: client is offline" -time="2025-10-12T14:11:13-12:00" level=error msg="could not reach https://notary-server-on-the-moon:12306: Get \"https://notary-server-on-the-moon:12306/v2/\": dial tcp: lookup notary-server-on-the-moon on [::1]:53: read udp [::1]:33966->[::1]:53: read: connection refused" -time="2025-10-12T14:11:13-12:00" level=error msg="Could not publish Repository since we could not update: client is offline" +time="2026-11-15T22:54:12+14:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:35732->[::1]:53: read: connection refused" +time="2026-11-15T22:54:12+14:00" level=error msg="Could not publish Repository since we could not update: client is offline" +time="2026-11-15T22:54:12+14:00" level=error msg="could not reach https://notary-server-on-the-moon:12306: Get \"https://notary-server-on-the-moon:12306/v2/\": dial tcp: lookup notary-server-on-the-moon on [::1]:53: read udp [::1]:51974->[::1]:53: read: connection refused" +time="2026-11-15T22:54:12+14:00" level=error msg="Could not publish Repository since we could not update: client is offline" --- PASS: TestClientTUFAddWithAutoPublish (0.08s) === RUN TestClientTUFRemoveWithAutoPublish ---- PASS: TestClientTUFRemoveWithAutoPublish (0.14s) +--- PASS: TestClientTUFRemoveWithAutoPublish (0.13s) === RUN TestClientDelegationAddWithAutoPublish ---- PASS: TestClientDelegationAddWithAutoPublish (0.06s) +--- PASS: TestClientDelegationAddWithAutoPublish (0.05s) === RUN TestClientDelegationRemoveWithAutoPublish -time="2025-10-12T14:11:13-12:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:13-12:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" ---- PASS: TestClientDelegationRemoveWithAutoPublish (0.14s) +time="2026-11-15T22:54:12+14:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:12+14:00" level=warning msg="role targets/delegation has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +--- PASS: TestClientDelegationRemoveWithAutoPublish (0.19s) === RUN TestClientTUFAddByHashWithAutoPublish ---- PASS: TestClientTUFAddByHashWithAutoPublish (0.07s) +--- PASS: TestClientTUFAddByHashWithAutoPublish (0.08s) === RUN TestClientKeyImport -time="2025-10-12T14:11:13-12:00" level=warning msg="failed to import key to store: Invalid key generated, key may be encrypted and does not contain path header" -time="2025-10-12T14:11:13-12:00" level=warning msg="failed to import key () to store: Cannot have canonical role key without a gun, don't know what gun it belongs to" ---- PASS: TestClientKeyImport (0.02s) +time="2026-11-15T22:54:12+14:00" level=warning msg="failed to import key to store: Invalid key generated, key may be encrypted and does not contain path header" +time="2026-11-15T22:54:12+14:00" level=warning msg="failed to import key () to store: Cannot have canonical role key without a gun, don't know what gun it belongs to" +--- PASS: TestClientKeyImport (0.05s) === RUN TestAddDelImportKeyPublishFlow -time="2025-10-12T14:11:13-12:00" level=error msg="couldn't add target to targets/releases: could not find necessary signing keys, at least one of these keys must be available: 0570f9fdca00bdaf62f3f79bf84e70748ba2c8bff926f20dd996bac49e6164fc" ---- PASS: TestAddDelImportKeyPublishFlow (0.17s) +time="2026-11-15T22:54:13+14:00" level=error msg="couldn't add target to targets/releases: could not find necessary signing keys, at least one of these keys must be available: 0570f9fdca00bdaf62f3f79bf84e70748ba2c8bff926f20dd996bac49e6164fc" +--- PASS: TestAddDelImportKeyPublishFlow (0.26s) === RUN TestExportImportFlow ---- PASS: TestExportImportFlow (0.04s) +--- PASS: TestExportImportFlow (0.05s) === RUN TestDelegationKeyImportExport ---- PASS: TestDelegationKeyImportExport (0.00s) +--- PASS: TestDelegationKeyImportExport (0.01s) === RUN TestImportKeysNoYubikey --- PASS: TestImportKeysNoYubikey (0.01s) === RUN TestExportImportKeysNoYubikey @@ -2738,16 +2774,16 @@ === RUN TestRemoveMultikeysRemoveOnlyChosenKey --- PASS: TestRemoveMultikeysRemoveOnlyChosenKey (0.00s) === RUN TestRotateKeyInvalidRoles -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:52687->[::1]:53: read: connection refused" -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:41131->[::1]:53: read: connection refused" -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:49001->[::1]:53: read: connection refused" -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:59394->[::1]:53: read: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:52115->[::1]:53: read: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:45960->[::1]:53: read: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:38994->[::1]:53: read: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:48431->[::1]:53: read: connection refused" --- PASS: TestRotateKeyInvalidRoles (0.00s) === RUN TestRotateKeyTargetCannotBeServerManaged -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:50473->[::1]:53: read: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:37151->[::1]:53: read: connection refused" --- PASS: TestRotateKeyTargetCannotBeServerManaged (0.00s) === RUN TestRotateKeyTimestampCannotBeLocallyManaged -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:39850->[::1]:53: read: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://notary-server:4443: Get \"https://notary-server:4443/v2/\": dial tcp: lookup notary-server on [::1]:53: read udp [::1]:47367->[::1]:53: read: connection refused" --- PASS: TestRotateKeyTimestampCannotBeLocallyManaged (0.00s) === RUN TestRotateKeyNoGUN Usage: @@ -2755,13 +2791,13 @@ === RUN TestRotateKeyRemoteServerManagesKey Successfully rotated snapshot key for repository docker.com/notary Successfully rotated timestamp key for repository docker.com/notary ---- PASS: TestRotateKeyRemoteServerManagesKey (0.06s) +--- PASS: TestRotateKeyRemoteServerManagesKey (0.09s) === RUN TestRotateKeyBothKeys Successfully rotated targets key for repository docker.com/notary Successfully rotated snapshot key for repository docker.com/notary ---- PASS: TestRotateKeyBothKeys (0.06s) +--- PASS: TestRotateKeyBothKeys (0.07s) === RUN TestRotateKeyRootIsInteractive ---- PASS: TestRotateKeyRootIsInteractive (0.01s) +--- PASS: TestRotateKeyRootIsInteractive (0.02s) === RUN TestChangeKeyPassphraseInvalidID --- PASS: TestChangeKeyPassphraseInvalidID (0.00s) === RUN TestChangeKeyPassphraseInvalidNumArgs @@ -2780,7 +2816,7 @@ === RUN TestImportKeysNonexistentFile --- PASS: TestImportKeysNonexistentFile (0.00s) === RUN TestKeyGeneration -time="2025-10-12T14:11:14-12:00" level=warning msg="failed to import key () to store: Cannot have canonical role key without a gun, don't know what gun it belongs to" +time="2026-11-15T22:54:13+14:00" level=warning msg="failed to import key () to store: Cannot have canonical role key without a gun, don't know what gun it belongs to" --- PASS: TestKeyGeneration (0.01s) === RUN TestNotaryConfigFileDefault --- PASS: TestNotaryConfigFileDefault (0.00s) @@ -2791,19 +2827,19 @@ === RUN TestRemoteServerCommandLineFlagOverridesConfig --- PASS: TestRemoteServerCommandLineFlagOverridesConfig (0.00s) === RUN TestInvalidAddHashCommands ---- PASS: TestInvalidAddHashCommands (0.00s) +--- PASS: TestInvalidAddHashCommands (0.01s) === RUN TestConfigParsingErrorsPropagatedByCommands ---- PASS: TestConfigParsingErrorsPropagatedByCommands (0.00s) +--- PASS: TestConfigParsingErrorsPropagatedByCommands (0.01s) === RUN TestInsufficientArgumentsReturnsErrorAndPrintsUsage ---- PASS: TestInsufficientArgumentsReturnsErrorAndPrintsUsage (0.00s) +--- PASS: TestInsufficientArgumentsReturnsErrorAndPrintsUsage (0.01s) === RUN TestBareCommandPrintsUsageAndNoError --- PASS: TestBareCommandPrintsUsageAndNoError (0.00s) === RUN TestConfigFileTLSCannotBeRelativeToCWD ---- PASS: TestConfigFileTLSCannotBeRelativeToCWD (0.00s) +--- PASS: TestConfigFileTLSCannotBeRelativeToCWD (0.01s) === RUN TestConfigFileTLSCanBeRelativeToConfigOrAbsolute ---- PASS: TestConfigFileTLSCanBeRelativeToConfigOrAbsolute (0.03s) +--- PASS: TestConfigFileTLSCanBeRelativeToConfigOrAbsolute (0.08s) === RUN TestConfigFileOverridenByCmdLineFlags ---- PASS: TestConfigFileOverridenByCmdLineFlags (0.03s) +--- PASS: TestConfigFileOverridenByCmdLineFlags (0.09s) === RUN TestConfigFileTrustPinning --- PASS: TestConfigFileTrustPinning (0.00s) === RUN TestPassphraseRetrieverCaching @@ -2817,7 +2853,7 @@ === RUN TestPrettyPrintZeroKeys --- PASS: TestPrettyPrintZeroKeys (0.00s) === RUN TestPrettyPrintRootAndSigningKeys ---- PASS: TestPrettyPrintRootAndSigningKeys (0.01s) +--- PASS: TestPrettyPrintRootAndSigningKeys (0.02s) === RUN TestPrettyPrintZeroTargets --- PASS: TestPrettyPrintZeroTargets (0.00s) === RUN TestPrettyPrintSortedTargets @@ -2829,10 +2865,10 @@ === RUN TestImportRootCert --- PASS: TestImportRootCert (0.00s) === RUN TestTokenAuth -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://localhost:9999: Get \"https://localhost:9999/v2/\": dial tcp 127.0.0.1:9999: connect: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://localhost:9999: Get \"https://localhost:9999/v2/\": dial tcp 127.0.0.1:9999: connect: connection refused" --- PASS: TestTokenAuth (0.00s) === RUN TestAdminTokenAuth -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach https://localhost:9999: Get \"https://localhost:9999/v2/\": dial tcp 127.0.0.1:9999: connect: connection refused" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach https://localhost:9999: Get \"https://localhost:9999/v2/\": dial tcp 127.0.0.1:9999: connect: connection refused" --- PASS: TestAdminTokenAuth (0.00s) === RUN TestTokenAuth200Status --- PASS: TestTokenAuth200Status (0.00s) @@ -2843,19 +2879,19 @@ === RUN TestAdminTokenAuth401Status --- PASS: TestAdminTokenAuth401Status (0.00s) === RUN TestTokenAuthNon200Non401Status -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach http://127.0.0.1:45603: 404" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach http://127.0.0.1:36821: 404" --- PASS: TestTokenAuthNon200Non401Status (0.00s) === RUN TestAdminTokenAuthNon200Non401Status -time="2025-10-12T14:11:14-12:00" level=error msg="could not reach http://127.0.0.1:40497: 404" +time="2026-11-15T22:54:13+14:00" level=error msg="could not reach http://127.0.0.1:35827: 404" --- PASS: TestAdminTokenAuthNon200Non401Status (0.00s) === RUN TestConfigureRepo --- PASS: TestConfigureRepo (0.00s) === RUN TestConfigureRepoRW -Enter username: time="2025-10-12T14:11:14-12:00" level=error msg="error processing username input: EOF" +Enter username: time="2026-11-15T22:54:13+14:00" level=error msg="error processing username input: EOF" --- PASS: TestConfigureRepoRW (0.00s) === RUN TestConfigureRepoAdmin -Enter username: time="2025-10-12T14:11:14-12:00" level=error msg="error processing username input: EOF" ---- PASS: TestConfigureRepoAdmin (0.00s) +Enter username: time="2026-11-15T22:54:13+14:00" level=error msg="error processing username input: EOF" +--- PASS: TestConfigureRepoAdmin (0.01s) === RUN TestStatusUnstageAndReset Successfully reset specified changes for repository gun Addition of target "test1" by sha256 hash to repository "gun" staged for next publish. @@ -2867,11 +2903,11 @@ Pushing changes to gun --- PASS: TestGetTrustPinningErrors (0.00s) === RUN TestPasswordStore -Enter username: time="2025-10-12T14:11:14-12:00" level=error msg="error processing username input: EOF" +Enter username: time="2026-11-15T22:54:13+14:00" level=error msg="error processing username input: EOF" --- PASS: TestPasswordStore (0.00s) === RUN TestPasswordStoreWithEnvvar -time="2025-10-12T14:11:14-12:00" level=error msg="Authentication string with zero-length username" -time="2025-10-12T14:11:14-12:00" level=error msg="Could not base64-decode authentication string" +time="2026-11-15T22:54:13+14:00" level=error msg="Authentication string with zero-length username" +time="2026-11-15T22:54:13+14:00" level=error msg="Could not base64-decode authentication string" --- PASS: TestPasswordStoreWithEnvvar (0.00s) === RUN TestGetPayload --- PASS: TestGetPayload (0.00s) @@ -2880,7 +2916,7 @@ === RUN TestHomeExpand --- PASS: TestHomeExpand (0.00s) PASS -ok github.com/theupdateframework/notary/cmd/notary 3.453s +ok github.com/theupdateframework/notary/cmd/notary 4.477s === RUN TestBootstrap --- PASS: TestBootstrap (0.00s) === RUN TestGetAddrAndTLSConfigInvalidTLS @@ -2896,42 +2932,42 @@ === RUN TestGetInvalidTrustService --- PASS: TestGetInvalidTrustService (0.00s) === RUN TestGetLocalTrustService -time="2025-10-12T14:11:11-12:00" level=info msg="Using local signing service, which requires ED25519. Ignoring all other trust_service parameters, including keyAlgorithm" +time="2026-11-15T22:54:10+14:00" level=info msg="Using local signing service, which requires ED25519. Ignoring all other trust_service parameters, including keyAlgorithm" --- PASS: TestGetLocalTrustService (0.00s) === RUN TestGetTrustServiceInvalidKeyAlgorithm --- PASS: TestGetTrustServiceInvalidKeyAlgorithm (0.00s) === RUN TestGetTrustServiceTLSMissingCertOrKey --- PASS: TestGetTrustServiceTLSMissingCertOrKey (0.00s) === RUN TestGetTrustServiceNoTLSConfig -time="2025-10-12T14:11:11-12:00" level=info msg="Using remote signing service" +time="2026-11-15T22:54:10+14:00" level=info msg="Using remote signing service" --- PASS: TestGetTrustServiceNoTLSConfig (0.00s) === RUN TestGetTrustServiceTLSSuccess -time="2025-10-12T14:11:11-12:00" level=info msg="Using remote signing service" +time="2026-11-15T22:54:10+14:00" level=info msg="Using remote signing service" --- PASS: TestGetTrustServiceTLSSuccess (0.00s) === RUN TestGetTrustServiceTLSFailure --- PASS: TestGetTrustServiceTLSFailure (0.00s) === RUN TestGetStoreInvalid -time="2025-10-12T14:11:11-12:00" level=info msg="Using asdf backend" +time="2026-11-15T22:54:10+14:00" level=info msg="Using asdf backend" --- PASS: TestGetStoreInvalid (0.00s) === RUN TestGetStoreDBStore -time="2025-10-12T14:11:11-12:00" level=info msg="Using sqlite3 backend" ---- PASS: TestGetStoreDBStore (0.00s) +time="2026-11-15T22:54:10+14:00" level=info msg="Using sqlite3 backend" +--- PASS: TestGetStoreDBStore (0.04s) === RUN TestGetStoreRethinkDBStoreConnectionFails -time="2025-10-12T14:11:11-12:00" level=info msg="Using rethinkdb backend" +time="2026-11-15T22:54:10+14:00" level=info msg="Using rethinkdb backend" --- PASS: TestGetStoreRethinkDBStoreConnectionFails (0.00s) === RUN TestGetMemoryStore -time="2025-10-12T14:11:11-12:00" level=info msg="Using memory backend" +time="2026-11-15T22:54:10+14:00" level=info msg="Using memory backend" --- PASS: TestGetMemoryStore (0.00s) === RUN TestGetCacheConfig --- PASS: TestGetCacheConfig (0.00s) === RUN TestGetGUNPRefixes --- PASS: TestGetGUNPRefixes (0.00s) === RUN TestSampleConfig -time="2025-10-12T14:11:11-12:00" level=info msg="Using remote signing service" -time="2025-10-12T14:11:11-12:00" level=info msg="Using sqlite3 backend" ---- PASS: TestSampleConfig (0.01s) +time="2026-11-15T22:54:10+14:00" level=info msg="Using remote signing service" +time="2026-11-15T22:54:10+14:00" level=info msg="Using sqlite3 backend" +--- PASS: TestSampleConfig (0.00s) PASS -ok github.com/theupdateframework/notary/cmd/notary-server 0.090s +ok github.com/theupdateframework/notary/cmd/notary-server 0.093s === RUN TestGetAddrAndTLSConfigInvalidTLS --- PASS: TestGetAddrAndTLSConfigInvalidTLS (0.00s) === RUN TestGetAddrAndTLSConfigNoGRPCAddr @@ -2946,7 +2982,7 @@ main_test.go:121: DM - skipping malfunctioning test, fails on sbuild --- SKIP: TestSetupCryptoServicesRethinkDBStoreConnectionFails (0.00s) === RUN TestSetupCryptoServicesDBStoreSuccess ---- PASS: TestSetupCryptoServicesDBStoreSuccess (0.01s) +--- PASS: TestSetupCryptoServicesDBStoreSuccess (0.02s) === RUN TestSetupCryptoServicesMemoryStore --- PASS: TestSetupCryptoServicesMemoryStore (0.00s) === RUN TestSetupCryptoServicesInvalidStore @@ -2954,7 +2990,7 @@ === RUN TestSetupGRPCServerInvalidAddress --- PASS: TestSetupGRPCServerInvalidAddress (0.00s) === RUN TestSetupGRPCServerSuccess ---- PASS: TestSetupGRPCServerSuccess (0.00s) +--- PASS: TestSetupGRPCServerSuccess (0.01s) === RUN TestBootstrap --- PASS: TestBootstrap (0.00s) === RUN TestGetEnv @@ -2964,17 +3000,17 @@ === RUN TestSampleConfig --- PASS: TestSampleConfig (0.00s) PASS -ok github.com/theupdateframework/notary/cmd/notary-signer 0.078s +ok github.com/theupdateframework/notary/cmd/notary-signer 0.081s === RUN TestGenerateCertificate --- PASS: TestGenerateCertificate (0.00s) === RUN TestCryptoServiceWithNonEmptyGUN ---- PASS: TestCryptoServiceWithNonEmptyGUN (0.23s) +--- PASS: TestCryptoServiceWithNonEmptyGUN (0.32s) === RUN TestCryptoServiceWithEmptyGUN ---- PASS: TestCryptoServiceWithEmptyGUN (0.21s) +--- PASS: TestCryptoServiceWithEmptyGUN (0.32s) === RUN TestCryptoSignerInterfaceBehavior --- PASS: TestCryptoSignerInterfaceBehavior (0.00s) PASS -ok github.com/theupdateframework/notary/cryptoservice 0.493s +ok github.com/theupdateframework/notary/cryptoservice 0.680s === RUN TestGetPassphraseForUsingDelegationKey --- PASS: TestGetPassphraseForUsingDelegationKey (0.00s) === RUN TestGetPassphraseLimitsShortPassphrases @@ -2990,142 +3026,142 @@ === RUN TestGetPassphrase --- PASS: TestGetPassphrase (0.00s) PASS -ok github.com/theupdateframework/notary/passphrase 0.042s +ok github.com/theupdateframework/notary/passphrase 0.031s ? github.com/theupdateframework/notary/proto [no test files] ? github.com/theupdateframework/notary/proto/github.com/theupdateframework/notary/proto [no test files] === RUN TestValidationErrorFormat -time="2025-10-12T14:11:11-12:00" level=info msg="invalid update: Update sent by the client is invalid.: &{ErrBadHierarchy Metadata hierarchy is incomplete: no snapshot was included in update and server does not hold current snapshot key for repository}" go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=fcc68b5306dec3283a229b7c8eb67426e640270553cbc2adb0c6db9ea477" http.request.host="127.0.0.1:34091" http.request.id=410493e4-37ad-4022-a91c-6d3cc6407eb9 http.request.method=POST http.request.remoteaddr="127.0.0.1:43476" http.request.uri=/v2/docker.com/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=fcc68b5306dec3283a229b7c8eb67426e640270553cbc2adb0c6db9ea477" http.request.host="127.0.0.1:34091" http.request.id=410493e4-37ad-4022-a91c-6d3cc6407eb9 http.request.method=POST http.request.remoteaddr="127.0.0.1:43476" http.request.uri=/v2/docker.com/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration=2.165215ms http.response.status=400 http.response.written=260 ---- PASS: TestValidationErrorFormat (0.02s) +time="2026-11-15T22:54:10+14:00" level=info msg="invalid update: Update sent by the client is invalid.: &{ErrBadHierarchy Metadata hierarchy is incomplete: no snapshot was included in update and server does not hold current snapshot key for repository}" go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=6f4f313b60c8fffdfc05c77d106f6adf7d33fc24a55754b27757950d8387" http.request.host="127.0.0.1:36511" http.request.id=b9a1eb04-db3d-47a7-a473-97c279e74673 http.request.method=POST http.request.remoteaddr="127.0.0.1:43878" http.request.uri=/v2/docker.com/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=6f4f313b60c8fffdfc05c77d106f6adf7d33fc24a55754b27757950d8387" http.request.host="127.0.0.1:36511" http.request.id=b9a1eb04-db3d-47a7-a473-97c279e74673 http.request.method=POST http.request.remoteaddr="127.0.0.1:43878" http.request.uri=/v2/docker.com/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration=6.8154ms http.response.status=400 http.response.written=260 +--- PASS: TestValidationErrorFormat (0.03s) === RUN TestRunBadAddr --- PASS: TestRunBadAddr (0.00s) === RUN TestRepoPrefixMatches -time="2025-10-12T14:11:11-12:00" level=info msg="updated docker.io/notary to timestamp version 1, checksum 0eaf8a82b0a46de2c6fc3543ea39a323e04591c8462554a7700ec613be5da368" docker.io/notary=gun go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=8b755487e817b8bf95cad17e557d83c6952268f51059c1f98d0201ad1511" http.request.host="127.0.0.1:34861" http.request.id=bf1522ef-7a55-48bb-9048-1b68070e2919 http.request.method=POST http.request.remoteaddr="127.0.0.1:49400" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=8b755487e817b8bf95cad17e557d83c6952268f51059c1f98d0201ad1511" http.request.host="127.0.0.1:34861" http.request.id=bf1522ef-7a55-48bb-9048-1b68070e2919 http.request.method=POST http.request.remoteaddr="127.0.0.1:49400" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 http.response.duration=2.492176ms http.response.status=0 http.response.written=0 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:34861" http.request.id=b7e1d162-64be-4a7c-9bae-4a7c6fc669fa http.request.method=GET http.request.remoteaddr="127.0.0.1:49400" http.request.uri=/v2/docker.io/notary/_trust/tuf/snapshot.json http.request.useragent=Go-http-client/1.1 http.response.duration="328.363µs" http.response.status=200 http.response.written=688 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:34861" http.request.id=54563f33-b9ff-4521-948a-fb10e0cbe106 http.request.method=GET http.request.remoteaddr="127.0.0.1:49400" http.request.uri=/v2/docker.io/notary/_trust/tuf/snapshot.700b67dec6b94451f7a820ca2342338dc401c677ecc1cfc6c3ca58b801031a87.json http.request.useragent=Go-http-client/1.1 http.response.duration="71.881µs" http.response.status=200 http.response.written=688 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:34861" http.request.id=4c25aac3-87c6-4633-a448-7bef5536891f http.request.method=GET http.request.remoteaddr="127.0.0.1:49400" http.request.uri=/v2/docker.io/notary/_trust/tuf/timestamp.key http.request.useragent=Go-http-client/1.1 http.response.duration="288.522µs" http.response.status=200 http.response.written=181 -time="2025-10-12T14:11:11-12:00" level=info msg="trust data deleted for docker.io/notary" docker.io/notary=gun go.version=go1.24.8 http.request.host="127.0.0.1:34861" http.request.id=6660ffc7-1b3b-4563-b8b0-613b76afff94 http.request.method=DELETE http.request.remoteaddr="127.0.0.1:49400" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:34861" http.request.id=6660ffc7-1b3b-4563-b8b0-613b76afff94 http.request.method=DELETE http.request.remoteaddr="127.0.0.1:49400" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 http.response.duration="47.641µs" http.response.status=0 http.response.written=0 ---- PASS: TestRepoPrefixMatches (0.01s) +time="2026-11-15T22:54:10+14:00" level=info msg="updated docker.io/notary to timestamp version 1, checksum 1a3d5baf2e0e10455bb3f2cb8b0a6ad7f789caf9042cb5aa89e127a2bd56638b" docker.io/notary=gun go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=73431f819e4f0f518c3d77e6ad99bb3730ac43f7a0cad2fc7ba4bb0e74d5" http.request.host="127.0.0.1:46491" http.request.id=01299403-6a16-4928-a3a7-7d10a81d42de http.request.method=POST http.request.remoteaddr="127.0.0.1:54660" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype="multipart/form-data; boundary=73431f819e4f0f518c3d77e6ad99bb3730ac43f7a0cad2fc7ba4bb0e74d5" http.request.host="127.0.0.1:46491" http.request.id=01299403-6a16-4928-a3a7-7d10a81d42de http.request.method=POST http.request.remoteaddr="127.0.0.1:54660" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 http.response.duration=2.27948ms http.response.status=0 http.response.written=0 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46491" http.request.id=b6f09aae-4e0a-4082-a292-5bc9e4202114 http.request.method=GET http.request.remoteaddr="127.0.0.1:54660" http.request.uri=/v2/docker.io/notary/_trust/tuf/snapshot.json http.request.useragent=Go-http-client/1.1 http.response.duration="371.2µs" http.response.status=200 http.response.written=688 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46491" http.request.id=1c35f967-ce10-4c15-a0e5-217226456b0e http.request.method=GET http.request.remoteaddr="127.0.0.1:54660" http.request.uri=/v2/docker.io/notary/_trust/tuf/snapshot.81f67639a395fc023f49e3116e135d7d9a0fe99470fdefab55fa61aa013b35f9.json http.request.useragent=Go-http-client/1.1 http.response.duration="22.8µs" http.response.status=200 http.response.written=688 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46491" http.request.id=d629b47e-dadc-4431-8f31-514b9ef8f2c5 http.request.method=GET http.request.remoteaddr="127.0.0.1:54660" http.request.uri=/v2/docker.io/notary/_trust/tuf/timestamp.key http.request.useragent=Go-http-client/1.1 http.response.duration=4.58804ms http.response.status=200 http.response.written=181 +time="2026-11-15T22:54:10+14:00" level=info msg="trust data deleted for docker.io/notary" docker.io/notary=gun go.version=go1.24.8 http.request.host="127.0.0.1:46491" http.request.id=08541903-9a01-4cfd-9094-517e3b90d518 http.request.method=DELETE http.request.remoteaddr="127.0.0.1:54660" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46491" http.request.id=08541903-9a01-4cfd-9094-517e3b90d518 http.request.method=DELETE http.request.remoteaddr="127.0.0.1:54660" http.request.uri=/v2/docker.io/notary/_trust/tuf/ http.request.useragent=Go-http-client/1.1 http.response.duration="47.76µs" http.response.status=0 http.response.written=0 +--- PASS: TestRepoPrefixMatches (0.02s) === RUN TestRepoPrefixDoesNotMatch ---- PASS: TestRepoPrefixDoesNotMatch (0.01s) +--- PASS: TestRepoPrefixDoesNotMatch (0.02s) === RUN TestMetricsEndpoint --- PASS: TestMetricsEndpoint (0.01s) === RUN TestGetKeysEndpoint -time="2025-10-12T14:11:11-12:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=8f704460-ffeb-454a-b3ef-1af936d9c5c0 http.request.method=GET http.request.remoteaddr="127.0.0.1:33390" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=8f704460-ffeb-454a-b3ef-1af936d9c5c0 http.request.method=GET http.request.remoteaddr="127.0.0.1:33390" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="116.401µs" http.response.status=404 http.response.written=104 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=c5b3c9a1-fa1c-4647-8998-95a60f30feef http.request.method=GET http.request.remoteaddr="127.0.0.1:33400" http.request.uri=/v2/gun/_trust/tuf/timestamp.key http.request.useragent=Go-http-client/1.1 http.response.duration=4.334389ms http.response.status=200 http.response.written=103 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=45878a9d-a501-43f9-8404-7237e6a102b7 http.request.method=GET http.request.remoteaddr="127.0.0.1:33408" http.request.uri=/v2/gun/_trust/tuf/snapshot.key http.request.useragent=Go-http-client/1.1 http.response.duration="148.841µs" http.response.status=200 http.response.written=103 -time="2025-10-12T14:11:11-12:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=3986da16-6547-4b3d-bc62-e8dbda9e097b http.request.method=GET http.request.remoteaddr="127.0.0.1:33410" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=3986da16-6547-4b3d-bc62-e8dbda9e097b http.request.method=GET http.request.remoteaddr="127.0.0.1:33410" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="104.36µs" http.response.status=404 http.response.written=104 -time="2025-10-12T14:11:11-12:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=5b9f9420-4b7a-431c-ab12-ba71b81d7799 http.request.method=GET http.request.remoteaddr="127.0.0.1:33420" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:46379" http.request.id=5b9f9420-4b7a-431c-ab12-ba71b81d7799 http.request.method=GET http.request.remoteaddr="127.0.0.1:33420" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="110.401µs" http.response.status=404 http.response.written=104 ---- PASS: TestGetKeysEndpoint (0.01s) +time="2026-11-15T22:54:10+14:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=710de78b-8bfb-4e34-b23b-9d79ee95e5e1 http.request.method=GET http.request.remoteaddr="127.0.0.1:36894" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=710de78b-8bfb-4e34-b23b-9d79ee95e5e1 http.request.method=GET http.request.remoteaddr="127.0.0.1:36894" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="100.4µs" http.response.status=404 http.response.written=104 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=aa0d9804-e8cf-4f61-9da6-d76e5545cfa8 http.request.method=GET http.request.remoteaddr="127.0.0.1:36910" http.request.uri=/v2/gun/_trust/tuf/timestamp.key http.request.useragent=Go-http-client/1.1 http.response.duration=8.18116ms http.response.status=200 http.response.written=103 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=d6f6acdb-6b13-4959-81e5-b4198ef6ad63 http.request.method=GET http.request.remoteaddr="127.0.0.1:36920" http.request.uri=/v2/gun/_trust/tuf/snapshot.key http.request.useragent=Go-http-client/1.1 http.response.duration="135.56µs" http.response.status=200 http.response.written=103 +time="2026-11-15T22:54:10+14:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=74b885bb-09f2-4fa5-a9cc-54f9c0f2d80d http.request.method=GET http.request.remoteaddr="127.0.0.1:36926" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=74b885bb-09f2-4fa5-a9cc-54f9c0f2d80d http.request.method=GET http.request.remoteaddr="127.0.0.1:36926" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="86.68µs" http.response.status=404 http.response.written=104 +time="2026-11-15T22:54:10+14:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=c7f97182-3045-43a4-9eb4-7582ea5fc172 http.request.method=GET http.request.remoteaddr="127.0.0.1:36938" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:44017" http.request.id=c7f97182-3045-43a4-9eb4-7582ea5fc172 http.request.method=GET http.request.remoteaddr="127.0.0.1:36938" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="66µs" http.response.status=404 http.response.written=104 +--- PASS: TestGetKeysEndpoint (0.02s) === RUN TestGetRoleByHash -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:35893" http.request.id=bfc83ccf-b0cb-4783-be34-38050fba2b5f http.request.method=GET http.request.remoteaddr="127.0.0.1:47704" http.request.uri=/v2/gun/_trust/tuf/timestamp.b2484b375599c993788fbb9c6bf59545331a88f49719efb555426a44487d0849.json http.request.useragent=Go-http-client/1.1 http.response.duration="45.04µs" http.response.status=200 http.response.written=120 ---- PASS: TestGetRoleByHash (0.00s) +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:40269" http.request.id=cb4b3ba4-59f8-4c8c-aca7-439f76fdfb9e http.request.method=GET http.request.remoteaddr="127.0.0.1:37930" http.request.uri=/v2/gun/_trust/tuf/timestamp.7e7f32d8ef7925dfb729ab9917178478ff615c966be3c38b46529cbfa11aa1f6.json http.request.useragent=Go-http-client/1.1 http.response.duration="97.4µs" http.response.status=200 http.response.written=120 +--- PASS: TestGetRoleByHash (0.01s) === RUN TestGetRoleByVersion -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:36109" http.request.id=9239e4b2-8697-42be-930c-2a1b27b1845d http.request.method=GET http.request.remoteaddr="127.0.0.1:50024" http.request.uri=/v2/gun/_trust/tuf/1.timestamp.json http.request.useragent=Go-http-client/1.1 http.response.duration="51.801µs" http.response.status=200 http.response.written=119 ---- PASS: TestGetRoleByVersion (0.00s) +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:43331" http.request.id=40cf615f-fdcf-4a91-8de8-729f01f8d253 http.request.method=GET http.request.remoteaddr="127.0.0.1:39148" http.request.uri=/v2/gun/_trust/tuf/1.timestamp.json http.request.useragent=Go-http-client/1.1 http.response.duration="57.64µs" http.response.status=200 http.response.written=120 +--- PASS: TestGetRoleByVersion (0.01s) === RUN TestGetCurrentRole -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:38415" http.request.id=58c627ca-bcea-4f59-ad85-4273aacdcdae http.request.method=GET http.request.remoteaddr="127.0.0.1:37134" http.request.uri=/v2/gun/_trust/tuf/timestamp.json http.request.useragent=Go-http-client/1.1 http.response.duration="295.242µs" http.response.status=200 http.response.written=500 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:33959" http.request.id=64abc292-11e0-4e18-b5e1-3b51b72563f4 http.request.method=GET http.request.remoteaddr="127.0.0.1:53040" http.request.uri=/v2/gun/_trust/tuf/timestamp.json http.request.useragent=Go-http-client/1.1 http.response.duration="277.92µs" http.response.status=200 http.response.written=500 --- PASS: TestGetCurrentRole (0.01s) === RUN TestRotateKeyEndpoint -time="2025-10-12T14:11:11-12:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=75bc281e-0080-4c12-818f-2ecdac8d8c7a http.request.method=POST http.request.remoteaddr="127.0.0.1:55630" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=75bc281e-0080-4c12-818f-2ecdac8d8c7a http.request.method=POST http.request.remoteaddr="127.0.0.1:55630" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="92.28µs" http.response.status=404 http.response.written=104 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=3c7edb2c-a48c-4733-a5f7-9fb902953435 http.request.method=POST http.request.remoteaddr="127.0.0.1:55636" http.request.uri=/v2/gun/_trust/tuf/timestamp.key http.request.useragent=Go-http-client/1.1 http.response.duration="119.961µs" http.response.status=200 http.response.written=103 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=95347f55-659a-4ac3-8716-a3eb8e908b1a http.request.method=POST http.request.remoteaddr="127.0.0.1:55650" http.request.uri=/v2/gun/_trust/tuf/snapshot.key http.request.useragent=Go-http-client/1.1 http.response.duration="119.521µs" http.response.status=200 http.response.written=103 -time="2025-10-12T14:11:11-12:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=c0872a91-ed58-4637-bed6-01a15940a78e http.request.method=POST http.request.remoteaddr="127.0.0.1:55654" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=c0872a91-ed58-4637-bed6-01a15940a78e http.request.method=POST http.request.remoteaddr="127.0.0.1:55654" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="87.561µs" http.response.status=404 http.response.written=104 -time="2025-10-12T14:11:11-12:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=0072d78a-593c-48ac-9a77-21b33e08e264 http.request.method=POST http.request.remoteaddr="127.0.0.1:55666" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=0072d78a-593c-48ac-9a77-21b33e08e264 http.request.method=POST http.request.remoteaddr="127.0.0.1:55666" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="90.721µs" http.response.status=404 http.response.written=104 -time="2025-10-12T14:11:11-12:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=cd9b5a3d-fff6-4a05-9669-9eaed556261c http.request.method=POST http.request.remoteaddr="127.0.0.1:55672" http.request.uri=/v2/gun/_trust/tuf/targets/delegation.key http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:44875" http.request.id=cd9b5a3d-fff6-4a05-9669-9eaed556261c http.request.method=POST http.request.remoteaddr="127.0.0.1:55672" http.request.uri=/v2/gun/_trust/tuf/targets/delegation.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="62.76µs" http.response.status=404 http.response.written=104 +time="2026-11-15T22:54:10+14:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=ec3803fd-1f45-46b7-95e4-cc1ea841db68 http.request.method=POST http.request.remoteaddr="127.0.0.1:44052" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=ec3803fd-1f45-46b7-95e4-cc1ea841db68 http.request.method=POST http.request.remoteaddr="127.0.0.1:44052" http.request.uri=/v2/gun/_trust/tuf/root.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="116.84µs" http.response.status=404 http.response.written=104 +time="2026-11-15T22:54:10+14:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=8601cfaa-fbe8-46ab-937e-9f7e7c461c9a http.request.method=POST http.request.remoteaddr="127.0.0.1:44058" http.request.uri=/v2/gun/_trust/tuf/targets/delegation.key http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=8601cfaa-fbe8-46ab-937e-9f7e7c461c9a http.request.method=POST http.request.remoteaddr="127.0.0.1:44058" http.request.uri=/v2/gun/_trust/tuf/targets/delegation.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="86.68µs" http.response.status=404 http.response.written=104 +time="2026-11-15T22:54:10+14:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=77afb55a-a592-4610-aa72-a5ae138cdf9c http.request.method=POST http.request.remoteaddr="127.0.0.1:44060" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=77afb55a-a592-4610-aa72-a5ae138cdf9c http.request.method=POST http.request.remoteaddr="127.0.0.1:44060" http.request.uri=/v2/gun/_trust/tuf/somerandomrole.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="87.44µs" http.response.status=404 http.response.written=104 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=b871592d-e54c-420c-9e3d-25c6995cab50 http.request.method=POST http.request.remoteaddr="127.0.0.1:44062" http.request.uri=/v2/gun/_trust/tuf/timestamp.key http.request.useragent=Go-http-client/1.1 http.response.duration="143.4µs" http.response.status=200 http.response.written=103 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=ef50aa60-1af7-428c-b063-3d28f0b045db http.request.method=POST http.request.remoteaddr="127.0.0.1:44074" http.request.uri=/v2/gun/_trust/tuf/snapshot.key http.request.useragent=Go-http-client/1.1 http.response.duration="135.92µs" http.response.status=200 http.response.written=103 +time="2026-11-15T22:54:10+14:00" level=info msg="metadata not found: You have requested metadata that does not exist.: " go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=88e400ac-e4f1-4d6b-9c81-62e2ae4bfffd http.request.method=POST http.request.remoteaddr="127.0.0.1:44080" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.contenttype=text/plain http.request.host="127.0.0.1:43213" http.request.id=88e400ac-e4f1-4d6b-9c81-62e2ae4bfffd http.request.method=POST http.request.remoteaddr="127.0.0.1:44080" http.request.uri=/v2/gun/_trust/tuf/targets.key http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="363.44µs" http.response.status=404 http.response.written=104 --- PASS: TestRotateKeyEndpoint (0.01s) PASS -ok github.com/theupdateframework/notary/server 0.139s +ok github.com/theupdateframework/notary/server 0.227s ? github.com/theupdateframework/notary/server/errors [no test files] === RUN Test_changefeed --- PASS: Test_changefeed (0.00s) === RUN Test_checkChangefeedInputs -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET unable to retrieve storage" -time="2025-10-12T14:11:11-12:00" level=error msg="400 GET invalid pageSize: not_a_number" +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET unable to retrieve storage" +time="2026-11-15T22:54:10+14:00" level=error msg="400 GET invalid pageSize: not_a_number" --- PASS: Test_checkChangefeedInputs (0.00s) === RUN TestMainHandlerGet -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:36373" http.request.id=880f2e03-89ee-4a19-96dd-3f7a1b10dba8 http.request.method=GET http.request.remoteaddr="127.0.0.1:42558" http.request.uri=/ http.request.useragent=Go-http-client/1.1 http.response.duration="51.04µs" http.response.status=200 http.response.written=2 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:43027" http.request.id=cb1a6c4f-c308-4e4e-a74c-0321b41cf84f http.request.method=GET http.request.remoteaddr="127.0.0.1:43908" http.request.uri=/ http.request.useragent=Go-http-client/1.1 http.response.duration="52.64µs" http.response.status=200 http.response.written=2 --- PASS: TestMainHandlerGet (0.01s) === RUN TestMainHandlerNotGet -time="2025-10-12T14:11:11-12:00" level=info msg="generic not found: You have requested a resource that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:42833" http.request.id=68db64d1-cde9-429b-9f6b-b2b58fffc756 http.request.method=HEAD http.request.remoteaddr="127.0.0.1:38608" http.request.uri=/ http.request.useragent=Go-http-client/1.1 -time="2025-10-12T14:11:11-12:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:42833" http.request.id=68db64d1-cde9-429b-9f6b-b2b58fffc756 http.request.method=HEAD http.request.remoteaddr="127.0.0.1:38608" http.request.uri=/ http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="154.081µs" http.response.status=404 http.response.written=105 +time="2026-11-15T22:54:10+14:00" level=info msg="generic not found: You have requested a resource that does not exist.: " go.version=go1.24.8 http.request.host="127.0.0.1:36399" http.request.id=e8a1e806-0565-4e92-a87f-a6685bd9f82c http.request.method=HEAD http.request.remoteaddr="127.0.0.1:58184" http.request.uri=/ http.request.useragent=Go-http-client/1.1 +time="2026-11-15T22:54:10+14:00" level=info msg="response completed" go.version=go1.24.8 http.request.host="127.0.0.1:36399" http.request.id=e8a1e806-0565-4e92-a87f-a6685bd9f82c http.request.method=HEAD http.request.remoteaddr="127.0.0.1:58184" http.request.uri=/ http.request.useragent=Go-http-client/1.1 http.response.contenttype="application/json; charset=utf-8" http.response.duration="254µs" http.response.status=404 http.response.written=105 --- PASS: TestMainHandlerNotGet (0.00s) === RUN TestKeyHandlersInvalidConfiguration -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET storage not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET storage not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET crypto service not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET crypto service not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET key algorithm not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET key algorithm not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST storage not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST storage not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST crypto service not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST crypto service not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST key algorithm not configured" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST key algorithm not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET storage not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET storage not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET crypto service not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET crypto service not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET key algorithm not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET key algorithm not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST storage not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST storage not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST crypto service not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST crypto service not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST key algorithm not configured" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST key algorithm not configured" go.version=go1.24.8 gun=gun --- PASS: TestKeyHandlersInvalidConfiguration (0.00s) === RUN TestKeyHandlersNoRoleOrRepo -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET no gun in request" =gun go.version=go1.24.8 -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET no gun in request" =gun go.version=go1.24.8 -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET no role in request" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET no role in request" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST no gun in request" =gun go.version=go1.24.8 -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST no gun in request" =gun go.version=go1.24.8 -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST no role in request" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST no role in request" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET no gun in request" =gun go.version=go1.24.8 +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET no gun in request" =gun go.version=go1.24.8 +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET no role in request" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET no role in request" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST no gun in request" =gun go.version=go1.24.8 +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST no gun in request" =gun go.version=go1.24.8 +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST no role in request" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST no role in request" go.version=go1.24.8 gun=gun --- PASS: TestKeyHandlersNoRoleOrRepo (0.00s) === RUN TestKeyHandlersInvalidRole -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET root key: " go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET targets key: " go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET targets/a key: " go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 GET invalidrole key: " go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST root key: " go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST targets key: " go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST targets/a key: " go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST invalidrole key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET root key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET targets key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET targets/a key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 GET invalidrole key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST root key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST targets key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST targets/a key: " go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST invalidrole key: " go.version=go1.24.8 gun=gun --- PASS: TestKeyHandlersInvalidRole (0.00s) === RUN TestGetKeyHandlerCreatesOnce ---- PASS: TestGetKeyHandlerCreatesOnce (0.01s) +--- PASS: TestGetKeyHandlerCreatesOnce (0.00s) === RUN TestKeyHandlersInvalidKeyAlgo -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET timestamp key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET snapshot key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST timestamp key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun -time="2025-10-12T14:11:11-12:00" level=error msg="500 POST snapshot key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET timestamp key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET snapshot key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST timestamp key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=error msg="500 POST snapshot key: only ED25519 supported by this cryptoservice" go.version=go1.24.8 gun=gun --- PASS: TestKeyHandlersInvalidKeyAlgo (0.00s) === RUN TestRotateKeyHandlerSuccessfulRotation --- PASS: TestRotateKeyHandlerSuccessfulRotation (0.00s) === RUN TestGetHandlerRoot -time="2025-10-12T14:11:11-12:00" level=info msg="404 GET root role" go.version=go1.24.8 gun=gun ---- PASS: TestGetHandlerRoot (0.01s) +time="2026-11-15T22:54:10+14:00" level=info msg="404 GET root role" go.version=go1.24.8 gun=gun +--- PASS: TestGetHandlerRoot (0.00s) === RUN TestGetHandlerTimestamp --- PASS: TestGetHandlerTimestamp (0.00s) === RUN TestGetHandlerSnapshot ---- PASS: TestGetHandlerSnapshot (0.00s) +--- PASS: TestGetHandlerSnapshot (0.01s) === RUN TestGetHandler404 -time="2025-10-12T14:11:11-12:00" level=info msg="404 GET root role" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="404 GET root role" go.version=go1.24.8 gun=gun --- PASS: TestGetHandler404 (0.00s) === RUN TestGetHandlerNilData -time="2025-10-12T14:11:11-12:00" level=info msg="404 GET root role" go.version=go1.24.8 gun=gun +time="2026-11-15T22:54:10+14:00" level=info msg="404 GET root role" go.version=go1.24.8 gun=gun --- PASS: TestGetHandlerNilData (0.00s) === RUN TestGetHandlerNoStorage -time="2025-10-12T14:11:11-12:00" level=error msg="500 GET: no storage exists" =gun go.version=go1.24.8 +time="2026-11-15T22:54:10+14:00" level=error msg="500 GET: no storage exists" =gun go.version=go1.24.8 --- PASS: TestGetHandlerNoStorage (0.00s) === RUN TestAtomicUpdateValidationFailurePropagated ---- PASS: TestAtomicUpdateValidationFailurePropagated (0.02s) +--- PASS: TestAtomicUpdateValidationFailurePropagated (0.01s) === RUN TestAtomicUpdateNonValidationFailureNotPropagated -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST error validating update" go.version=go1.24.8 testGUN=gun ---- PASS: TestAtomicUpdateNonValidationFailureNotPropagated (0.01s) +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST error validating update" go.version=go1.24.8 testGUN=gun +--- PASS: TestAtomicUpdateNonValidationFailureNotPropagated (0.00s) === RUN TestAtomicUpdateVersionErrorPropagated -time="2025-10-12T14:11:11-12:00" level=info msg="400 POST old version error" go.version=go1.24.8 testGUN=gun +time="2026-11-15T22:54:10+14:00" level=info msg="400 POST old version error" go.version=go1.24.8 testGUN=gun --- PASS: TestAtomicUpdateVersionErrorPropagated (0.01s) === RUN TestGetMaybeServerSignedNoCrypto --- PASS: TestGetMaybeServerSignedNoCrypto (0.00s) @@ -3138,10 +3174,10 @@ === RUN TestValidatePrevTimestamp --- PASS: TestValidatePrevTimestamp (0.01s) === RUN TestValidatePreviousTimestampCorrupt -time="2025-10-12T14:11:11-12:00" level=error msg="Failed to unmarshal existing timestamp for GUN docker.com/notary" +time="2026-11-15T22:54:10+14:00" level=error msg="Failed to unmarshal existing timestamp for GUN docker.com/notary" --- PASS: TestValidatePreviousTimestampCorrupt (0.01s) === RUN TestValidateGetCurrentTimestampBroken ---- PASS: TestValidateGetCurrentTimestampBroken (0.00s) +--- PASS: TestValidateGetCurrentTimestampBroken (0.01s) === RUN TestValidateNoNewRoot --- PASS: TestValidateNoNewRoot (0.01s) === RUN TestValidateNoNewTargets @@ -3157,13 +3193,13 @@ === RUN TestValidateRootGetCurrentRootBroken --- PASS: TestValidateRootGetCurrentRootBroken (0.01s) === RUN TestValidateRootRotationWithOldSigs ---- PASS: TestValidateRootRotationWithOldSigs (0.02s) +--- PASS: TestValidateRootRotationWithOldSigs (0.03s) === RUN TestValidateRootRotationMultipleKeysThreshold1 ---- PASS: TestValidateRootRotationMultipleKeysThreshold1 (0.01s) +--- PASS: TestValidateRootRotationMultipleKeysThreshold1 (0.03s) === RUN TestRootRotationNotSignedWithOldKeysForOldRole --- PASS: TestRootRotationNotSignedWithOldKeysForOldRole (0.02s) === RUN TestRootRotationVersionIncrement ---- PASS: TestRootRotationVersionIncrement (0.01s) +--- PASS: TestRootRotationVersionIncrement (0.02s) === RUN TestValidateNoRoot --- PASS: TestValidateNoRoot (0.00s) === RUN TestValidateSnapshotMissingNoSnapshotKey @@ -3173,7 +3209,7 @@ === RUN TestValidateSnapshotGenerateWithPrev --- PASS: TestValidateSnapshotGenerateWithPrev (0.01s) === RUN TestValidateSnapshotGeneratePrevCorrupt -time="2025-10-12T14:11:11-12:00" level=error msg="Failed to unmarshal existing snapshot for GUN docker.com/notary" +time="2026-11-15T22:54:11+14:00" level=error msg="Failed to unmarshal existing snapshot for GUN docker.com/notary" --- PASS: TestValidateSnapshotGeneratePrevCorrupt (0.01s) === RUN TestValidateSnapshotGenerateStoreGetCurrentSnapshotBroken --- PASS: TestValidateSnapshotGenerateStoreGetCurrentSnapshotBroken (0.01s) @@ -3182,15 +3218,15 @@ === RUN TestValidateSnapshotGenerate --- PASS: TestValidateSnapshotGenerate (0.01s) === RUN TestValidateRootNoTimestampKey ---- PASS: TestValidateRootNoTimestampKey (0.01s) +--- PASS: TestValidateRootNoTimestampKey (0.00s) === RUN TestValidateRootInvalidTimestampKey ---- PASS: TestValidateRootInvalidTimestampKey (0.00s) +--- PASS: TestValidateRootInvalidTimestampKey (0.01s) === RUN TestValidateRootInvalidTimestampThreshold --- PASS: TestValidateRootInvalidTimestampThreshold (0.01s) === RUN TestValidateRootInvalidZeroThreshold --- PASS: TestValidateRootInvalidZeroThreshold (0.02s) === RUN TestValidateRootRoleMissing ---- PASS: TestValidateRootRoleMissing (0.00s) +--- PASS: TestValidateRootRoleMissing (0.01s) === RUN TestValidateTargetsRoleMissing --- PASS: TestValidateTargetsRoleMissing (0.00s) === RUN TestValidateSnapshotRoleMissing @@ -3198,15 +3234,15 @@ === RUN TestValidateRootSigMissing --- PASS: TestValidateRootSigMissing (0.00s) === RUN TestValidateTargetsSigMissing -time="2025-10-12T14:11:12-12:00" level=error msg="ErrBadTargets: tuf: data has no signatures" +time="2026-11-15T22:54:11+14:00" level=error msg="ErrBadTargets: tuf: data has no signatures" --- PASS: TestValidateTargetsSigMissing (0.00s) === RUN TestValidateSnapshotSigMissing ---- PASS: TestValidateSnapshotSigMissing (0.01s) +--- PASS: TestValidateSnapshotSigMissing (0.00s) === RUN TestValidateRootCorrupt --- PASS: TestValidateRootCorrupt (0.00s) === RUN TestValidateTargetsCorrupt -time="2025-10-12T14:11:12-12:00" level=error msg="ErrBadTargets: invalid character '\\u0084' looking for beginning of value" ---- PASS: TestValidateTargetsCorrupt (0.00s) +time="2026-11-15T22:54:11+14:00" level=error msg="ErrBadTargets: invalid character '\\u0084' looking for beginning of value" +--- PASS: TestValidateTargetsCorrupt (0.01s) === RUN TestValidateSnapshotCorrupt --- PASS: TestValidateSnapshotCorrupt (0.00s) === RUN TestValidateRootModifiedSize @@ -3214,9 +3250,9 @@ === RUN TestValidateTargetsModifiedSize --- PASS: TestValidateTargetsModifiedSize (0.01s) === RUN TestValidateRootModifiedHash ---- PASS: TestValidateRootModifiedHash (0.01s) +--- PASS: TestValidateRootModifiedHash (0.00s) === RUN TestValidateTargetsModifiedHash ---- PASS: TestValidateTargetsModifiedHash (0.00s) +--- PASS: TestValidateTargetsModifiedHash (0.01s) === RUN TestGenerateSnapshotRootNotLoaded --- PASS: TestGenerateSnapshotRootNotLoaded (0.00s) === RUN TestGenerateSnapshotNoKey @@ -3224,36 +3260,36 @@ === RUN TestLoadTargetsLoadsNothingIfNoUpdates --- PASS: TestLoadTargetsLoadsNothingIfNoUpdates (0.00s) === RUN TestValidateTargetsRequiresStoredParent -time="2025-10-12T14:11:12-12:00" level=error msg="ErrBadTargets: targets must be loaded first" +time="2026-11-15T22:54:11+14:00" level=error msg="ErrBadTargets: targets must be loaded first" --- PASS: TestValidateTargetsRequiresStoredParent (0.00s) === RUN TestValidateTargetsParentInUpdate -time="2025-10-12T14:11:12-12:00" level=error msg="ErrBadTargets: invalid character 'I' looking for beginning of value" +time="2026-11-15T22:54:11+14:00" level=error msg="ErrBadTargets: invalid character 'I' looking for beginning of value" --- PASS: TestValidateTargetsParentInUpdate (0.00s) === RUN TestValidateTargetsRoleNotInParent -time="2025-10-12T14:11:12-12:00" level=error msg="ErrBadTargets: tuf: invalid role targets/level1. delegation does not exist" -time="2025-10-12T14:11:12-12:00" level=error msg="ErrBadTargets: targets has already been loaded" -time="2025-10-12T14:11:12-12:00" level=error msg="ErrBadTargets: tuf: invalid role targets/level1. delegation does not exist" +time="2026-11-15T22:54:11+14:00" level=error msg="ErrBadTargets: tuf: invalid role targets/level1. delegation does not exist" +time="2026-11-15T22:54:11+14:00" level=error msg="ErrBadTargets: targets has already been loaded" +time="2026-11-15T22:54:11+14:00" level=error msg="ErrBadTargets: tuf: invalid role targets/level1. delegation does not exist" --- PASS: TestValidateTargetsRoleNotInParent (0.01s) PASS -ok github.com/theupdateframework/notary/server/handlers 0.445s +ok github.com/theupdateframework/notary/server/handlers 0.536s === RUN TestSnapshotExpired --- PASS: TestSnapshotExpired (0.00s) === RUN TestSnapshotNotExpired --- PASS: TestSnapshotNotExpired (0.00s) === RUN TestGetSnapshotKeyCreate ---- PASS: TestGetSnapshotKeyCreate (0.00s) +--- PASS: TestGetSnapshotKeyCreate (0.01s) === RUN TestGetSnapshotKeyCreateWithFailingStore -time="2025-10-12T14:11:12-12:00" level=error msg="Error when retrieving root role for GUN gun: failing store failed" +time="2026-11-15T22:54:12+14:00" level=error msg="Error when retrieving root role for GUN gun: failing store failed" --- PASS: TestGetSnapshotKeyCreateWithFailingStore (0.00s) === RUN TestGetSnapshotKeyCreateWithCorruptedStore -time="2025-10-12T14:11:12-12:00" level=error msg="Failed to unmarshal existing root for GUN gun to retrieve snapshot key ID" +time="2026-11-15T22:54:12+14:00" level=error msg="Failed to unmarshal existing root for GUN gun to retrieve snapshot key ID" --- PASS: TestGetSnapshotKeyCreateWithCorruptedStore (0.00s) === RUN TestGetSnapshotKeyCreateWithInvalidAlgo --- PASS: TestGetSnapshotKeyCreateWithInvalidAlgo (0.00s) === RUN TestGetSnapshotKeyExistingMetadata --- PASS: TestGetSnapshotKeyExistingMetadata (0.00s) === RUN TestGetSnapshotNoPreviousSnapshot -time="2025-10-12T14:11:12-12:00" level=error msg="Failed to unmarshal existing snapshot for GUN gun" +time="2026-11-15T22:54:12+14:00" level=error msg="Failed to unmarshal existing snapshot for GUN gun" --- PASS: TestGetSnapshotNoPreviousSnapshot (0.00s) === RUN TestGetSnapshotReturnsPreviousSnapshotIfUnexpired --- PASS: TestGetSnapshotReturnsPreviousSnapshotIfUnexpired (0.00s) @@ -3264,7 +3300,7 @@ === RUN TestCreateSnapshotNoKeyInCrypto --- PASS: TestCreateSnapshotNoKeyInCrypto (0.00s) PASS -ok github.com/theupdateframework/notary/server/snapshot 0.068s +ok github.com/theupdateframework/notary/server/snapshot 0.057s === RUN TestMemoryUpdateCurrentEmpty --- PASS: TestMemoryUpdateCurrentEmpty (0.00s) === RUN TestMemoryUpdateCurrentVersionCheckOldVersionExists @@ -3290,17 +3326,17 @@ === RUN TestRDBTUFFileJSONUnmarshallingFailure --- PASS: TestRDBTUFFileJSONUnmarshallingFailure (0.00s) === RUN TestSQLUpdateCurrentEmpty ---- PASS: TestSQLUpdateCurrentEmpty (0.01s) +--- PASS: TestSQLUpdateCurrentEmpty (0.02s) === RUN TestSQLUpdateCurrentVersionCheckOldVersionExists --- PASS: TestSQLUpdateCurrentVersionCheckOldVersionExists (0.00s) === RUN TestSQLUpdateCurrentVersionCheckOldVersionNotExist ---- PASS: TestSQLUpdateCurrentVersionCheckOldVersionNotExist (0.00s) +--- PASS: TestSQLUpdateCurrentVersionCheckOldVersionNotExist (0.01s) === RUN TestSQLUpdateManyNoConflicts ---- PASS: TestSQLUpdateManyNoConflicts (0.01s) +--- PASS: TestSQLUpdateManyNoConflicts (0.02s) === RUN TestSQLUpdateManyConflictRollback --- PASS: TestSQLUpdateManyConflictRollback (0.00s) === RUN TestSQLDelete ---- PASS: TestSQLDelete (0.01s) +--- PASS: TestSQLDelete (0.02s) === RUN TestSQLDBCheckHealthTableMissing --- PASS: TestSQLDBCheckHealthTableMissing (0.00s) === RUN TestSQLDBCheckHealthDBConnectionFail @@ -3308,17 +3344,17 @@ === RUN TestSQLDBCheckHealthSucceeds --- PASS: TestSQLDBCheckHealthSucceeds (0.00s) === RUN TestSQLDBGetChecksum ---- PASS: TestSQLDBGetChecksum (0.00s) +--- PASS: TestSQLDBGetChecksum (0.01s) === RUN TestSQLDBGetChecksumNotFound --- PASS: TestSQLDBGetChecksumNotFound (0.00s) === RUN TestSQLTUFMetaStoreGetCurrent ---- PASS: TestSQLTUFMetaStoreGetCurrent (0.01s) +--- PASS: TestSQLTUFMetaStoreGetCurrent (0.02s) === RUN TestSQLGetChanges --- PASS: TestSQLGetChanges (0.01s) === RUN TestSQLDBGetVersion --- PASS: TestSQLDBGetVersion (0.00s) PASS -ok github.com/theupdateframework/notary/server/storage 0.097s +ok github.com/theupdateframework/notary/server/storage 0.201s === RUN TestTimestampExpired --- PASS: TestTimestampExpired (0.00s) === RUN TestTimestampNotExpired @@ -3326,31 +3362,31 @@ === RUN TestGetTimestampKey --- PASS: TestGetTimestampKey (0.01s) === RUN TestGetTimestampNoPreviousTimestamp -time="2025-10-12T14:11:12-12:00" level=error msg="Failed to unmarshal existing timestamp" ---- PASS: TestGetTimestampNoPreviousTimestamp (0.00s) +time="2026-11-15T22:54:12+14:00" level=error msg="Failed to unmarshal existing timestamp" +--- PASS: TestGetTimestampNoPreviousTimestamp (0.01s) === RUN TestGetTimestampReturnsPreviousTimestampIfUnexpired --- PASS: TestGetTimestampReturnsPreviousTimestampIfUnexpired (0.00s) === RUN TestGetTimestampOldTimestampExpired ---- PASS: TestGetTimestampOldTimestampExpired (0.00s) +--- PASS: TestGetTimestampOldTimestampExpired (0.01s) === RUN TestCannotMakeNewTimestampIfNoRootOrSnapshot -time="2025-10-12T14:11:12-12:00" level=error msg="Failed to create a new timestamp" -time="2025-10-12T14:11:12-12:00" level=error msg="Failed to create a new timestamp" ---- PASS: TestCannotMakeNewTimestampIfNoRootOrSnapshot (0.00s) +time="2026-11-15T22:54:12+14:00" level=error msg="Failed to create a new timestamp" +time="2026-11-15T22:54:12+14:00" level=error msg="Failed to create a new timestamp" +--- PASS: TestCannotMakeNewTimestampIfNoRootOrSnapshot (0.01s) === RUN TestCreateTimestampNoKeyInCrypto -time="2025-10-12T14:11:12-12:00" level=error msg="Failed to create a new timestamp" +time="2026-11-15T22:54:12+14:00" level=error msg="Failed to create a new timestamp" --- PASS: TestCreateTimestampNoKeyInCrypto (0.01s) === RUN TestGetTimestampKeyCreateWithFailingStore -time="2025-10-12T14:11:12-12:00" level=error msg="Error when retrieving root role for GUN gun: failing store failed" +time="2026-11-15T22:54:12+14:00" level=error msg="Error when retrieving root role for GUN gun: failing store failed" --- PASS: TestGetTimestampKeyCreateWithFailingStore (0.00s) === RUN TestGetTimestampKeyCreateWithCorruptedStore -time="2025-10-12T14:11:12-12:00" level=error msg="Failed to unmarshal existing root for GUN gun to retrieve timestamp key ID" +time="2026-11-15T22:54:12+14:00" level=error msg="Failed to unmarshal existing root for GUN gun to retrieve timestamp key ID" --- PASS: TestGetTimestampKeyCreateWithCorruptedStore (0.00s) === RUN TestGetTimestampKeyCreateWithInvalidAlgo --- PASS: TestGetTimestampKeyCreateWithInvalidAlgo (0.00s) === RUN TestGetTimestampKeyExistingMetadata ---- PASS: TestGetTimestampKeyExistingMetadata (0.00s) +--- PASS: TestGetTimestampKeyExistingMetadata (0.01s) PASS -ok github.com/theupdateframework/notary/server/timestamp 0.060s +ok github.com/theupdateframework/notary/server/timestamp 0.095s ? github.com/theupdateframework/notary/signer [no test files] ? github.com/theupdateframework/notary/signer/api [no test files] ? github.com/theupdateframework/notary/signer/client [no test files] @@ -3370,28 +3406,28 @@ === RUN TestSQLDBHealthCheckMissingTable --- PASS: TestSQLDBHealthCheckMissingTable (0.00s) === RUN TestSQLDBHealthCheckNoConnection ---- PASS: TestSQLDBHealthCheckNoConnection (0.00s) +--- PASS: TestSQLDBHealthCheckNoConnection (0.01s) === RUN TestSQLKeyCanOnlyBeAddedOnce (/build/reproducible-path/notary-0.7.0+git20240416.9d2b3b3+ds1/_build/src/github.com/theupdateframework/notary/signer/keydbstore/sql_keydbstore.go:98) -[2025-10-12 14:11:13]  UNIQUE constraint failed: private_keys.key_id  +[2026-11-15 22:54:12]  UNIQUE constraint failed: private_keys.key_id  --- PASS: TestSQLKeyCanOnlyBeAddedOnce (0.03s) === RUN TestSQLCreateDelete --- PASS: TestSQLCreateDelete (0.04s) === RUN TestSQLKeyRotation ---- PASS: TestSQLKeyRotation (0.03s) +--- PASS: TestSQLKeyRotation (0.06s) === RUN TestSQLSigningMarksKeyActive -time="2025-10-12T14:11:13-12:00" level=error msg="Key c8cd65b01d23eb3c1c7afe9548dbe22fbed4cdbf029c644fcb9552e4517fc6b4 was just used to sign hash successful, db closed, error when trying to mark key as active: sql: database is closed" ---- PASS: TestSQLSigningMarksKeyActive (0.04s) +time="2026-11-15T22:54:12+14:00" level=error msg="Key c27e42a21616fa9a9cb325430ad528261d89a1fc7781b1eed54a3a7c0b427db9 was just used to sign hash successful, db closed, error when trying to mark key as active: sql: database is closed" +--- PASS: TestSQLSigningMarksKeyActive (0.07s) === RUN TestSQLCreateKey (/build/reproducible-path/notary-0.7.0+git20240416.9d2b3b3+ds1/_build/src/github.com/theupdateframework/notary/signer/keydbstore/sql_keydbstore.go:197) -[2025-10-12 14:11:13]  sql: database is closed  ---- PASS: TestSQLCreateKey (0.04s) +[2026-11-15 22:54:12]  sql: database is closed  +--- PASS: TestSQLCreateKey (0.06s) === RUN TestSQLUnimplementedInterfaceBehavior --- PASS: TestSQLUnimplementedInterfaceBehavior (0.01s) PASS -ok github.com/theupdateframework/notary/signer/keydbstore 0.241s +ok github.com/theupdateframework/notary/signer/keydbstore 0.392s === RUN TestSet --- PASS: TestSet (0.00s) === RUN TestSetWithNoParentDirectory @@ -3425,15 +3461,15 @@ === RUN TestFileStoreConsistency --- PASS: TestFileStoreConsistency (0.00s) === RUN TestHTTPStoreGetSized ---- PASS: TestHTTPStoreGetSized (0.00s) +--- PASS: TestHTTPStoreGetSized (0.02s) === RUN TestHTTPStoreGetAllMeta --- PASS: TestHTTPStoreGetAllMeta (0.00s) === RUN TestSetSingleAndSetMultiMeta --- PASS: TestSetSingleAndSetMultiMeta (0.00s) === RUN Test404Error ---- PASS: Test404Error (0.01s) +--- PASS: Test404Error (0.00s) === RUN Test50XErrors ---- PASS: Test50XErrors (0.00s) +--- PASS: Test50XErrors (0.01s) === RUN Test400Error --- PASS: Test400Error (0.00s) === RUN TestTranslateErrorsParse400Errors @@ -3449,7 +3485,7 @@ === RUN TestHTTPStoreGetKey --- PASS: TestHTTPStoreGetKey (0.00s) === RUN TestHTTPStoreGetRotateKeySizeLimited ---- PASS: TestHTTPStoreGetRotateKeySizeLimited (0.00s) +--- PASS: TestHTTPStoreGetRotateKeySizeLimited (0.01s) === RUN TestHTTPOffline --- PASS: TestHTTPOffline (0.00s) === RUN TestErrServerUnavailable @@ -3470,7 +3506,7 @@ === RUN TestMemoryStoreMetadata --- PASS: TestMemoryStoreMetadata (0.00s) PASS -ok github.com/theupdateframework/notary/storage 0.055s +ok github.com/theupdateframework/notary/storage 0.094s ? github.com/theupdateframework/notary/storage/rethinkdb [no test files] === RUN TestExportKeys --- PASS: TestExportKeys (0.00s) @@ -3495,7 +3531,7 @@ === RUN TestImportKeys2InOneFileNoPath --- PASS: TestImportKeys2InOneFileNoPath (0.00s) === RUN TestEncryptedKeyImportFail -time="2025-10-12T14:11:13-12:00" level=warning msg="failed to import key to store: Invalid key generated, key may be encrypted and does not contain path header" +time="2026-11-15T22:54:13+14:00" level=warning msg="failed to import key to store: Invalid key generated, key may be encrypted and does not contain path header" --- PASS: TestEncryptedKeyImportFail (0.00s) === RUN TestEncryptedKeyImportSuccess --- PASS: TestEncryptedKeyImportSuccess (0.00s) @@ -3516,97 +3552,97 @@ === RUN TestAddGetKeyInfoMemStore --- PASS: TestAddGetKeyInfoMemStore (0.00s) === RUN TestGetDecryptedWithTamperedCipherText -time="2025-10-12T14:11:13-12:00" level=error msg="PEM block is empty" ---- PASS: TestGetDecryptedWithTamperedCipherText (0.01s) +time="2026-11-15T22:54:13+14:00" level=error msg="PEM block is empty" +--- PASS: TestGetDecryptedWithTamperedCipherText (0.00s) === RUN TestGetDecryptedWithInvalidPassphrase --- PASS: TestGetDecryptedWithInvalidPassphrase (0.01s) === RUN TestGetDecryptedWithConsistentlyInvalidPassphrase ---- PASS: TestGetDecryptedWithConsistentlyInvalidPassphrase (0.02s) +--- PASS: TestGetDecryptedWithConsistentlyInvalidPassphrase (0.01s) === RUN TestRemoveKey ---- PASS: TestRemoveKey (0.01s) +--- PASS: TestRemoveKey (0.03s) === RUN TestKeysAreCached --- PASS: TestKeysAreCached (0.00s) PASS -ok github.com/theupdateframework/notary/trustmanager 0.138s +ok github.com/theupdateframework/notary/trustmanager 0.135s === RUN TestRemoteStore -time="2025-10-12T14:11:13-12:00" level=info msg="listing files from localhost:9888" -time="2025-10-12T14:11:13-12:00" level=info msg="listing files from localhost:9888" ---- PASS: TestRemoteStore (0.04s) +time="2026-11-15T22:54:14+14:00" level=info msg="listing files from localhost:9888" +time="2026-11-15T22:54:14+14:00" level=info msg="listing files from localhost:9888" +--- PASS: TestRemoteStore (0.07s) === RUN TestErrors -time="2025-10-12T14:11:13-12:00" level=error msg="failed to store: test error" ---- PASS: TestErrors (0.03s) +time="2026-11-15T22:54:14+14:00" level=error msg="failed to store: test error" +--- PASS: TestErrors (0.07s) === RUN TestNewGRPCStorage --- PASS: TestNewGRPCStorage (0.00s) === RUN TestGRPCStorage --- PASS: TestGRPCStorage (0.00s) PASS -ok github.com/theupdateframework/notary/trustmanager/remoteks 0.115s +ok github.com/theupdateframework/notary/trustmanager/remoteks 0.218s ? github.com/theupdateframework/notary/trustmanager/remoteks/github.com/theupdateframework/notary/trustmanager/remoteks [no test files] ? github.com/theupdateframework/notary/trustmanager/yubikey [no test files] === RUN TestWildcardMatch --- PASS: TestWildcardMatch (0.00s) === RUN TestValidateRoot -2025/10/12 14:11:15 [INFO] generate received request -2025/10/12 14:11:15 [INFO] received CSR -2025/10/12 14:11:15 [INFO] generating key: ecdsa-256 -2025/10/12 14:11:15 [INFO] encoded CSR -2025/10/12 14:11:15 [INFO] signed certificate with serial number 571029504199660055986555956817375299115638792128 -2025/10/12 14:11:15 [INFO] received CSR -2025/10/12 14:11:15 [INFO] generating key: ecdsa-256 -2025/10/12 14:11:15 [INFO] encoded CSR -2025/10/12 14:11:15 [INFO] signed certificate with serial number 4251660934772311615914391727245010538589072430 -2025/10/12 14:11:15 [INFO] received CSR -2025/10/12 14:11:15 [INFO] generating key: ecdsa-256 -2025/10/12 14:11:15 [INFO] encoded CSR -2025/10/12 14:11:15 [INFO] signed certificate with serial number 347443857861952320601398888287616117323820407323 ---- PASS: TestValidateRoot (0.02s) +2026/11/15 22:54:18 [INFO] generate received request +2026/11/15 22:54:18 [INFO] received CSR +2026/11/15 22:54:18 [INFO] generating key: ecdsa-256 +2026/11/15 22:54:18 [INFO] encoded CSR +2026/11/15 22:54:18 [INFO] signed certificate with serial number 50218167046096688085559448160551013847178789822 +2026/11/15 22:54:18 [INFO] received CSR +2026/11/15 22:54:18 [INFO] generating key: ecdsa-256 +2026/11/15 22:54:18 [INFO] encoded CSR +2026/11/15 22:54:18 [INFO] signed certificate with serial number 330599196445390058948255098294080576928003815031 +2026/11/15 22:54:18 [INFO] received CSR +2026/11/15 22:54:18 [INFO] generating key: ecdsa-256 +2026/11/15 22:54:18 [INFO] encoded CSR +2026/11/15 22:54:18 [INFO] signed certificate with serial number 414722067750573724463241177053857432284399833861 +--- PASS: TestValidateRoot (0.03s) === RUN TestValidateRootWithoutTOFUS --- PASS: TestValidateRootWithoutTOFUS (0.00s) === RUN TestValidateRootWithPinnedCert --- PASS: TestValidateRootWithPinnedCert (0.00s) === RUN TestValidateRootWithPinnedCertAndIntermediates ---- PASS: TestValidateRootWithPinnedCertAndIntermediates (0.01s) +--- PASS: TestValidateRootWithPinnedCertAndIntermediates (0.02s) === RUN TestValidateRootFailuresWithPinnedCert --- PASS: TestValidateRootFailuresWithPinnedCert (0.00s) === RUN TestValidateRootWithPinnedCA ---- PASS: TestValidateRootWithPinnedCA (0.02s) +--- PASS: TestValidateRootWithPinnedCA (0.04s) === RUN TestValidateSuccessfulRootRotation ---- PASS: TestValidateSuccessfulRootRotation (0.03s) +--- PASS: TestValidateSuccessfulRootRotation (0.08s) === RUN TestValidateRootRotationMissingOrigSig --- PASS: TestValidateRootRotationMissingOrigSig (0.04s) === RUN TestValidateRootRotationMissingNewSig ---- PASS: TestValidateRootRotationMissingNewSig (0.02s) +--- PASS: TestValidateRootRotationMissingNewSig (0.05s) === RUN TestValidateRootRotationTrustPinning ---- PASS: TestValidateRootRotationTrustPinning (0.03s) +--- PASS: TestValidateRootRotationTrustPinning (0.07s) === RUN TestValidateRootRotationTrustPinningInvalidCA ---- PASS: TestValidateRootRotationTrustPinningInvalidCA (0.02s) +--- PASS: TestValidateRootRotationTrustPinningInvalidCA (0.03s) === RUN TestParsePEMPublicKey -time="2025-10-12T14:11:15-12:00" level=warning msg="certificate with CN notary is near expiry" +time="2026-11-15T22:54:18+14:00" level=warning msg="certificate with CN notary is near expiry" --- PASS: TestParsePEMPublicKey (0.00s) === RUN TestCheckingCertExpiry -time="2025-10-12T14:11:15-12:00" level=warning msg="certificate with CN notary is near expiry" ---- PASS: TestCheckingCertExpiry (0.00s) +time="2026-11-15T22:54:18+14:00" level=warning msg="certificate with CN notary is near expiry" +--- PASS: TestCheckingCertExpiry (0.01s) === RUN TestValidateRootWithExpiredIntermediate ---- PASS: TestValidateRootWithExpiredIntermediate (0.00s) +--- PASS: TestValidateRootWithExpiredIntermediate (0.01s) === RUN TestCheckingWildcardCert ---- PASS: TestCheckingWildcardCert (0.00s) +--- PASS: TestCheckingWildcardCert (0.01s) === RUN TestWildcardMatching --- PASS: TestWildcardMatching (0.00s) PASS -ok github.com/theupdateframework/notary/trustpinning 0.259s +ok github.com/theupdateframework/notary/trustpinning 0.473s === RUN TestInitSnapshotNoTargets --- PASS: TestInitSnapshotNoTargets (0.01s) === RUN TestInitRepo --- PASS: TestInitRepo (0.00s) === RUN TestUpdateDelegations ---- PASS: TestUpdateDelegations (0.00s) +--- PASS: TestUpdateDelegations (0.02s) === RUN TestPurgeDelegationsKeyFromTop -time="2025-10-12T14:11:15-12:00" level=warning msg="role targets/sybil has fewer keys than its threshold of 1; it will not be usable until keys are added to it" -time="2025-10-12T14:11:15-12:00" level=warning msg="role targets/vimes/carrot has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:18+14:00" level=warning msg="role targets/sybil has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +time="2026-11-15T22:54:18+14:00" level=warning msg="role targets/vimes/carrot has fewer keys than its threshold of 1; it will not be usable until keys are added to it" --- PASS: TestPurgeDelegationsKeyFromTop (0.00s) === RUN TestPurgeDelegationsKeyFromDeep -time="2025-10-12T14:11:15-12:00" level=warning msg="role targets/vimes/carrot has fewer keys than its threshold of 1; it will not be usable until keys are added to it" ---- PASS: TestPurgeDelegationsKeyFromDeep (0.00s) +time="2026-11-15T22:54:18+14:00" level=warning msg="role targets/vimes/carrot has fewer keys than its threshold of 1; it will not be usable until keys are added to it" +--- PASS: TestPurgeDelegationsKeyFromDeep (0.01s) === RUN TestPurgeDelegationsKeyBadWildRole --- PASS: TestPurgeDelegationsKeyBadWildRole (0.00s) === RUN TestUpdateDelegationsParentMissing @@ -3618,14 +3654,14 @@ === RUN TestUpdateDelegationsRoleThatIsMissingDelegationKey --- PASS: TestUpdateDelegationsRoleThatIsMissingDelegationKey (0.00s) === RUN TestUpdateDelegationsNotEnoughKeys -time="2025-10-12T14:11:15-12:00" level=warning msg="role targets/role has fewer keys than its threshold of 2; it will not be usable until keys are added to it" +time="2026-11-15T22:54:18+14:00" level=warning msg="role targets/role has fewer keys than its threshold of 2; it will not be usable until keys are added to it" --- PASS: TestUpdateDelegationsNotEnoughKeys (0.00s) === RUN TestUpdateDelegationsAddKeyToRole --- PASS: TestUpdateDelegationsAddKeyToRole (0.00s) === RUN TestDeleteDelegations --- PASS: TestDeleteDelegations (0.00s) === RUN TestDeleteDelegationsRoleNotExistBecauseNoParentMeta ---- PASS: TestDeleteDelegationsRoleNotExistBecauseNoParentMeta (0.00s) +--- PASS: TestDeleteDelegationsRoleNotExistBecauseNoParentMeta (0.02s) === RUN TestDeleteDelegationsRoleNotExist --- PASS: TestDeleteDelegationsRoleNotExist (0.00s) === RUN TestDeleteDelegationsInvalidRole @@ -3641,7 +3677,7 @@ === RUN TestGetDelegationRoleAndMetadataExistDelegationDoesntExists --- PASS: TestGetDelegationRoleAndMetadataExistDelegationDoesntExists (0.00s) === RUN TestGetDelegationRoleAndMetadataDoesntExists ---- PASS: TestGetDelegationRoleAndMetadataDoesntExists (0.00s) +--- PASS: TestGetDelegationRoleAndMetadataDoesntExists (0.01s) === RUN TestGetDelegationParentMissing --- PASS: TestGetDelegationParentMissing (0.00s) === RUN TestAddTargetsRoleAndMetadataExist @@ -3659,15 +3695,15 @@ === RUN TestRemoveTargetsNoSigningKeys --- PASS: TestRemoveTargetsNoSigningKeys (0.00s) === RUN TestAddBaseKeysToRoot ---- PASS: TestAddBaseKeysToRoot (0.00s) +--- PASS: TestAddBaseKeysToRoot (0.01s) === RUN TestRemoveBaseKeysFromRoot --- PASS: TestRemoveBaseKeysFromRoot (0.00s) === RUN TestReplaceBaseKeysInRoot ---- PASS: TestReplaceBaseKeysInRoot (0.00s) +--- PASS: TestReplaceBaseKeysInRoot (0.02s) === RUN TestGetAllRoles --- PASS: TestGetAllRoles (0.00s) === RUN TestGetBaseRoles ---- PASS: TestGetBaseRoles (0.00s) +--- PASS: TestGetBaseRoles (0.01s) === RUN TestGetBaseRolesInvalidName --- PASS: TestGetBaseRolesInvalidName (0.00s) === RUN TestGetDelegationValidRoles @@ -3685,11 +3721,11 @@ === RUN TestGetDelegationRoleKeyMissing --- PASS: TestGetDelegationRoleKeyMissing (0.00s) === RUN TestSignRootOldKeyCertExists ---- PASS: TestSignRootOldKeyCertExists (0.01s) +--- PASS: TestSignRootOldKeyCertExists (0.03s) === RUN TestSignRootOldKeyCertMissing ---- PASS: TestSignRootOldKeyCertMissing (0.01s) +--- PASS: TestSignRootOldKeyCertMissing (0.02s) === RUN TestRootKeyRotation ---- PASS: TestRootKeyRotation (0.02s) +--- PASS: TestRootKeyRotation (0.06s) === RUN TestBuilderLoadsValidRolesOnly --- PASS: TestBuilderLoadsValidRolesOnly (0.00s) === RUN TestBuilderOnlyAcceptsRootFirstWhenLoading @@ -3699,27 +3735,27 @@ === RUN TestMarkingIsValid --- PASS: TestMarkingIsValid (0.00s) === RUN TestBuilderLoadInvalidDelegations ---- PASS: TestBuilderLoadInvalidDelegations (0.00s) +--- PASS: TestBuilderLoadInvalidDelegations (0.02s) === RUN TestBuilderLoadInvalidDelegationsOldVersion ---- PASS: TestBuilderLoadInvalidDelegationsOldVersion (0.00s) +--- PASS: TestBuilderLoadInvalidDelegationsOldVersion (0.02s) === RUN TestBuilderAcceptRoleOnce --- PASS: TestBuilderAcceptRoleOnce (0.00s) === RUN TestBuilderStopsAcceptingOrProducingDataOnceDone ---- PASS: TestBuilderStopsAcceptingOrProducingDataOnceDone (0.00s) +--- PASS: TestBuilderStopsAcceptingOrProducingDataOnceDone (0.01s) === RUN TestGenerateSnapshotInvalidOperations ---- PASS: TestGenerateSnapshotInvalidOperations (0.02s) +--- PASS: TestGenerateSnapshotInvalidOperations (0.08s) === RUN TestGenerateTimestampInvalidOperations ---- PASS: TestGenerateTimestampInvalidOperations (0.02s) +--- PASS: TestGenerateTimestampInvalidOperations (0.03s) === RUN TestGetConsistentInfo ---- PASS: TestGetConsistentInfo (0.00s) +--- PASS: TestGetConsistentInfo (0.01s) === RUN TestTimestampPreAndPostChecksumming --- PASS: TestTimestampPreAndPostChecksumming (0.01s) === RUN TestSnapshotLoadedFirstChecksumsOthers --- PASS: TestSnapshotLoadedFirstChecksumsOthers (0.01s) === RUN TestSnapshotLoadedAfterChecksumsOthersRetroactively ---- PASS: TestSnapshotLoadedAfterChecksumsOthersRetroactively (0.01s) +--- PASS: TestSnapshotLoadedAfterChecksumsOthersRetroactively (0.04s) PASS -ok github.com/theupdateframework/notary/tuf 0.203s +ok github.com/theupdateframework/notary/tuf 0.561s === RUN TestMergeStrSlicesExclusive --- PASS: TestMergeStrSlicesExclusive (0.00s) === RUN TestMergeStrSlicesOverlap @@ -3767,7 +3803,7 @@ === RUN TestRootFromSignedCopiesSignatures --- PASS: TestRootFromSignedCopiesSignatures (0.00s) === RUN TestRootFromSignedValidatesRoleData ---- PASS: TestRootFromSignedValidatesRoleData (0.00s) +--- PASS: TestRootFromSignedValidatesRoleData (0.01s) === RUN TestRootFromSignedValidatesRoleType --- PASS: TestRootFromSignedValidatesRoleType (0.00s) === RUN TestRootFromSignedValidatesVersion @@ -3809,7 +3845,7 @@ === RUN TestTargetsFromSignedCopiesSignatures --- PASS: TestTargetsFromSignedCopiesSignatures (0.00s) === RUN TestTargetsFromSignedValidatesDelegations ---- PASS: TestTargetsFromSignedValidatesDelegations (0.00s) +--- PASS: TestTargetsFromSignedValidatesDelegations (0.01s) === RUN TestTargetsFromSignedValidatesRoleType --- PASS: TestTargetsFromSignedValidatesRoleType (0.00s) === RUN TestTargetsFromSignedValidatesRoleName @@ -3853,7 +3889,7 @@ === RUN TestFileMetaEquals --- PASS: TestFileMetaEquals (0.00s) PASS -ok github.com/theupdateframework/notary/tuf/data 0.043s +ok github.com/theupdateframework/notary/tuf/data 0.087s === RUN TestListKeys --- PASS: TestListKeys (0.01s) === RUN TestGetKeys @@ -3863,7 +3899,7 @@ === RUN TestReSign --- PASS: TestReSign (0.00s) === RUN TestMultiSign ---- PASS: TestMultiSign (0.00s) +--- PASS: TestMultiSign (0.01s) === RUN TestSignReturnsNoSigs --- PASS: TestSignReturnsNoSigs (0.00s) === RUN TestSignWithX509 @@ -3873,25 +3909,25 @@ === RUN TestSignRemovesInvalidSig --- PASS: TestSignRemovesInvalidSig (0.00s) === RUN TestSignMinSignatures ---- PASS: TestSignMinSignatures (0.00s) +--- PASS: TestSignMinSignatures (0.01s) === RUN TestSignFailingKeys --- PASS: TestSignFailingKeys (0.00s) === RUN TestErrInsufficientSignaturesMessaging --- PASS: TestErrInsufficientSignaturesMessaging (0.00s) === RUN TestRSAPSSVerifier ---- PASS: TestRSAPSSVerifier (0.00s) +--- PASS: TestRSAPSSVerifier (0.01s) === RUN TestRSAPSSx509Verifier --- PASS: TestRSAPSSx509Verifier (0.00s) === RUN TestRSAPSSVerifierWithInvalidKeyType --- PASS: TestRSAPSSVerifierWithInvalidKeyType (0.00s) === RUN TestRSAPSSVerifierWithInvalidKeyLength ---- PASS: TestRSAPSSVerifierWithInvalidKeyLength (0.05s) +--- PASS: TestRSAPSSVerifierWithInvalidKeyLength (0.11s) === RUN TestRSAPSSVerifierWithInvalidKey --- PASS: TestRSAPSSVerifierWithInvalidKey (0.00s) === RUN TestRSAPSSVerifierWithInvalidSignature ---- PASS: TestRSAPSSVerifierWithInvalidSignature (0.00s) +--- PASS: TestRSAPSSVerifierWithInvalidSignature (0.01s) === RUN TestRSAPKCS1v15Verifier ---- PASS: TestRSAPKCS1v15Verifier (0.00s) +--- PASS: TestRSAPKCS1v15Verifier (0.01s) === RUN TestRSAPKCS1v15x509Verifier --- PASS: TestRSAPKCS1v15x509Verifier (0.00s) === RUN TestRSAPKCS1v15VerifierWithInvalidKeyType @@ -3899,12 +3935,12 @@ === RUN TestRSAPKCS1v15VerifierWithInvalidKey --- PASS: TestRSAPKCS1v15VerifierWithInvalidKey (0.00s) === RUN TestRSAPKCS1v15VerifierWithInvalidSignature -time="2025-10-12T14:11:15-12:00" level=error msg="Failed verification: crypto/rsa: verification error" ---- PASS: TestRSAPKCS1v15VerifierWithInvalidSignature (0.00s) +time="2026-11-15T22:54:18+14:00" level=error msg="Failed verification: crypto/rsa: verification error" +--- PASS: TestRSAPKCS1v15VerifierWithInvalidSignature (0.02s) === RUN TestECDSAVerifier --- PASS: TestECDSAVerifier (0.00s) === RUN TestECDSAVerifierOtherCurves ---- PASS: TestECDSAVerifierOtherCurves (0.03s) +--- PASS: TestECDSAVerifierOtherCurves (0.08s) === RUN TestECDSAx509Verifier --- PASS: TestECDSAx509Verifier (0.00s) === RUN TestECDSAVerifierWithInvalidKeyType @@ -3926,7 +3962,7 @@ === RUN TestNotEnoughSigs --- PASS: TestNotEnoughSigs (0.00s) === RUN TestNoSigs ---- PASS: TestNoSigs (0.00s) +--- PASS: TestNoSigs (0.01s) === RUN TestExactlyEnoughSigs --- PASS: TestExactlyEnoughSigs (0.00s) === RUN TestIsValidNotExported @@ -3942,70 +3978,70 @@ === RUN TestVerifyVersion --- PASS: TestVerifyVersion (0.00s) === RUN TestVerifyExpiry -time="2025-10-12T14:11:15-12:00" level=error msg="Metadata for root expired" +time="2026-11-15T22:54:18+14:00" level=error msg="Metadata for root expired" --- PASS: TestVerifyExpiry (0.00s) === RUN TestVerifyPublicKeyMatchesPrivateKeyHappyCase --- PASS: TestVerifyPublicKeyMatchesPrivateKeyHappyCase (0.00s) === RUN TestVerifyPublicKeyMatchesPrivateKeyFails --- PASS: TestVerifyPublicKeyMatchesPrivateKeyFails (0.00s) PASS -ok github.com/theupdateframework/notary/tuf/signed 0.164s +ok github.com/theupdateframework/notary/tuf/signed 0.360s === RUN TestNewSwizzler ---- PASS: TestNewSwizzler (0.01s) +--- PASS: TestNewSwizzler (0.02s) === RUN TestSwizzlerSetInvalidJSON ---- PASS: TestSwizzlerSetInvalidJSON (0.00s) +--- PASS: TestSwizzlerSetInvalidJSON (0.01s) === RUN TestSwizzlerAddExtraSpace ---- PASS: TestSwizzlerAddExtraSpace (0.01s) +--- PASS: TestSwizzlerAddExtraSpace (0.00s) === RUN TestSwizzlerSetInvalidSigned ---- PASS: TestSwizzlerSetInvalidSigned (0.00s) +--- PASS: TestSwizzlerSetInvalidSigned (0.01s) === RUN TestSwizzlerSetInvalidSignedMeta ---- PASS: TestSwizzlerSetInvalidSignedMeta (0.01s) +--- PASS: TestSwizzlerSetInvalidSignedMeta (0.00s) === RUN TestSwizzlerSetInvalidMetadataType ---- PASS: TestSwizzlerSetInvalidMetadataType (0.00s) +--- PASS: TestSwizzlerSetInvalidMetadataType (0.01s) === RUN TestSwizzlerInvalidateMetadataSignatures ---- PASS: TestSwizzlerInvalidateMetadataSignatures (0.00s) +--- PASS: TestSwizzlerInvalidateMetadataSignatures (0.01s) === RUN TestSwizzlerRemoveMetadata ---- PASS: TestSwizzlerRemoveMetadata (0.00s) +--- PASS: TestSwizzlerRemoveMetadata (0.01s) === RUN TestSwizzlerSignMetadataWithInvalidKey ---- PASS: TestSwizzlerSignMetadataWithInvalidKey (0.00s) +--- PASS: TestSwizzlerSignMetadataWithInvalidKey (0.01s) === RUN TestSwizzlerOffsetMetadataVersion --- PASS: TestSwizzlerOffsetMetadataVersion (0.00s) === RUN TestSwizzlerExpireMetadata --- PASS: TestSwizzlerExpireMetadata (0.00s) === RUN TestSwizzlerSetThresholdBaseRole ---- PASS: TestSwizzlerSetThresholdBaseRole (0.00s) +--- PASS: TestSwizzlerSetThresholdBaseRole (0.01s) === RUN TestSwizzlerSetThresholdDelegatedRole ---- PASS: TestSwizzlerSetThresholdDelegatedRole (0.00s) +--- PASS: TestSwizzlerSetThresholdDelegatedRole (0.01s) === RUN TestSwizzlerChangeRootKey --- PASS: TestSwizzlerChangeRootKey (0.01s) === RUN TestSwizzlerUpdateSnapshotHashesSpecifiedRoles ---- PASS: TestSwizzlerUpdateSnapshotHashesSpecifiedRoles (0.01s) +--- PASS: TestSwizzlerUpdateSnapshotHashesSpecifiedRoles (0.04s) === RUN TestSwizzlerUpdateSnapshotHashesNoSpecifiedRoles --- PASS: TestSwizzlerUpdateSnapshotHashesNoSpecifiedRoles (0.00s) === RUN TestSwizzlerUpdateTimestamp ---- PASS: TestSwizzlerUpdateTimestamp (0.00s) +--- PASS: TestSwizzlerUpdateTimestamp (0.01s) === RUN TestMissingSigningKey ---- PASS: TestMissingSigningKey (0.00s) +--- PASS: TestMissingSigningKey (0.01s) === RUN TestSwizzlerMutateRoot ---- PASS: TestSwizzlerMutateRoot (0.00s) +--- PASS: TestSwizzlerMutateRoot (0.01s) === RUN TestSwizzlerMutateTimestamp --- PASS: TestSwizzlerMutateTimestamp (0.01s) === RUN TestSwizzlerMutateSnapshot ---- PASS: TestSwizzlerMutateSnapshot (0.00s) +--- PASS: TestSwizzlerMutateSnapshot (0.01s) === RUN TestSwizzlerMutateTargets ---- PASS: TestSwizzlerMutateTargets (0.00s) +--- PASS: TestSwizzlerMutateTargets (0.01s) === RUN TestSwizzlerRotateKeyBaseRole --- PASS: TestSwizzlerRotateKeyBaseRole (0.01s) === RUN TestSwizzlerRotateKeyDelegationRole --- PASS: TestSwizzlerRotateKeyDelegationRole (0.00s) PASS -ok github.com/theupdateframework/notary/tuf/testutils 0.169s +ok github.com/theupdateframework/notary/tuf/testutils 0.332s ? github.com/theupdateframework/notary/tuf/testutils/interfaces [no test files] ? github.com/theupdateframework/notary/tuf/testutils/keys [no test files] === RUN TestConvertTUFKeyToPKCS8 ---- PASS: TestConvertTUFKeyToPKCS8 (0.03s) +--- PASS: TestConvertTUFKeyToPKCS8 (0.06s) === RUN TestParsePKCS8ToTufKey ---- PASS: TestParsePKCS8ToTufKey (0.03s) +--- PASS: TestParsePKCS8ToTufKey (0.13s) === RUN TestPEMtoPEM --- PASS: TestPEMtoPEM (0.00s) === RUN TestRoleListLen @@ -4051,7 +4087,7 @@ === RUN TestNewCertificate --- PASS: TestNewCertificate (0.00s) === RUN TestKeyOperations ---- PASS: TestKeyOperations (0.01s) +--- PASS: TestKeyOperations (0.04s) === RUN TestRSAX509PublickeyID --- PASS: TestRSAX509PublickeyID (0.00s) === RUN TestECDSAX509PublickeyID @@ -4067,9 +4103,9 @@ === RUN TestValidateCertificateWithInvalidExpiry --- PASS: TestValidateCertificateWithInvalidExpiry (0.00s) === RUN TestValidateCertificateWithShortKey ---- PASS: TestValidateCertificateWithShortKey (0.10s) +--- PASS: TestValidateCertificateWithShortKey (0.06s) PASS -ok github.com/theupdateframework/notary/tuf/utils 0.206s +ok github.com/theupdateframework/notary/tuf/utils 0.355s === RUN TestNewSerializableErrorNonValidationError --- PASS: TestNewSerializableErrorNonValidationError (0.00s) === RUN TestNewSerializableErrorValidationError @@ -4085,9 +4121,9 @@ === RUN TestUnmarshalInvalidJSON --- PASS: TestUnmarshalInvalidJSON (0.00s) PASS -ok github.com/theupdateframework/notary/tuf/validation 0.041s +ok github.com/theupdateframework/notary/tuf/validation 0.069s === RUN TestSetSignalTrap ---- PASS: TestSetSignalTrap (0.00s) +--- PASS: TestSetSignalTrap (0.01s) === RUN TestLogLevelSignalHandle Attempt to increase log level failed, will remain at debug level, error: log level can not be set higher than Debug Successfully setting log level to debug @@ -4159,7 +4195,7 @@ === RUN TestAdjustLogLevel --- PASS: TestAdjustLogLevel (0.00s) === RUN TestRootHandlerFactory ---- PASS: TestRootHandlerFactory (0.00s) +--- PASS: TestRootHandlerFactory (0.01s) === RUN TestRootHandlerError --- PASS: TestRootHandlerError (0.00s) === RUN TestWrapWithCacheHeaderNilCacheControlConfig @@ -4185,7 +4221,7 @@ === RUN TestDoAuthWildcardImage --- PASS: TestDoAuthWildcardImage (0.00s) PASS -ok github.com/theupdateframework/notary/utils 0.066s +ok github.com/theupdateframework/notary/utils 0.091s ? github.com/theupdateframework/notary/version [no test files] create-stamp debian/debhelper-build-stamp dh_testroot -O--builddirectory=/build/reproducible-path/notary-0.7.0\+git20240416.9d2b3b3\+ds1/_build -O--buildsystem=golang @@ -4223,9 +4259,9 @@ dpkg-gencontrol: warning: package notary: substitution variable ${misc:Static-Built-Using} unused, but is defined dh_md5sums -O--builddirectory=/build/reproducible-path/notary-0.7.0\+git20240416.9d2b3b3\+ds1/_build -O--buildsystem=golang dh_builddeb -O--builddirectory=/build/reproducible-path/notary-0.7.0\+git20240416.9d2b3b3\+ds1/_build -O--buildsystem=golang -dpkg-deb: building package 'golang-github-docker-notary-dev' in '../golang-github-docker-notary-dev_0.7.0+git20240416.9d2b3b3+ds1-4_all.deb'. dpkg-deb: building package 'notary-dbgsym' in '../notary-dbgsym_0.7.0+git20240416.9d2b3b3+ds1-4_arm64.deb'. dpkg-deb: building package 'notary' in '../notary_0.7.0+git20240416.9d2b3b3+ds1-4_arm64.deb'. +dpkg-deb: building package 'golang-github-docker-notary-dev' in '../golang-github-docker-notary-dev_0.7.0+git20240416.9d2b3b3+ds1-4_all.deb'. dpkg-genbuildinfo --build=binary -O../notary_0.7.0+git20240416.9d2b3b3+ds1-4_arm64.buildinfo dpkg-genchanges --build=binary -O../notary_0.7.0+git20240416.9d2b3b3+ds1-4_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -4233,12 +4269,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/206720/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/206720/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/4097364 and its subdirectories -I: Current time: Sun Oct 12 14:12:11 -12 2025 -I: pbuilder-time-stamp: 1760321531 +I: removing directory /srv/workspace/pbuilder/206720 and its subdirectories +I: Current time: Sun Nov 15 22:57:02 +14 2026 +I: pbuilder-time-stamp: 1794733022