Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/g/golang-github-google-wire/golang-github-google-wire_0.4.0-3_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/golang-github-google-wire-0.4.0-3jjqmjd7w/golang-github-google-wire_0.4.0-3_all.buildinfo Get source package info: golang-github-google-wire=0.4.0-3 Source URL: http://snapshot.notset.fr/mr/package/golang-github-google-wire/0.4.0-3/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.69-11.1 automake=1:1.16.1-4 autopoint=0.19.8.1-10 autotools-dev=20180224.1 base-files=11 base-passwd=3.5.47 bash=5.0-6 binutils=2.34-4 binutils-common=2.34-4 binutils-x86-64-linux-gnu=2.34-4 bsdmainutils=11.1.2+b1 bsdutils=1:2.34-0.1 build-essential=12.8 bzip2=1.0.8-2 coreutils=8.30-3+b1 cpp=4:9.2.1-3.1 cpp-9=9.2.1-30 dash=0.5.10.2-6 debconf=1.5.73 debhelper=12.9 debianutils=4.9.1 dh-autoreconf=19 dh-exec=0.23.2 dh-golang=1.48 dh-strip-nondeterminism=1.6.3-2 diffutils=1:3.7-3 dpkg=1.19.7 dpkg-dev=1.19.7 dwz=0.13-5 fdisk=2.34-0.1 file=1:5.38-4 findutils=4.7.0-1 g++=4:9.2.1-3.1 g++-9=9.2.1-30 gcc=4:9.2.1-3.1 gcc-10-base=10-20200222-1 gcc-9=9.2.1-30 gcc-9-base=9.2.1-30 gettext=0.19.8.1-10 gettext-base=0.19.8.1-10 golang-1.14-go=1.14-1 golang-1.14-src=1.14-1 golang-any=2:1.14~1 golang-github-google-go-cmp-dev=0.4.0-1 golang-github-google-subcommands-dev=1.2.0-1 golang-github-pmezard-go-difflib-dev=1.0.0-2 golang-go=2:1.14~1 golang-golang-x-net-dev=1:0.0+git20200226.491c5fc+dfsg-1 golang-golang-x-sync-dev=0.0~git20190911.cd5d95a-1 golang-golang-x-sys-dev=0.0~git20200219.cb0a6d8-1 golang-golang-x-text-dev=0.3.2-4 golang-golang-x-tools-dev=1:0.0~git20200213.88e652f+ds-1 golang-golang-x-xerrors-dev=0.0~git20191204.9bdfabe-1 golang-src=2:1.14~1 grep=3.4-1 groff-base=1.22.4-4 gzip=1.10-1 hostname=3.23 init-system-helpers=1.57 intltool-debian=0.35.0+20060710.5 libacl1=2.2.53-6 libarchive-zip-perl=1.67-2 libasan5=9.2.1-30 libatomic1=10-20200222-1 libattr1=1:2.4.48-5 libaudit-common=1:2.8.5-2 libaudit1=1:2.8.5-2+b1 libbinutils=2.34-4 libblkid1=2.34-0.1 libbsd0=0.10.0-1 libbz2-1.0=1.0.8-2 libc-bin=2.29-10 libc-dev-bin=2.29-10 libc6=2.29-10 libc6-dev=2.29-10 libcap-ng0=0.7.9-2.1+b2 libcc1-0=10-20200222-1 libcroco3=0.6.13-1 libcrypt-dev=1:4.4.15-1 libcrypt1=1:4.4.15-1 libctf-nobfd0=2.34-4 libctf0=2.34-4 libdb5.3=5.3.28+dfsg1-0.6 libdebconfclient0=0.251 libdebhelper-perl=12.9 libdpkg-perl=1.19.7 libelf1=0.176-1.1 libfdisk1=2.34-0.1 libffi7=3.3-3 libfile-stripnondeterminism-perl=1.6.3-2 libgcc-9-dev=9.2.1-30 libgcc-s1=10-20200222-1 libgcc1=1:10-20200222-1 libgcrypt20=1.8.5-5 libgdbm-compat4=1.18.1-5 libgdbm6=1.18.1-5 libglib2.0-0=2.62.5-1 libgmp10=2:6.2.0+dfsg-4 libgomp1=10-20200222-1 libgpg-error0=1.37-1 libicu63=63.2-2 libisl22=0.22.1-1 libitm1=10-20200222-1 liblsan0=10-20200222-1 liblz4-1=1.9.2-2 liblzma5=5.2.4-1+b1 libmagic-mgc=1:5.38-4 libmagic1=1:5.38-4 libmount1=2.34-0.1 libmpc3=1.1.0-1 libmpfr6=4.0.2-1 libncursesw6=6.2-1 libpam-modules=1.3.1-5 libpam-modules-bin=1.3.1-5 libpam-runtime=1.3.1-5 libpam0g=1.3.1-5 libpcre2-8-0=10.34-7 libpcre3=2:8.39-12+b1 libperl5.30=5.30.0-9 libpipeline1=1.5.2-2 libquadmath0=10-20200222-1 libseccomp2=2.4.2-2 libselinux1=3.0-1+b1 libsigsegv2=2.12-2 libsmartcols1=2.34-0.1 libstdc++-9-dev=9.2.1-30 libstdc++6=10-20200222-1 libsub-override-perl=0.09-2 libsystemd0=244.3-1 libtinfo6=6.2-1 libtool=2.4.6-14 libtsan0=10-20200222-1 libubsan1=10-20200222-1 libuchardet0=0.0.6-3 libudev1=244.3-1 libunistring2=0.9.10-2 libuuid1=2.34-0.1 libxml2=2.9.10+dfsg-4 linux-libc-dev=5.4.19-1 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-4 make=4.2.1-1.2 man-db=2.9.1-1 mawk=1.3.4.20200120-2 ncurses-base=6.2-1 ncurses-bin=6.2-1 patch=2.7.6-6 perl=5.30.0-9 perl-base=5.30.0-9 perl-modules-5.30=5.30.0-9 po-debconf=1.0.21 sed=4.7-1 sensible-utils=0.0.12+nmu1 sysvinit-utils=2.96-2.1 tar=1.30+dfsg-6+b1 util-linux=2.34-0.1 xz-utils=5.2.4-1+b1 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20200520T085844Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20200305T224751Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d golang-github-google-wire=0.4.0-3 && mkdir -p /build/golang-github-google-wire-opTzY6 && dpkg-source --no-check -x /*.dsc /build/golang-github-google-wire-opTzY6/golang-github-google-wire-0.4.0 && chown -R builduser:builduser /build/golang-github-google-wire-opTzY6" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/golang-github-google-wire-opTzY6/golang-github-google-wire-0.4.0 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1583696288" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/golang-github-google-wire-opTzY6 /tmp/golang-github-google-wire-0.4.0-3jjqmjd7w bullseye /dev/null deb http://snapshot.notset.fr/archive/debian/20200305T224751Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.BqBQG4SJ7i as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.BqBQG4SJ7i Reading package lists... Building dependency tree... util-linux is already the newest version (2.34-0.1). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 132 kB of archives. After this operation, 393 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20200305T224751Z unstable/main amd64 libfakeroot amd64 1.24-1 [45.7 kB] Get:2 http://snapshot.notset.fr/archive/debian/20200305T224751Z unstable/main amd64 fakeroot amd64 1.24-1 [85.9 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 132 kB in 0s (1175 kB/s) Selecting previously unselected package libfakeroot:amd64. (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 ... 4510 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.24-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.24-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.24-1_amd64.deb ... Unpacking fakeroot (1.24-1) ... Setting up libfakeroot:amd64 (1.24-1) ... Setting up fakeroot (1.24-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.29-10) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20200520T085844Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20200305T224751Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.BqBQG4SJ7i Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm InRelease [81.6 kB] Get:2 http://snapshot.notset.fr/archive/debian/20200520T085844Z unstable InRelease [146 kB] Hit:3 http://snapshot.notset.fr/archive/debian/20200305T224751Z unstable InRelease Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources [11.4 MB] Get:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages [11.1 MB] Ign:6 http://snapshot.notset.fr/archive/debian/20200520T085844Z unstable/main amd64 Packages Ign:6 http://snapshot.notset.fr/archive/debian/20200520T085844Z unstable/main amd64 Packages Ign:6 http://snapshot.notset.fr/archive/debian/20200520T085844Z unstable/main amd64 Packages Get:6 http://snapshot.notset.fr/archive/debian/20200520T085844Z unstable/main amd64 Packages [11.2 MB] Fetched 33.9 MB in 31s (1101 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.BqBQG4SJ7i I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d golang-github-google-wire=0.4.0-3 && mkdir -p /build/golang-github-google-wire-opTzY6 && dpkg-source --no-check -x /*.dsc /build/golang-github-google-wire-opTzY6/golang-github-google-wire-0.4.0 && chown -R builduser:builduser /build/golang-github-google-wire-opTzY6"' exec /tmp/mmdebstrap.BqBQG4SJ7i Reading package lists... NOTICE: 'golang-github-google-wire' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/go-team/packages/golang-github-google-wire.git Please use: git clone https://salsa.debian.org/go-team/packages/golang-github-google-wire.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 92.5 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main golang-github-google-wire 0.4.0-3 (dsc) [2458 B] Get:2 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main golang-github-google-wire 0.4.0-3 (tar) [87.1 kB] Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main golang-github-google-wire 0.4.0-3 (diff) [2896 B] Fetched 92.5 kB in 0s (1526 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'golang-github-google-wire_0.4.0-3.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting golang-github-google-wire in /build/golang-github-google-wire-opTzY6/golang-github-google-wire-0.4.0 dpkg-source: info: unpacking golang-github-google-wire_0.4.0.orig.tar.gz dpkg-source: info: unpacking golang-github-google-wire_0.4.0-3.debian.tar.xz I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/golang-github-google-wire-opTzY6/golang-github-google-wire-0.4.0 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1583696288" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.BqBQG4SJ7i dpkg-buildpackage: info: source package golang-github-google-wire dpkg-buildpackage: info: source version 0.4.0-3 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Anthony Fok dpkg-source --before-build . debian/rules clean dh clean --builddirectory=_build --buildsystem=golang --with golang dh_auto_clean -O--builddirectory=_build -O--buildsystem=golang dh_autoreconf_clean -O--builddirectory=_build -O--buildsystem=golang dh_clean -O--builddirectory=_build -O--buildsystem=golang debian/rules binary-indep dh binary-indep --builddirectory=_build --buildsystem=golang --with golang dh_update_autotools_config -i -O--builddirectory=_build -O--buildsystem=golang dh_autoreconf -i -O--builddirectory=_build -O--buildsystem=golang dh_auto_configure -i -O--builddirectory=_build -O--buildsystem=golang dh_auto_build -i -O--builddirectory=_build -O--buildsystem=golang cd _build && go install -trimpath -v -p 4 github.com/google/wire github.com/google/wire/cmd/wire github.com/google/wire/internal/wire runtime/internal/sys github.com/google/wire internal/cpu runtime/internal/atomic internal/race runtime/internal/math sync/atomic math/bits internal/bytealg unicode/utf8 unicode math internal/testlog encoding unicode/utf16 internal/goversion runtime golang.org/x/tools/internal/packagesinternal internal/reflectlite sync math/rand errors sort internal/oserror io strconv syscall container/heap bytes strings reflect text/tabwriter path bufio regexp/syntax time internal/syscall/unix regexp context internal/poll os internal/fmtsort encoding/binary encoding/base64 internal/lazyregexp path/filepath fmt io/ioutil os/exec internal/goroot flag go/token encoding/json math/big go/scanner github.com/google/subcommands go/ast net/url text/template/parse log text/scanner github.com/pmezard/go-difflib/difflib go/parser go/printer go/constant golang.org/x/tools/go/ast/astutil text/template go/types go/format go/doc go/build golang.org/x/tools/go/internal/packagesdriver golang.org/x/tools/go/types/typeutil golang.org/x/tools/go/internal/gcimporter golang.org/x/tools/go/gcexportdata golang.org/x/tools/go/packages github.com/google/wire/internal/wire github.com/google/wire/cmd/wire dh_auto_test -i -O--builddirectory=_build -O--buildsystem=golang cd _build && go test -vet=off -v -p 4 github.com/google/wire github.com/google/wire/cmd/wire github.com/google/wire/internal/wire ? github.com/google/wire [no test files] ? github.com/google/wire/cmd/wire [no test files] === RUN TestWire === RUN TestWire/BindInjectorArg === PAUSE TestWire/BindInjectorArg === RUN TestWire/BindInjectorArgPointer === PAUSE TestWire/BindInjectorArgPointer === RUN TestWire/BindInterfaceWithValue === PAUSE TestWire/BindInterfaceWithValue === RUN TestWire/BuildTagsAllPackages === PAUSE TestWire/BuildTagsAllPackages === RUN TestWire/Chain === PAUSE TestWire/Chain === RUN TestWire/Cleanup === PAUSE TestWire/Cleanup === RUN TestWire/CopyOtherDecls === PAUSE TestWire/CopyOtherDecls === RUN TestWire/Cycle === PAUSE TestWire/Cycle === RUN TestWire/EmptyVar === PAUSE TestWire/EmptyVar === RUN TestWire/ExampleWithMocks === PAUSE TestWire/ExampleWithMocks === RUN TestWire/ExportedValue === PAUSE TestWire/ExportedValue === RUN TestWire/ExportedValueDifferentPackage === PAUSE TestWire/ExportedValueDifferentPackage === RUN TestWire/FieldsOfCycle === PAUSE TestWire/FieldsOfCycle === RUN TestWire/FieldsOfImportedStruct === PAUSE TestWire/FieldsOfImportedStruct === RUN TestWire/FieldsOfStruct === PAUSE TestWire/FieldsOfStruct === RUN TestWire/FieldsOfStructDoNotProvidePtrToField === PAUSE TestWire/FieldsOfStructDoNotProvidePtrToField === RUN TestWire/FieldsOfStructPointer === PAUSE TestWire/FieldsOfStructPointer === RUN TestWire/FieldsOfValueStruct === PAUSE TestWire/FieldsOfValueStruct === RUN TestWire/FuncArgProvider === PAUSE TestWire/FuncArgProvider === RUN TestWire/Header === PAUSE TestWire/Header === RUN TestWire/ImportedInterfaceBinding === PAUSE TestWire/ImportedInterfaceBinding === RUN TestWire/InjectInput === PAUSE TestWire/InjectInput === RUN TestWire/InjectInputConflict === PAUSE TestWire/InjectInputConflict === RUN TestWire/InjectWithPanic === PAUSE TestWire/InjectWithPanic === RUN TestWire/InjectorMissingCleanup === PAUSE TestWire/InjectorMissingCleanup === RUN TestWire/InjectorMissingError === PAUSE TestWire/InjectorMissingError === RUN TestWire/InterfaceBinding === PAUSE TestWire/InterfaceBinding === RUN TestWire/InterfaceBindingDoesntImplement === PAUSE TestWire/InterfaceBindingDoesntImplement === RUN TestWire/InterfaceBindingInvalidArg0 === PAUSE TestWire/InterfaceBindingInvalidArg0 === RUN TestWire/InterfaceBindingNotEnoughArgs === PAUSE TestWire/InterfaceBindingNotEnoughArgs === RUN TestWire/InterfaceBindingReuse === PAUSE TestWire/InterfaceBindingReuse === RUN TestWire/InterfaceValue === PAUSE TestWire/InterfaceValue === RUN TestWire/InterfaceValueDoesntImplement === PAUSE TestWire/InterfaceValueDoesntImplement === RUN TestWire/InterfaceValueInvalidArg0 === PAUSE TestWire/InterfaceValueInvalidArg0 === RUN TestWire/InterfaceValueNotEnoughArgs === PAUSE TestWire/InterfaceValueNotEnoughArgs === RUN TestWire/InvalidInjector === PAUSE TestWire/InvalidInjector === RUN TestWire/MultipleArgsSameType === PAUSE TestWire/MultipleArgsSameType === RUN TestWire/MultipleBindings === PAUSE TestWire/MultipleBindings === RUN TestWire/MultipleMissingInputs === PAUSE TestWire/MultipleMissingInputs === RUN TestWire/MultipleSimilarPackages === PAUSE TestWire/MultipleSimilarPackages === RUN TestWire/NamingWorstCase === PAUSE TestWire/NamingWorstCase === RUN TestWire/NamingWorstCaseAllInOne === PAUSE TestWire/NamingWorstCaseAllInOne === RUN TestWire/NiladicIdentity === PAUSE TestWire/NiladicIdentity === RUN TestWire/NiladicValue === PAUSE TestWire/NiladicValue === RUN TestWire/NoImplicitInterface === PAUSE TestWire/NoImplicitInterface === RUN TestWire/NoInjectParamNames === PAUSE TestWire/NoInjectParamNames === RUN TestWire/NoopBuild === PAUSE TestWire/NoopBuild === RUN TestWire/PartialCleanup === PAUSE TestWire/PartialCleanup === RUN TestWire/PkgImport === PAUSE TestWire/PkgImport === RUN TestWire/ProviderSetBindingMissingConcreteType === PAUSE TestWire/ProviderSetBindingMissingConcreteType === RUN TestWire/RelativePkg === PAUSE TestWire/RelativePkg === RUN TestWire/ReservedKeywords === PAUSE TestWire/ReservedKeywords === RUN TestWire/ReturnArgumentAsInterface === PAUSE TestWire/ReturnArgumentAsInterface === RUN TestWire/ReturnError === PAUSE TestWire/ReturnError === RUN TestWire/Struct === PAUSE TestWire/Struct === RUN TestWire/StructNotAStruct === PAUSE TestWire/StructNotAStruct === RUN TestWire/StructPointer === PAUSE TestWire/StructPointer === RUN TestWire/StructWithPreventTag === PAUSE TestWire/StructWithPreventTag === RUN TestWire/TwoDeps === PAUSE TestWire/TwoDeps === RUN TestWire/UnexportedStruct === PAUSE TestWire/UnexportedStruct === RUN TestWire/UnexportedValue === PAUSE TestWire/UnexportedValue === RUN TestWire/UnusedProviders === PAUSE TestWire/UnusedProviders === RUN TestWire/ValueChain === PAUSE TestWire/ValueChain === RUN TestWire/ValueConversion === PAUSE TestWire/ValueConversion === RUN TestWire/ValueFromFunctionScope === PAUSE TestWire/ValueFromFunctionScope === RUN TestWire/ValueIsInterfaceValue === PAUSE TestWire/ValueIsInterfaceValue === RUN TestWire/ValueIsStruct === PAUSE TestWire/ValueIsStruct === RUN TestWire/VarValue === PAUSE TestWire/VarValue === RUN TestWire/Varargs === PAUSE TestWire/Varargs === CONT TestWire/NiladicValue === CONT TestWire/BindInjectorArg === CONT TestWire/NiladicIdentity === CONT TestWire/NamingWorstCaseAllInOne === CONT TestWire/NamingWorstCase === CONT TestWire/MultipleSimilarPackages === CONT TestWire/MultipleMissingInputs === CONT TestWire/MultipleBindings === CONT TestWire/MultipleArgsSameType === CONT TestWire/InvalidInjector === CONT TestWire/InterfaceValueNotEnoughArgs === CONT TestWire/InterfaceValueInvalidArg0 === CONT TestWire/InterfaceValueDoesntImplement === CONT TestWire/InterfaceValue === CONT TestWire/InterfaceBindingReuse === CONT TestWire/InterfaceBindingNotEnoughArgs === CONT TestWire/InterfaceBindingInvalidArg0 === CONT TestWire/InterfaceBindingDoesntImplement === CONT TestWire/InterfaceBinding === CONT TestWire/InjectorMissingError === CONT TestWire/InjectorMissingCleanup === CONT TestWire/InjectWithPanic === CONT TestWire/InjectInputConflict === CONT TestWire/InjectInput TestWire/MultipleBindings: wire_test.go:108: /tmp/wire_test867353045/src/example.com/foo/wire.go:27:8: multiple bindings for example.com/foo.Foo current: <- provider "provideFooAgain" (/tmp/wire_test867353045/src/example.com/foo/foo.go:39:6) previous: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) TestWire/MultipleBindings: wire_test.go:108: /tmp/wire_test867353045/src/example.com/foo/wire.go:32:8: multiple bindings for example.com/foo.Foo current: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) previous: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) <- provider set "Set" (/tmp/wire_test867353045/src/example.com/foo/foo.go:31:11) TestWire/MultipleBindings: wire_test.go:108: /tmp/wire_test867353045/src/example.com/foo/wire.go:37:8: multiple bindings for example.com/foo.Foo current: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) previous: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) <- provider set "Set" (/tmp/wire_test867353045/src/example.com/foo/foo.go:31:11) <- provider set "SuperSet" (/tmp/wire_test867353045/src/example.com/foo/foo.go:32:16) TestWire/MultipleBindings: wire_test.go:108: /tmp/wire_test867353045/src/example.com/foo/foo.go:33:32: SetWithDuplicateBindings has multiple bindings for example.com/foo.Foo current: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) <- provider set "Set" (/tmp/wire_test867353045/src/example.com/foo/foo.go:31:11) <- provider set "SuperSet" (/tmp/wire_test867353045/src/example.com/foo/foo.go:32:16) previous: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) <- provider set "Set" (/tmp/wire_test867353045/src/example.com/foo/foo.go:31:11) TestWire/MultipleBindings: wire_test.go:108: /tmp/wire_test867353045/src/example.com/foo/wire.go:47:8: multiple bindings for example.com/foo.Foo current: <- wire.Value (/tmp/wire_test867353045/src/example.com/foo/wire.go:47:42) previous: <- provider "provideFoo" (/tmp/wire_test867353045/src/example.com/foo/foo.go:35:6) TestWire/MultipleBindings: wire_test.go:108: /tmp/wire_test867353045/src/example.com/foo/wire.go:52:8: multiple bindings for example.com/foo.Bar current: <- wire.Bind (/tmp/wire_test867353045/src/example.com/foo/wire.go:52:31) previous: <- provider "provideBar" (/tmp/wire_test867353045/src/example.com/foo/foo.go:43:6) === CONT TestWire/ImportedInterfaceBinding TestWire/InterfaceBindingDoesntImplement: wire_test.go:108: /tmp/wire_test686660183/src/example.com/foo/wire.go:25:13: string does not implement example.com/foo.Fooer TestWire/InterfaceValue: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "io" "strings" ) // Injectors from wire.go: func injectedReader() io.Reader { reader := _wireReaderValue return reader } var ( _wireReaderValue = strings.NewReader("hello world") ) === CONT TestWire/Header === CONT TestWire/FuncArgProvider TestWire/NiladicValue: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { string2 := _wireStringValue return string2 } var ( _wireStringValue = "Hello, World!" ) === CONT TestWire/FieldsOfValueStruct TestWire/InterfaceValueDoesntImplement: wire_test.go:108: /tmp/wire_test523404761/src/example.com/foo/wire.go:26:13: string does not implement io.Reader === CONT TestWire/FieldsOfStructPointer TestWire/NamingWorstCase: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( context2 "context" ) // Injectors from wire.go: func inject(context3 context2.Context, err2 struct{}) (context, error) { mainContext, err := provide(context3) if err != nil { return context{}, err } return mainContext, nil } === CONT TestWire/FieldsOfStructDoNotProvidePtrToField TestWire/InvalidInjector: wire_test.go:108: a call to wire.Build indicates that this function is an injector, but injectors must consist of only the wire.Build call and an optional return TestWire/InvalidInjector: wire_test.go:108: a call to wire.Build indicates that this function is an injector, but injectors must consist of only the wire.Build call and an optional return === CONT TestWire/FieldsOfStruct TestWire/InterfaceBindingNotEnoughArgs: wire_test.go:108: /tmp/wire_test135331357/src/example.com/foo/wire.go:25:33: too few arguments in call to wire.Bind === CONT TestWire/FieldsOfImportedStruct TestWire/BindInjectorArg: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func inject(foo Foo) *Bar { bar := NewBar(foo) return bar } === CONT TestWire/FieldsOfCycle TestWire/InjectWithPanic: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { string2 := provideMessage() return string2 } === CONT TestWire/ExportedValueDifferentPackage TestWire/InterfaceValueNotEnoughArgs: wire_test.go:108: /tmp/wire_test307674082/src/example.com/foo/wire.go:25:38: too few arguments in call to wire.InterfaceValue === CONT TestWire/ExportedValue TestWire/InterfaceBinding: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooer() Fooer { bar := provideBar() return bar } === CONT TestWire/ExampleWithMocks TestWire/InjectInput: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooBar(foo Foo) FooBar { bar := provideBar() fooBar := provideFooBar(foo, bar) return fooBar } === CONT TestWire/EmptyVar TestWire/InterfaceBindingReuse: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooBar() FooBar { bar := provideBar() fooBar := provideFooBar(bar, bar) return fooBar } === CONT TestWire/Cycle TestWire/InjectorMissingCleanup: wire_test.go:108: /tmp/wire_test202990988/src/example.com/foo/wire.go:23:1: inject injectFoo: provider for example.com/foo.Foo returns cleanup but injection does not return cleanup function === CONT TestWire/CopyOtherDecls TestWire/InjectInputConflict: wire_test.go:108: /tmp/wire_test894631070/src/example.com/foo/wire.go:24:2: multiple bindings for example.com/foo.Foo current: <- provider "provideFoo" (/tmp/wire_test894631070/src/example.com/foo/foo.go:37:6) <- provider set "Set" (/tmp/wire_test894631070/src/example.com/foo/foo.go:33:11) previous: <- argument foo to injector function injectBar (/tmp/wire_test894631070/src/example.com/foo/wire.go:23:1) === CONT TestWire/Cleanup TestWire/MultipleMissingInputs: wire_test.go:108: /tmp/wire_test365668046/src/example.com/foo/wire.go:23:1: inject injectMissingOutputType: no provider found for example.com/foo.Foo, output of injector TestWire/MultipleMissingInputs: wire_test.go:108: /tmp/wire_test365668046/src/example.com/foo/wire.go:29:1: inject injectMultipleMissingTypes: no provider found for example.com/foo.Foo needed by example.com/foo.Baz in provider "provideBaz" (/tmp/wire_test365668046/src/example.com/foo/foo.go:29:6) TestWire/MultipleMissingInputs: wire_test.go:108: /tmp/wire_test365668046/src/example.com/foo/wire.go:29:1: inject injectMultipleMissingTypes: no provider found for example.com/foo.Bar needed by example.com/foo.Baz in provider "provideBaz" (/tmp/wire_test365668046/src/example.com/foo/foo.go:29:6) TestWire/MultipleMissingInputs: wire_test.go:108: /tmp/wire_test365668046/src/example.com/foo/wire.go:35:1: inject injectMissingRecursiveType: no provider found for example.com/foo.Foo needed by example.com/foo.Zip in provider "provideZip" (/tmp/wire_test365668046/src/example.com/foo/foo.go:37:6) needed by example.com/foo.Zap in provider "provideZap" (/tmp/wire_test365668046/src/example.com/foo/foo.go:41:6) needed by example.com/foo.Zop in provider "provideZop" (/tmp/wire_test365668046/src/example.com/foo/foo.go:45:6) === CONT TestWire/Chain TestWire/NiladicIdentity: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { string2 := provideMessage() return string2 } TestWire/MultipleSimilarPackages: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "example.com/bar" "example.com/baz" "example.com/foo" "fmt" ) // Injectors from wire.go: func newMainService(mainConfig MainConfig) *MainService { config := mainConfig.Foo service := foo.New(config) barConfig := mainConfig.Bar barService := bar.New(barConfig, service) bazConfig := mainConfig.baz bazService := baz.New(bazConfig, barService) mainService := &MainService{ Foo: service, Bar: barService, baz: bazService, } return mainService } // wire.go: type MainConfig struct { Foo *foo.Config Bar *bar.Config baz *baz.Config } type MainService struct { Foo *foo.Service Bar *bar.Service baz *baz.Service } func (m *MainService) String() string { return fmt.Sprintf("%d %d %d", m.Foo.Cfg.V, m.Bar.Cfg.V, m.baz.Cfg.V) } func main() { cfg := MainConfig{ Foo: &foo.Config{1}, Bar: &bar.Config{2}, baz: &baz.Config{3}, } svc := newMainService(cfg) fmt.Println(svc.String()) } === CONT TestWire/BuildTagsAllPackages === CONT TestWire/BindInterfaceWithValue TestWire/InterfaceBindingInvalidArg0: wire_test.go:108: /tmp/wire_test204708568/src/example.com/foo/wire.go:25:13: first argument to Bind must be a pointer to an interface type; found string === CONT TestWire/BindInjectorArgPointer TestWire/InjectorMissingError: wire_test.go:108: /tmp/wire_test836165793/src/example.com/foo/wire.go:23:1: inject injectFoo: provider for example.com/foo.Foo returns error but injection not allowed to fail === CONT TestWire/StructPointer TestWire/MultipleArgsSameType: wire_test.go:108: /tmp/wire_test059418928/src/example.com/foo/wire.go:25:8: multiple bindings for string current: <- argument b to injector function inject (/tmp/wire_test059418928/src/example.com/foo/wire.go:23:1) previous: <- argument a to injector function inject (/tmp/wire_test059418928/src/example.com/foo/wire.go:23:1) === CONT TestWire/Varargs TestWire/InterfaceValueInvalidArg0: wire_test.go:108: /tmp/wire_test927116644/src/example.com/foo/wire.go:25:13: first argument to InterfaceValue must be a pointer to an interface type; found string === CONT TestWire/VarValue TestWire/NamingWorstCaseAllInOne: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( context2 "context" "fmt" "os" "reflect" ) // Injectors from foo.go: func inject(context3 context2.Context, err2 struct{}) (context, error) { mainContext, err := Provide(context3) if err != nil { return context{}, err } return mainContext, nil } // foo.go: type context struct{} func main() { if _, ok := reflect.TypeOf(context{}).MethodByName("Provide"); !ok { fmt.Println("ERROR: context.Provide renamed") os.Exit(1) } c, err := inject(context2.Background(), struct{}{}) if err != nil { fmt.Println("ERROR:", err) os.Exit(1) } fmt.Println(c) } func Provide(context2_2 context2.Context) (context, error) { var context3 = context2.Background() _ = context2_2 _ = context3 return context{}, nil } func (context) Provide() { } === CONT TestWire/ValueIsStruct TestWire/Header: wire_test.go:164: wire_gen.go: // This is a sample header file. // // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFoo() Foo { foo := provideFoo() return foo } === CONT TestWire/ValueIsInterfaceValue TestWire/FieldsOfValueStruct: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "example.com/bar" "example.com/baz" "example.com/foo" "fmt" ) // Injectors from wire.go: func newBazService() *baz.Service { config := _wireConfigValue fooConfig := config.Foo service := foo.New(fooConfig) barConfig := config.Bar barService := bar.New(barConfig, service) bazService := &baz.Service{ Foo: service, Bar: barService, } return bazService } var ( _wireConfigValue = &baz.Config{ Foo: &foo.Config{1}, Bar: &bar.Config{2}, } ) // wire.go: func main() { svc := newBazService() fmt.Println(svc.String()) } === CONT TestWire/ValueFromFunctionScope TestWire/FieldsOfImportedStruct: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "example.com/bar" "example.com/baz" "example.com/foo" "fmt" ) // Injectors from wire.go: func newBazService(config *baz.Config) *baz.Service { fooConfig := config.Foo service := foo.New(fooConfig) barConfig := config.Bar barService := bar.New(barConfig, service) bazService := &baz.Service{ Foo: service, Bar: barService, } return bazService } // wire.go: func main() { cfg := &baz.Config{ Foo: &foo.Config{1}, Bar: &bar.Config{2}, } svc := newBazService(cfg) fmt.Println(svc.String()) } === CONT TestWire/ValueConversion TestWire/ExampleWithMocks: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func initApp() *app { mainTimer := _wireRealTimeValue mainGreeter := greeter{ T: mainTimer, } mainApp := &app{ g: mainGreeter, } return mainApp } var ( _wireRealTimeValue = realTime{} ) func initMockedAppFromArgs(mt timer) *app { mainGreeter := greeter{ T: mt, } mainApp := &app{ g: mainGreeter, } return mainApp } func initMockedApp() *appWithMocks { mainMockTimer := newMockTimer() mainGreeter := greeter{ T: mainMockTimer, } mainApp := app{ g: mainGreeter, } mainAppWithMocks := &appWithMocks{ app: mainApp, mt: mainMockTimer, } return mainAppWithMocks } === CONT TestWire/ValueChain TestWire/Cycle: wire_test.go:108: /tmp/wire_test822468235/src/example.com/foo/wire.go:23:1: cycle for example.com/foo.Bar: example.com/foo.Bar (example.com/foo.provideBar) -> example.com/foo.Foo (example.com/foo.provideFoo) -> example.com/foo.Baz (example.com/foo.provideBaz) -> example.com/foo.Bar === CONT TestWire/UnusedProviders TestWire/ExportedValue: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "example.com/bar" ) // Injectors from wire.go: func injectedMessage() string { string2 := _wireStringValue return string2 } var ( _wireStringValue = bar.PublicMsg ) === CONT TestWire/UnexportedValue TestWire/FieldsOfCycle: wire_test.go:108: /tmp/wire_test016503080/src/example.com/foo/wire.go:23:1: cycle for example.com/foo.Bar: example.com/foo.Bar (example.com/foo.provideBar) -> example.com/foo.Foo (example.com/foo.provideFoo) -> example.com/foo.Baz (example.com/foo.Bar.Bz) -> example.com/foo.Bar === CONT TestWire/UnexportedStruct TestWire/ImportedInterfaceBinding: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "example.com/foo" ) // Injectors from wire.go: func injectFooer() foo.Fooer { bar := provideBar() return bar } === CONT TestWire/TwoDeps TestWire/FieldsOfStructDoNotProvidePtrToField: wire_test.go:108: /tmp/wire_test275410563/src/example.com/foo/wire.go:23:1: inject injectedMessagePtr: no provider found for *string, output of injector === CONT TestWire/StructWithPreventTag TestWire/FuncArgProvider: wire_test.go:108: /tmp/wire_test273300146/src/example.com/foo/wire.go:25:19: var fn func() *example.com/foo.Foo is not a provider or a provider set === CONT TestWire/RelativePkg TestWire/BindInterfaceWithValue: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "io" "os" ) // Injectors from wire.go: func inject() io.Writer { file := _wireFileValue return file } var ( _wireFileValue = os.Stdout ) === CONT TestWire/StructNotAStruct TestWire/CopyOtherDecls: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "fmt" ) // Injectors from foo.go: func injectedMessage() string { string2 := provideMessage() return string2 } // foo.go: func main() { fmt.Println(injectedMessage()) } // provideMessage provides a friendly user greeting. func provideMessage() string { return "Hello, World!" } === CONT TestWire/Struct TestWire/ValueIsStruct: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFoo() Foo { foo := _wireFooValue return foo } var ( _wireFooValue = Foo{X: 42} ) === CONT TestWire/ReturnError TestWire/BuildTagsAllPackages: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { string2 := _wireStringValue return string2 } var ( _wireStringValue = "Hello, World!" ) === CONT TestWire/ReturnArgumentAsInterface TestWire/ExportedValueDifferentPackage: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "os" ) // Injectors from wire.go: func injectedFile() *os.File { file := _wireFileValue return file } var ( _wireFileValue = os.Stdout ) TestWire/BindInjectorArgPointer: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func inject(foo *Foo) *Bar { bar := NewBar(foo) return bar } === CONT TestWire/ReservedKeywords === CONT TestWire/PartialCleanup TestWire/FieldsOfStruct: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { s := provideS() string2 := s.Foo return string2 } === CONT TestWire/ProviderSetBindingMissingConcreteType TestWire/FieldsOfStructPointer: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { s := provideS() string2 := s.Foo return string2 } func injectedMessagePtr() *string { s := provideS() string2 := &s.Foo return string2 } TestWire/Cleanup: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectBar() (*Bar, func()) { foo, cleanup := provideFoo() bar, cleanup2 := provideBar(foo) return bar, func() { cleanup2() cleanup() } } === CONT TestWire/PkgImport === CONT TestWire/NoInjectParamNames TestWire/Chain: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooBar() FooBar { foo := provideFoo() fooBar := provideFooBar(foo) return fooBar } === CONT TestWire/NoopBuild TestWire/EmptyVar: wire_test.go:108: /tmp/wire_test527220956/src/example.com/foo/wire.go:24:13: var example.com/foo.myFakeSet struct{} is not a provider or a provider set === CONT TestWire/NoImplicitInterface TestWire/Varargs: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage(t title, lines ...string) string { string2 := provideMessage(lines...) return string2 } TestWire/StructPointer: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooBar() *FooBar { foo := provideFoo() bar := provideBar() fooBar := &FooBar{ Foo: foo, Bar: bar, } return fooBar } func injectEmptyStruct() *Empty { empty := &Empty{} return empty } TestWire/ValueConversion: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() Foo { foo := _wireFooValue return foo } var ( _wireFooValue = Foo("Hello, World!") ) TestWire/UnusedProviders: wire_test.go:108: /tmp/wire_test102683180/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused provider set "unusedSet" TestWire/UnusedProviders: wire_test.go:108: /tmp/wire_test102683180/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused provider "main.provideUnused" TestWire/UnusedProviders: wire_test.go:108: /tmp/wire_test102683180/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused value of type string TestWire/UnusedProviders: wire_test.go:108: /tmp/wire_test102683180/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused interface binding to type example.com/foo.Fooer TestWire/UnusedProviders: wire_test.go:108: /tmp/wire_test102683180/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused field "example.com/foo.S".Cfg TestWire/UnexportedValue: wire_test.go:108: /tmp/wire_test884583323/src/example.com/foo/wire.go:24:1: inject injectedMessage: value string can't be used: uses unexported identifier privateMsg TestWire/ValueIsInterfaceValue: wire_test.go:108: /tmp/wire_test335924600/src/example.com/foo/wire.go:27:13: argument to Value may not be an interface value (found io.Reader); use InterfaceValue instead TestWire/VarValue: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { string2 := _wireStringValue return string2 } var ( _wireStringValue = msg ) TestWire/ValueChain: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooBar() FooBar { foo := _wireFooValue fooBar := provideFooBar(foo) return fooBar } var ( _wireFooValue = Foo(41) ) TestWire/ValueFromFunctionScope: wire_test.go:108: /tmp/wire_test245920887/src/example.com/foo/wire.go:23:1: inject injectBar: value int can't be used: f is not declared in package scope TestWire/ReservedKeywords: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectInterface() Interface { select2 := provideSelect() mainInterface := provideInterface(select2) return mainInterface } // wire.go: // Wire tries to disambiguate the variable "select" by prepending // the package name; this package-scoped variable conflicts with that // and forces a different name. var mainSelect = 0 TestWire/StructNotAStruct: wire_test.go:108: /tmp/wire_test493144658/src/example.com/foo/wire.go:24:13: first argument to Struct must be a pointer to a named struct; found **example.com/foo.A TestWire/UnexportedStruct: wire_test.go:108: /tmp/wire_test791271486/src/example.com/foo/wire.go:26:17: foo not exported by package bar TestWire/StructWithPreventTag: wire_test.go:108: /tmp/wire_test182148229/src/example.com/foo/foo.go:45:2: "mu" is prevented from injecting by wire TestWire/TwoDeps: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooBar() FooBar { foo := provideFoo() bar := provideBar() fooBar := provideFooBar(foo, bar) return fooBar } TestWire/NoImplicitInterface: wire_test.go:108: /tmp/wire_test588576636/src/example.com/foo/wire.go:23:1: inject injectFooer: no provider found for example.com/foo.Fooer, output of injector TestWire/PartialCleanup: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectBaz() (Baz, func(), error) { foo, cleanup := provideFoo() bar, cleanup2, err := provideBar(foo) if err != nil { cleanup() return 0, nil, err } baz, err := provideBaz(bar) if err != nil { cleanup2() cleanup() return 0, nil, err } return baz, func() { cleanup2() cleanup() }, nil } TestWire/ReturnError: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFoo() (Foo, error) { foo, err := provideFoo() if err != nil { return 0, err } return foo, nil } TestWire/NoInjectParamNames: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( context2 "context" ) // Injectors from wire.go: func inject(contextContext context2.Context, arg struct{}) (context, error) { mainContext, err := provide(contextContext) if err != nil { return context{}, err } return mainContext, nil } TestWire/ReturnArgumentAsInterface: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "fmt" ) // Injectors from wire.go: func injectStringer(s MyString) fmt.Stringer { return s } TestWire/RelativePkg: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectedMessage() string { string2 := provideMessage() return string2 } TestWire/Struct: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main // Injectors from wire.go: func injectFooBar() FooBar { foo := provideFoo() bar := provideBar() fooBar := FooBar{ Foo: foo, Bar: bar, } return fooBar } func injectPartFooBar() FooBar { foo := provideFoo() fooBar := FooBar{ Foo: foo, } return fooBar } TestWire/ProviderSetBindingMissingConcreteType: wire_test.go:108: /tmp/wire_test321222088/src/example.com/foo/foo.go:47:21: wire.Bind of concrete type "*example.com/foo.foo" to interface "example.com/foo.fooer", but setB does not include a provider for "*example.com/foo.foo" TestWire/PkgImport: wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. //go:generate wire //+build !wireinject package main import ( "example.com/bar" ) import ( _ "example.com/anon1" _ "example.com/anon2" ) // Injectors from wire.go: func injectFooBar() FooBar { foo := provideFoo() barBar := bar.ProvideBar() fooBar := provideFooBar(foo, barBar) return fooBar } --- PASS: TestWire (0.06s) --- PASS: TestWire/MultipleBindings (96.67s) --- PASS: TestWire/InterfaceValue (99.67s) --- PASS: TestWire/InterfaceBindingDoesntImplement (99.60s) --- PASS: TestWire/NiladicValue (101.39s) --- PASS: TestWire/InterfaceValueDoesntImplement (102.58s) --- PASS: TestWire/NamingWorstCase (106.27s) --- PASS: TestWire/InvalidInjector (108.98s) --- PASS: TestWire/InterfaceBindingNotEnoughArgs (110.07s) --- PASS: TestWire/BindInjectorArg (111.68s) --- PASS: TestWire/InjectWithPanic (115.50s) --- PASS: TestWire/InterfaceValueNotEnoughArgs (117.38s) --- PASS: TestWire/InterfaceBinding (117.60s) --- PASS: TestWire/InjectInput (117.90s) --- PASS: TestWire/InterfaceBindingReuse (129.37s) --- PASS: TestWire/InjectorMissingCleanup (134.40s) --- PASS: TestWire/InjectInputConflict (144.00s) --- PASS: TestWire/MultipleMissingInputs (156.38s) --- PASS: TestWire/MultipleSimilarPackages (161.78s) --- PASS: TestWire/NiladicIdentity (161.87s) --- PASS: TestWire/InterfaceBindingInvalidArg0 (162.87s) --- PASS: TestWire/InjectorMissingError (164.80s) --- PASS: TestWire/MultipleArgsSameType (165.28s) --- PASS: TestWire/InterfaceValueInvalidArg0 (165.77s) --- PASS: TestWire/NamingWorstCaseAllInOne (166.28s) --- PASS: TestWire/Header (102.10s) --- PASS: TestWire/FieldsOfValueStruct (102.29s) --- PASS: TestWire/FieldsOfImportedStruct (94.60s) --- PASS: TestWire/ExampleWithMocks (87.10s) --- PASS: TestWire/Cycle (82.80s) --- PASS: TestWire/ExportedValue (104.49s) --- PASS: TestWire/FieldsOfCycle (116.70s) --- PASS: TestWire/ImportedInterfaceBinding (142.20s) --- PASS: TestWire/FieldsOfStructDoNotProvidePtrToField (135.00s) --- PASS: TestWire/FuncArgProvider (142.80s) --- PASS: TestWire/BindInterfaceWithValue (82.10s) --- PASS: TestWire/CopyOtherDecls (112.80s) --- PASS: TestWire/ValueIsStruct (82.59s) --- PASS: TestWire/BuildTagsAllPackages (87.40s) --- PASS: TestWire/ExportedValueDifferentPackage (134.20s) --- PASS: TestWire/BindInjectorArgPointer (86.90s) --- PASS: TestWire/FieldsOfStruct (141.59s) --- PASS: TestWire/Cleanup (110.40s) --- PASS: TestWire/FieldsOfStructPointer (151.90s) --- PASS: TestWire/Chain (101.50s) --- PASS: TestWire/EmptyVar (150.40s) --- PASS: TestWire/Varargs (118.40s) --- PASS: TestWire/StructPointer (133.70s) --- PASS: TestWire/ValueConversion (96.21s) --- PASS: TestWire/UnusedProviders (89.70s) --- PASS: TestWire/UnexportedValue (82.30s) --- PASS: TestWire/ValueIsInterfaceValue (103.30s) --- PASS: TestWire/VarValue (140.30s) --- PASS: TestWire/ValueChain (101.80s) --- PASS: TestWire/ValueFromFunctionScope (105.81s) --- PASS: TestWire/ReservedKeywords (61.90s) --- PASS: TestWire/StructNotAStruct (68.11s) --- PASS: TestWire/UnexportedStruct (84.51s) --- PASS: TestWire/StructWithPreventTag (71.70s) --- PASS: TestWire/TwoDeps (74.90s) --- PASS: TestWire/NoImplicitInterface (46.90s) --- PASS: TestWire/PartialCleanup (70.81s) --- PASS: TestWire/ReturnError (75.61s) --- PASS: TestWire/NoInjectParamNames (70.30s) --- PASS: TestWire/ReturnArgumentAsInterface (76.71s) --- PASS: TestWire/NoopBuild (68.60s) --- PASS: TestWire/RelativePkg (85.71s) --- PASS: TestWire/Struct (81.91s) --- PASS: TestWire/ProviderSetBindingMissingConcreteType (78.72s) --- PASS: TestWire/PkgImport (74.94s) === RUN TestUnexport --- PASS: TestUnexport (0.00s) === RUN TestExport --- PASS: TestExport (0.00s) === RUN TestTypeVariableName === RUN TestTypeVariableName/basic_type:_typeVariableName(bool,_"",_"",_map[]) === RUN TestTypeVariableName/basic_type_with_transform:_typeVariableName(bool,_"",_"suffix",_map[]) === RUN TestTypeVariableName/basic_type_with_collision:_typeVariableName(bool,_"",_"",_map[bool:true]) === RUN TestTypeVariableName/basic_type_with_transform_and_collision:_typeVariableName(bool,_"",_"suffix",_map[boolsuffix:true]) === RUN TestTypeVariableName/a_different_basic_type:_typeVariableName(string,_"",_"",_map[]) === RUN TestTypeVariableName/named_type:_typeVariableName(foo,_"",_"",_map[]) === RUN TestTypeVariableName/named_type_with_transform:_typeVariableName(foo,_"",_"suffix",_map[]) === RUN TestTypeVariableName/named_type_with_collision:_typeVariableName(foo,_"",_"",_map[foo:true]) === RUN TestTypeVariableName/named_type_with_transform_and_collision:_typeVariableName(foo,_"",_"suffix",_map[foosuffix:true]) === RUN TestTypeVariableName/noname_type:_typeVariableName(,_"bar",_"",_map[]) === RUN TestTypeVariableName/noname_type_with_transform:_typeVariableName(,_"bar",_"s",_map[]) === RUN TestTypeVariableName/noname_type_with_transform_and_collision:_typeVariableName(,_"bar",_"s",_map[bars:true]) === RUN TestTypeVariableName/var_in_pkg_type:_typeVariableName(my.example/foo.bar,_"",_"",_map[]) === RUN TestTypeVariableName/var_in_pkg_type_with_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true]) === RUN TestTypeVariableName/var_in_pkg_type_with_double_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true_fooBar:true]) --- PASS: TestTypeVariableName (0.00s) --- PASS: TestTypeVariableName/basic_type:_typeVariableName(bool,_"",_"",_map[]) (0.00s) --- PASS: TestTypeVariableName/basic_type_with_transform:_typeVariableName(bool,_"",_"suffix",_map[]) (0.00s) --- PASS: TestTypeVariableName/basic_type_with_collision:_typeVariableName(bool,_"",_"",_map[bool:true]) (0.00s) --- PASS: TestTypeVariableName/basic_type_with_transform_and_collision:_typeVariableName(bool,_"",_"suffix",_map[boolsuffix:true]) (0.00s) --- PASS: TestTypeVariableName/a_different_basic_type:_typeVariableName(string,_"",_"",_map[]) (0.00s) --- PASS: TestTypeVariableName/named_type:_typeVariableName(foo,_"",_"",_map[]) (0.00s) --- PASS: TestTypeVariableName/named_type_with_transform:_typeVariableName(foo,_"",_"suffix",_map[]) (0.00s) --- PASS: TestTypeVariableName/named_type_with_collision:_typeVariableName(foo,_"",_"",_map[foo:true]) (0.00s) --- PASS: TestTypeVariableName/named_type_with_transform_and_collision:_typeVariableName(foo,_"",_"suffix",_map[foosuffix:true]) (0.00s) --- PASS: TestTypeVariableName/noname_type:_typeVariableName(,_"bar",_"",_map[]) (0.00s) --- PASS: TestTypeVariableName/noname_type_with_transform:_typeVariableName(,_"bar",_"s",_map[]) (0.00s) --- PASS: TestTypeVariableName/noname_type_with_transform_and_collision:_typeVariableName(,_"bar",_"s",_map[bars:true]) (0.00s) --- PASS: TestTypeVariableName/var_in_pkg_type:_typeVariableName(my.example/foo.bar,_"",_"",_map[]) (0.00s) --- PASS: TestTypeVariableName/var_in_pkg_type_with_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true]) (0.00s) --- PASS: TestTypeVariableName/var_in_pkg_type_with_double_collision:_typeVariableName(my.example/foo.bar,_"",_"",_map[bar:true_fooBar:true]) (0.00s) === RUN TestDisambiguate === RUN TestDisambiguate/disambiguate("foo",_map[]) === RUN TestDisambiguate/disambiguate("foo",_map[foo:true]) === RUN TestDisambiguate/disambiguate("foo",_map[foo:true_foo1:true_foo2:true]) === RUN TestDisambiguate/disambiguate("foo1",_map[foo:true_foo1:true_foo2:true]) === RUN TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true]) === RUN TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true_foo١:true]) === RUN TestDisambiguate/disambiguate("select",_map[]) === RUN TestDisambiguate/disambiguate("var",_map[]) --- PASS: TestDisambiguate (0.00s) --- PASS: TestDisambiguate/disambiguate("foo",_map[]) (0.00s) --- PASS: TestDisambiguate/disambiguate("foo",_map[foo:true]) (0.00s) --- PASS: TestDisambiguate/disambiguate("foo",_map[foo:true_foo1:true_foo2:true]) (0.00s) --- PASS: TestDisambiguate/disambiguate("foo1",_map[foo:true_foo1:true_foo2:true]) (0.00s) --- PASS: TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true]) (0.00s) --- PASS: TestDisambiguate/disambiguate("foo١",_map[foo:true_foo1:true_foo2:true_foo١:true]) (0.00s) --- PASS: TestDisambiguate/disambiguate("select",_map[]) (0.00s) --- PASS: TestDisambiguate/disambiguate("var",_map[]) (0.00s) PASS ok github.com/google/wire/internal/wire 329.937s create-stamp debian/debhelper-build-stamp dh_testroot -i -O--builddirectory=_build -O--buildsystem=golang dh_prep -i -O--builddirectory=_build -O--buildsystem=golang dh_auto_install -i -O--builddirectory=_build -O--buildsystem=golang cd _build && mkdir -p /build/golang-github-google-wire-opTzY6/golang-github-google-wire-0.4.0/debian/tmp/usr cd _build && cp -r bin /build/golang-github-google-wire-opTzY6/golang-github-google-wire-0.4.0/debian/tmp/usr dh_install -i -O--builddirectory=_build -O--buildsystem=golang dh_installdocs -i -O--builddirectory=_build -O--buildsystem=golang dh_installchangelogs -i -O--builddirectory=_build -O--buildsystem=golang dh_installinit -i -O--builddirectory=_build -O--buildsystem=golang dh_installsystemduser -i -O--builddirectory=_build -O--buildsystem=golang dh_perl -i -O--builddirectory=_build -O--buildsystem=golang dh_link -i -O--builddirectory=_build -O--buildsystem=golang dh_strip_nondeterminism -i -O--builddirectory=_build -O--buildsystem=golang dh_compress -i -O--builddirectory=_build -O--buildsystem=golang dh_fixperms -i -O--builddirectory=_build -O--buildsystem=golang dh_missing -i -O--builddirectory=_build -O--buildsystem=golang dh_missing: warning: usr/bin/wire exists in debian/tmp but is not installed to anywhere The following debhelper tools have reported what they installed (with files per package) * dh_install: golang-github-google-wire-dev (1), google-wire (0) * dh_installdocs: golang-github-google-wire-dev (0), google-wire (0) If the missing files are installed by another tool, please file a bug against it. When filing the report, if the tool is not part of debhelper itself, please reference the "Logging helpers and dh_missing" section from the "PROGRAMMING" guide for debhelper (10.6.3+). (in the debhelper package: /usr/share/doc/debhelper/PROGRAMMING.gz) Be sure to test with dpkg-buildpackage -A/-B as the results may vary when only a subset is built For a short-term work-around: Add the files to debian/not-installed dh_installdeb -i -O--builddirectory=_build -O--buildsystem=golang dh_golang -i -O--builddirectory=_build -O--buildsystem=golang Use of uninitialized value $caller in string eq at /usr/share/perl5/Debian/Debhelper/Buildsystem/golang.pm line 567. dh_gencontrol -i -O--builddirectory=_build -O--buildsystem=golang dh_md5sums -i -O--builddirectory=_build -O--buildsystem=golang dh_builddeb -i -O--builddirectory=_build -O--buildsystem=golang dpkg-deb: building package 'golang-github-google-wire-dev' in '../golang-github-google-wire-dev_0.4.0-3_all.deb'. dpkg-genbuildinfo --build=all dpkg-genchanges --build=all >../golang-github-google-wire_0.4.0-3_all.changes dpkg-genchanges: info: binary-only arch-indep upload (source code and arch-specific packages not included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: running special hook: sync-out /build/golang-github-google-wire-opTzY6 /tmp/golang-github-google-wire-0.4.0-3jjqmjd7w I: cleaning package lists and apt cache... I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.BqBQG4SJ7i... I: success in 767.5350 seconds md5: golang-github-google-wire-dev_0.4.0-3_all.deb: OK sha1: golang-github-google-wire-dev_0.4.0-3_all.deb: OK sha256: golang-github-google-wire-dev_0.4.0-3_all.deb: OK Checksums: OK