From b255613f3792ec6dc1c57876e59d95c33538b607 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Fri, 9 Aug 2019 12:24:09 -0400 Subject: Add tests for USB descriptor layout. --- .gitignore | 1 + src/descriptor.rs | 28 ++++++++++++++++++++++++++++ src/lib.rs | 2 ++ 3 files changed, 31 insertions(+) mode change 100755 => 100644 src/lib.rs diff --git a/.gitignore b/.gitignore index 1d8e8c5..c4448c4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/target */target **/*.rs.bk Cargo.lock diff --git a/src/descriptor.rs b/src/descriptor.rs index 8461413..c0d3314 100644 --- a/src/descriptor.rs +++ b/src/descriptor.rs @@ -1,4 +1,5 @@ #[derive(Clone, Copy, Debug)] +#[repr(u8)] pub enum DescriptorType { Device = 1, Configuration = 2, @@ -66,3 +67,30 @@ pub struct EndpointDescriptor { pub w_max_packet_size: u16, pub b_interval: u8, } + +#[cfg(test)] +mod test { + use super::*; + + use core::mem; + + #[test] + fn device_descriptor_layout() { + assert_eq!(mem::size_of::(), 18); + } + + #[test] + fn configuration_descriptor_layout() { + assert_eq!(mem::size_of::(), 9); + } + + #[test] + fn interface_descriptor_layout() { + assert_eq!(mem::size_of::(), 9); + } + + #[test] + fn endpoint_descriptor_layout() { + assert_eq!(mem::size_of::(), 7); + } +} diff --git a/src/lib.rs b/src/lib.rs old mode 100755 new mode 100644 index 551824a..742e02c --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,5 @@ +//! Traits for a hardware-agnostic USB host interface. + #![no_std] mod descriptor; -- cgit v1.2.3