protocolbuffers/protobuf

protoc cli returns success with --fatal_warnings switch when warnings are detected

Open

#10,486 opened on 2022年9月1日

GitHub で見る
 (3 comments) (0 reactions) (0 assignees)C++ (16,128 forks)batch import
help wantedprotoc

Repository metrics

Stars
 (71,223 stars)
PR merge metrics
 (平均マージ 2d 11h) (30d で 185 merged PRs)

説明

Version: libprotoc 3.19.4 Language: NA OS: OSX, installed via brew

Steps to reproduce the behavior:

  1. open a terminal (I use zsh)
  2. decode a protobuf file for which a warning will be emitted using the --fatal_warnings switch
  3. check the command return value
$ cat temp.in.pbuf | protoc  --decode job_definition.job_t --fatal_warnings --proto_path ~/workspace/engine/proto/ job.proto > /dev/null
warning:  Input message is missing required fields:  country[0].id, country[1].id
$ echo $?
0

notice the contract include

message country_t {
	required int32 id = 1;
	required string country = 2;
}

and the encode file does not indeed have an id field, i.e. the warning is correct.

What did you expect to see protoc shall return a non-zero error

What did you see instead? protoc returns 0

コントリビューターガイド