Skip to content

Commit 25755ef

Browse files
committed
Sync from Piper @319848517
PROTOBUF_SYNC_PIPER
1 parent dfab275 commit 25755ef

File tree

152 files changed

+28848
-1136
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+28848
-1136
lines changed

BUILD

+1-6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
44
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library", native_cc_proto_library = "cc_proto_library")
55
load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
6-
load("@rules_proto//proto/private:native.bzl", "native_proto_common")
76
load("@rules_python//python:defs.bzl", "py_library")
87
load(":cc_proto_blacklist_test.bzl", "cc_proto_blacklist_test")
98

@@ -945,13 +944,9 @@ cc_library(
945944
],
946945
)
947946

948-
# Note: We use `native_proto_common` here because we depend on an implementation-detail of
949-
# `proto_lang_toolchain`, which may not be available on `proto_common`.
950-
reject_blacklisted_files = hasattr(native_proto_common, "proto_lang_toolchain_rejects_files_do_not_use_or_we_will_break_you_without_mercy")
951-
cc_toolchain_blacklisted_protos = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()] if reject_blacklisted_files else [":well_known_protos"]
952947
proto_lang_toolchain(
953948
name = "cc_toolchain",
954-
blacklisted_protos = cc_toolchain_blacklisted_protos,
949+
blacklisted_protos = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()],
955950
command_line = "--cpp_out=$(OUT)",
956951
runtime = ":protobuf",
957952
visibility = ["//visibility:public"],

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ how to install protobuf runtime for that specific language:
6161
| C# | [csharp](csharp) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-csharp.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fcsharp%2Fcontinuous) | | [![Build status](https://ci.appveyor.com/api/projects/status/73ctee6ua4w2ruin?svg=true)](https://ci.appveyor.com/project/protobuf/protobuf)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/windows-csharp-release.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fwindows%2Fcsharp_release%2Fcontinuous) |
6262
| JavaScript | [js](js) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-javascript.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fjavascript%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-javascript.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fjavascript%2Fcontinuous) | |
6363
| Ruby | [ruby](ruby) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-ruby23.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fruby23%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-ruby24.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fruby24%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-ruby25.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fruby25%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-ruby26.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fruby26%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-ruby-release.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fruby_release%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-ruby23.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fruby23%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-ruby24.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fruby24%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-ruby25.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fruby25%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-ruby26.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fruby26%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-ruby-release.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fruby_release%2Fcontinuous) | |
64-
| Go | [golang/protobuf](https://github.com/golang/protobuf) | | | |
64+
| Go | [protocolbuffers/protobuf-go](https://github.com/protocolbuffers/protobuf-go) | | | |
6565
| PHP | [php](php) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-php_all.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fphp_all%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-32-bit.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2F32-bit%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-php5.6_mac.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fphp5.6_mac%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-php7.0_mac.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fphp7.0_mac%2Fcontinuous) | |
6666
| Dart | [dart-lang/protobuf](https://github.com/dart-lang/protobuf) | [![Build Status](https://travis-ci.org/dart-lang/protobuf.svg?branch=master)](https://travis-ci.org/dart-lang/protobuf) | | |
6767

csharp/compatibility_tests/v3.0.0/src/Google.Protobuf.Test/CodedOutputStreamTest.cs

+32-32
Original file line numberDiff line numberDiff line change
@@ -211,62 +211,62 @@ public void WriteWholeMessage_VaryingBlockSizes()
211211
[Test]
212212
public void EncodeZigZag32()
213213
{
214-
Assert.AreEqual(0u, CodedOutputStream.EncodeZigZag32(0));
215-
Assert.AreEqual(1u, CodedOutputStream.EncodeZigZag32(-1));
216-
Assert.AreEqual(2u, CodedOutputStream.EncodeZigZag32(1));
217-
Assert.AreEqual(3u, CodedOutputStream.EncodeZigZag32(-2));
218-
Assert.AreEqual(0x7FFFFFFEu, CodedOutputStream.EncodeZigZag32(0x3FFFFFFF));
219-
Assert.AreEqual(0x7FFFFFFFu, CodedOutputStream.EncodeZigZag32(unchecked((int) 0xC0000000)));
220-
Assert.AreEqual(0xFFFFFFFEu, CodedOutputStream.EncodeZigZag32(0x7FFFFFFF));
221-
Assert.AreEqual(0xFFFFFFFFu, CodedOutputStream.EncodeZigZag32(unchecked((int) 0x80000000)));
214+
Assert.AreEqual(0u, WritingPrimitives.EncodeZigZag32(0));
215+
Assert.AreEqual(1u, WritingPrimitives.EncodeZigZag32(-1));
216+
Assert.AreEqual(2u, WritingPrimitives.EncodeZigZag32(1));
217+
Assert.AreEqual(3u, WritingPrimitives.EncodeZigZag32(-2));
218+
Assert.AreEqual(0x7FFFFFFEu, WritingPrimitives.EncodeZigZag32(0x3FFFFFFF));
219+
Assert.AreEqual(0x7FFFFFFFu, WritingPrimitives.EncodeZigZag32(unchecked((int) 0xC0000000)));
220+
Assert.AreEqual(0xFFFFFFFEu, WritingPrimitives.EncodeZigZag32(0x7FFFFFFF));
221+
Assert.AreEqual(0xFFFFFFFFu, WritingPrimitives.EncodeZigZag32(unchecked((int) 0x80000000)));
222222
}
223223

224224
[Test]
225225
public void EncodeZigZag64()
226226
{
227-
Assert.AreEqual(0u, CodedOutputStream.EncodeZigZag64(0));
228-
Assert.AreEqual(1u, CodedOutputStream.EncodeZigZag64(-1));
229-
Assert.AreEqual(2u, CodedOutputStream.EncodeZigZag64(1));
230-
Assert.AreEqual(3u, CodedOutputStream.EncodeZigZag64(-2));
227+
Assert.AreEqual(0u, WritingPrimitives.EncodeZigZag64(0));
228+
Assert.AreEqual(1u, WritingPrimitives.EncodeZigZag64(-1));
229+
Assert.AreEqual(2u, WritingPrimitives.EncodeZigZag64(1));
230+
Assert.AreEqual(3u, WritingPrimitives.EncodeZigZag64(-2));
231231
Assert.AreEqual(0x000000007FFFFFFEuL,
232-
CodedOutputStream.EncodeZigZag64(unchecked((long) 0x000000003FFFFFFFUL)));
232+
WritingPrimitives.EncodeZigZag64(unchecked((long) 0x000000003FFFFFFFUL)));
233233
Assert.AreEqual(0x000000007FFFFFFFuL,
234-
CodedOutputStream.EncodeZigZag64(unchecked((long) 0xFFFFFFFFC0000000UL)));
234+
WritingPrimitives.EncodeZigZag64(unchecked((long) 0xFFFFFFFFC0000000UL)));
235235
Assert.AreEqual(0x00000000FFFFFFFEuL,
236-
CodedOutputStream.EncodeZigZag64(unchecked((long) 0x000000007FFFFFFFUL)));
236+
WritingPrimitives.EncodeZigZag64(unchecked((long) 0x000000007FFFFFFFUL)));
237237
Assert.AreEqual(0x00000000FFFFFFFFuL,
238-
CodedOutputStream.EncodeZigZag64(unchecked((long) 0xFFFFFFFF80000000UL)));
238+
WritingPrimitives.EncodeZigZag64(unchecked((long) 0xFFFFFFFF80000000UL)));
239239
Assert.AreEqual(0xFFFFFFFFFFFFFFFEL,
240-
CodedOutputStream.EncodeZigZag64(unchecked((long) 0x7FFFFFFFFFFFFFFFUL)));
240+
WritingPrimitives.EncodeZigZag64(unchecked((long) 0x7FFFFFFFFFFFFFFFUL)));
241241
Assert.AreEqual(0xFFFFFFFFFFFFFFFFL,
242-
CodedOutputStream.EncodeZigZag64(unchecked((long) 0x8000000000000000UL)));
242+
WritingPrimitives.EncodeZigZag64(unchecked((long) 0x8000000000000000UL)));
243243
}
244244

