tests: Move test framework into its own crate
This commit is contained in:
parent
2f5166790c
commit
673d52f013
|
@ -4254,6 +4254,34 @@ dependencies = [
|
|||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruffle_test_framework"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"approx",
|
||||
"async-channel",
|
||||
"chrono",
|
||||
"env_logger",
|
||||
"futures",
|
||||
"image",
|
||||
"libtest-mimic",
|
||||
"pretty_assertions",
|
||||
"regex",
|
||||
"ruffle_core",
|
||||
"ruffle_input_format",
|
||||
"ruffle_render",
|
||||
"ruffle_render_wgpu",
|
||||
"ruffle_socket_format",
|
||||
"ruffle_video_software",
|
||||
"serde",
|
||||
"toml",
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
"url",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruffle_video"
|
||||
version = "0.1.0"
|
||||
|
@ -4894,26 +4922,9 @@ name = "tests"
|
|||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"approx",
|
||||
"async-channel",
|
||||
"chrono",
|
||||
"env_logger",
|
||||
"futures",
|
||||
"image",
|
||||
"libtest-mimic",
|
||||
"pretty_assertions",
|
||||
"regex",
|
||||
"ruffle_core",
|
||||
"ruffle_input_format",
|
||||
"ruffle_render",
|
||||
"ruffle_render_wgpu",
|
||||
"ruffle_socket_format",
|
||||
"ruffle_video_software",
|
||||
"serde",
|
||||
"toml",
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
"url",
|
||||
"ruffle_test_framework",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ members = [
|
|||
"tests/input-format",
|
||||
"tests/socket-format",
|
||||
"tests/mocket",
|
||||
"tests/framework",
|
||||
]
|
||||
default-members = ["desktop"]
|
||||
resolver = "2"
|
||||
|
|
|
@ -7,39 +7,20 @@ license.workspace = true
|
|||
repository.workspace = true
|
||||
version.workspace = true
|
||||
|
||||
[dependencies]
|
||||
futures = "0.3.29"
|
||||
ruffle_core = { path = "../core", features = ["deterministic", "timeline_debug", "avm_debug", "audio", "mp3", "default_font"] }
|
||||
ruffle_render_wgpu = { path = "../render/wgpu" }
|
||||
ruffle_render = { path = "../render" }
|
||||
ruffle_input_format = { path = "input-format" }
|
||||
ruffle_socket_format = { path = "socket-format" }
|
||||
ruffle_video_software = { path = "../video/software", optional = true }
|
||||
image = { version = "0.24.7", default-features = false, features = ["png"] }
|
||||
regex = "1.10.2"
|
||||
url = "2.4.1"
|
||||
chrono = "0.4.31"
|
||||
|
||||
[features]
|
||||
# Enable running image comparison tests. This is off by default,
|
||||
# since the images we compare against are generated on CI, and may
|
||||
# not match your local machine's Vulkan version / image output.
|
||||
imgtests = ["ruffle_video_software"]
|
||||
jpegxr = ["ruffle_core/jpegxr"]
|
||||
lzma = ["ruffle_core/lzma"]
|
||||
imgtests = ["ruffle_test_framework/imgtests"]
|
||||
jpegxr = ["ruffle_test_framework/jpegxr"]
|
||||
lzma = ["ruffle_test_framework/lzma"]
|
||||
|
||||
[dev-dependencies]
|
||||
approx = "0.5.1"
|
||||
pretty_assertions = "1.4.0"
|
||||
env_logger = "0.10.0"
|
||||
tracing = { workspace = true}
|
||||
tracing-subscriber = { workspace = true }
|
||||
serde = "1.0.190"
|
||||
toml = "0.8.6"
|
||||
ruffle_core = { path = "../core", features = ["deterministic", "timeline_debug", "avm_debug", "audio", "mp3", "default_font"] }
|
||||
ruffle_test_framework = { path = "framework" }
|
||||
libtest-mimic = "0.6.1"
|
||||
walkdir = "2.4.0"
|
||||
anyhow = "1.0.75"
|
||||
async-channel = "1.9.0"
|
||||
|
||||
[[test]]
|
||||
name = "tests"
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
[package]
|
||||
name = "ruffle_test_framework"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
homepage.workspace = true
|
||||
license.workspace = true
|
||||
repository.workspace = true
|
||||
version.workspace = true
|
||||
|
||||
[dependencies]
|
||||
futures = "0.3.29"
|
||||
ruffle_core = { path = "../../core", features = ["deterministic", "timeline_debug", "avm_debug", "audio", "mp3", "default_font"] }
|
||||
ruffle_render_wgpu = { path = "../../render/wgpu" }
|
||||
ruffle_render = { path = "../../render" }
|
||||
ruffle_input_format = { path = "../input-format" }
|
||||
ruffle_socket_format = { path = "../socket-format" }
|
||||
ruffle_video_software = { path = "../../video/software", optional = true }
|
||||
image = { version = "0.24.7", default-features = false, features = ["png"] }
|
||||
regex = "1.10.2"
|
||||
url = "2.4.1"
|
||||
chrono = "0.4.31"
|
||||
approx = "0.5.1"
|
||||
pretty_assertions = "1.4.0"
|
||||
env_logger = "0.10.0"
|
||||
tracing = { workspace = true}
|
||||
tracing-subscriber = { workspace = true }
|
||||
serde = "1.0.190"
|
||||
toml = "0.8.6"
|
||||
libtest-mimic = "0.6.1"
|
||||
walkdir = "2.4.0"
|
||||
anyhow = "1.0.75"
|
||||
async-channel = "1.9.0"
|
||||
|
||||
[features]
|
||||
imgtests = ["ruffle_video_software"]
|
||||
jpegxr = ["ruffle_core/jpegxr"]
|
||||
lzma = ["ruffle_core/lzma"]
|
|
@ -1,6 +1,3 @@
|
|||
// Despite being the older method of defining modules, this is required for test modules
|
||||
// https://doc.rust-lang.org/book/ch11-03-test-organization.html
|
||||
|
||||
pub mod environment;
|
||||
pub mod fs_commands;
|
||||
pub mod image_trigger;
|
||||
|
@ -24,3 +21,18 @@ impl<'a> std::fmt::Debug for PrettyString<'a> {
|
|||
f.write_str(self.0)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_logger() {
|
||||
let _ = env_logger::Builder::from_env(
|
||||
env_logger::Env::default().default_filter_or("info,wgpu_core=warn,wgpu_hal=warn"),
|
||||
)
|
||||
.format_timestamp(None)
|
||||
.is_test(true)
|
||||
.try_init();
|
||||
|
||||
let subscriber = tracing_subscriber::fmt::Subscriber::builder()
|
||||
.with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
|
||||
.finish();
|
||||
// Ignore error if it's already been set
|
||||
let _ = tracing::subscriber::set_global_default(subscriber);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
use crate::util::runner::TestLogBackend;
|
||||
use crate::runner::TestLogBackend;
|
||||
use async_channel::Receiver;
|
||||
use ruffle_core::backend::log::LogBackend;
|
||||
use ruffle_core::backend::navigator::{
|
|
@ -1,6 +1,6 @@
|
|||
use crate::util::environment::wgpu_descriptors;
|
||||
use crate::util::image_trigger::ImageTrigger;
|
||||
use crate::util::runner::TestAudioBackend;
|
||||
use crate::environment::wgpu_descriptors;
|
||||
use crate::image_trigger::ImageTrigger;
|
||||
use crate::runner::TestAudioBackend;
|
||||
use anyhow::{anyhow, Result};
|
||||
use approx::assert_relative_eq;
|
||||
use regex::Regex;
|
|
@ -1,9 +1,9 @@
|
|||
use crate::util::fs_commands::{FsCommand, TestFsCommandProvider};
|
||||
use crate::util::image_trigger::ImageTrigger;
|
||||
use crate::util::navigator::TestNavigatorBackend;
|
||||
use crate::util::options::ImageComparison;
|
||||
use crate::util::test::Test;
|
||||
use crate::util::test_ui::TestUiBackend;
|
||||
use crate::fs_commands::{FsCommand, TestFsCommandProvider};
|
||||
use crate::image_trigger::ImageTrigger;
|
||||
use crate::navigator::TestNavigatorBackend;
|
||||
use crate::options::ImageComparison;
|
||||
use crate::test::Test;
|
||||
use crate::test_ui::TestUiBackend;
|
||||
use anyhow::{anyhow, Result};
|
||||
use ruffle_core::backend::audio::{
|
||||
swf, AudioBackend, AudioMixer, DecodeError, RegisterError, SoundHandle, SoundInstanceHandle,
|
||||
|
@ -138,7 +138,7 @@ pub fn run_swf(
|
|||
let mut images = test.options.image_comparisons.clone();
|
||||
|
||||
let wgpu_descriptors = if cfg!(feature = "imgtests") && !images.is_empty() {
|
||||
crate::util::environment::wgpu_descriptors()
|
||||
crate::environment::wgpu_descriptors()
|
||||
} else {
|
||||
None
|
||||
};
|
|
@ -1,7 +1,7 @@
|
|||
use crate::options::TestOptions;
|
||||
use crate::runner::run_swf;
|
||||
use crate::set_logger;
|
||||
use crate::util::options::TestOptions;
|
||||
use crate::util::runner::run_swf;
|
||||
use crate::util::PrettyString;
|
||||
use crate::PrettyString;
|
||||
use anyhow::{anyhow, Context, Result};
|
||||
use pretty_assertions::Comparison;
|
||||
use ruffle_core::Player;
|
|
@ -1,8 +1,8 @@
|
|||
use crate::external_interface::ExternalInterfaceTestProvider;
|
||||
use crate::set_logger;
|
||||
use crate::util::options::TestOptions;
|
||||
use crate::util::test::Test;
|
||||
use ruffle_core::external::Value as ExternalValue;
|
||||
use ruffle_test_framework::options::TestOptions;
|
||||
use ruffle_test_framework::set_logger;
|
||||
use ruffle_test_framework::test::Test;
|
||||
use std::collections::BTreeMap;
|
||||
use std::path::Path;
|
||||
|
||||
|
|
|
@ -7,28 +7,12 @@ use crate::shared_object::{shared_object_avm1, shared_object_avm2, shared_object
|
|||
use anyhow::Context;
|
||||
use anyhow::Result;
|
||||
use libtest_mimic::{Arguments, Trial};
|
||||
use ruffle_test_framework::test::Test;
|
||||
use std::panic::{catch_unwind, resume_unwind};
|
||||
use std::path::Path;
|
||||
use util::test::Test;
|
||||
|
||||
mod external_interface;
|
||||
mod shared_object;
|
||||
mod util;
|
||||
|
||||
fn set_logger() {
|
||||
let _ = env_logger::Builder::from_env(
|
||||
env_logger::Env::default().default_filter_or("info,wgpu_core=warn,wgpu_hal=warn"),
|
||||
)
|
||||
.format_timestamp(None)
|
||||
.is_test(true)
|
||||
.try_init();
|
||||
|
||||
let subscriber = tracing_subscriber::fmt::Subscriber::builder()
|
||||
.with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
|
||||
.finish();
|
||||
// Ignore error if it's already been set
|
||||
let _ = tracing::subscriber::set_global_default(subscriber);
|
||||
}
|
||||
|
||||
fn is_candidate(args: &Arguments, test_name: &str) -> bool {
|
||||
if let Some(filter) = &args.filter {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::set_logger;
|
||||
use crate::util::options::TestOptions;
|
||||
use crate::util::test::Test;
|
||||
use ruffle_core::backend::storage::{MemoryStorageBackend, StorageBackend};
|
||||
use ruffle_test_framework::options::TestOptions;
|
||||
use ruffle_test_framework::set_logger;
|
||||
use ruffle_test_framework::test::Test;
|
||||
use std::path::Path;
|
||||
|
||||
pub fn shared_object_avm1() -> Result<(), libtest_mimic::Failed> {
|
||||
|
|
Loading…
Reference in New Issue