Open-source some of our string_view tests.

This support was added in 22.x, but we don't have any tests locking it down.

Closes https://github.com/protocolbuffers/protobuf/issues/8096

PiperOrigin-RevId: 510242380
pull/10824/head
Mike Kruskal 2 years ago committed by Copybara-Service
parent 2c45deb877
commit 649cc30872
  1. 8
      .github/workflows/test_runner.yml
  2. 2
      CMakeLists.txt
  3. 2
      Protobuf-C++.podspec
  4. 2
      Protobuf.podspec
  5. 2
      csharp/Google.Protobuf.Tools.nuspec
  6. 2
      csharp/src/Google.Protobuf/Google.Protobuf.csproj
  7. 6
      java/README.md
  8. 2
      java/bom/pom.xml
  9. 2
      java/core/pom.xml
  10. 2
      java/kotlin-lite/pom.xml
  11. 2
      java/kotlin/pom.xml
  12. 2
      java/lite.md
  13. 2
      java/lite/pom.xml
  14. 2
      java/pom.xml
  15. 2
      java/protoc/pom.xml
  16. 2
      java/util/pom.xml
  17. 2
      php/ext/google/protobuf/protobuf.h
  18. 10
      protobuf_version.bzl
  19. 2
      python/google/protobuf/__init__.py
  20. 2
      ruby/google-protobuf.gemspec
  21. 4
      ruby/pom.xml
  22. 4
      src/google/protobuf/compiler/plugin.pb.h
  23. 4
      src/google/protobuf/descriptor.pb.h
  24. 34
      src/google/protobuf/message_unittest.inc
  25. 8
      src/google/protobuf/port_def.inc
  26. 8
      src/google/protobuf/stubs/common.h

@ -21,8 +21,8 @@ on:
branches:
- main
- '[0-9]+.x'
# The 21.x branch still uses Kokoro
- '!21.x'
# The 21.x and 22.x branches still use Kokoro
- '!2[12].x'
# For testing purposes so we can stage this on the `gha` branch.
- gha
@ -31,8 +31,8 @@ on:
branches:
- main
- '[0-9]+.x'
# The 21.x branch still uses Kokoro
- '!21.x'
# The 21.x and 22.x branches still use Kokoro
- '!2[12].x'
# For testing purposes so we can stage this on the `gha` branch.
- gha

@ -99,7 +99,7 @@ if (protobuf_BUILD_SHARED_LIBS)
endif ()
# Version metadata
set(protobuf_VERSION_STRING "4.22.0")
set(protobuf_VERSION_STRING "3.21.4")
set(protobuf_DESCRIPTION "Protocol Buffers")
set(protobuf_CONTACT "protobuf@googlegroups.com")

@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Protobuf-C++'
s.version = '4.22.0'
s.version = '3.21.12'
s.summary = 'Protocol Buffers v3 runtime library for C++.'
s.homepage = 'https://github.com/google/protobuf'
s.license = 'BSD-3-Clause'

@ -5,7 +5,7 @@
# dependent projects use the :git notation to refer to the library.
Pod::Spec.new do |s|
s.name = 'Protobuf'
s.version = '3.22.0'
s.version = '3.21.12'
s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.'
s.homepage = 'https://github.com/protocolbuffers/protobuf'
s.license = 'BSD-3-Clause'

@ -5,7 +5,7 @@
<title>Google Protocol Buffers tools</title>
<summary>Tools for Protocol Buffers - Google's data interchange format.</summary>
<description>See project site for more info.</description>
<version>3.22.0</version>
<version>3.21.12</version>
<authors>Google Inc.</authors>
<owners>protobuf-packages</owners>
<licenseUrl>https://github.com/protocolbuffers/protobuf/blob/main/LICENSE</licenseUrl>

@ -5,7 +5,7 @@
<Description>C# runtime library for Protocol Buffers - Google's data interchange format.</Description>
<Copyright>Copyright 2015, Google Inc.</Copyright>
<AssemblyTitle>Google Protocol Buffers</AssemblyTitle>
<VersionPrefix>3.22.0</VersionPrefix>
<VersionPrefix>3.21.12</VersionPrefix>
<LangVersion>10.0</LangVersion>
<Authors>Google Inc.</Authors>
<TargetFrameworks>netstandard1.1;netstandard2.0;net45;net50</TargetFrameworks>

