@@ -29,6 +29,8 @@ func TestEnum(t *testing.T) {
29
29
proto := `
30
30
// enum
31
31
enum EnumAllowingAlias {
32
+ reserved 998, 1000 to 2000;
33
+ reserved "HELLO", "WORLD";
32
34
option allow_alias = true;
33
35
UNKNOWN = 0;
34
36
STARTED = 1;
@@ -48,7 +50,7 @@ enum EnumAllowingAlias {
48
50
if got , want := len (enums ), 1 ; got != want {
49
51
t .Errorf ("got [%v] want [%v]" , got , want )
50
52
}
51
- if got , want := len (enums [0 ].Elements ), 6 ; got != want {
53
+ if got , want := len (enums [0 ].Elements ), 8 ; got != want {
52
54
t .Errorf ("got [%v] want [%v]" , got , want )
53
55
}
54
56
if got , want := enums [0 ].Comment != nil , true ; got != want {
@@ -60,14 +62,46 @@ enum EnumAllowingAlias {
60
62
if got , want := enums [0 ].Position .Line , 3 ; got != want {
61
63
t .Errorf ("got [%d] want [%d]" , got , want )
62
64
}
63
- ef1 := enums [0 ].Elements [1 ].(* EnumField )
65
+ // enum reserved ids
66
+ e1 := enums [0 ].Elements [0 ].(* Reserved )
67
+ if got , want := len (e1 .Ranges ), 2 ; got != want {
68
+ t .Errorf ("got [%d] want [%d]" , got , want )
69
+ }
70
+ e1rg0 := e1 .Ranges [0 ]
71
+ if got , want := e1rg0 .From , 998 ; got != want {
72
+ t .Errorf ("got [%d] want [%d]" , got , want )
73
+ }
74
+ if got , want := e1rg0 .From , e1rg0 .To ; got != want {
75
+ t .Errorf ("got [%d] want [%d]" , got , want )
76
+ }
77
+ e1rg1 := e1 .Ranges [1 ]
78
+ if got , want := e1rg1 .From , 1000 ; got != want {
79
+ t .Errorf ("got [%d] want [%d]" , got , want )
80
+ }
81
+ if got , want := e1rg1 .To , 2000 ; got != want {
82
+ t .Errorf ("got [%d] want [%d]" , got , want )
83
+ }
84
+ // enum reserved field names
85
+ e2 := enums [0 ].Elements [1 ].(* Reserved )
86
+ if got , want := len (e2 .FieldNames ), 2 ; got != want {
87
+ t .Errorf ("got [%d] want [%d]" , got , want )
88
+ }
89
+ e2fn0 := e2 .FieldNames [0 ]
90
+ if got , want := e2fn0 , "HELLO" ; got != want {
91
+ t .Errorf ("got [%s] want [%s]" , got , want )
92
+ }
93
+ e2fn1 := e2 .FieldNames [1 ]
94
+ if got , want := e2fn1 , "WORLD" ; got != want {
95
+ t .Errorf ("got [%s] want [%s]" , got , want )
96
+ }
97
+ ef1 := enums [0 ].Elements [3 ].(* EnumField )
64
98
if got , want := ef1 .Integer , 0 ; got != want {
65
99
t .Errorf ("got [%v] want [%v]" , got , want )
66
100
}
67
- if got , want := ef1 .Position .Line , 5 ; got != want {
101
+ if got , want := ef1 .Position .Line , 7 ; got != want {
68
102
t .Errorf ("got [%d] want [%d]" , got , want )
69
103
}
70
- ef3 := enums [0 ].Elements [3 ].(* EnumField )
104
+ ef3 := enums [0 ].Elements [5 ].(* EnumField )
71
105
if got , want := ef3 .Integer , 2 ; got != want {
72
106
t .Errorf ("got [%v] want [%v]" , got , want )
73
107
}
@@ -82,10 +116,10 @@ enum EnumAllowingAlias {
82
116
if got , want := ef3opt .Constant .Source , "hello world" ; got != want {
83
117
t .Errorf ("got [%v] want [%v]" , got , want )
84
118
}
85
- if got , want := ef3 .Position .Line , 7 ; got != want {
119
+ if got , want := ef3 .Position .Line , 9 ; got != want {
86
120
t .Errorf ("got [%d] want [%d]" , got , want )
87
121
}
88
- ef4 := enums [0 ].Elements [4 ].(* EnumField )
122
+ ef4 := enums [0 ].Elements [6 ].(* EnumField )
89
123
if got , want := ef4 .Integer , - 42 ; got != want {
90
124
t .Errorf ("got [%v] want [%v]" , got , want )
91
125
}
0 commit comments