245245
[Test]
246246
public void RoundTripZigZag32()
247247
{
248248
// Some easier-to-verify round-trip tests. The inputs (other than 0, 1, -1)
249249
// were chosen semi-randomly via keyboard bashing.
250-
Assert.AreEqual(0, ParsingPrimitives.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(0)));
251-
Assert.AreEqual(1, ParsingPrimitives.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(1)));
252-
Assert.AreEqual(-1, ParsingPrimitives.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(-1)));
253-
Assert.AreEqual(14927, ParsingPrimitives.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(14927)));
254-
Assert.AreEqual(-3612, ParsingPrimitives.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(-3612)));
250+
Assert.AreEqual(0, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(0)));
251+
Assert.AreEqual(1, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(1)));
252+
Assert.AreEqual(-1, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(-1)));
253+
Assert.AreEqual(14927, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(14927)));
254+
Assert.AreEqual(-3612, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(-3612)));
255255
}
256256

257257
[Test]
258258
public void RoundTripZigZag64()
259259
{
260-
Assert.AreEqual(0, ParsingPrimitives.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(0)));
261-
Assert.AreEqual(1, ParsingPrimitives.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(1)));
262-
Assert.AreEqual(-1, ParsingPrimitives.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(-1)));
263-
Assert.AreEqual(14927, ParsingPrimitives.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(14927)));
264-
Assert.AreEqual(-3612, ParsingPrimitives.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(-3612)));
260+
Assert.AreEqual(0, ParsingPrimitives.DecodeZigZag64(WritingPrimitives.EncodeZigZag64(0)));
261+
Assert.AreEqual(1, ParsingPrimitives.DecodeZigZag64(WritingPrimitives.EncodeZigZag64(1)));
262+
Assert.AreEqual(-1, ParsingPrimitives.DecodeZigZag64(WritingPrimitives.EncodeZigZag64(-1)));
263+
Assert.AreEqual(14927, ParsingPrimitives.DecodeZigZag64(WritingPrimitives.EncodeZigZag64(14927)));
264+
Assert.AreEqual(-3612, ParsingPrimitives.DecodeZigZag64(WritingPrimitives.EncodeZigZag64(-3612)));
265265

