Diff of the two buildlogs: -- --- b1/build.log 2024-04-12 14:54:07.008172429 +0000 +++ b2/build.log 2024-04-12 14:55:58.355426339 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu May 15 09:15:57 -12 2025 -I: pbuilder-time-stamp: 1747343757 +I: Current time: Sat Apr 13 04:54:09 +14 2024 +I: pbuilder-time-stamp: 1712933649 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -30,54 +30,86 @@ dpkg-source: info: applying 0002-update-record-replay-files-for-go1.18.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/7885/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/25757/tmp/hooks/D01_modify_environment starting +debug: Running on ionos2-i386. +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 Apr 12 14:54 /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/25757/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/25757/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=22 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='i386' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=7 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='f01da87e415b4e46a1e46472dd40d4fc' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='7885' - PS1='# ' - PS2='> ' + INVOCATION_ID=4a3e9343fd0b428dae52cf8b140e1156 + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=25757 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.5dXD5Z7v/pbuilderrc_7HgT --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.5dXD5Z7v/b1 --logfile b1/build.log golang-github-google-wire_0.5.0-2.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68: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.5dXD5Z7v/pbuilderrc_Gz3R --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.5dXD5Z7v/b2 --logfile b2/build.log golang-github-google-wire_0.5.0-2.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux ionos16-i386 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 15 17:46 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/7885/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Apr 10 11:24 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/25757/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -176,7 +208,7 @@ Get: 47 http://deb.debian.org/debian trixie/main i386 golang-golang-x-net-dev all 1:0.23.0+dfsg-1 [896 kB] Get: 48 http://deb.debian.org/debian trixie/main i386 golang-golang-x-sync-dev all 0.6.0-1 [18.5 kB] Get: 49 http://deb.debian.org/debian trixie/main i386 golang-golang-x-tools-dev all 1:0.19.0+ds-1 [1566 kB] -Fetched 69.9 MB in 1s (99.4 MB/s) +Fetched 69.9 MB in 2s (46.3 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package sensible-utils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19874 files and directories currently installed.) @@ -387,7 +419,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/golang-github-google-wire-0.5.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../golang-github-google-wire_0.5.0-2_source.changes +I: user script /srv/workspace/pbuilder/25757/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/25757/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/golang-github-google-wire-0.5.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../golang-github-google-wire_0.5.0-2_source.changes dpkg-buildpackage: info: source package golang-github-google-wire dpkg-buildpackage: info: source version 0.5.0-2 dpkg-buildpackage: info: source distribution unstable @@ -405,68 +441,68 @@ dh_autoreconf -O--builddirectory=_build -O--buildsystem=golang dh_auto_configure -O--builddirectory=_build -O--buildsystem=golang dh_auto_build -O--builddirectory=_build -O--buildsystem=golang - cd _build && go install -trimpath -v -p 22 github.com/google/wire github.com/google/wire/cmd/wire github.com/google/wire/internal/wire -encoding -internal/itoa -internal/goos -math/bits + cd _build && go install -trimpath -v -p 7 github.com/google/wire github.com/google/wire/cmd/wire github.com/google/wire/internal/wire internal/godebugs -log/internal -unicode/utf8 -cmp -internal/coverage/rtcov -runtime/internal/syscall internal/unsafeheader -unicode/utf16 -internal/platform -internal/goversion -sync/atomic +github.com/google/wire internal/goarch -runtime/internal/atomic -unicode -internal/race +internal/coverage/rtcov internal/cpu -github.com/google/wire -golang.org/x/tools/internal/packagesinternal internal/goexperiment -runtime/internal/sys -runtime/internal/math +internal/goos +internal/abi internal/chacha8rand +runtime/internal/atomic +runtime/internal/math +runtime/internal/syscall +runtime/internal/sys +internal/race +sync/atomic +internal/itoa +encoding +math/bits +unicode/utf8 +unicode +internal/bytealg +cmp +internal/goversion internal/gover -internal/abi -slices +unicode/utf16 +internal/platform math -internal/bytealg +slices +log/internal +golang.org/x/tools/internal/packagesinternal runtime internal/reflectlite sync internal/testlog internal/bisect -internal/godebug errors +internal/godebug sort internal/oserror +io internal/safefilepath path -io strconv -math/rand syscall -hash +math/rand text/tabwriter bytes strings container/heap +hash golang.org/x/mod/semver -go/version -bufio crypto -go/build/constraint internal/types/errors -regexp/syntax reflect -internal/syscall/execenv +go/version +go/build/constraint +bufio +regexp/syntax internal/syscall/unix +internal/syscall/execenv time regexp context @@ -478,34 +514,34 @@ encoding/base64 crypto/md5 internal/lazyregexp -io/ioutil path/filepath fmt +io/ioutil os/exec internal/goroot -github.com/pmezard/go-difflib/difflib flag -internal/buildcfg go/token -golang.org/x/tools/internal/event/label +math/big go/doc/comment -log +internal/buildcfg encoding/json -math/big +golang.org/x/tools/internal/event/label golang.org/x/tools/internal/event/keys -golang.org/x/tools/internal/tokeninternal +log go/scanner +golang.org/x/tools/internal/tokeninternal github.com/google/subcommands golang.org/x/tools/internal/event/core -golang.org/x/tools/internal/event/tag -golang.org/x/tools/internal/event go/ast +golang.org/x/tools/internal/event +golang.org/x/tools/internal/event/tag +github.com/pmezard/go-difflib/difflib golang.org/x/tools/internal/gocommand golang.org/x/tools/go/internal/packagesdriver go/internal/typeparams +go/printer golang.org/x/tools/go/ast/astutil go/doc -go/printer go/parser go/constant golang.org/x/tools/internal/pkgbits @@ -524,7 +560,7 @@ github.com/google/wire/internal/wire github.com/google/wire/cmd/wire dh_auto_test -O--builddirectory=_build -O--buildsystem=golang - cd _build && go test -vet=off -v -p 22 github.com/google/wire github.com/google/wire/cmd/wire github.com/google/wire/internal/wire + cd _build && go test -vet=off -v -p 7 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 @@ -669,75 +705,16 @@ === RUN TestWire/Varargs === PAUSE TestWire/Varargs === CONT TestWire/BindInjectorArg -=== CONT TestWire/Varargs === CONT TestWire/InterfaceValueNotEnoughArgs +=== CONT TestWire/FieldsOfValueStruct +=== CONT TestWire/Varargs +=== CONT TestWire/InterfaceBinding === CONT TestWire/ReservedKeywords -=== CONT TestWire/UnexportedValue -=== CONT TestWire/RelativePkg -=== CONT TestWire/UnusedProviders -=== CONT TestWire/NoImplicitInterface -=== CONT TestWire/MultipleArgsSameType -=== CONT TestWire/InvalidInjector -=== CONT TestWire/NamingWorstCase -=== CONT TestWire/ValueConversion -=== CONT TestWire/ValueChain -=== CONT TestWire/NiladicIdentity -=== CONT TestWire/PkgImport -=== CONT TestWire/PartialCleanup -=== CONT TestWire/NoopBuild -=== CONT TestWire/NoInjectParamNames -=== CONT TestWire/NamingWorstCaseAllInOne -=== CONT TestWire/MultipleSimilarPackages -=== CONT TestWire/MultipleMissingInputs -=== CONT TestWire/MultipleBindings -=== CONT TestWire/NiladicValue -=== CONT TestWire/ProviderSetBindingMissingConcreteType -=== NAME TestWire/MultipleBindings - wire_test.go:108: /tmp/wire_test524156801/src/example.com/foo/wire.go:27:8: multiple bindings for example.com/foo.Foo - current: - <- provider "provideFooAgain" (/tmp/wire_test524156801/src/example.com/foo/foo.go:39:6) - previous: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - wire_test.go:108: /tmp/wire_test524156801/src/example.com/foo/wire.go:32:8: multiple bindings for example.com/foo.Foo - current: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - previous: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - <- provider set "Set" (/tmp/wire_test524156801/src/example.com/foo/foo.go:31:11) - wire_test.go:108: /tmp/wire_test524156801/src/example.com/foo/wire.go:37:8: multiple bindings for example.com/foo.Foo - current: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - previous: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - <- provider set "Set" (/tmp/wire_test524156801/src/example.com/foo/foo.go:31:11) - <- provider set "SuperSet" (/tmp/wire_test524156801/src/example.com/foo/foo.go:32:16) - wire_test.go:108: /tmp/wire_test524156801/src/example.com/foo/foo.go:33:32: SetWithDuplicateBindings has multiple bindings for example.com/foo.Foo - current: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - <- provider set "Set" (/tmp/wire_test524156801/src/example.com/foo/foo.go:31:11) - <- provider set "SuperSet" (/tmp/wire_test524156801/src/example.com/foo/foo.go:32:16) - previous: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - <- provider set "Set" (/tmp/wire_test524156801/src/example.com/foo/foo.go:31:11) - wire_test.go:108: /tmp/wire_test524156801/src/example.com/foo/wire.go:47:8: multiple bindings for example.com/foo.Foo - current: - <- wire.Value (/tmp/wire_test524156801/src/example.com/foo/wire.go:47:42) - previous: - <- provider "provideFoo" (/tmp/wire_test524156801/src/example.com/foo/foo.go:35:6) - wire_test.go:108: /tmp/wire_test524156801/src/example.com/foo/wire.go:52:8: multiple bindings for example.com/foo.Bar - current: - <- wire.Bind (/tmp/wire_test524156801/src/example.com/foo/wire.go:52:31) - previous: - <- provider "provideBar" (/tmp/wire_test524156801/src/example.com/foo/foo.go:43:6) -=== CONT TestWire/InterfaceValueInvalidArg0 -=== NAME TestWire/UnusedProviders - wire_test.go:108: /tmp/wire_test1214379984/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused provider set "unusedSet" - wire_test.go:108: /tmp/wire_test1214379984/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused provider "main.provideUnused" - wire_test.go:108: /tmp/wire_test1214379984/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused value of type string - wire_test.go:108: /tmp/wire_test1214379984/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused interface binding to type example.com/foo.Fooer - wire_test.go:108: /tmp/wire_test1214379984/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused field "example.com/foo.S".Cfg -=== CONT TestWire/InterfaceValueDoesntImplement -=== NAME TestWire/RelativePkg +=== CONT TestWire/InjectInputConflict +=== CONT TestWire/InterfaceBindingReuse +=== CONT TestWire/InterfaceBindingInvalidArg0 +=== CONT TestWire/InterfaceBindingNotEnoughArgs +=== NAME TestWire/Varargs wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -749,20 +726,50 @@ // Injectors from wire.go: - func injectedMessage() string { - string2 := provideMessage() + func injectedMessage(t title, lines ...string) string { + string2 := provideMessage(lines...) return string2 } -=== CONT TestWire/InterfaceValue +=== CONT TestWire/InterfaceValueInvalidArg0 === NAME TestWire/InterfaceValueNotEnoughArgs - wire_test.go:108: /tmp/wire_test3631447438/src/example.com/foo/wire.go:25:38: not enough arguments in call to wire.InterfaceValue + wire_test.go:108: /tmp/wire_test570257633/src/example.com/foo/wire.go:25:38: not enough arguments in call to wire.InterfaceValue have (string) want (interface{}, interface{}) -=== CONT TestWire/InterfaceBindingReuse -=== NAME TestWire/UnexportedValue - wire_test.go:108: /tmp/wire_test2689777244/src/example.com/foo/wire.go:24:1: inject injectedMessage: value string can't be used: uses unexported identifier privateMsg -=== CONT TestWire/StructPointer -=== NAME TestWire/NamingWorstCaseAllInOne +=== CONT TestWire/InterfaceValueDoesntImplement +=== NAME TestWire/ReservedKeywords + wire_test.go:164: wire_gen.go: + // Code generated by Wire. DO NOT EDIT. + + //go:generate go run github.com/google/wire/cmd/wire + //go:build !wireinject + // +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 +=== CONT TestWire/InterfaceValue +=== NAME TestWire/InjectInputConflict + wire_test.go:108: /tmp/wire_test1831135488/src/example.com/foo/wire.go:24:2: multiple bindings for example.com/foo.Foo + current: + <- provider "provideFoo" (/tmp/wire_test1831135488/src/example.com/foo/foo.go:37:6) + <- provider set "Set" (/tmp/wire_test1831135488/src/example.com/foo/foo.go:33:11) + previous: + <- argument foo to injector function injectBar (/tmp/wire_test1831135488/src/example.com/foo/wire.go:23:1) +=== CONT TestWire/UnexportedValue +=== NAME TestWire/FieldsOfValueStruct wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -773,49 +780,80 @@ package main import ( - context2 "context" + "example.com/bar" + "example.com/baz" + "example.com/foo" "fmt" - "os" - "reflect" ) - // Injectors from foo.go: + // Injectors from wire.go: - func inject(context3 context2.Context, err2 struct{}) (context, error) { - mainContext, err := Provide(context3) - if err != nil { - return context{}, err + 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 mainContext, nil + return bazService } - // foo.go: + var ( + _wireConfigValue = &baz.Config{ + Foo: &foo.Config{1}, + Bar: &bar.Config{2}, + } + ) - type context struct{} + // wire.go: 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) + svc := newBazService() + fmt.Println(svc.String()) } +=== CONT TestWire/ValueConversion +=== NAME TestWire/InterfaceBindingReuse + wire_test.go:164: wire_gen.go: + // Code generated by Wire. DO NOT EDIT. - func Provide(context2_2 context2.Context) (context, error) { - var context3 = context2.Background() - _ = context2_2 - _ = context3 - return context{}, nil + //go:generate go run github.com/google/wire/cmd/wire + //go:build !wireinject + // +build !wireinject + + package main + + // Injectors from wire.go: + + func injectFooBar() FooBar { + bar := provideBar() + fooBar := provideFooBar(bar, bar) + return fooBar } +=== CONT TestWire/ValueFromFunctionScope +=== NAME TestWire/InterfaceBindingInvalidArg0 + wire_test.go:108: /tmp/wire_test3106415251/src/example.com/foo/wire.go:25:13: first argument to Bind must be a pointer to an interface type; found string +=== CONT TestWire/ValueChain +=== NAME TestWire/InterfaceBinding + wire_test.go:164: wire_gen.go: + // Code generated by Wire. DO NOT EDIT. - func (context) Provide() { + //go:generate go run github.com/google/wire/cmd/wire + //go:build !wireinject + // +build !wireinject + + package main + + // Injectors from wire.go: + + func injectFooer() Fooer { + bar := provideBar() + return bar } -=== NAME TestWire/Varargs +=== CONT TestWire/UnusedProviders +=== NAME TestWire/BindInjectorArg wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -827,13 +865,33 @@ // Injectors from wire.go: - func injectedMessage(t title, lines ...string) string { - string2 := provideMessage(lines...) - return string2 + func inject(foo Foo) *Bar { + bar := NewBar(foo) + return bar } -=== CONT TestWire/InterfaceBindingNotEnoughArgs -=== CONT TestWire/UnexportedStruct -=== NAME TestWire/NiladicValue +=== CONT TestWire/VarValue +=== NAME TestWire/InterfaceBindingNotEnoughArgs + wire_test.go:108: /tmp/wire_test1637453520/src/example.com/foo/wire.go:25:33: not enough arguments in call to wire.Bind + have (*Fooer) + want (interface{}, interface{}) +=== CONT TestWire/InjectorMissingCleanup +=== NAME TestWire/InterfaceValueDoesntImplement + wire_test.go:108: /tmp/wire_test3488773979/src/example.com/foo/wire.go:26:13: string does not implement io.Reader +=== CONT TestWire/InjectorMissingError +=== NAME TestWire/UnexportedValue + wire_test.go:108: /tmp/wire_test2401947878/src/example.com/foo/wire.go:24:1: inject injectedMessage: value string can't be used: uses unexported identifier privateMsg +=== CONT TestWire/ValueIsStruct +=== NAME TestWire/UnusedProviders + wire_test.go:108: /tmp/wire_test1257948602/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused provider set "unusedSet" + wire_test.go:108: /tmp/wire_test1257948602/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused provider "main.provideUnused" + wire_test.go:108: /tmp/wire_test1257948602/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused value of type string + wire_test.go:108: /tmp/wire_test1257948602/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused interface binding to type example.com/foo.Fooer + wire_test.go:108: /tmp/wire_test1257948602/src/example.com/foo/wire.go:23:1: inject injectFooBar: unused field "example.com/foo.S".Cfg +=== CONT TestWire/ValueIsInterfaceValue +=== NAME TestWire/InterfaceValueInvalidArg0 + wire_test.go:108: /tmp/wire_test3434949789/src/example.com/foo/wire.go:25:13: first argument to InterfaceValue must be a pointer to an interface type; found string +=== CONT TestWire/ImportedInterfaceBinding +=== NAME TestWire/VarValue wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -851,10 +909,10 @@ } var ( - _wireStringValue = "Hello, World!" + _wireStringValue = msg ) -=== CONT TestWire/InterfaceBindingInvalidArg0 -=== NAME TestWire/PartialCleanup +=== CONT TestWire/InjectInput +=== NAME TestWire/ValueConversion wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -866,33 +924,19 @@ // 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 + func injectedMessage() Foo { + foo := _wireFooValue + return foo } -=== CONT TestWire/TwoDeps -=== NAME TestWire/ProviderSetBindingMissingConcreteType - wire_test.go:108: /tmp/wire_test3729354193/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" + + var ( + _wireFooValue = Foo("Hello, World!") + ) === CONT TestWire/InterfaceBindingDoesntImplement -=== NAME 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 - 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/StructWithPreventTag -=== NAME TestWire/MultipleSimilarPackages +=== NAME TestWire/InjectorMissingCleanup + wire_test.go:108: /tmp/wire_test2685752443/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/StructPointer +=== NAME TestWire/ValueChain wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -902,59 +946,19 @@ 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 injectFooBar() FooBar { + foo := _wireFooValue + fooBar := provideFooBar(foo) + return fooBar } - 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/InterfaceBinding -=== NAME TestWire/NoInjectParamNames + var ( + _wireFooValue = Foo(41) + ) +=== CONT TestWire/EmptyVar +=== NAME TestWire/InterfaceValue wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -965,20 +969,25 @@ package main import ( - context2 "context" + "io" + "strings" ) // 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 + func injectedReader() io.Reader { + reader := _wireReaderValue + return reader } -=== CONT TestWire/FieldsOfImportedStruct -=== NAME TestWire/NiladicIdentity + + var ( + _wireReaderValue = strings.NewReader("hello world") + ) +=== CONT TestWire/UnexportedStruct +=== NAME TestWire/ValueFromFunctionScope + wire_test.go:108: /tmp/wire_test2191867689/src/example.com/foo/wire.go:23:1: inject injectBar: value int can't be used: f is not declared in package scope +=== CONT TestWire/FieldsOfStructPointer +=== NAME TestWire/InjectInput wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -990,12 +999,13 @@ // Injectors from wire.go: - func injectedMessage() string { - string2 := provideMessage() - return string2 + func injectFooBar(foo Foo) FooBar { + bar := provideBar() + fooBar := provideFooBar(foo, bar) + return fooBar } -=== CONT TestWire/FieldsOfCycle -=== NAME TestWire/ValueChain +=== CONT TestWire/FieldsOfStructDoNotProvidePtrToField +=== NAME TestWire/ValueIsStruct wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1007,17 +1017,16 @@ // Injectors from wire.go: - func injectFooBar() FooBar { + func injectFoo() Foo { foo := _wireFooValue - fooBar := provideFooBar(foo) - return fooBar + return foo } var ( - _wireFooValue = Foo(41) + _wireFooValue = Foo{X: 42} ) -=== CONT TestWire/ExportedValueDifferentPackage -=== NAME TestWire/ReservedKeywords +=== CONT TestWire/FieldsOfStruct +=== NAME TestWire/StructPointer wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1029,31 +1038,25 @@ // Injectors from wire.go: - func injectInterface() Interface { - select2 := provideSelect() - mainInterface := provideInterface(select2) - return mainInterface + func injectFooBar() *FooBar { + foo := provideFoo() + bar := provideBar() + fooBar := &FooBar{ + Foo: foo, + Bar: bar, + } + return fooBar } - // 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 -=== CONT TestWire/InjectorMissingError -=== NAME TestWire/MultipleMissingInputs - wire_test.go:108: /tmp/wire_test3525234626/src/example.com/foo/wire.go:23:1: inject injectMissingOutputType: no provider found for example.com/foo.Foo, output of injector - wire_test.go:108: /tmp/wire_test3525234626/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_test3525234626/src/example.com/foo/foo.go:29:6) - wire_test.go:108: /tmp/wire_test3525234626/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_test3525234626/src/example.com/foo/foo.go:29:6) - wire_test.go:108: /tmp/wire_test3525234626/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_test3525234626/src/example.com/foo/foo.go:37:6) - needed by example.com/foo.Zap in provider "provideZap" (/tmp/wire_test3525234626/src/example.com/foo/foo.go:41:6) - needed by example.com/foo.Zop in provider "provideZop" (/tmp/wire_test3525234626/src/example.com/foo/foo.go:45:6) -=== CONT TestWire/ExportedValue -=== NAME TestWire/PkgImport + func injectEmptyStruct() *Empty { + empty := &Empty{} + return empty + } +=== CONT TestWire/TwoDeps +=== NAME TestWire/InjectorMissingError + wire_test.go:108: /tmp/wire_test4271807636/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/StructWithPreventTag +=== NAME TestWire/ImportedInterfaceBinding wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1064,35 +1067,29 @@ package main import ( - "example.com/bar" - ) - - import ( - _ "example.com/anon1" - _ "example.com/anon2" + "example.com/foo" ) // Injectors from wire.go: - func injectFooBar() FooBar { - foo := provideFoo() - barBar := bar.ProvideBar() - fooBar := provideFooBar(foo, barBar) - return fooBar + func injectFooer() foo.Fooer { + bar := provideBar() + return bar } -=== CONT TestWire/InjectorMissingCleanup -=== CONT TestWire/ExampleWithMocks -=== NAME TestWire/MultipleArgsSameType - wire_test.go:108: /tmp/wire_test3750390427/src/example.com/foo/wire.go:25:8: multiple bindings for string - current: - <- argument b to injector function inject (/tmp/wire_test3750390427/src/example.com/foo/wire.go:23:1) - previous: - <- argument a to injector function inject (/tmp/wire_test3750390427/src/example.com/foo/wire.go:23:1) === CONT TestWire/InjectWithPanic -=== NAME TestWire/NoImplicitInterface - wire_test.go:108: /tmp/wire_test4276670224/src/example.com/foo/wire.go:23:1: inject injectFooer: no provider found for example.com/foo.Fooer, output of injector -=== CONT TestWire/EmptyVar -=== NAME TestWire/NamingWorstCase +=== NAME TestWire/UnexportedStruct + wire_test.go:108: /tmp/wire_test1024375831/src/example.com/foo/wire.go:26:17: foo not exported by package bar +=== NAME TestWire/InterfaceBindingDoesntImplement + wire_test.go:108: /tmp/wire_test2066195690/src/example.com/foo/wire.go:25:13: string does not implement example.com/foo.Fooer +=== CONT TestWire/FieldsOfImportedStruct +=== NAME TestWire/ValueIsInterfaceValue + wire_test.go:108: /tmp/wire_test2338711485/src/example.com/foo/wire.go:27:13: argument to Value may not be an interface value (found io.Reader); use InterfaceValue instead +=== CONT TestWire/Chain +=== CONT TestWire/DocComment +=== NAME TestWire/EmptyVar + wire_test.go:108: /tmp/wire_test2089028428/src/example.com/foo/wire.go:24:13: var example.com/foo.myFakeSet struct{} is not a provider or a provider set +=== CONT TestWire/Cycle +=== NAME TestWire/FieldsOfStructPointer wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1102,38 +1099,27 @@ 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 + func injectedMessage() string { + s := provideS() + string2 := s.Foo + return string2 } -=== CONT TestWire/InjectInputConflict -=== NAME TestWire/BindInjectorArg - wire_test.go:164: wire_gen.go: - // Code generated by Wire. DO NOT EDIT. - //go:generate go run github.com/google/wire/cmd/wire - //go:build !wireinject - // +build !wireinject - - package main - - // Injectors from wire.go: - - func inject(foo Foo) *Bar { - bar := NewBar(foo) - return bar + func injectedMessagePtr() *string { + s := provideS() + string2 := &s.Foo + return string2 } -=== CONT TestWire/DocComment -=== NAME TestWire/ValueConversion +=== CONT TestWire/FieldsOfCycle +=== NAME TestWire/StructWithPreventTag + wire_test.go:108: /tmp/wire_test2784853237/src/example.com/foo/foo.go:45:2: "mu" is prevented from injecting by wire +=== CONT TestWire/CopyOtherDecls +=== NAME TestWire/FieldsOfStructDoNotProvidePtrToField + wire_test.go:108: /tmp/wire_test2470283104/src/example.com/foo/wire.go:23:1: inject injectedMessagePtr: no provider found for *string, output of injector +=== CONT TestWire/ExportedValueDifferentPackage +=== NAME TestWire/TwoDeps wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1145,22 +1131,21 @@ // Injectors from wire.go: - func injectedMessage() Foo { - foo := _wireFooValue - return foo + func injectFooBar() FooBar { + foo := provideFoo() + bar := provideBar() + fooBar := provideFooBar(foo, bar) + return fooBar } - - var ( - _wireFooValue = Foo("Hello, World!") - ) -=== CONT TestWire/InjectInput -=== NAME TestWire/InterfaceValueInvalidArg0 - wire_test.go:108: /tmp/wire_test2631922534/src/example.com/foo/wire.go:25:13: first argument to InterfaceValue must be a pointer to an interface type; found string -=== CONT TestWire/Cycle -=== NAME TestWire/InterfaceValueDoesntImplement - wire_test.go:108: /tmp/wire_test267066810/src/example.com/foo/wire.go:26:13: string does not implement io.Reader -=== CONT TestWire/ImportedInterfaceBinding -=== NAME TestWire/InterfaceValue +=== CONT TestWire/Cleanup +=== NAME TestWire/FieldsOfCycle + wire_test.go:108: /tmp/wire_test696728290/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/ExportedValue +=== NAME TestWire/Chain wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1170,33 +1155,21 @@ package main - import ( - "io" - "strings" - ) - // Injectors from wire.go: - func injectedReader() io.Reader { - reader := _wireReaderValue - return reader + func injectFooBar() FooBar { + foo := provideFoo() + fooBar := provideFooBar(foo) + return fooBar } - - var ( - _wireReaderValue = strings.NewReader("hello world") - ) -=== CONT TestWire/CopyOtherDecls -=== NAME TestWire/InterfaceBindingNotEnoughArgs - wire_test.go:108: /tmp/wire_test3688014481/src/example.com/foo/wire.go:25:33: not enough arguments in call to wire.Bind - have (*Fooer) - want (interface{}, interface{}) -=== CONT TestWire/Header -=== NAME TestWire/InterfaceBindingInvalidArg0 - wire_test.go:108: /tmp/wire_test463779476/src/example.com/foo/wire.go:25:13: first argument to Bind must be a pointer to an interface type; found string -=== CONT TestWire/Cleanup -=== NAME TestWire/InterfaceBindingDoesntImplement - wire_test.go:108: /tmp/wire_test2513967716/src/example.com/foo/wire.go:25:13: string does not implement example.com/foo.Fooer -=== CONT TestWire/FuncArgProvider +=== CONT TestWire/BindInterfaceWithValue +=== NAME TestWire/Cycle + wire_test.go:108: /tmp/wire_test218970475/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/BuildTagsAllPackages === NAME TestWire/FieldsOfImportedStruct wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1238,24 +1211,8 @@ svc := newBazService(cfg) fmt.Println(svc.String()) } -=== CONT TestWire/Chain -=== NAME TestWire/FieldsOfCycle - wire_test.go:108: /tmp/wire_test1534583434/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/FieldsOfValueStruct -=== NAME TestWire/StructWithPreventTag - wire_test.go:108: /tmp/wire_test3417608017/src/example.com/foo/foo.go:45:2: "mu" is prevented from injecting by wire -=== CONT TestWire/BuildTagsAllPackages -=== NAME TestWire/EmptyVar - wire_test.go:108: /tmp/wire_test3725346874/src/example.com/foo/wire.go:24:13: var example.com/foo.myFakeSet struct{} is not a provider or a provider set -=== CONT TestWire/FieldsOfStructPointer -=== NAME TestWire/InjectorMissingError - wire_test.go:108: /tmp/wire_test466581150/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/BindInterfaceWithValue -=== NAME TestWire/StructPointer +=== CONT TestWire/ExampleWithMocks +=== NAME TestWire/InjectWithPanic wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1267,21 +1224,53 @@ // Injectors from wire.go: - func injectFooBar() *FooBar { - foo := provideFoo() - bar := provideBar() - fooBar := &FooBar{ - Foo: foo, - Bar: bar, - } - return fooBar + func injectedMessage() string { + string2 := provideMessage() + return string2 } +=== CONT TestWire/Struct +=== NAME TestWire/FieldsOfStruct + wire_test.go:164: wire_gen.go: + // Code generated by Wire. DO NOT EDIT. - func injectEmptyStruct() *Empty { - empty := &Empty{} - return empty + //go:generate go run github.com/google/wire/cmd/wire + //go:build !wireinject + // +build !wireinject + + package main + + // Injectors from wire.go: + + func injectedMessage() string { + s := provideS() + string2 := s.Foo + return string2 } -=== CONT TestWire/FieldsOfStructDoNotProvidePtrToField +=== CONT TestWire/ReturnError +=== NAME TestWire/DocComment + wire_test.go:164: wire_gen.go: + // Code generated by Wire. DO NOT EDIT. + + //go:generate go run github.com/google/wire/cmd/wire + //go:build !wireinject + // +build !wireinject + + package main + + // Injectors from wire.go: + + /* blockComment returns Foo and has a /*- style doc comment */ + func blockComment() *Foo { + foo := &Foo{} + return foo + } + + // lineComment returns Bar and has a //- style doc comment + func lineComment() *Bar { + bar := &Bar{} + return bar + } +=== CONT TestWire/StructNotAStruct === NAME TestWire/ExportedValue wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1307,7 +1296,7 @@ _wireStringValue = bar.PublicMsg ) === CONT TestWire/BindInjectorArgPointer -=== NAME TestWire/InjectInput +=== NAME TestWire/Struct wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1319,13 +1308,25 @@ // Injectors from wire.go: - func injectFooBar(foo Foo) FooBar { + func injectFooBar() FooBar { + foo := provideFoo() bar := provideBar() - fooBar := provideFooBar(foo, bar) + fooBar := FooBar{ + Foo: foo, + Bar: bar, + } return fooBar } -=== CONT TestWire/FieldsOfStruct -=== NAME TestWire/TwoDeps + + func injectPartFooBar() FooBar { + foo := provideFoo() + fooBar := FooBar{ + Foo: foo, + } + return fooBar + } +=== CONT TestWire/NiladicIdentity +=== NAME TestWire/ReturnError wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1337,14 +1338,15 @@ // Injectors from wire.go: - func injectFooBar() FooBar { - foo := provideFoo() - bar := provideBar() - fooBar := provideFooBar(foo, bar) - return fooBar + func injectFoo() (Foo, error) { + foo, err := provideFoo() + if err != nil { + return 0, err + } + return foo, nil } -=== CONT TestWire/ValueIsStruct -=== NAME TestWire/InterfaceBindingReuse +=== CONT TestWire/Header +=== NAME TestWire/ExportedValueDifferentPackage wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1354,14 +1356,42 @@ package main + import ( + "os" + ) + // Injectors from wire.go: - func injectFooBar() FooBar { - bar := provideBar() - fooBar := provideFooBar(bar, bar) - return fooBar + func injectedFile() *os.File { + file := _wireFileValue + return file } -=== CONT TestWire/VarValue + + var ( + _wireFileValue = os.Stdout + ) +=== CONT TestWire/RelativePkg +=== NAME TestWire/Cleanup + wire_test.go:164: wire_gen.go: + // Code generated by Wire. DO NOT EDIT. + + //go:generate go run github.com/google/wire/cmd/wire + //go:build !wireinject + // +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/ProviderSetBindingMissingConcreteType === NAME TestWire/ExampleWithMocks wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1419,14 +1449,8 @@ } return mainAppWithMocks } -=== CONT TestWire/ValueIsInterfaceValue -=== NAME TestWire/UnexportedStruct - wire_test.go:108: /tmp/wire_test859457861/src/example.com/foo/wire.go:26:17: foo not exported by package bar -=== CONT TestWire/Struct -=== NAME TestWire/InjectorMissingCleanup - wire_test.go:108: /tmp/wire_test911805890/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/StructNotAStruct -=== NAME TestWire/InterfaceBinding +=== CONT TestWire/NoopBuild +=== NAME TestWire/CopyOtherDecls wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1436,22 +1460,29 @@ package main - // Injectors from wire.go: + import ( + "fmt" + ) - func injectFooer() Fooer { - bar := provideBar() - return bar + // Injectors from foo.go: + + func injectedMessage() string { + string2 := provideMessage() + return string2 } -=== CONT TestWire/ReturnArgumentAsInterface -=== NAME TestWire/InjectInputConflict - wire_test.go:108: /tmp/wire_test1695946492/src/example.com/foo/wire.go:24:2: multiple bindings for example.com/foo.Foo - current: - <- provider "provideFoo" (/tmp/wire_test1695946492/src/example.com/foo/foo.go:37:6) - <- provider set "Set" (/tmp/wire_test1695946492/src/example.com/foo/foo.go:33:11) - previous: - <- argument foo to injector function injectBar (/tmp/wire_test1695946492/src/example.com/foo/wire.go:23:1) -=== CONT TestWire/ReturnError -=== NAME TestWire/InjectWithPanic + + // foo.go: + + func main() { + fmt.Println(injectedMessage()) + } + + // provideMessage provides a friendly user greeting. + func provideMessage() string { + return "Hello, World!" + } +=== CONT TestWire/NoInjectParamNames +=== NAME TestWire/BuildTagsAllPackages wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1464,11 +1495,15 @@ // Injectors from wire.go: func injectedMessage() string { - string2 := provideMessage() + string2 := _wireStringValue return string2 } -=== CONT TestWire/ValueFromFunctionScope -=== NAME TestWire/ExportedValueDifferentPackage + + var ( + _wireStringValue = "Hello, World!" + ) +=== CONT TestWire/PkgImport +=== NAME TestWire/BindInterfaceWithValue wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1479,12 +1514,13 @@ package main import ( + "io" "os" ) // Injectors from wire.go: - func injectedFile() *os.File { + func inject() io.Writer { file := _wireFileValue return file } @@ -1492,36 +1528,11 @@ var ( _wireFileValue = os.Stdout ) -=== NAME TestWire/DocComment - wire_test.go:164: wire_gen.go: - // Code generated by Wire. DO NOT EDIT. - - //go:generate go run github.com/google/wire/cmd/wire - //go:build !wireinject - // +build !wireinject - - package main - - // Injectors from wire.go: - - /* blockComment returns Foo and has a /*- style doc comment */ - func blockComment() *Foo { - foo := &Foo{} - return foo - } - - // lineComment returns Bar and has a //- style doc comment - func lineComment() *Bar { - bar := &Bar{} - return bar - } -=== NAME TestWire/Cycle - wire_test.go:108: /tmp/wire_test322872338/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 -=== NAME TestWire/Cleanup +=== CONT TestWire/NoImplicitInterface +=== NAME TestWire/StructNotAStruct + wire_test.go:108: /tmp/wire_test3019700095/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 +=== CONT TestWire/PartialCleanup +=== NAME TestWire/NiladicIdentity wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1533,45 +1544,11 @@ // Injectors from wire.go: - func injectBar() (*Bar, func()) { - foo, cleanup := provideFoo() - bar, cleanup2 := provideBar(foo) - return bar, func() { - cleanup2() - cleanup() - } - } -=== NAME TestWire/CopyOtherDecls - wire_test.go:164: wire_gen.go: - // Code generated by Wire. DO NOT EDIT. - - //go:generate go run github.com/google/wire/cmd/wire - //go:build !wireinject - // +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/NiladicValue === NAME TestWire/Header wire_test.go:164: wire_gen.go: // This is a sample header file. @@ -1590,7 +1567,8 @@ foo := provideFoo() return foo } -=== NAME TestWire/ImportedInterfaceBinding +=== CONT TestWire/MultipleMissingInputs +=== NAME TestWire/BindInjectorArgPointer wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1600,19 +1578,14 @@ package main - import ( - "example.com/foo" - ) - // Injectors from wire.go: - func injectFooer() foo.Fooer { - bar := provideBar() + func inject(foo *Foo) *Bar { + bar := NewBar(foo) return bar } -=== NAME TestWire/FuncArgProvider - wire_test.go:108: /tmp/wire_test2173986900/src/example.com/foo/wire.go:25:19: var fn func() *example.com/foo.Foo is not a provider or a provider set -=== NAME TestWire/Chain +=== CONT TestWire/NamingWorstCase +=== NAME TestWire/NoInjectParamNames wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1622,14 +1595,21 @@ package main + import ( + context2 "context" + ) + // Injectors from wire.go: - func injectFooBar() FooBar { - foo := provideFoo() - fooBar := provideFooBar(foo) - return fooBar + func inject(contextContext context2.Context, arg struct{}) (context, error) { + mainContext, err := provide(contextContext) + if err != nil { + return context{}, err + } + return mainContext, nil } -=== NAME TestWire/FieldsOfValueStruct +=== CONT TestWire/MultipleSimilarPackages +=== NAME TestWire/PkgImport wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1641,40 +1621,24 @@ 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}, - } + import ( + _ "example.com/anon1" + _ "example.com/anon2" ) - // wire.go: + // Injectors from wire.go: - func main() { - svc := newBazService() - fmt.Println(svc.String()) + func injectFooBar() FooBar { + foo := provideFoo() + barBar := bar.ProvideBar() + fooBar := provideFooBar(foo, barBar) + return fooBar } -=== NAME TestWire/FieldsOfStruct +=== CONT TestWire/NamingWorstCaseAllInOne +=== CONT TestWire/FuncArgProvider +=== NAME TestWire/RelativePkg wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1687,11 +1651,11 @@ // Injectors from wire.go: func injectedMessage() string { - s := provideS() - string2 := s.Foo + string2 := provideMessage() return string2 } -=== NAME TestWire/ValueIsStruct +=== CONT TestWire/MultipleArgsSameType +=== NAME TestWire/PartialCleanup wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1703,17 +1667,32 @@ // Injectors from wire.go: - func injectFoo() Foo { - foo := _wireFooValue - return foo + 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 } - - var ( - _wireFooValue = Foo{X: 42} - ) -=== NAME TestWire/FieldsOfStructDoNotProvidePtrToField - wire_test.go:108: /tmp/wire_test713040607/src/example.com/foo/wire.go:23:1: inject injectedMessagePtr: no provider found for *string, output of injector -=== NAME TestWire/FieldsOfStructPointer +=== CONT TestWire/InvalidInjector +=== NAME TestWire/ProviderSetBindingMissingConcreteType + wire_test.go:108: /tmp/wire_test1943415305/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" +=== CONT TestWire/MultipleBindings +=== NAME TestWire/NoImplicitInterface + wire_test.go:108: /tmp/wire_test343154900/src/example.com/foo/wire.go:23:1: inject injectFooer: no provider found for example.com/foo.Fooer, output of injector +=== CONT TestWire/ReturnArgumentAsInterface +=== NAME TestWire/NiladicValue wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1726,17 +1705,51 @@ // Injectors from wire.go: func injectedMessage() string { - s := provideS() - string2 := s.Foo + string2 := _wireStringValue return string2 } - func injectedMessagePtr() *string { - s := provideS() - string2 := &s.Foo - return string2 - } -=== NAME TestWire/ReturnArgumentAsInterface + var ( + _wireStringValue = "Hello, World!" + ) +=== NAME TestWire/MultipleBindings + wire_test.go:108: /tmp/wire_test4005392209/src/example.com/foo/wire.go:27:8: multiple bindings for example.com/foo.Foo + current: + <- provider "provideFooAgain" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:39:6) + previous: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + wire_test.go:108: /tmp/wire_test4005392209/src/example.com/foo/wire.go:32:8: multiple bindings for example.com/foo.Foo + current: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + previous: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + <- provider set "Set" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:31:11) + wire_test.go:108: /tmp/wire_test4005392209/src/example.com/foo/wire.go:37:8: multiple bindings for example.com/foo.Foo + current: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + previous: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + <- provider set "Set" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:31:11) + <- provider set "SuperSet" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:32:16) + wire_test.go:108: /tmp/wire_test4005392209/src/example.com/foo/foo.go:33:32: SetWithDuplicateBindings has multiple bindings for example.com/foo.Foo + current: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + <- provider set "Set" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:31:11) + <- provider set "SuperSet" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:32:16) + previous: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + <- provider set "Set" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:31:11) + wire_test.go:108: /tmp/wire_test4005392209/src/example.com/foo/wire.go:47:8: multiple bindings for example.com/foo.Foo + current: + <- wire.Value (/tmp/wire_test4005392209/src/example.com/foo/wire.go:47:42) + previous: + <- provider "provideFoo" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:35:6) + wire_test.go:108: /tmp/wire_test4005392209/src/example.com/foo/wire.go:52:8: multiple bindings for example.com/foo.Bar + current: + <- wire.Bind (/tmp/wire_test4005392209/src/example.com/foo/wire.go:52:31) + previous: + <- provider "provideBar" (/tmp/wire_test4005392209/src/example.com/foo/foo.go:43:6) +=== NAME TestWire/NamingWorstCase wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1747,15 +1760,29 @@ package main import ( - "fmt" + context2 "context" ) // Injectors from wire.go: - func injectStringer(s MyString) fmt.Stringer { - return s + func inject(context3 context2.Context, err2 struct{}) (context, error) { + mainContext, err := provide(context3) + if err != nil { + return context{}, err + } + return mainContext, nil } -=== NAME TestWire/BindInterfaceWithValue +=== NAME TestWire/MultipleMissingInputs + wire_test.go:108: /tmp/wire_test2030443158/src/example.com/foo/wire.go:23:1: inject injectMissingOutputType: no provider found for example.com/foo.Foo, output of injector + wire_test.go:108: /tmp/wire_test2030443158/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_test2030443158/src/example.com/foo/foo.go:29:6) + wire_test.go:108: /tmp/wire_test2030443158/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_test2030443158/src/example.com/foo/foo.go:29:6) + wire_test.go:108: /tmp/wire_test2030443158/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_test2030443158/src/example.com/foo/foo.go:37:6) + needed by example.com/foo.Zap in provider "provideZap" (/tmp/wire_test2030443158/src/example.com/foo/foo.go:41:6) + needed by example.com/foo.Zop in provider "provideZop" (/tmp/wire_test2030443158/src/example.com/foo/foo.go:45:6) +=== NAME TestWire/NamingWorstCaseAllInOne wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1766,41 +1793,49 @@ package main import ( - "io" + context2 "context" + "fmt" "os" + "reflect" ) - // Injectors from wire.go: + // Injectors from foo.go: - func inject() io.Writer { - file := _wireFileValue - return file + func inject(context3 context2.Context, err2 struct{}) (context, error) { + mainContext, err := Provide(context3) + if err != nil { + return context{}, err + } + return mainContext, nil } - var ( - _wireFileValue = os.Stdout - ) -=== NAME TestWire/VarValue - wire_test.go:164: wire_gen.go: - // Code generated by Wire. DO NOT EDIT. - - //go:generate go run github.com/google/wire/cmd/wire - //go:build !wireinject - // +build !wireinject + // foo.go: - package main + type context struct{} - // Injectors from wire.go: + 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 injectedMessage() string { - string2 := _wireStringValue - return string2 + func Provide(context2_2 context2.Context) (context, error) { + var context3 = context2.Background() + _ = context2_2 + _ = context3 + return context{}, nil } - var ( - _wireStringValue = msg - ) -=== NAME TestWire/BuildTagsAllPackages + func (context) Provide() { + } +=== NAME TestWire/MultipleSimilarPackages wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1810,58 +1845,64 @@ package main - // Injectors from wire.go: - - func injectedMessage() string { - string2 := _wireStringValue - return string2 - } - - var ( - _wireStringValue = "Hello, World!" + import ( + "example.com/bar" + "example.com/baz" + "example.com/foo" + "fmt" ) -=== NAME TestWire/StructNotAStruct - wire_test.go:108: /tmp/wire_test754659008/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 -=== NAME TestWire/ValueFromFunctionScope - wire_test.go:108: /tmp/wire_test1636670402/src/example.com/foo/wire.go:23:1: inject injectBar: value int can't be used: f is not declared in package scope -=== NAME TestWire/BindInjectorArgPointer - wire_test.go:164: wire_gen.go: - // Code generated by Wire. DO NOT EDIT. - - //go:generate go run github.com/google/wire/cmd/wire - //go:build !wireinject - // +build !wireinject - - package main // Injectors from wire.go: - func inject(foo *Foo) *Bar { - bar := NewBar(foo) - return bar + 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 } -=== NAME TestWire/ReturnError - wire_test.go:164: wire_gen.go: - // Code generated by Wire. DO NOT EDIT. - //go:generate go run github.com/google/wire/cmd/wire - //go:build !wireinject - // +build !wireinject + // wire.go: - package main + type MainConfig struct { + Foo *foo.Config + Bar *bar.Config + baz *baz.Config + } - // Injectors from wire.go: + type MainService struct { + Foo *foo.Service + Bar *bar.Service + baz *baz.Service + } - func injectFoo() (Foo, error) { - foo, err := provideFoo() - if err != nil { - return 0, err + 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}, } - return foo, nil + svc := newMainService(cfg) + fmt.Println(svc.String()) } -=== NAME TestWire/ValueIsInterfaceValue - wire_test.go:108: /tmp/wire_test2647256910/src/example.com/foo/wire.go:27:13: argument to Value may not be an interface value (found io.Reader); use InterfaceValue instead -=== NAME TestWire/Struct +=== NAME TestWire/MultipleArgsSameType + wire_test.go:108: /tmp/wire_test1097360014/src/example.com/foo/wire.go:25:8: multiple bindings for string + current: + <- argument b to injector function inject (/tmp/wire_test1097360014/src/example.com/foo/wire.go:23:1) + previous: + <- argument a to injector function inject (/tmp/wire_test1097360014/src/example.com/foo/wire.go:23:1) +=== NAME TestWire/ReturnArgumentAsInterface wire_test.go:164: wire_gen.go: // Code generated by Wire. DO NOT EDIT. @@ -1871,96 +1912,91 @@ package main - // Injectors from wire.go: + import ( + "fmt" + ) - func injectFooBar() FooBar { - foo := provideFoo() - bar := provideBar() - fooBar := FooBar{ - Foo: foo, - Bar: bar, - } - return fooBar - } + // Injectors from wire.go: - func injectPartFooBar() FooBar { - foo := provideFoo() - fooBar := FooBar{ - Foo: foo, - } - return fooBar + func injectStringer(s MyString) fmt.Stringer { + return s } ---- PASS: TestWire (0.01s) - --- PASS: TestWire/MultipleBindings (3.43s) - --- PASS: TestWire/UnusedProviders (4.57s) - --- PASS: TestWire/RelativePkg (4.57s) - --- PASS: TestWire/InterfaceValueNotEnoughArgs (4.58s) - --- PASS: TestWire/UnexportedValue (4.75s) - --- PASS: TestWire/Varargs (4.77s) - --- PASS: TestWire/NamingWorstCaseAllInOne (4.77s) - --- PASS: TestWire/NiladicValue (4.78s) - --- PASS: TestWire/PartialCleanup (4.78s) - --- PASS: TestWire/ProviderSetBindingMissingConcreteType (4.79s) - --- PASS: TestWire/InvalidInjector (4.80s) - --- PASS: TestWire/MultipleSimilarPackages (4.88s) - --- PASS: TestWire/NoInjectParamNames (4.88s) - --- PASS: TestWire/NiladicIdentity (4.90s) - --- PASS: TestWire/ValueChain (4.90s) - --- PASS: TestWire/ReservedKeywords (4.92s) - --- PASS: TestWire/MultipleMissingInputs (4.95s) - --- PASS: TestWire/PkgImport (4.99s) - --- PASS: TestWire/NoopBuild (5.00s) - --- PASS: TestWire/MultipleArgsSameType (5.01s) - --- PASS: TestWire/NoImplicitInterface (5.06s) - --- PASS: TestWire/NamingWorstCase (5.06s) - --- PASS: TestWire/BindInjectorArg (5.07s) - --- PASS: TestWire/ValueConversion (5.22s) - --- PASS: TestWire/InterfaceValueInvalidArg0 (3.42s) - --- PASS: TestWire/InterfaceValueDoesntImplement (2.57s) - --- PASS: TestWire/InterfaceValue (2.62s) - --- PASS: TestWire/InterfaceBindingNotEnoughArgs (2.53s) - --- PASS: TestWire/InterfaceBindingInvalidArg0 (2.97s) - --- PASS: TestWire/InterfaceBindingDoesntImplement (2.99s) - --- PASS: TestWire/FieldsOfImportedStruct (3.00s) - --- PASS: TestWire/FieldsOfCycle (3.08s) - --- PASS: TestWire/StructWithPreventTag (3.20s) - --- PASS: TestWire/EmptyVar (3.03s) - --- PASS: TestWire/InjectorMissingError (3.21s) - --- PASS: TestWire/StructPointer (3.43s) - --- PASS: TestWire/ExportedValue (3.24s) +=== NAME 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 + 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 +=== NAME TestWire/FuncArgProvider + wire_test.go:108: /tmp/wire_test1929864938/src/example.com/foo/wire.go:25:19: var fn func() *example.com/foo.Foo is not a provider or a provider set +--- PASS: TestWire (0.03s) + --- PASS: TestWire/Varargs (4.04s) + --- PASS: TestWire/InterfaceValueNotEnoughArgs (4.05s) + --- PASS: TestWire/ReservedKeywords (4.05s) + --- PASS: TestWire/InjectInputConflict (4.13s) + --- PASS: TestWire/FieldsOfValueStruct (4.19s) + --- PASS: TestWire/InterfaceBindingReuse (4.27s) + --- PASS: TestWire/InterfaceBindingInvalidArg0 (4.30s) + --- PASS: TestWire/InterfaceBinding (4.39s) + --- PASS: TestWire/BindInjectorArg (4.54s) + --- PASS: TestWire/InterfaceBindingNotEnoughArgs (4.55s) + --- PASS: TestWire/InterfaceValueDoesntImplement (3.14s) + --- PASS: TestWire/UnexportedValue (3.06s) + --- PASS: TestWire/UnusedProviders (2.87s) + --- PASS: TestWire/InterfaceValueInvalidArg0 (3.27s) + --- PASS: TestWire/VarValue (3.01s) + --- PASS: TestWire/ValueConversion (3.40s) + --- PASS: TestWire/InjectorMissingCleanup (3.06s) + --- PASS: TestWire/ValueChain (3.33s) + --- PASS: TestWire/InterfaceValue (3.64s) + --- PASS: TestWire/ValueFromFunctionScope (3.43s) --- PASS: TestWire/InjectInput (2.98s) - --- PASS: TestWire/TwoDeps (3.44s) - --- PASS: TestWire/InterfaceBindingReuse (3.65s) - --- PASS: TestWire/ExampleWithMocks (3.26s) - --- PASS: TestWire/UnexportedStruct (3.52s) - --- PASS: TestWire/InjectorMissingCleanup (3.32s) - --- PASS: TestWire/InterfaceBinding (3.44s) - --- PASS: TestWire/InjectInputConflict (3.30s) - --- PASS: TestWire/InjectWithPanic (3.36s) - --- PASS: TestWire/ExportedValueDifferentPackage (3.66s) - --- PASS: TestWire/DocComment (3.57s) - --- PASS: TestWire/Cycle (2.96s) - --- PASS: TestWire/Cleanup (2.09s) - --- PASS: TestWire/CopyOtherDecls (2.69s) - --- PASS: TestWire/Header (2.63s) - --- PASS: TestWire/ImportedInterfaceBinding (2.79s) - --- PASS: TestWire/FuncArgProvider (2.19s) - --- PASS: TestWire/Chain (2.16s) - --- PASS: TestWire/FieldsOfValueStruct (2.11s) - --- PASS: TestWire/FieldsOfStruct (2.12s) - --- PASS: TestWire/ValueIsStruct (2.13s) - --- PASS: TestWire/FieldsOfStructDoNotProvidePtrToField (2.20s) - --- PASS: TestWire/FieldsOfStructPointer (2.30s) - --- PASS: TestWire/ReturnArgumentAsInterface (2.10s) - --- PASS: TestWire/BindInterfaceWithValue (2.30s) - --- PASS: TestWire/VarValue (2.21s) - --- PASS: TestWire/BuildTagsAllPackages (2.44s) - --- PASS: TestWire/StructNotAStruct (2.15s) - --- PASS: TestWire/ValueFromFunctionScope (2.15s) - --- PASS: TestWire/BindInjectorArgPointer (2.36s) - --- PASS: TestWire/ReturnError (2.22s) - --- PASS: TestWire/ValueIsInterfaceValue (2.33s) - --- PASS: TestWire/Struct (2.34s) + --- PASS: TestWire/ValueIsStruct (3.36s) + --- PASS: TestWire/StructPointer (3.02s) + --- PASS: TestWire/InjectorMissingError (3.52s) + --- PASS: TestWire/ImportedInterfaceBinding (3.60s) + --- PASS: TestWire/UnexportedStruct (3.36s) + --- PASS: TestWire/InterfaceBindingDoesntImplement (3.45s) + --- PASS: TestWire/ValueIsInterfaceValue (3.79s) + --- PASS: TestWire/EmptyVar (3.53s) + --- PASS: TestWire/FieldsOfStructPointer (3.50s) + --- PASS: TestWire/StructWithPreventTag (3.77s) + --- PASS: TestWire/FieldsOfStructDoNotProvidePtrToField (4.17s) + --- PASS: TestWire/TwoDeps (4.12s) + --- PASS: TestWire/FieldsOfCycle (3.58s) + --- PASS: TestWire/Chain (3.82s) + --- PASS: TestWire/Cycle (3.72s) + --- PASS: TestWire/FieldsOfImportedStruct (3.85s) + --- PASS: TestWire/InjectWithPanic (4.01s) + --- PASS: TestWire/FieldsOfStruct (4.44s) + --- PASS: TestWire/DocComment (4.31s) + --- PASS: TestWire/ExportedValue (3.59s) + --- PASS: TestWire/Struct (4.03s) + --- PASS: TestWire/ReturnError (4.06s) + --- PASS: TestWire/ExportedValueDifferentPackage (4.62s) + --- PASS: TestWire/Cleanup (4.57s) + --- PASS: TestWire/ExampleWithMocks (4.45s) + --- PASS: TestWire/CopyOtherDecls (4.88s) + --- PASS: TestWire/BuildTagsAllPackages (4.52s) + --- PASS: TestWire/BindInterfaceWithValue (5.06s) + --- PASS: TestWire/StructNotAStruct (4.72s) + --- PASS: TestWire/NiladicIdentity (2.67s) + --- PASS: TestWire/Header (3.27s) + --- PASS: TestWire/BindInjectorArgPointer (4.18s) + --- PASS: TestWire/NoInjectParamNames (3.31s) + --- PASS: TestWire/PkgImport (3.27s) + --- PASS: TestWire/NoopBuild (3.49s) + --- PASS: TestWire/RelativePkg (3.60s) + --- PASS: TestWire/PartialCleanup (2.84s) + --- PASS: TestWire/ProviderSetBindingMissingConcreteType (3.61s) + --- PASS: TestWire/NoImplicitInterface (3.23s) + --- PASS: TestWire/NiladicValue (3.36s) + --- PASS: TestWire/MultipleBindings (2.54s) + --- PASS: TestWire/NamingWorstCase (2.94s) + --- PASS: TestWire/MultipleMissingInputs (3.28s) + --- PASS: TestWire/NamingWorstCaseAllInOne (2.97s) + --- PASS: TestWire/MultipleSimilarPackages (3.05s) + --- PASS: TestWire/MultipleArgsSameType (2.82s) + --- PASS: TestWire/ReturnArgumentAsInterface (2.59s) + --- PASS: TestWire/InvalidInjector (2.85s) + --- PASS: TestWire/FuncArgProvider (2.97s) === RUN TestUnexport --- PASS: TestUnexport (0.00s) === RUN TestExport @@ -2016,7 +2052,7 @@ --- PASS: TestDisambiguate/disambiguate("select",_map[]) (0.00s) --- PASS: TestDisambiguate/disambiguate("var",_map[]) (0.00s) PASS -ok github.com/google/wire/internal/wire 10.789s +ok github.com/google/wire/internal/wire 25.944s create-stamp debian/debhelper-build-stamp dh_testroot -O--builddirectory=_build -O--buildsystem=golang dh_prep -O--builddirectory=_build -O--buildsystem=golang @@ -2044,8 +2080,8 @@ dpkg-gencontrol: warning: package google-wire: substitution variable ${misc:Static-Built-Using} unused, but is defined dh_md5sums -O--builddirectory=_build -O--buildsystem=golang dh_builddeb -O--builddirectory=_build -O--buildsystem=golang -dpkg-deb: building package 'google-wire' in '../google-wire_0.5.0-2_i386.deb'. dpkg-deb: building package 'golang-github-google-wire-dev' in '../golang-github-google-wire-dev_0.5.0-2_all.deb'. +dpkg-deb: building package 'google-wire' in '../google-wire_0.5.0-2_i386.deb'. dpkg-genbuildinfo --build=binary -O../golang-github-google-wire_0.5.0-2_i386.buildinfo dpkg-genchanges --build=binary -O../golang-github-google-wire_0.5.0-2_i386.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -2053,12 +2089,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/25757/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/25757/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/7885 and its subdirectories -I: Current time: Thu May 15 09:16:59 -12 2025 -I: pbuilder-time-stamp: 1747343819 +I: removing directory /srv/workspace/pbuilder/25757 and its subdirectories +I: Current time: Sat Apr 13 04:55:57 +14 2024 +I: pbuilder-time-stamp: 1712933757