mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2024-11-29 03:00:19 +00:00
fa32ced1e0
Long-term libvda will be replaced with an implementation that can function outside of ChromeOS. In the meantime thes allows crosvm to be built externally and pass clippy with all features enabled. BUG=b:191507399 TEST=Tests in crosvm and cros_sdk both pass: $ ./test_all $ cros_run_unit_tests --package=crosvm Cq-Depend: chromium:2989315, chromium:2986403 Change-Id: Ic37bda4426d69d16cb4bc0d7ba6f81052f6f2f59 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2983505 Tested-by: Dennis Kempin <denniskempin@google.com> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Dennis Kempin <denniskempin@google.com> Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
58 lines
1.7 KiB
Rust
58 lines
1.7 KiB
Rust
// Copyright 2020 The Chromium OS Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
//! Integration tests using LibVDA fake decode implemenation.
|
|
|
|
use libvda::decode::*;
|
|
use libvda::*;
|
|
|
|
fn create_vda_instance() -> VdaInstance {
|
|
VdaInstance::new(VdaImplType::Fake).expect("failed to create VDAInstance")
|
|
}
|
|
|
|
#[test]
|
|
fn test_create_instance() {
|
|
let instance = create_vda_instance();
|
|
let caps = instance.get_capabilities();
|
|
|
|
assert_ne!(caps.input_formats.len(), 0);
|
|
assert_ne!(caps.output_formats.len(), 0);
|
|
}
|
|
|
|
#[test]
|
|
fn test_initialize_decode_session() {
|
|
let instance = create_vda_instance();
|
|
let _session = instance
|
|
.open_session(Profile::VP8)
|
|
.expect("failed to open a session for VP8");
|
|
}
|
|
|
|
#[test]
|
|
fn test_decode_and_get_picture_ready_fake() {
|
|
let instance = create_vda_instance();
|
|
let mut session = instance
|
|
.open_session(Profile::VP8)
|
|
.expect("failed to open a session");
|
|
|
|
// Call decode() with dummy arguments.
|
|
let fake_bitstream_id = 12345;
|
|
session
|
|
.decode(
|
|
fake_bitstream_id,
|
|
1, // fd
|
|
0, // offset
|
|
0, // bytes_used
|
|
)
|
|
.expect("failed to send a decode request");
|
|
|
|
// Since we are using the fake backend,
|
|
// we must get a event immediately after calling decode().
|
|
match session.read_event() {
|
|
Ok(Event::PictureReady { bitstream_id, .. }) => {
|
|
assert_eq!(bitstream_id, fake_bitstream_id);
|
|
}
|
|
Ok(event) => panic!("Obtained event is not PictureReady but {:?}", event),
|
|
Err(msg) => panic!(msg),
|
|
}
|
|
}
|