Skip to content

Commit 977c421

Browse files
committed
Move tests around to satisfy crates.io dependency requirements
1 parent efc5820 commit 977c421

16 files changed

+144
-128
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
- name: rustfmt
2727
run: cargo fmt --all --check
2828
- name: Run tests
29-
run: cargo test -p bufferfish-core -p bufferfish -p bufferfish-derive --lib
29+
run: cargo test -p bufferfish-core -p bufferfish -p bufferfish-derive --lib --all-features --all-targets
3030

3131
check-ts:
3232
needs: check-rust

rust/bufferfish-derive/Cargo.toml

-4
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,3 @@ syn = "2"
2020
quote = "1"
2121
proc-macro2 = "1"
2222
proc-macro-error = "1"
23-
24-
[dev-dependencies]
25-
trybuild = "1"
26-
bufferfish = { version = "0.1", path = "../bufferfish", features = ["derive"] }

rust/bufferfish-derive/tests/basic_header.rs

-15
This file was deleted.

rust/bufferfish-derive/tests/deserialize_struct.rs

-39
This file was deleted.

rust/bufferfish-derive/tests/enum_header.rs

-28
This file was deleted.

rust/bufferfish-derive/tests/serialize_struct.rs

-39
This file was deleted.

rust/bufferfish/Cargo.toml

+5-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ derive = ["bufferfish-derive", "syn"]
1717

1818

1919
[dependencies]
20-
bufferfish-core = { path = "../bufferfish-core" }
21-
bufferfish-derive = { path = "../bufferfish-derive", optional = true }
20+
bufferfish-core = { version = "0.1", path = "../bufferfish-core" }
21+
bufferfish-derive = { version = "0.1", path = "../bufferfish-derive", optional = true }
2222
syn = { version = "2", features = ["full"], optional = true }
23+
24+
[dev-dependencies]
25+
trybuild = "1"

rust/bufferfish/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ pub use bufferfish_derive::{Decode, Encode};
77
#[cfg(feature = "derive")]
88
pub use compiler::generate;
99

10+
#[cfg(feature = "derive")]
1011
#[cfg(test)]
1112
mod tests {
1213
use bufferfish_core::Bufferfish;

rust/bufferfish/tests/basic_header.rs

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#[cfg(feature = "derive")]
2+
mod tests {
3+
use bufferfish::{Bufferfish, Encodable};
4+
use bufferfish_derive::Encode;
5+
6+
#[test]
7+
fn encode_struct() {
8+
#[derive(Encode, Debug)]
9+
#[bufferfish(0_u16)]
10+
struct Foo {
11+
bar: u8,
12+
}
13+
14+
let foo = Foo { bar: 42 };
15+
let bf: Bufferfish = foo.to_bufferfish().unwrap();
16+
17+
assert_eq!(bf.len(), 3);
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#[cfg(feature = "derive")]
2+
mod tests {
3+
use bufferfish_core::{Bufferfish, Decodable};
4+
use bufferfish_derive::Decode;
5+
6+
#[test]
7+
fn decode_struct() {
8+
#[derive(Decode, Debug, PartialEq)]
9+
#[bufferfish(0_u16)]
10+
struct Foo {
11+
bar: u8,
12+
}
13+
14+
let mut bf = Bufferfish::from(vec![0, 0, 42]);
15+
let foo = Foo::decode(&mut bf).unwrap();
16+
17+
assert_eq!(foo, Foo { bar: 42 });
18+
}
19+
20+
#[test]
21+
fn decode_unit_struct() {
22+
#[derive(Decode, Debug, PartialEq)]
23+
#[bufferfish(0_u16)]
24+
struct Foo;
25+
26+
let mut bf = Bufferfish::from(vec![0, 0]);
27+
let foo = Foo::decode(&mut bf).unwrap();
28+
29+
assert_eq!(foo, Foo);
30+
}
31+
32+
#[test]
33+
fn decode_tuple_struct() {
34+
#[derive(Decode, Debug, PartialEq)]
35+
#[bufferfish(0_u16)]
36+
struct Foo(u8);
37+
38+
let mut bf = Bufferfish::from(vec![0, 0, 42]);
39+
let foo = Foo::decode(&mut bf).unwrap();
40+
41+
assert_eq!(foo, Foo(42));
42+
}
43+
}

rust/bufferfish/tests/enum_header.rs

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#[cfg(feature = "derive")]
2+
mod tests {
3+
use bufferfish_core::{Bufferfish, Encodable};
4+
use bufferfish_derive::Encode;
5+
6+
#[allow(dead_code)]
7+
enum PacketId {
8+
Ping,
9+
}
10+
11+
impl From<PacketId> for u16 {
12+
fn from(packet_id: PacketId) -> u16 {
13+
match packet_id {
14+
PacketId::Ping => 0,
15+
}
16+
}
17+
}
18+
19+
#[derive(Encode, Debug)]
20+
#[bufferfish(PacketId::Ping)]
21+
struct Foo {
22+
bar: u8,
23+
}
24+
25+
#[test]
26+
fn encode_struct() {
27+
let foo = Foo { bar: 42 };
28+
let bf: Bufferfish = foo.to_bufferfish().unwrap();
29+
30+
assert_eq!(bf.len(), 3);
31+
}
32+
}
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#[cfg(feature = "derive")]
2+
mod tests {
3+
use bufferfish_core::{Bufferfish, Encodable};
4+
use bufferfish_derive::Encode;
5+
6+
#[test]
7+
fn encode_struct() {
8+
#[derive(Encode, Debug)]
9+
#[bufferfish(0_u16)]
10+
struct Foo {
11+
bar: u8,
12+
}
13+
14+
let foo = Foo { bar: 42 };
15+
let bf: Bufferfish = foo.to_bufferfish().unwrap();
16+
17+
assert_eq!(bf.len(), 3);
18+
}
19+
20+
#[test]
21+
fn encode_unit_struct() {
22+
#[derive(Encode, Debug)]
23+
#[bufferfish(0_u16)]
24+
struct Foo;
25+
26+
let foo = Foo;
27+
let bf: Bufferfish = foo.to_bufferfish().unwrap();
28+
29+
assert_eq!(bf.len(), 2);
30+
}
31+
32+
#[test]
33+
fn encode_tuple_struct() {
34+
#[derive(Encode, Debug)]
35+
#[bufferfish(0_u16)]
36+
struct Foo(u8);
37+
38+
let foo = Foo(42);
39+
let bf: Bufferfish = foo.to_bufferfish().unwrap();
40+
41+
assert_eq!(bf.len(), 3);
42+
}
43+
}

0 commit comments

Comments
 (0)