266266
Assert.AreEqual(856912304801416L,
267-
ParsingPrimitives.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(856912304801416L)));
267+
ParsingPrimitives.DecodeZigZag64(WritingPrimitives.EncodeZigZag64(856912304801416L)));
268268
Assert.AreEqual(-75123905439571256L,
269-
ParsingPrimitives.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(-75123905439571256L)));
269+
ParsingPrimitives.DecodeZigZag64(WritingPrimitives.EncodeZigZag64(-75123905439571256L)));
270270
}
271271

272272
[Test]
@@ -395,7 +395,7 @@ public void Dispose_DisposesUnderlyingStream()
395395
Assert.IsTrue(memoryStream.CanWrite);
396396
using (var cos = new CodedOutputStream(memoryStream))
397397
{
398-
cos.WriteRawByte(0);
398+
cos.WriteRawBytes(new byte[] {0});
399399
Assert.AreEqual(0, memoryStream.Position); // Not flushed yet
400400
}
401401
Assert.AreEqual(1, memoryStream.ToArray().Length); // Flushed data from CodedOutputStream to MemoryStream
@@ -409,7 +409,7 @@ public void Dispose_WithLeaveOpen()
409409
Assert.IsTrue(memoryStream.CanWrite);
410410
using (var cos = new CodedOutputStream(memoryStream, true))
411411
{
412-
cos.WriteRawByte(0);
412+
cos.WriteRawBytes(new byte[] {0});
413413
Assert.AreEqual(0, memoryStream.Position); // Not flushed yet
414414
}
415415
Assert.AreEqual(1, memoryStream.Position); // Flushed data from CodedOutputStream to MemoryStream

