-
Notifications
You must be signed in to change notification settings - Fork 411
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
all: implement strip_enum_prefix editions feature
This change required updating editions_defaults.binpb with --edition_defaults_maximum=2024 so that we can use edition 2024 in our testdata/enumprefix.proto test file. For end users, this feature will only be available once: 1. protoc declares support for edition 2024 (expected early 2025). 2. protoc-gen-go declares support for edition 2024. related to golang/protobuf#513 Change-Id: Ib8daeecae39ef32eff942279707d256c312f2a53 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/618979 Reviewed-by: Lasse Folger <lassefolger@google.com> Reviewed-by: Mike Kruskal <mkruskal@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com>
- Loading branch information
1 parent
fb995f1
commit d14ebce
Showing
16 changed files
with
626 additions
and
28 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// Copyright 2024 The Go Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style | ||
// license that can be found in the LICENSE file. | ||
|
||
package main | ||
|
||
import ( | ||
"testing" | ||
|
||
"google.golang.org/protobuf/cmd/protoc-gen-go/testdata/enumprefix" | ||
) | ||
|
||
func TestStripEnumPrefix(t *testing.T) { | ||
// The file default for enumprefix.proto is to strip prefixes: | ||
_ = enumprefix.Strip_ZERO | ||
|
||
// The enum Both should generate both names: | ||
_ = enumprefix.Both_ZERO | ||
_ = enumprefix.Both_BOTH_ZERO | ||
|
||
// The enum BothNoPrefix is configured to generate both names, but there is | ||
// no prefix to be stripped, so only an unmodified name is generated. | ||
_ = enumprefix.BothNoPrefix_ZERO | ||
|
||
// The enum BothButOne is configured to generate both names, except for the | ||
// ONE value, where only the prefixed name is generated. | ||
_ = enumprefix.BothButOne_ZERO | ||
_ = enumprefix.BothButOne_BOTH_BUT_ONE_ONE | ||
} |
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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,39 @@ | ||
// Copyright 2024 The Go Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style | ||
// license that can be found in the LICENSE file. | ||
|
||
edition = "2024"; | ||
|
||
package goproto.protoc.enumprefix; | ||
|
||
import "google/protobuf/go_features.proto"; | ||
|
||
option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/enumprefix"; | ||
option features.(pb.go).strip_enum_prefix = STRIP_ENUM_PREFIX_STRIP; | ||
|
||
enum Strip { | ||
STRIP_ZERO = 0; | ||
STRIP_ONE = 1; | ||
} | ||
|
||
enum Both { | ||
option features.(pb.go).strip_enum_prefix = STRIP_ENUM_PREFIX_GENERATE_BOTH; | ||
|
||
BOTH_ZERO = 0; | ||
BOTH_ONE = 1; | ||
} | ||
|
||
enum BothNoPrefix { | ||
option features.(pb.go).strip_enum_prefix = STRIP_ENUM_PREFIX_GENERATE_BOTH; | ||
|
||
ZERO = 0; | ||
ONE = 1; | ||
} | ||
|
||
enum BothButOne { | ||
option features.(pb.go).strip_enum_prefix = STRIP_ENUM_PREFIX_GENERATE_BOTH; | ||
|
||
BOTH_BUT_ONE_ZERO = 0; | ||
BOTH_BUT_ONE_ONE = 1 | ||
[features.(pb.go).strip_enum_prefix = STRIP_ENUM_PREFIX_KEEP]; | ||
} |
Oops, something went wrong.