blob: 036d152cc836469877e5e91f96a644ee99b477a9 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file_contents.
#![cfg(test)]
use anyhow::Error;
use fidl_fuchsia_boot::FactoryItemsMarker;
use fuchsia_async as fasync;
use fuchsia_component::client::connect_to_service;
#[fasync::run_singlethreaded(test)]
async fn test_get_factory_items() -> Result<(), Error> {
let factory_items = connect_to_service::<FactoryItemsMarker>().unwrap();
{
let (vmo_opt, length) =
factory_items.get(0).await.expect("Failed to get factory item with extra=0");
let file_contents = std::fs::read("/pkg/data/empty").unwrap();
let mut buffer = vec![0; length as usize];
vmo_opt.unwrap().read(&mut buffer, 0).unwrap();
assert_eq!(file_contents, buffer);
}
{
let (vmo_opt, length) =
factory_items.get(1).await.expect("Failed to get factory item with extra=1");
let file_contents = std::fs::read("/pkg/data/random1").unwrap();
let mut buffer = vec![0; length as usize];
vmo_opt.unwrap().read(&mut buffer, 0).unwrap();
assert_eq!(file_contents, buffer);
}
{
let (vmo_opt, length) =
factory_items.get(2).await.expect("Failed to get factory item with extra=2");
let file_contents = std::fs::read("/pkg/data/random2").unwrap();
let mut buffer = vec![0; length as usize];
vmo_opt.unwrap().read(&mut buffer, 0).unwrap();
assert_eq!(file_contents, buffer);
}
Ok(())
}
#[fasync::run_singlethreaded(test)]
async fn test_get_factory_items_missing() -> Result<(), Error> {
let factory_items = connect_to_service::<FactoryItemsMarker>().unwrap();
// No item with extra=10 exists on the service.
let (vmo_opt, length) = factory_items.get(10).await.unwrap();
assert_eq!(true, vmo_opt.is_none());
assert_eq!(0, length);
Ok(())
}