-
Notifications
You must be signed in to change notification settings - Fork 185
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Handle deprecated options in grpc services and methods, enum types an…
…d values, messages (#908) Similar to #909, a new kind of golden test is added here where the test input is not a hand-crafted message descriptor but an actual .proto file.
- Loading branch information
Showing
12 changed files
with
278 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file | ||
// for details. All rights reserved. Use of this source code is governed by a | ||
// BSD-style license that can be found in the LICENSE file. | ||
|
||
import 'dart:io'; | ||
|
||
import 'package:test/test.dart'; | ||
|
||
import 'golden_file.dart'; | ||
|
||
void main() { | ||
test('Deprecated annotation generation for messages', () { | ||
final actual = File('out/protos/deprecations.pb.dart').readAsStringSync(); | ||
expectMatchesGoldenFile(actual, 'test/goldens/deprecations'); | ||
}); | ||
|
||
test('Deprecated annotation generation for enums', () { | ||
final actual = File('out/protos/constructor_args/deprecations.pbenum.dart') | ||
.readAsStringSync(); | ||
expectMatchesGoldenFile(actual, 'test/goldens/deprecations.pbenum'); | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
// | ||
// Generated code. Do not modify. | ||
// source: deprecations.proto | ||
// | ||
// @dart = 2.12 | ||
|
||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references | ||
// ignore_for_file: constant_identifier_names, library_prefixes | ||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields | ||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import | ||
|
||
import 'dart:async' as $async; | ||
import 'dart:core' as $core; | ||
|
||
import 'package:protobuf/protobuf.dart' as $pb; | ||
|
||
export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions; | ||
|
||
export 'deprecations.pbenum.dart'; | ||
|
||
@$core.Deprecated('This message is deprecated') | ||
class HelloRequest extends $pb.GeneratedMessage { | ||
factory HelloRequest() => create(); | ||
HelloRequest._() : super(); | ||
factory HelloRequest.fromBuffer($core.List<$core.int> i, | ||
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => | ||
create()..mergeFromBuffer(i, r); | ||
factory HelloRequest.fromJson($core.String i, | ||
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => | ||
create()..mergeFromJson(i, r); | ||
|
||
static final $pb.BuilderInfo _i = $pb.BuilderInfo( | ||
_omitMessageNames ? '' : 'HelloRequest', | ||
package: const $pb.PackageName(_omitMessageNames ? '' : 'service2'), | ||
createEmptyInstance: create) | ||
..aOS(1, _omitFieldNames ? '' : 'name') | ||
..hasRequiredFields = false; | ||
|
||
@$core.Deprecated('Using this can add significant overhead to your binary. ' | ||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | ||
'Will be removed in next major version') | ||
HelloRequest clone() => HelloRequest()..mergeFromMessage(this); | ||
@$core.Deprecated('Using this can add significant overhead to your binary. ' | ||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | ||
'Will be removed in next major version') | ||
HelloRequest copyWith(void Function(HelloRequest) updates) => | ||
super.copyWith((message) => updates(message as HelloRequest)) | ||
as HelloRequest; | ||
|
||
$pb.BuilderInfo get info_ => _i; | ||
|
||
@$core.pragma('dart2js:noInline') | ||
static HelloRequest create() => HelloRequest._(); | ||
HelloRequest createEmptyInstance() => create(); | ||
static $pb.PbList<HelloRequest> createRepeated() => | ||
$pb.PbList<HelloRequest>(); | ||
@$core.pragma('dart2js:noInline') | ||
static HelloRequest getDefault() => _defaultInstance ??= | ||
$pb.GeneratedMessage.$_defaultFor<HelloRequest>(create); | ||
static HelloRequest? _defaultInstance; | ||
|
||
@$core.Deprecated('This field is deprecated.') | ||
@$pb.TagNumber(1) | ||
$core.String get name => $_getSZ(0); | ||
@$core.Deprecated('This field is deprecated.') | ||
@$pb.TagNumber(1) | ||
set name($core.String v) { | ||
$_setString(0, v); | ||
} | ||
|
||
@$core.Deprecated('This field is deprecated.') | ||
@$pb.TagNumber(1) | ||
$core.bool hasName() => $_has(0); | ||
@$core.Deprecated('This field is deprecated.') | ||
@$pb.TagNumber(1) | ||
void clearName() => clearField(1); | ||
} | ||
|
||
class HelloReply extends $pb.GeneratedMessage { | ||
factory HelloReply() => create(); | ||
HelloReply._() : super(); | ||
factory HelloReply.fromBuffer($core.List<$core.int> i, | ||
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => | ||
create()..mergeFromBuffer(i, r); | ||
factory HelloReply.fromJson($core.String i, | ||
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => | ||
create()..mergeFromJson(i, r); | ||
|
||
static final $pb.BuilderInfo _i = $pb.BuilderInfo( | ||
_omitMessageNames ? '' : 'HelloReply', | ||
package: const $pb.PackageName(_omitMessageNames ? '' : 'service2'), | ||
createEmptyInstance: create) | ||
..aOS(1, _omitFieldNames ? '' : 'message') | ||
..hasRequiredFields = false; | ||
|
||
@$core.Deprecated('Using this can add significant overhead to your binary. ' | ||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | ||
'Will be removed in next major version') | ||
HelloReply clone() => HelloReply()..mergeFromMessage(this); | ||
@$core.Deprecated('Using this can add significant overhead to your binary. ' | ||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | ||
'Will be removed in next major version') | ||
HelloReply copyWith(void Function(HelloReply) updates) => | ||
super.copyWith((message) => updates(message as HelloReply)) as HelloReply; | ||
|
||
$pb.BuilderInfo get info_ => _i; | ||
|
||
@$core.pragma('dart2js:noInline') | ||
static HelloReply create() => HelloReply._(); | ||
HelloReply createEmptyInstance() => create(); | ||
static $pb.PbList<HelloReply> createRepeated() => $pb.PbList<HelloReply>(); | ||
@$core.pragma('dart2js:noInline') | ||
static HelloReply getDefault() => _defaultInstance ??= | ||
$pb.GeneratedMessage.$_defaultFor<HelloReply>(create); | ||
static HelloReply? _defaultInstance; | ||
|
||
@$pb.TagNumber(1) | ||
$core.String get message => $_getSZ(0); | ||
@$pb.TagNumber(1) | ||
set message($core.String v) { | ||
$_setString(0, v); | ||
} | ||
|
||
@$pb.TagNumber(1) | ||
$core.bool hasMessage() => $_has(0); | ||
@$pb.TagNumber(1) | ||
void clearMessage() => clearField(1); | ||
} | ||
|
||
@$core.Deprecated('This service is deprecated') | ||
class GreeterApi { | ||
$pb.RpcClient _client; | ||
GreeterApi(this._client); | ||
|
||
@$core.Deprecated('This method is deprecated') | ||
$async.Future<HelloReply> sayHello( | ||
$pb.ClientContext? ctx, HelloRequest request) => | ||
_client.invoke<HelloReply>( | ||
ctx, 'Greeter', 'SayHello', request, HelloReply()); | ||
} | ||
|
||
const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); | ||
const _omitMessageNames = | ||
$core.bool.fromEnvironment('protobuf.omit_message_names'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
// | ||
// Generated code. Do not modify. | ||
// source: deprecations.proto | ||
// | ||
// @dart = 2.12 | ||
|
||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references | ||
// ignore_for_file: constant_identifier_names, library_prefixes | ||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields | ||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import | ||
|
||
import 'dart:core' as $core; | ||
|
||
import 'package:protobuf/protobuf.dart' as $pb; | ||
|
||
@$core.Deprecated('This enum is deprecated') | ||
class A extends $pb.ProtobufEnum { | ||
@$core.Deprecated('This enum value is deprecated') | ||
static const A A1 = A._(0, _omitEnumNames ? '' : 'A1'); | ||
static const A A2 = A._(1, _omitEnumNames ? '' : 'A2'); | ||
|
||
static const $core.List<A> values = <A>[ | ||
A1, | ||
A2, | ||
]; | ||
|
||
static final $core.Map<$core.int, A> _byValue = | ||
$pb.ProtobufEnum.initByValue(values); | ||
static A? valueOf($core.int value) => _byValue[value]; | ||
|
||
const A._($core.int v, $core.String n) : super(v, n); | ||
} | ||
|
||
const _omitEnumNames = $core.bool.fromEnvironment('protobuf.omit_enum_names'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.