@ -23,7 +23,7 @@ If you are using Maven, use the following:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</dependency>
```
@ -37,14 +37,14 @@ protobuf-java-util package:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</dependency>
```
### Gradle
If you are using Gradle, add the following to your `build.gradle` file's
dependencies: `implementation 'com.google.protobuf:protobuf-java:3.22.0'`
dependencies: `implementation 'com.google.protobuf:protobuf-java:3.21.12'`
Again, be sure to check that the version number matches (or is newer than) the
version number of protoc that you are using.

@ -4,7 +4,7 @@
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-bom</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
<packaging>pom</packaging>
<name>Protocol Buffers [BOM]</name>

@ -4,7 +4,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</parent>
<artifactId>protobuf-java</artifactId>

@ -4,7 +4,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</parent>
<artifactId>protobuf-kotlin-lite</artifactId>

@ -4,7 +4,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</parent>
<artifactId>protobuf-kotlin</artifactId>

@ -29,7 +29,7 @@ protobuf Java Lite runtime. If you are using Maven, include the following:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-javalite</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</dependency>
```

@ -4,7 +4,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</parent>
<artifactId>protobuf-javalite</artifactId>

@ -4,7 +4,7 @@
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
<packaging>pom</packaging>
<name>Protocol Buffers [Parent]</name>

@ -8,7 +8,7 @@
</parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protoc</artifactId>
<version>3.22.0</version>
<version>3.21.6</version>
<packaging>pom</packaging>
<name>Protobuf Compiler</name>
<description>

@ -4,7 +4,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</parent>
<artifactId>protobuf-java-util</artifactId>

@ -127,7 +127,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_setter, 0, 0, 1)
ZEND_ARG_INFO(0, value)
ZEND_END_ARG_INFO()
#define PHP_PROTOBUF_VERSION "3.22.0"
#define PHP_PROTOBUF_VERSION "3.21.12"
// ptr -> PHP object cache. This is a weak map that caches lazily-created
// wrapper objects around upb types:

@ -1,5 +1,5 @@
PROTOC_VERSION = "22.0"
PROTOBUF_JAVA_VERSION = "3.22.0"
PROTOBUF_PYTHON_VERSION = "4.22.0"
PROTOBUF_PHP_VERSION = "3.22.0"
PROTOBUF_RUBY_VERSION = "3.22.0"
PROTOC_VERSION = "21.12"
PROTOBUF_JAVA_VERSION = "3.21.12"
PROTOBUF_PYTHON_VERSION = "4.21.12"
PROTOBUF_PHP_VERSION = "3.21.12"
PROTOBUF_RUBY_VERSION = "3.21.12"

@ -30,4 +30,4 @@
# Copyright 2007 Google Inc. All Rights Reserved.
__version__ = '4.22.0'
__version__ = '4.21.12'

@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = "google-protobuf"
s.version = "3.22.0"
s.version = "3.21.12"
git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag
s.licenses = ["BSD-3-Clause"]
s.summary = "Protocol Buffers"

@ -9,7 +9,7 @@
<groupId>com.google.protobuf.jruby</groupId>
<artifactId>protobuf-jruby</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
<name>Protocol Buffer JRuby native extension</name>
<description>
Protocol Buffers are a way of encoding structured data in an efficient yet
@ -76,7 +76,7 @@
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>3.22.0</version>
<version>3.21.12</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>

@ -9,13 +9,13 @@
#include <type_traits>
#include "google/protobuf/port_def.inc"
#if PROTOBUF_VERSION < 4022000
#if PROTOBUF_VERSION < 3021000
#error "This file was generated by a newer version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please update"
#error "your headers."
#endif // PROTOBUF_VERSION
#if 4022000 < PROTOBUF_MIN_PROTOC_VERSION
#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
#error "This file was generated by an older version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please"
#error "regenerate this file with a newer version of protoc."

@ -9,13 +9,13 @@
#include <type_traits>
#include "google/protobuf/port_def.inc"
#if PROTOBUF_VERSION < 4022000
#if PROTOBUF_VERSION < 3021000
#error "This file was generated by a newer version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please update"
#error "your headers."
#endif // PROTOBUF_VERSION
#if 4022000 < PROTOBUF_MIN_PROTOC_VERSION
#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
#error "This file was generated by an older version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please"
#error "regenerate this file with a newer version of protoc."

@ -515,6 +515,8 @@ TEST(MESSAGE_TEST_NAME, ParseStrictlyBoundedStream) {
TEST(MESSAGE_TEST_NAME, AllSetMethodsOnStringField) {
UNITTEST::TestAllTypes msg;
msg.set_optional_string(absl::string_view("Abcdef"));
EXPECT_EQ(msg.optional_string(), "Abcdef");
msg.set_optional_string("Asciiz");
EXPECT_EQ(msg.optional_string(), "Asciiz");
@ -535,6 +537,38 @@ TEST(MESSAGE_TEST_NAME, AllSetMethodsOnStringField) {
EXPECT_EQ(msg.optional_string(), "std::string value 3");
}
TEST(MESSAGE_TEST_NAME, AllAddMethodsOnRepeatedStringField) {
UNITTEST::TestAllTypes msg;
msg.add_repeated_string(absl::string_view("Abcdef"));
EXPECT_EQ(msg.repeated_string(0), "Abcdef");
msg.clear_repeated_string();
msg.add_repeated_string("Asciiz");
EXPECT_EQ(msg.repeated_string(0), "Asciiz");
msg.clear_repeated_string();
msg.add_repeated_string("Length delimited", 6);
EXPECT_EQ(msg.repeated_string(0), "Length");
msg.clear_repeated_string();
std::string value = "std::string value 1";
msg.add_repeated_string(value);
EXPECT_EQ(msg.repeated_string(0), "std::string value 1");
msg.clear_repeated_string();
value = "std::string value 2";
msg.add_repeated_string(std::cref(value));
EXPECT_EQ(msg.repeated_string(0), "std::string value 2");
msg.clear_repeated_string();
value = "std::string value 3";
msg.add_repeated_string(std::move(value));
EXPECT_EQ(msg.repeated_string(0), "std::string value 3");
msg.clear_repeated_string();
}
TEST(MESSAGE_TEST_NAME, SuccessAfterParsingFailure) {
UNITTEST::NestedTestAllTypes o, p, q;
constexpr int kDepth = 5;

@ -218,17 +218,17 @@ static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and
#ifdef PROTOBUF_VERSION
#error PROTOBUF_VERSION was previously defined
#endif
#define PROTOBUF_VERSION 4022000
#define PROTOBUF_VERSION 3021012
#ifdef PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC
#error PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC was previously defined
#endif
#define PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC 4022000
#define PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC 3021000
#ifdef PROTOBUF_MIN_PROTOC_VERSION
#error PROTOBUF_MIN_PROTOC_VERSION was previously defined
#endif
#define PROTOBUF_MIN_PROTOC_VERSION 4022000
#define PROTOBUF_MIN_PROTOC_VERSION 3021000
#ifdef PROTOBUF_VERSION_SUFFIX
#error PROTOBUF_VERSION_SUFFIX was previously defined
@ -433,7 +433,7 @@ static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and
// The minimum library version which works with the current version of the
// headers.
#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 4022000
#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 3021000
#ifdef PROTOBUF_RTTI
#error PROTOBUF_RTTI was previously defined

@ -66,7 +66,7 @@ namespace internal {
// The current version, represented as a single integer to make comparison
// easier: major * 10^6 + minor * 10^3 + micro
#define GOOGLE_PROTOBUF_VERSION 4022000
#define GOOGLE_PROTOBUF_VERSION 3021012
// A suffix string for alpha, beta or rc releases. Empty for stable releases.
#define GOOGLE_PROTOBUF_VERSION_SUFFIX ""
@ -74,15 +74,15 @@ namespace internal {
// The minimum header version which works with the current version of
// the library. This constant should only be used by protoc's C++ code
// generator.
static const int kMinHeaderVersionForLibrary = 4022000;
static const int kMinHeaderVersionForLibrary = 3021000;
// The minimum protoc version which works with the current version of the
// headers.
#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 4022000
#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 3021000
// The minimum header version which works with the current version of
// protoc. This constant should only be used in VerifyVersion().
static const int kMinHeaderVersionForProtoc = 4022000;
static const int kMinHeaderVersionForProtoc = 3021000;
// Verifies that the headers and libraries are compatible. Use the macro
// below to call this.

Loading…
Cancel
Save