csharp/compatibility_tests/v3.0.0/src/Google.Protobuf.Test/FieldCodecTest.cs

+20-2
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,16 @@ public void TestRoundTripRaw()
124124
{
125125
var stream = new MemoryStream();
126126
var codedOutput = new CodedOutputStream(stream);
127-
codec.ValueWriter(codedOutput, sampleValue);
127+
WriteContext.Initialize(codedOutput, out WriteContext ctx);
128+
try
129+
{
130+
// only write the value using the codec
131+
codec.ValueWriter(ref ctx, sampleValue);
132+
}
133+
finally
134+
{
135+
ctx.CopyStateTo(codedOutput);
136+
}
128137
codedOutput.Flush();
129138
stream.Position = 0;
130139
var codedInput = new CodedInputStream(stream);
@@ -172,7 +181,16 @@ public void TestDefaultValue()
172181
if (codec.DefaultValue != null) // This part isn't appropriate for message types.
173182
{
174183
codedOutput = new CodedOutputStream(stream);
175-
codec.ValueWriter(codedOutput, codec.DefaultValue);
184+
WriteContext.Initialize(codedOutput, out WriteContext ctx);
185+
try
186+
{
187+
// only write the value using the codec
188+
codec.ValueWriter(ref ctx, codec.DefaultValue);
189+
}
190+
finally
191+
{
192+
ctx.CopyStateTo(codedOutput);
193+
}
176194
codedOutput.Flush();
177195
Assert.AreNotEqual(0, stream.Position);
178196
Assert.AreEqual(stream.Position, codec.ValueSizeCalculator(codec.DefaultValue));

csharp/install_dotnet_sdk.ps1

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env powershell
2-
# Install dotnet SDK based on the SDK version from global.json
2+
# Install dotnet SDK using the official dotnet-install.ps1 script
33

44
Set-StrictMode -Version 2
55
$ErrorActionPreference = 'Stop'
@@ -9,16 +9,12 @@ $ErrorActionPreference = 'Stop'
99

1010
$InstallScriptUrl = 'https://dot.net/v1/dotnet-install.ps1'
1111
$InstallScriptPath = Join-Path "$env:TEMP" 'dotnet-install.ps1'
12-
$GlobalJsonPath = Join-Path $PSScriptRoot '..' | Join-Path -ChildPath 'global.json'
13-
14-
# Resolve SDK version from global.json file
15-
$GlobalJson = Get-Content -Raw $GlobalJsonPath | ConvertFrom-Json
16-
$SDKVersion = $GlobalJson.sdk.version
1712

1813
# Download install script
1914
Write-Host "Downloading install script: $InstallScriptUrl => $InstallScriptPath"
2015
Invoke-WebRequest -Uri $InstallScriptUrl -OutFile $InstallScriptPath
21-
&$InstallScriptPath -Version $SDKVersion
2216

23-
# Also install dotnet SDK LTS which is required to run some of the tests
17+
# The SDK versions to install should be kept in sync with versions
18+
# installed by kokoro/linux/dockerfile/test/csharp/Dockerfile
2419
&$InstallScriptPath -Version 2.1.802
20+
&$InstallScriptPath -Version 3.1.301

csharp/protos/unittest_issues.proto

+14-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ option csharp_namespace = "UnitTest.Issues.TestProtos";
88

99
package unittest_issues;
1010

11+
import "google/protobuf/struct.proto";
12+
1113
// Issue 307: when generating doubly-nested types, any references
1214
// should be of the form A.Types.B.Types.C.
1315
message Issue307 {
@@ -137,4 +139,15 @@ message OneofMerging {
137139
string text = 1;
138140
Nested nested = 2;
139141
}
140-
}
142+
}
143+
144+
message NullValueOutsideStruct {
145+
oneof value {
146+
string string_value = 1;
147+
google.protobuf.NullValue null_value = 2;
148+
}
149+
}
150+
151+
message NullValueNotInOneof {
152+
google.protobuf.NullValue null_value = 2;
153+
}

0 commit comments

Comments
 (0)