blob: e62841c624f37085e4ce9f8643f5edd8a5aa4d28 [file] [log] [blame]
// Copyright 2022 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.
use {
anyhow::Error,
diagnostics_data::{Data, Logs},
example_tester::{assert_filtered_logs_eq_to_golden, run_test, Client, Server, TestKind},
fidl::prelude::*,
fidl_examples_canvas_baseline::InstanceMarker,
fuchsia_async as fasync,
fuchsia_component_test::{ChildRef, RealmBuilder},
};
#[fasync::run_singlethreaded(test)]
async fn test_draw_success() -> Result<(), Error> {
let test_name = "test_draw_success";
let client = Client::new(test_name, "#meta/canvas_baseline_client.cm");
let server = Server::new(test_name, "#meta/canvas_baseline_server.cm");
let filter = |raw_log: &&Data<Logs>| {
let msg = raw_log.payload_message().expect("payload not found").properties[0]
.string()
.expect("message is not string");
// C++ warning emitted when killing a thread.
if msg.contains("libc++abi: terminating") {
return false;
}
true
};
run_test(
InstanceMarker::PROTOCOL_NAME,
TestKind::ClientAndServer { client: &client, server: &server },
|builder: RealmBuilder, client: ChildRef| async move {
builder.init_mutable_config_to_empty(&client).await?;
builder
.set_config_value_string_vector(
&client,
"script",
["-5,0:0,0", "-2,2:5,6", "4,-3:-2,-2", "WAIT", "6,-1:7,0", "7,-8:-4,3", "WAIT"],
)
.await?;
Ok::<(RealmBuilder, ChildRef), Error>((builder, client))
},
|raw_logs: Vec<Data<Logs>>| {
assert_filtered_logs_eq_to_golden(&raw_logs, &client, filter);
assert_filtered_logs_eq_to_golden(&raw_logs, &server, filter);
},
)
.await
}