mod common;
use common::*;
use serial_test::serial;
use usb_gadget::function::printer::Printer;
#[test]
#[serial]
fn printer() {
init();
let mut builder = Printer::builder();
builder.pnp_string = Some("Rust Printer".to_string());
builder.qlen = Some(20);
let (printer, func) = builder.build();
let reg = reg(func);
println!("printer device at {}", printer.status().path().unwrap().display());
check_host(|_device, cfg| {
let printer_intf = cfg.interface_alt_settings().find(|desc| desc.class() == 7 && desc.subclass() == 1);
assert!(printer_intf.is_some(), "no printer interface (class 7, subclass 1) found on host");
let printer_intf = printer_intf.unwrap();
println!(
"printer interface {}: class={}, subclass={}, protocol={}",
printer_intf.interface_number(),
printer_intf.class(),
printer_intf.subclass(),
printer_intf.protocol(),
);
});
unreg(reg).unwrap();
}