use wirespec_syntax::parse;
fn parse_file(path: &str) -> wirespec_syntax::ast::AstModule {
let source =
std::fs::read_to_string(path).unwrap_or_else(|e| panic!("Failed to read {path}: {e}"));
parse(&source).unwrap_or_else(|e| panic!("Failed to parse {path}: {e}"))
}
#[test]
fn parse_quic_varint() {
let m = parse_file("../../examples/quic/varint.wspec");
assert!(m.module_decl.is_some());
assert!(!m.items.is_empty());
}
#[test]
fn parse_quic_frames() {
let m = parse_file("../../examples/quic/frames.wspec");
assert!(m.module_decl.is_some());
assert!(m.items.len() >= 4);
}
#[test]
fn parse_udp() {
let m = parse_file("../../examples/net/udp.wspec");
assert!(m.module_decl.is_some());
}
#[test]
fn parse_tcp() {
let m = parse_file("../../examples/net/tcp.wspec");
assert!(m.module_decl.is_some());
}
#[test]
fn parse_mqtt() {
let m = parse_file("../../examples/mqtt/mqtt.wspec");
assert!(m.module_decl.is_some());
assert!(m.items.len() >= 4);
}
#[test]
fn parse_ble_att() {
let m = parse_file("../../examples/ble/att.wspec");
assert!(m.module_decl.is_some());
}
#[test]
fn parse_ethernet() {
let m = parse_file("../../examples/net/ethernet.wspec");
assert!(m.module_decl.is_some());
}
#[test]
fn parse_bits_groups() {
let m = parse_file("../../examples/test/bits_groups.wspec");
assert!(m.module_decl.is_some());
assert_eq!(m.items.len(), 2);
}
#[test]
fn parse_mpquic_path() {
let m = parse_file("../../examples/mpquic/path.wspec");
assert!(m.module_decl.is_some());
assert_eq!(m.items.len(), 1);
}