golang / protobuf

Go support for Google's protocol buffers
BSD 3-Clause "New" or "Revised" License
9.74k stars 1.58k forks source link

pre-push hook fails on master since May 8th #1554

Closed jhump closed 1 year ago

jhump commented 1 year ago

I was hoping to contribute a change, but git codereview mail always fails for me. It turns out that the change I was hoping to push has nothing to do with the failure.

I ran a git bisect on the master branch and the test TestUnmarshalFromBufioAllocations added in this commit consistently fails.

Since the test never works for me, it's unclear to me why this assertion was set to 1. Perhaps this is a platform-dependent issue? I'm running this on OS X. It's not clear to me why the OS would make a difference since this should just be pure Go code, and the exact compiler versions are pinned. But, nevertheless, it does not work for me.

I cannot actually find the output of a successful run of this test in Gerritt. Perhaps the CL is too old and the test logs have been purged? Or is it possible that this somehow did not run when the CL was submitted? The CI config in GitHub is not much help either: it has been mostly failing on every commit since March 7th, with the last passing commit on April 26th, and no useful test output to be found there either...

Is there a work-around until this is fixed? I can't seem to find any command-line flags for the codereview mail tool that will let me open a new CL while the pre-push hook is failing.


The full output of the test failures can be found below:

=== RUN   Test
=== RUN   Test/GeneratedGoFiles
=== RUN   Test/FormattedGoFiles
=== RUN   Test/CopyrightHeaders
=== RUN   Test/Go1.17.13/PureGo
=== RUN   Test/Go1.16.15/PureGo
=== RUN   Test/Go1.16.15/Normal
=== RUN   Test/Go1.16.15/Reflect
=== RUN   Test/Go1.17.13/Normal
=== NAME  Test/Go1.17.13/PureGo
    integration_test.go:122: executing (go1.17.13 test -race -tags purego ./...): exit status 1
        ok      google.golang.org/protobuf/cmd/protoc-gen-go    (cached)
        ?       google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo [no test files]
        ok      google.golang.org/protobuf/compiler/protogen    (cached)
        ok      google.golang.org/protobuf/encoding (cached) [no tests to run]
        --- FAIL: TestUnmarshalFromBufioAllocations (0.11s)
            protodelim_test.go:100: Got 2 allocs. Wanted 1
        FAIL
        FAIL    google.golang.org/protobuf/encoding/protodelim  0.289s
        ok      google.golang.org/protobuf/encoding/protojson   (cached)
        ok      google.golang.org/protobuf/encoding/prototext   (cached)
        ok      google.golang.org/protobuf/encoding/protowire   (cached)
        ok      google.golang.org/protobuf/internal/benchmarks  0.211s
        ok      google.golang.org/protobuf/internal/benchmarks/micro    (cached) [no tests to run]
        ?       google.golang.org/protobuf/internal/cmd/generate-corpus [no test files]
        ?       google.golang.org/protobuf/internal/cmd/generate-protos [no test files]
        ?       google.golang.org/protobuf/internal/cmd/generate-types  [no test files]
        ok      google.golang.org/protobuf/internal/cmd/pbdump  (cached)
        ok      google.golang.org/protobuf/internal/conformance (cached)
        ok      google.golang.org/protobuf/internal/descfmt (cached)
        ?       google.golang.org/protobuf/internal/descopts    [no test files]
        ok      google.golang.org/protobuf/internal/detrand (cached) [no tests to run]
        ok      google.golang.org/protobuf/internal/encoding/defval (cached)
        ok      google.golang.org/protobuf/internal/encoding/json   (cached)
        ?       google.golang.org/protobuf/internal/encoding/messageset [no test files]
        ok      google.golang.org/protobuf/internal/encoding/tag    (cached)
        ok      google.golang.org/protobuf/internal/encoding/text   (cached)
        ok      google.golang.org/protobuf/internal/errors  (cached)
        ok      google.golang.org/protobuf/internal/filedesc    (cached)
        ?       google.golang.org/protobuf/internal/filetype    [no test files]
        ?       google.golang.org/protobuf/internal/flags   [no test files]
        ok      google.golang.org/protobuf/internal/fuzz/jsonfuzz   (cached)
        ok      google.golang.org/protobuf/internal/fuzz/textfuzz   (cached)
        ok      google.golang.org/protobuf/internal/fuzz/wirefuzz   (cached)
        ?       google.golang.org/protobuf/internal/fuzztest    [no test files]
        ?       google.golang.org/protobuf/internal/genid   [no test files]
        ok      google.golang.org/protobuf/internal/impl    (cached)
        ok      google.golang.org/protobuf/internal/msgfmt  (cached)
        ok      google.golang.org/protobuf/internal/order   (cached)
        ?       google.golang.org/protobuf/internal/pragma  [no test files]
        ?       google.golang.org/protobuf/internal/protobuild  [no test files]
        ?       google.golang.org/protobuf/internal/protolegacy [no test files]
        ok      google.golang.org/protobuf/internal/set (cached)
        ok      google.golang.org/protobuf/internal/strs    (cached)
        ?       google.golang.org/protobuf/internal/testprotos/annotation   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto2   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto3   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message2  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/micro [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/conformance  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/enums    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/fieldtrack   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/fuzz [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/irregular    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy   [no test files]
        ok      google.golang.org/protobuf/internal/testprotos/legacy/bug1052   (cached) [no tests to run]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160519_a4ab9ec5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180430_b4deda09  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180814_aa810b61  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20190205_c823c79e  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160225_2fc053c5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160519_a4ab9ec5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180125_92554152  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180430_b4deda09  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180814_aa810b61  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20190205_c823c79e  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/messageset/messagesetpb  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/messageset/msetextpb [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/news [no test files]
        ok      google.golang.org/protobuf/internal/testprotos/nullable (cached)
        ?       google.golang.org/protobuf/internal/testprotos/order    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/registry [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/required [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test/weak1   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test/weak2   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test3    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/textpb2  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/textpb3  [no test files]
        ?       google.golang.org/protobuf/internal/version [no test files]
        ?       google.golang.org/protobuf/internal/weakdeps    [no test files]
        ok      google.golang.org/protobuf/proto    (cached)
        ?       google.golang.org/protobuf/protoadapt   [no test files]
        ok      google.golang.org/protobuf/reflect/protodesc    (cached)
        ?       google.golang.org/protobuf/reflect/protopath    [no test files]
        ok      google.golang.org/protobuf/reflect/protorange   (cached)
        ok      google.golang.org/protobuf/reflect/protoreflect (cached)
        ok      google.golang.org/protobuf/reflect/protoregistry    (cached)
        ?       google.golang.org/protobuf/runtime/protoiface   [no test files]
        ?       google.golang.org/protobuf/runtime/protoimpl    [no test files]
        ok      google.golang.org/protobuf/testing/protocmp (cached)
        ok      google.golang.org/protobuf/testing/protopack    (cached)
        ok      google.golang.org/protobuf/testing/prototest    (cached)
        ?       google.golang.org/protobuf/types/descriptorpb   [no test files]
        ok      google.golang.org/protobuf/types/dynamicpb  (cached)
        ok      google.golang.org/protobuf/types/known/anypb    (cached)
        ?       google.golang.org/protobuf/types/known/apipb    [no test files]
        ok      google.golang.org/protobuf/types/known/durationpb   (cached)
        ?       google.golang.org/protobuf/types/known/emptypb  [no test files]
        ok      google.golang.org/protobuf/types/known/fieldmaskpb  (cached)
        ?       google.golang.org/protobuf/types/known/sourcecontextpb  [no test files]
        ok      google.golang.org/protobuf/types/known/structpb (cached)
        ok      google.golang.org/protobuf/types/known/timestamppb  (cached)
        ?       google.golang.org/protobuf/types/known/typepb   [no test files]
        ?       google.golang.org/protobuf/types/known/wrapperspb   [no test files]
        ?       google.golang.org/protobuf/types/pluginpb   [no test files]
        FAIL
=== NAME  Test/Go1.16.15/PureGo
    integration_test.go:122: executing (go1.16.15 test -race -tags purego ./...): exit status 1
        ok      google.golang.org/protobuf/cmd/protoc-gen-go    (cached)
        ?       google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo [no test files]
        ok      google.golang.org/protobuf/compiler/protogen    (cached)
        ok      google.golang.org/protobuf/encoding (cached) [no tests to run]
        --- FAIL: TestUnmarshalFromBufioAllocations (0.05s)
            protodelim_test.go:100: Got 2 allocs. Wanted 1
        FAIL
        FAIL    google.golang.org/protobuf/encoding/protodelim  0.237s
        ok      google.golang.org/protobuf/encoding/protojson   (cached)
        ok      google.golang.org/protobuf/encoding/prototext   (cached)
        ok      google.golang.org/protobuf/encoding/protowire   (cached)
        ok      google.golang.org/protobuf/internal/benchmarks  0.291s
        ok      google.golang.org/protobuf/internal/benchmarks/micro    (cached) [no tests to run]
        ?       google.golang.org/protobuf/internal/cmd/generate-corpus [no test files]
        ?       google.golang.org/protobuf/internal/cmd/generate-protos [no test files]
        ?       google.golang.org/protobuf/internal/cmd/generate-types  [no test files]
        ok      google.golang.org/protobuf/internal/cmd/pbdump  (cached)
        ok      google.golang.org/protobuf/internal/conformance (cached)
        ok      google.golang.org/protobuf/internal/descfmt (cached)
        ?       google.golang.org/protobuf/internal/descopts    [no test files]
        ok      google.golang.org/protobuf/internal/detrand (cached) [no tests to run]
        ok      google.golang.org/protobuf/internal/encoding/defval (cached)
        ok      google.golang.org/protobuf/internal/encoding/json   (cached)
        ?       google.golang.org/protobuf/internal/encoding/messageset [no test files]
        ok      google.golang.org/protobuf/internal/encoding/tag    (cached)
        ok      google.golang.org/protobuf/internal/encoding/text   (cached)
        ok      google.golang.org/protobuf/internal/errors  (cached)
        ok      google.golang.org/protobuf/internal/filedesc    (cached)
        ?       google.golang.org/protobuf/internal/filetype    [no test files]
        ?       google.golang.org/protobuf/internal/flags   [no test files]
        ok      google.golang.org/protobuf/internal/fuzz/jsonfuzz   (cached)
        ok      google.golang.org/protobuf/internal/fuzz/textfuzz   (cached)
        ok      google.golang.org/protobuf/internal/fuzz/wirefuzz   (cached)
        ?       google.golang.org/protobuf/internal/fuzztest    [no test files]
        ?       google.golang.org/protobuf/internal/genid   [no test files]
        ok      google.golang.org/protobuf/internal/impl    (cached)
        ok      google.golang.org/protobuf/internal/msgfmt  (cached)
        ok      google.golang.org/protobuf/internal/order   (cached)
        ?       google.golang.org/protobuf/internal/pragma  [no test files]
        ?       google.golang.org/protobuf/internal/protobuild  [no test files]
        ?       google.golang.org/protobuf/internal/protolegacy [no test files]
        ok      google.golang.org/protobuf/internal/set (cached)
        ok      google.golang.org/protobuf/internal/strs    (cached)
        ?       google.golang.org/protobuf/internal/testprotos/annotation   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto2   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto3   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message2  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/micro [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/conformance  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/enums    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/fieldtrack   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/fuzz [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/irregular    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy   [no test files]
        ok      google.golang.org/protobuf/internal/testprotos/legacy/bug1052   (cached) [no tests to run]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160519_a4ab9ec5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180430_b4deda09  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180814_aa810b61  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20190205_c823c79e  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160225_2fc053c5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160519_a4ab9ec5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180125_92554152  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180430_b4deda09  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180814_aa810b61  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20190205_c823c79e  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/messageset/messagesetpb  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/messageset/msetextpb [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/news [no test files]
        ok      google.golang.org/protobuf/internal/testprotos/nullable (cached)
        ?       google.golang.org/protobuf/internal/testprotos/order    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/registry [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/required [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test/weak1   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test/weak2   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test3    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/textpb2  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/textpb3  [no test files]
        ?       google.golang.org/protobuf/internal/version [no test files]
        ?       google.golang.org/protobuf/internal/weakdeps    [no test files]
        ok      google.golang.org/protobuf/proto    (cached)
        ?       google.golang.org/protobuf/protoadapt   [no test files]
        ok      google.golang.org/protobuf/reflect/protodesc    (cached)
        ?       google.golang.org/protobuf/reflect/protopath    [no test files]
        ok      google.golang.org/protobuf/reflect/protorange   (cached)
        ok      google.golang.org/protobuf/reflect/protoreflect (cached)
        ok      google.golang.org/protobuf/reflect/protoregistry    (cached)
        ?       google.golang.org/protobuf/runtime/protoiface   [no test files]
        ?       google.golang.org/protobuf/runtime/protoimpl    [no test files]
        ok      google.golang.org/protobuf/testing/protocmp (cached)
        ok      google.golang.org/protobuf/testing/protopack    (cached)
        ok      google.golang.org/protobuf/testing/prototest    (cached)
        ?       google.golang.org/protobuf/types/descriptorpb   [no test files]
        ok      google.golang.org/protobuf/types/dynamicpb  (cached)
        ok      google.golang.org/protobuf/types/known/anypb    (cached)
        ?       google.golang.org/protobuf/types/known/apipb    [no test files]
        ok      google.golang.org/protobuf/types/known/durationpb   (cached)
        ?       google.golang.org/protobuf/types/known/emptypb  [no test files]
        ok      google.golang.org/protobuf/types/known/fieldmaskpb  (cached)
        ?       google.golang.org/protobuf/types/known/sourcecontextpb  [no test files]
        ok      google.golang.org/protobuf/types/known/structpb (cached)
        ok      google.golang.org/protobuf/types/known/timestamppb  (cached)
        ?       google.golang.org/protobuf/types/known/typepb   [no test files]
        ?       google.golang.org/protobuf/types/known/wrapperspb   [no test files]
        ?       google.golang.org/protobuf/types/pluginpb   [no test files]
        FAIL
=== NAME  Test/Go1.16.15/Reflect
    integration_test.go:122: executing (go1.16.15 test -race -tags protoreflect ./...): exit status 1
        ok      google.golang.org/protobuf/cmd/protoc-gen-go    (cached)
        ?       google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo [no test files]
        ok      google.golang.org/protobuf/compiler/protogen    (cached)
        ok      google.golang.org/protobuf/encoding (cached) [no tests to run]
        --- FAIL: TestUnmarshalFromBufioAllocations (0.09s)
            protodelim_test.go:100: Got 5 allocs. Wanted 1
        FAIL
        FAIL    google.golang.org/protobuf/encoding/protodelim  0.331s
        ok      google.golang.org/protobuf/encoding/protojson   (cached)
        ok      google.golang.org/protobuf/encoding/prototext   (cached)
        ok      google.golang.org/protobuf/encoding/protowire   (cached)
        ok      google.golang.org/protobuf/internal/benchmarks  0.343s
        ok      google.golang.org/protobuf/internal/benchmarks/micro    (cached) [no tests to run]
        ?       google.golang.org/protobuf/internal/cmd/generate-corpus [no test files]
        ?       google.golang.org/protobuf/internal/cmd/generate-protos [no test files]
        ?       google.golang.org/protobuf/internal/cmd/generate-types  [no test files]
        ok      google.golang.org/protobuf/internal/cmd/pbdump  (cached)
        ok      google.golang.org/protobuf/internal/conformance (cached)
        ok      google.golang.org/protobuf/internal/descfmt (cached)
        ?       google.golang.org/protobuf/internal/descopts    [no test files]
        ok      google.golang.org/protobuf/internal/detrand (cached) [no tests to run]
        ok      google.golang.org/protobuf/internal/encoding/defval (cached)
        ok      google.golang.org/protobuf/internal/encoding/json   (cached)
        ?       google.golang.org/protobuf/internal/encoding/messageset [no test files]
        ok      google.golang.org/protobuf/internal/encoding/tag    (cached)
        ok      google.golang.org/protobuf/internal/encoding/text   (cached)
        ok      google.golang.org/protobuf/internal/errors  (cached)
        ok      google.golang.org/protobuf/internal/filedesc    (cached)
        ?       google.golang.org/protobuf/internal/filetype    [no test files]
        ?       google.golang.org/protobuf/internal/flags   [no test files]
        ok      google.golang.org/protobuf/internal/fuzz/jsonfuzz   (cached)
        ok      google.golang.org/protobuf/internal/fuzz/textfuzz   (cached)
        ok      google.golang.org/protobuf/internal/fuzz/wirefuzz   (cached)
        ?       google.golang.org/protobuf/internal/fuzztest    [no test files]
        ?       google.golang.org/protobuf/internal/genid   [no test files]
        ok      google.golang.org/protobuf/internal/impl    (cached)
        ok      google.golang.org/protobuf/internal/msgfmt  (cached)
        ok      google.golang.org/protobuf/internal/order   (cached)
        ?       google.golang.org/protobuf/internal/pragma  [no test files]
        ?       google.golang.org/protobuf/internal/protobuild  [no test files]
        ?       google.golang.org/protobuf/internal/protolegacy [no test files]
        ok      google.golang.org/protobuf/internal/set (cached)
        ok      google.golang.org/protobuf/internal/strs    (cached)
        ?       google.golang.org/protobuf/internal/testprotos/annotation   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto2   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto3   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message2  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/benchmarks/micro [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/conformance  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/enums    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/fieldtrack   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/fuzz [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/irregular    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy   [no test files]
        ok      google.golang.org/protobuf/internal/testprotos/legacy/bug1052   (cached) [no tests to run]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160519_a4ab9ec5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180125_92554152  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180430_b4deda09  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20180814_aa810b61  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto2_20190205_c823c79e  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160225_2fc053c5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160519_a4ab9ec5  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180125_92554152  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180430_b4deda09  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20180814_aa810b61  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/legacy/proto3_20190205_c823c79e  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/messageset/messagesetpb  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/messageset/msetextpb [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/news [no test files]
        ok      google.golang.org/protobuf/internal/testprotos/nullable (cached)
        ?       google.golang.org/protobuf/internal/testprotos/order    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/registry [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/required [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test/weak1   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test/weak2   [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/test3    [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/textpb2  [no test files]
        ?       google.golang.org/protobuf/internal/testprotos/textpb3  [no test files]
        ?       google.golang.org/protobuf/internal/version [no test files]
        ?       google.golang.org/protobuf/internal/weakdeps    [no test files]
        ok      google.golang.org/protobuf/proto    (cached)
        ?       google.golang.org/protobuf/protoadapt   [no test files]
        ok      google.golang.org/protobuf/reflect/protodesc    (cached)
        ?       google.golang.org/protobuf/reflect/protopath    [no test files]
        ok      google.golang.org/protobuf/reflect/protorange   (cached)
        ok      google.golang.org/protobuf/reflect/protoreflect (cached)
        ok      google.golang.org/protobuf/reflect/protoregistry    (cached)
        ?       google.golang.org/protobuf/runtime/protoiface   [no test files]
        ?       google.golang.org/protobuf/runtime/protoimpl    [no test files]
        ok      google.golang.org/protobuf/testing/protocmp (cached)
        ok      google.golang.org/protobuf/testing/protopack    (cached)
        ok      google.golang.org/protobuf/testing/prototest    (cached)
        ?       google.golang.org/protobuf/types/descriptorpb   [no test files]
        ok      google.golang.org/protobuf/types/dynamicpb  (cached)
        ok      google.golang.org/protobuf/types/known/anypb    (cached)
        ?       google.golang.org/protobuf/types/known/apipb    [no test files]
        ok      google.golang.org/protobuf/types/known/durationpb   (cached)
        ?       google.golang.org/protobuf/types/known/emptypb  [no test files]
        ok      google.golang.org/protobuf/types/known/fieldmaskpb  (cached)
        ?       google.golang.org/protobuf/types/known/sourcecontextpb  [no test files]
        ok      google.golang.org/protobuf/types/known/structpb (cached)
        ok      google.golang.org/protobuf/types/known/timestamppb  (cached)
        ?       google.golang.org/protobuf/types/known/typepb   [no test files]
        ?       google.golang.org/protobuf/types/known/wrapperspb   [no test files]
        ?       google.golang.org/protobuf/types/pluginpb   [no test files]
        FAIL
--- FAIL: Test (13.17s)
    --- PASS: Test/GeneratedGoFiles (7.53s)
    --- PASS: Test/FormattedGoFiles (0.23s)
    --- PASS: Test/CopyrightHeaders (0.02s)
    --- FAIL: Test/Go1.17.13/PureGo (4.86s)
    --- PASS: Test/Go1.17.13/Normal (4.94s)
    --- PASS: Test/Go1.16.15/Normal (5.02s)
    --- FAIL: Test/Go1.16.15/PureGo (5.10s)
    --- FAIL: Test/Go1.16.15/Reflect (5.17s)
FAIL
FAIL    command-line-arguments  13.340s
FAIL
puellanivis commented 1 year ago

Hm, what is you’re uname -a ?

This might be an architectural difference… I tested with each pairing of GOARCH 386 and amd64, and GOOS windows and linux, and all four pairings passed. 🤔

jhump commented 1 year ago

@puellanivis, sorry if it wasn't clear, but I am on OS X (a Macbook Pro). Here's the output of uname -a:

Darwin Joshuas-MBP.attlocal.net 22.6.0 Darwin Kernel Version 22.6.0: Wed Jul  5 22:22:05 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6000 arm64
jhump commented 1 year ago

I've put a kinda gross work-around in the CL I was writing, just so I could successfully push a change: https://go-review.googlesource.com/c/protobuf/+/512795/1/encoding/protodelim/protodelim_test.go#82.

puellanivis commented 1 year ago

Yes, your post was clear you were were on macOS, but you weren’t clear if you were on an amd64 or arm64.

Looks like it just might be an architecture thing. Unfortunately, I don’t have access to a Macbook to test, as I’m on holiday. (Don’t worry, this is only intruding on reading the latest Twitter/X drama.)

If you could try, uh, go into the directory and run GOARCH=amd64 go test which should run, because M1/M2 macOS should run amd64 code as well. If that works, do go test to make sure it’s still not working. Then we can isolate it into a “feature” of the arm pure Go implementation.

neild commented 1 year ago

Not sure what's up; I can reproduce the failure on my darwin/amd64 laptop, but I'm pretty sure this was passing when the test first went in. I suspect this test isn't worth it; sent https://go.dev/cl/512677 to drop it.