-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Labels
BugSomething isn't workingSomething isn't working
Description
Description
The conformance test runner does not work on Windows due to an apparent linkage issue with the protobuf well-known types, leading to a large amount of runtime errors.
Steps to Reproduce
- Build protovalidate-cc with CMake on Windows using:
cmake -B .build -S . -DBUILD_TESTING=ON -DPROTOVALIDATE_CC_ENABLE_TESTS=ON -DPROTOVALIDATE_CC_ENABLE_VENDORING=ON -DPROTOVALIDATE_CC_ENABLE_INSTALL=OFF -GNinjaandcmake --build .build - Manually run the conformance runner with:
go run github.com/bufbuild/protovalidate/tools/protovalidate-conformance@v0.10.3 .\protovalidate-cc-build-2\protovalidate_cc_conformance_runner_main.exe
Expected Behavior
The conformance runner should at least run properly, even if not all tests currently pass.
Actual Behavior
The conformance runner will fail to even execute and output a large amount of runtime errors.
Screenshots/Logs
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1742836766.312034 9948 descriptor.cc:4828] Invalid proto descriptor for file "google/protobuf/descriptor.proto":
E0000 00:00:1742836766.312760 9948 descriptor.cc:4831] google.protobuf.FileDescriptorProto.enum_type: "google.protobuf.EnumDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.312837 9948 descriptor.cc:4831] google.protobuf.FileDescriptorProto.service: "google.protobuf.ServiceDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.312912 9948 descriptor.cc:4831] google.protobuf.FileDescriptorProto.extension: "google.protobuf.FieldDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.312976 9948 descriptor.cc:4831] google.protobuf.FileDescriptorProto.options: "google.protobuf.FileOptions" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313044 9948 descriptor.cc:4831] google.protobuf.FileDescriptorProto.source_code_info: "google.protobuf.SourceCodeInfo" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313132 9948 descriptor.cc:4831] google.protobuf.FileDescriptorProto.edition: "google.protobuf.Edition" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313186 9948 descriptor.cc:4831] google.protobuf.DescriptorProto.field: "google.protobuf.FieldDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313219 9948 descriptor.cc:4831] google.protobuf.DescriptorProto.extension: "google.protobuf.FieldDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313268 9948 descriptor.cc:4831] google.protobuf.DescriptorProto.enum_type: "google.protobuf.EnumDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313301 9948 descriptor.cc:4831] google.protobuf.DescriptorProto.extension_range: "google.protobuf.DescriptorProto.ExtensionRange" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313401 9948 descriptor.cc:4831] google.protobuf.DescriptorProto.oneof_decl: "google.protobuf.OneofDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313456 9948 descriptor.cc:4831] google.protobuf.DescriptorProto.options: "google.protobuf.MessageOptions" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.313504 9948 descriptor.cc:4831] google.protobuf.DescriptorProto.reserved_range: "google.protobuf.DescriptorProto.ReservedRange" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1742836766.435484 1228 descriptor.cc:4828] Invalid proto descriptor for file "google/protobuf/descriptor.proto":
E0000 00:00:1742836766.436009 1228 descriptor.cc:4831] google.protobuf.FileDescriptorProto.enum_type: "google.protobuf.EnumDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436116 1228 descriptor.cc:4831] google.protobuf.FileDescriptorProto.service: "google.protobuf.ServiceDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436192 1228 descriptor.cc:4831] google.protobuf.FileDescriptorProto.extension: "google.protobuf.FieldDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436254 1228 descriptor.cc:4831] google.protobuf.FileDescriptorProto.options: "google.protobuf.FileOptions" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436343 1228 descriptor.cc:4831] google.protobuf.FileDescriptorProto.source_code_info: "google.protobuf.SourceCodeInfo" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436444 1228 descriptor.cc:4831] google.protobuf.FileDescriptorProto.edition: "google.protobuf.Edition" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436500 1228 descriptor.cc:4831] google.protobuf.DescriptorProto.field: "google.protobuf.FieldDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436542 1228 descriptor.cc:4831] google.protobuf.DescriptorProto.extension: "google.protobuf.FieldDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436596 1228 descriptor.cc:4831] google.protobuf.DescriptorProto.enum_type: "google.protobuf.EnumDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436635 1228 descriptor.cc:4831] google.protobuf.DescriptorProto.extension_range: "google.protobuf.DescriptorProto.ExtensionRange" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436679 1228 descriptor.cc:4831] google.protobuf.DescriptorProto.oneof_decl: "google.protobuf.OneofDescriptorProto" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436713 1228 descriptor.cc:4831] google.protobuf.DescriptorProto.options: "google.protobuf.MessageOptions" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
E0000 00:00:1742836766.436748 1228 descriptor.cc:4831] google.protobuf.DescriptorProto.reserved_range: "google.protobuf.DescriptorProto.ReservedRange" seems to be defined in "google/protobuf/descriptor.proto", which is not imported by "google/protobuf/descriptor.proto". To use it here, please add the necessary import.
...
Environment
- Operating System: Windows
- Version: Windows 11
- Compiler/Toolchain: Visual Studio 2022
- Protobuf Compiler & Version: N/A
- Protoc-gen-validate Version: N/A
- Protovalidate Version: 4e4a355
Possible Solution
We will need to debug the issue and determine what is causing the mismatched descriptors in the descriptor pool. I believe it is likely an issue with linkage.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
BugSomething isn't workingSomething isn't working