From 9898418bd9188b22e9db7f94529df638e65b14f7 Mon Sep 17 00:00:00 2001 From: Mike Kruskal Date: Tue, 25 Apr 2023 11:10:28 -0700 Subject: [PATCH] Fix btree issue in map tests. Without any weak ordering, btree_map fails to compile on windows 2022. Closes #12289 PiperOrigin-RevId: 527019995 --- .github/workflows/test_cpp.yml | 11 +++++++++++ src/google/protobuf/map_test.inc | 2 ++ 2 files changed, 13 insertions(+) diff --git a/.github/workflows/test_cpp.yml b/.github/workflows/test_cpp.yml index f473c9fe42c2..c5b42be3a5d5 100644 --- a/.github/workflows/test_cpp.yml +++ b/.github/workflows/test_cpp.yml @@ -278,11 +278,20 @@ jobs: -G Ninja -Dprotobuf_WITH_ZLIB=OFF -Dprotobuf_BUILD_CONFORMANCE=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF -Dprotobuf_BUILD_EXAMPLES=ON + vsversion: '2019' + - name: Windows CMake 2022 + os: windows-2022 + flags: >- + -G Ninja -Dprotobuf_WITH_ZLIB=OFF -Dprotobuf_BUILD_CONFORMANCE=OFF + -Dprotobuf_BUILD_SHARED_LIBS=OFF + -Dprotobuf_BUILD_EXAMPLES=ON + vsversion: '2022' - name: Windows CMake Shared os: windows-2019 flags: >- -G Ninja -Dprotobuf_WITH_ZLIB=OFF -Dprotobuf_BUILD_CONFORMANCE=OFF -Dprotobuf_BUILD_SHARED_LIBS=ON + vsversion: '2019' - name: Windows CMake Install os: windows-2019 install-flags: -G Ninja -Dprotobuf_WITH_ZLIB=OFF -Dprotobuf_BUILD_CONFORMANCE=OFF -Dprotobuf_BUILD_TESTS=OFF @@ -290,6 +299,7 @@ jobs: -G Ninja -Dprotobuf_WITH_ZLIB=OFF -Dprotobuf_BUILD_CONFORMANCE=OFF -Dprotobuf_REMOVE_INSTALLED_HEADERS=ON -Dprotobuf_BUILD_PROTOBUF_BINARIES=OFF + vsversion: '2019' name: ${{ matrix.name }} runs-on: ${{ matrix.os }} steps: @@ -305,6 +315,7 @@ jobs: uses: protocolbuffers/protobuf-ci/ccache@v1 with: cache-prefix: ${{ matrix.name }} + vsversion: ${{ matrix.vsversion }} # Install phase. - name: Configure CMake for install diff --git a/src/google/protobuf/map_test.inc b/src/google/protobuf/map_test.inc index c27c1cace5c9..209802472a1c 100644 --- a/src/google/protobuf/map_test.inc +++ b/src/google/protobuf/map_test.inc @@ -132,6 +132,8 @@ struct ConstructorTag { ConstructorTag(ConstructorTag&&) : invoked_constructor(ConstructorType::kMove) {} + bool operator<(const ConstructorTag&) const { return false; } + ConstructorType invoked_constructor; };