Skip to content

Commit 0dbf53f

Browse files
committed
test: Add more tests and refactor tests
To reduce code duplication in the tests, unwrap was used.
1 parent 6f358a4 commit 0dbf53f

File tree

8 files changed

+57
-160
lines changed

8 files changed

+57
-160
lines changed

tests/ip_addr.rs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,9 @@ static DNS_STAMPS: [&str; 2] = [
88
#[test]
99
fn ip_addrs() {
1010
for stamp_1 in DNS_STAMPS.iter() {
11-
match DnsStamp::decode(stamp_1) {
12-
Ok(dns_stamp_1) => match dns_stamp_1.encode() {
13-
Ok(stamp_2) => match DnsStamp::decode(&stamp_2) {
14-
Ok(dns_stamp_2) => {
15-
if dns_stamp_1 != dns_stamp_2 {
16-
panic!("Not equal: {} {}", stamp_1, stamp_2);
17-
}
18-
}
19-
Err(e) => {
20-
panic!("Decode 2: {:?}: {} {}", e, stamp_1, stamp_2);
21-
}
22-
},
23-
Err(e) => {
24-
panic!("Encode 1: {:?}: {}", e, stamp_1);
25-
}
26-
},
27-
Err(e) => {
28-
panic!("Decode 1: {:?}: {}", e, stamp_1);
29-
}
30-
}
11+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
12+
let stamp_2 = dns_stamp_1.encode().unwrap();
13+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
14+
assert_eq!(dns_stamp_1, dns_stamp_2);
3115
}
3216
}

tests/odoh-relays.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
use dns_stamp_parser::DnsStamp;
2+
3+
// The list is from https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/odoh-relays.md
4+
static DNS_STAMPS: [&str; 4] = [
5+
"sdns://hQcAAAAAAAAADDg5LjM4LjEzMS4zOAAYb2RvaC1ubC5hbGVrYmVyZy5uZXQ6NDQzBi9wcm94eQ",
6+
"sdns://hQcAAAAAAAAAAAAab2RvaC1yZWxheS5lZGdlY29tcHV0ZS5hcHABLw",
7+
"sdns://hQcAAAAAAAAADjIxMy4xOTYuMTkxLjk2ABhpYmtzdHVybS5zeW5vbG9neS5tZTo0NDMGL3Byb3h5",
8+
"sdns://hQcAAAAAAAAADTQ1LjE1My4xODcuOTYAGG9kb2gtc2UuYWxla2JlcmcubmV0OjQ0MwYvcHJveHk",
9+
];
10+
11+
/// Test all DNS Stamp from the [list] by decode and encode and decode it again.
12+
///
13+
/// [list]: https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/odoh-relays.md
14+
#[test]
15+
fn relays() {
16+
for stamp_1 in DNS_STAMPS.iter() {
17+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
18+
let stamp_2 = dns_stamp_1.encode().unwrap();
19+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
20+
assert_eq!(dns_stamp_1, dns_stamp_2);
21+
}
22+
}

tests/onion_services.rs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,9 @@ static DNS_STAMPS: [&str; 1] = [
1111
#[test]
1212
fn parental_control() {
1313
for stamp_1 in DNS_STAMPS.iter() {
14-
match DnsStamp::decode(stamp_1) {
15-
Ok(dns_stamp_1) => match dns_stamp_1.encode() {
16-
Ok(stamp_2) => match DnsStamp::decode(&stamp_2) {
17-
Ok(dns_stamp_2) => {
18-
if dns_stamp_1 != dns_stamp_2 {
19-
panic!("Not equal: {} {}", stamp_1, stamp_2);
20-
}
21-
}
22-
Err(e) => {
23-
panic!("Decode 2: {:?}: {} {}", e, stamp_1, stamp_2);
24-
}
25-
},
26-
Err(e) => {
27-
panic!("Encode 1: {:?}: {}", e, stamp_1);
28-
}
29-
},
30-
Err(e) => {
31-
panic!("Decode 1: {:?}: {}", e, stamp_1);
32-
}
33-
}
14+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
15+
let stamp_2 = dns_stamp_1.encode().unwrap();
16+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
17+
assert_eq!(dns_stamp_1, dns_stamp_2);
3418
}
3519
}

tests/opennic.rs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,9 @@ static DNS_STAMPS: [&str; 7] = [
1717
#[test]
1818
fn opennic() {
1919
for stamp_1 in DNS_STAMPS.iter() {
20-
match DnsStamp::decode(stamp_1) {
21-
Ok(dns_stamp_1) => match dns_stamp_1.encode() {
22-
Ok(stamp_2) => match DnsStamp::decode(&stamp_2) {
23-
Ok(dns_stamp_2) => {
24-
if dns_stamp_1 != dns_stamp_2 {
25-
panic!("Not equal: {} {}", stamp_1, stamp_2);
26-
}
27-
}
28-
Err(e) => {
29-
panic!("Decode 2: {:?}: {} {}", e, stamp_1, stamp_2);
30-
}
31-
},
32-
Err(e) => {
33-
panic!("Encode 1: {:?}: {}", e, stamp_1);
34-
}
35-
},
36-
Err(e) => {
37-
panic!("Decode 1: {:?}: {}", e, stamp_1);
38-
}
39-
}
20+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
21+
let stamp_2 = dns_stamp_1.encode().unwrap();
22+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
23+
assert_eq!(dns_stamp_1, dns_stamp_2);
4024
}
4125
}

tests/parental_control.rs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,9 @@ static DNS_STAMPS: [&str; 21] = [
3131
#[test]
3232
fn parental_control() {
3333
for stamp_1 in DNS_STAMPS.iter() {
34-
match DnsStamp::decode(stamp_1) {
35-
Ok(dns_stamp_1) => match dns_stamp_1.encode() {
36-
Ok(stamp_2) => match DnsStamp::decode(&stamp_2) {
37-
Ok(dns_stamp_2) => {
38-
if dns_stamp_1 != dns_stamp_2 {
39-
panic!("Not equal: {} {}", stamp_1, stamp_2);
40-
}
41-
}
42-
Err(e) => {
43-
panic!("Decode 2: {:?}: {} {}", e, stamp_1, stamp_2);
44-
}
45-
},
46-
Err(e) => {
47-
panic!("Encode 1: {:?}: {}", e, stamp_1);
48-
}
49-
},
50-
Err(e) => {
51-
panic!("Decode 1: {:?}: {}", e, stamp_1);
52-
}
53-
}
34+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
35+
let stamp_2 = dns_stamp_1.encode().unwrap();
36+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
37+
assert_eq!(dns_stamp_1, dns_stamp_2);
5438
}
5539
}

tests/parse.rs

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -39,50 +39,21 @@ fn decode_uint64() {
3939
assert_eq!(DnsStamp::decode(stamp), Err(DecodeError::NotEnoughBytes))
4040
}
4141

42-
// The list is from https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v2/public-resolvers.md
43-
static DNS_STAMPS: [&str; 15] = [
44-
"sdns://AgcAAAAAAAAAACA-GhoPbFPz6XpJLVcIS1uYBwWe4FerFQWHb9g_2j24OBRpYmtzdHVybS5zeW5vbG9neS5tZQovZG5zLXF1ZXJ5",
45-
"sdns://AQcAAAAAAAAAEDg1LjUuOTMuMjMwOjg0NDMgwc9XUACwW8JsYh9ez5qiVgrOvwB-vss6f_SyDeC0Oe4YMi5kbnNjcnlwdC1jZXJ0Lmlia3N0dXJt",
46-
"sdns://AQcAAAAAAAAALlsyYTAyOjEyMDU6NTA1NTpkZTYwOmIyNmU6YmZmZjpmZTFkOmUxOWJdOjg0NDMgwc9XUACwW8JsYh9ez5qiVgrOvwB-vss6f_SyDeC0Oe4YMi5kbnNjcnlwdC1jZXJ0Lmlia3N0dXJt",
47-
"sdns://AQcAAAAAAAAAETE1MS44MC4yMjIuNzk6NDQzIKnWMjpPJYAJJhl1FQLOIx4fdtned2yHxruyig7_2w5OIDIuZG5zY3J5cHQtY2VydC5vcGVubmljLmkycGQueHl6",
48-
"sdns://AQcAAAAAAAAAG1syMDAxOjQ3MDoxZjE1OmI4MDo6NTNdOjQ0MyCp1jI6TyWACSYZdRUCziMeH3bZ3ndsh8a7sooO_9sOTiAyLmRuc2NyeXB0LWNlcnQub3Blbm5pYy5pMnBkLnh5eg",
49-
"sdns://AQYAAAAAAAAAETUuMTg5LjE3MC4xOTY6NDY1IFQ1LFVAO4Luk8QH_cI0RJcNmlbvIr_P-eyQnM0yJDJrKDIuZG5zY3J5cHQtY2VydC5uczE2LmRlLmRucy5vcGVubmljLmdsdWU",
50-
"sdns://AQYAAAAAAAAADTE0Mi40LjIwNC4xMTEgHBl5MxvoI8zPCJp5BpN-XDQQKlasf2Jw4EYlsu3bBOMfMi5kbnNjcnlwdC1jZXJ0Lm5zMy5jYS5sdWdncy5jbw",
51-
"sdns://AQYAAAAAAAAAIVsyNjA3OjUzMDA6MTIwOmE4YToxNDI6NDoyMDQ6MTExXSAcGXkzG-gjzM8ImnkGk35cNBAqVqx_YnDgRiWy7dsE4x8yLmRuc2NyeXB0LWNlcnQubnMzLmNhLmx1Z2dzLmNv",
52-
"sdns://AQYAAAAAAAAAEDE0Mi40LjIwNS40Nzo0NDMgvL-34FDBPaJCLACwsaya1kjFwmS8thcLiD1xishuugkfMi5kbnNjcnlwdC1jZXJ0Lm5zNC5jYS5sdWdncy5jbw",
53-
"sdns://AQYAAAAAAAAAJFsyNjA3OjUzMDA6MTIwOmE4YToxNDI6NDoyMDU6NDddOjQ0MyC8v7fgUME9okIsALCxrJrWSMXCZLy2FwuIPXGKyG66CR8yLmRuc2NyeXB0LWNlcnQubnM0LmNhLmx1Z2dzLmNv",
54-
"sdns://AQYAAAAAAAAAETE0Mi40LjIwNC4xMTE6NDQzIBwZeTMb6CPMzwiaeQaTflw0ECpWrH9icOBGJbLt2wTjHzIuZG5zY3J5cHQtY2VydC5uczMuY2EubHVnZ3MuY28",
55-
"sdns://AQcAAAAAAAAADDQ1Ljc2LjExMy4zMSAIVGh4i6eKXqlF6o9Fg92cgD2WcDvKQJ7v_Wq4XrQsVhsyLmRuc2NyeXB0LWNlcnQuZG5zLnNlYnkuaW8",
56-
"sdns://AgcAAAAAAAAADDQ1Ljc2LjExMy4zMSA-GhoPbFPz6XpJLVcIS1uYBwWe4FerFQWHb9g_2j24OBBkb2guc2VieS5pbzo4NDQzCi9kbnMtcXVlcnk",
57-
"sdns://AQcAAAAAAAAADTEzOS45OS4yMjIuNzIgCwVoTw0L4dgal5LC1FbZUtHtLR_rVuV6rVnxO95e4GUbMi5kbnNjcnlwdC1jZXJ0LmRucy5zZWJ5Lmlv",
58-
"sdns://AgcAAAAAAAAADTEzOS45OS4yMjIuNzIgPhoaD2xT8-l6SS1XCEtbmAcFnuBXqxUFh2_YP9o9uDgRZG9oLTIuc2VieS5pbzo0NDMKL2Rucy1xdWVyeQ",
42+
// Self generated dns-stamp via https://dnscrypt.info/stamps.
43+
static DNS_STAMPS: [&str; 4] = [
44+
"sdns://AwcAAAAAAAAACTEyNy4wLjAuMQAObG9jYWxob3N0OjgwODA",
45+
"sdns://BAcAAAAAAAAACTEyNy4wLjAuMQAObG9jYWxob3N0OjgwODA",
46+
"sdns://BAcAAAAAAAAACTEyNy4wLjAuMQAJbG9jYWxob3N0",
47+
"sdns://BQcAAAAAAAAACWxvY2FsaG9zdAovZG5zLXF1ZXJ5",
5948
];
6049

6150
/// Test all DNS Stamp from the [list] by decode and encode and decode it again.
62-
///
63-
/// [list]: https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v2/opennic.md
6451
#[test]
65-
fn opennic() {
52+
fn decode_encode_decode() {
6653
for stamp_1 in DNS_STAMPS.iter() {
67-
match dbg!(stamp_1.parse::<DnsStamp>()) {
68-
Ok(dns_stamp_1) => match dns_stamp_1.encode() {
69-
Ok(stamp_2) => match stamp_2.parse::<DnsStamp>() {
70-
Ok(dns_stamp_2) => {
71-
if dns_stamp_1 != dns_stamp_2 {
72-
panic!("Not equal: {} {}", stamp_1, stamp_2);
73-
}
74-
}
75-
Err(e) => {
76-
panic!("Decode 2: {:?}: {} {}", e, stamp_1, stamp_2);
77-
}
78-
},
79-
Err(e) => {
80-
panic!("Encode 1: {:?}: {}", e, stamp_1);
81-
}
82-
},
83-
Err(e) => {
84-
panic!("Decode 1: {:?}: {}", e, stamp_1);
85-
}
86-
}
54+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
55+
let stamp_2 = dns_stamp_1.encode().unwrap();
56+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
57+
assert_eq!(dns_stamp_1, dns_stamp_2);
8758
}
8859
}

tests/public_resolvers.rs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -257,25 +257,9 @@ static DNS_STAMPS: [&str; 247] = [
257257
#[test]
258258
fn public_resolvers() {
259259
for stamp_1 in DNS_STAMPS.iter() {
260-
match DnsStamp::decode(stamp_1) {
261-
Ok(dns_stamp_1) => match dns_stamp_1.encode() {
262-
Ok(stamp_2) => match DnsStamp::decode(&stamp_2) {
263-
Ok(dns_stamp_2) => {
264-
if dns_stamp_1 != dns_stamp_2 {
265-
panic!("Not equal: {} {}", stamp_1, stamp_2);
266-
}
267-
}
268-
Err(e) => {
269-
panic!("Decode 2: {:?}: {} {}", e, stamp_1, stamp_2);
270-
}
271-
},
272-
Err(e) => {
273-
panic!("Encode 1: {:?}: {}", e, stamp_1);
274-
}
275-
},
276-
Err(e) => {
277-
panic!("Decode 1: {:?}: {}", e, stamp_1);
278-
}
279-
}
260+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
261+
let stamp_2 = dns_stamp_1.encode().unwrap();
262+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
263+
assert_eq!(dns_stamp_1, dns_stamp_2);
280264
}
281265
}

tests/relays.rs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,25 +50,9 @@ static DNS_STAMPS: [&str; 40] = [
5050
#[test]
5151
fn relays() {
5252
for stamp_1 in DNS_STAMPS.iter() {
53-
match DnsStamp::decode(stamp_1) {
54-
Ok(dns_stamp_1) => match dns_stamp_1.encode() {
55-
Ok(stamp_2) => match DnsStamp::decode(&stamp_2) {
56-
Ok(dns_stamp_2) => {
57-
if dns_stamp_1 != dns_stamp_2 {
58-
panic!("Not equal: {} {}", stamp_1, stamp_2);
59-
}
60-
}
61-
Err(e) => {
62-
panic!("Decode 2: {:?}: {} {}", e, stamp_1, stamp_2);
63-
}
64-
},
65-
Err(e) => {
66-
panic!("Encode 1: {:?}: {}", e, stamp_1);
67-
}
68-
},
69-
Err(e) => {
70-
panic!("Decode 1: {:?}: {}", e, stamp_1);
71-
}
72-
}
53+
let dns_stamp_1 = DnsStamp::decode(stamp_1).unwrap();
54+
let stamp_2 = dns_stamp_1.encode().unwrap();
55+
let dns_stamp_2 = DnsStamp::decode(&stamp_2).unwrap();
56+
assert_eq!(dns_stamp_1, dns_stamp_2);
7357
}
7458
}

0 commit comments

Comments
 (0)