Skip to content

Commit 1ba2b73

Browse files
authored
test: Test derive Eq behavior (#1422)
1 parent 07e2b6b commit 1ba2b73

4 files changed

Lines changed: 79 additions & 0 deletions

File tree

tests/build.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ fn main() {
100100
.compile_protos(&[src.join("derive_copy.proto")], includes)
101101
.unwrap();
102102

103+
config
104+
.compile_protos(&[src.join("derive_eq.proto")], includes)
105+
.unwrap();
106+
103107
prost_build::Config::new()
104108
.compile_protos(&[src.join("default_string_escape.proto")], includes)
105109
.unwrap();

tests/src/derive_eq.proto

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
syntax = "proto3";
2+
3+
import "google/protobuf/timestamp.proto";
4+
5+
package derive_eq;
6+
7+
message EmptyMsg {}
8+
9+
message IntegerMsg {
10+
int32 field1 = 1;
11+
int64 field2 = 2;
12+
uint32 field3 = 3;
13+
uint64 field4 = 4;
14+
sint32 field5 = 5;
15+
sint64 field6 = 6;
16+
fixed32 field7 = 7;
17+
fixed64 field8 = 8;
18+
sfixed32 field9 = 9;
19+
sfixed64 field10 = 10;
20+
}
21+
22+
message BoolMsg { bool field1 = 1; }
23+
24+
enum AnEnum {
25+
A = 0;
26+
B = 1;
27+
};
28+
29+
message EnumMsg { AnEnum field1 = 1; }
30+
31+
message StringMsg {
32+
string field1 = 1;
33+
bytes field2 = 2;
34+
}
35+
36+
message OneOfMsg {
37+
oneof data {
38+
int32 field1 = 1;
39+
int64 field2 = 2;
40+
}
41+
}
42+
43+
message ComposedMsg {
44+
IntegerMsg field1 = 1;
45+
EnumMsg field2 = 2;
46+
OneOfMsg field3 = 3;
47+
StringMsg field4 = 4;
48+
}
49+
50+
message WellKnownMsg {
51+
google.protobuf.Timestamp timestamp = 1;
52+
}

tests/src/derive_eq.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#![allow(dead_code)]
2+
3+
include!(concat!(env!("OUT_DIR"), "/derive_eq.rs"));
4+
5+
trait TestEqIsImplemented: Eq {}
6+
7+
impl TestEqIsImplemented for EmptyMsg {}
8+
9+
impl TestEqIsImplemented for IntegerMsg {}
10+
11+
impl TestEqIsImplemented for BoolMsg {}
12+
13+
impl TestEqIsImplemented for AnEnum {}
14+
15+
impl TestEqIsImplemented for EnumMsg {}
16+
17+
impl TestEqIsImplemented for OneOfMsg {}
18+
19+
impl TestEqIsImplemented for ComposedMsg {}
20+
21+
impl TestEqIsImplemented for WellKnownMsg {}

tests/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ mod debug;
3535
#[cfg(test)]
3636
mod derive_copy;
3737
#[cfg(test)]
38+
mod derive_eq;
39+
#[cfg(test)]
3840
mod enum_keyword_variant;
3941
#[cfg(test)]
4042
mod generic_derive;

0 commit comments

Comments
 (0)