tests: Move tests away from giant macro to individual test.toml files that describe the test
This commit is contained in:
parent
175d131986
commit
7d234956eb
|
@ -2351,6 +2351,17 @@ dependencies = [
|
|||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libtest-mimic"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d7b603516767d1ab23d0de09d023e62966c3322f7148297c35cf3d97aa8b37fa"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"termcolor",
|
||||
"threadpool",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libz-sys"
|
||||
version = "1.1.8"
|
||||
|
@ -3620,6 +3631,7 @@ dependencies = [
|
|||
"log",
|
||||
"lyon",
|
||||
"png",
|
||||
"serde",
|
||||
"smallvec",
|
||||
"swf",
|
||||
"thiserror",
|
||||
|
@ -4375,11 +4387,15 @@ dependencies = [
|
|||
"env_logger",
|
||||
"futures",
|
||||
"image",
|
||||
"libtest-mimic",
|
||||
"pretty_assertions",
|
||||
"regex",
|
||||
"ruffle_core",
|
||||
"ruffle_input_format",
|
||||
"ruffle_render_wgpu",
|
||||
"serde",
|
||||
"toml",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -20,6 +20,7 @@ thiserror = "1.0"
|
|||
wasm-bindgen = { version = "=0.2.83", optional = true }
|
||||
gc-arena = { workspace = true }
|
||||
enum-map = "2.4.2"
|
||||
serde = "1.0.152"
|
||||
|
||||
[dependencies.jpeg-decoder]
|
||||
version = "0.3.0"
|
||||
|
|
|
@ -6,6 +6,7 @@ use crate::error::Error;
|
|||
use crate::shape_utils::DistilledShape;
|
||||
use downcast_rs::{impl_downcast, Downcast};
|
||||
use gc_arena::{Collect, GcCell, MutationContext};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::borrow::Cow;
|
||||
use std::rc::Rc;
|
||||
use swf;
|
||||
|
@ -205,7 +206,7 @@ pub enum Context3DCommand<'gc> {
|
|||
#[derive(Copy, Clone, Debug)]
|
||||
pub struct ShapeHandle(pub usize);
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
#[derive(Copy, Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct ViewportDimensions {
|
||||
/// The dimensions of the stage's containing viewport.
|
||||
pub width: u32,
|
||||
|
|
|
@ -25,3 +25,12 @@ imgtests = ["ruffle_render_wgpu"]
|
|||
approx = "0.5.1"
|
||||
pretty_assertions = "1.3.0"
|
||||
env_logger = "0.10.0"
|
||||
serde = "1.0"
|
||||
toml = "0.5.10"
|
||||
libtest-mimic = "0.6.0"
|
||||
walkdir = "2.3.2"
|
||||
|
||||
[[test]]
|
||||
name = "tests"
|
||||
harness = false
|
||||
path = "tests/regression_tests.rs"
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
# SWF Regression Tests
|
||||
|
||||
Inside [tests/swfs](tests/swfs) is a large collection of automated tests that are based around running a swf and seeing what happens.
|
||||
|
||||
To create a test, make a directory that looks like the following, at minimum:
|
||||
|
||||
- directory/
|
||||
- test.swf
|
||||
- test.toml
|
||||
- output.txt
|
||||
|
||||
As best practice, please also include any source used to make the swf - such as `test.fla` and any actionscript files.
|
||||
|
||||
|
||||
# Test Structure
|
||||
## test.toml
|
||||
Except for `num_frames`, every other field and section is optional.
|
||||
|
||||
```toml
|
||||
num_frames = 1 # The amount of frames of the swf to run
|
||||
sleep_to_meet_frame_rate = false # If true, slow the tick rate to match the movies requested fps rate
|
||||
image = false # If true, capture a screenshot of the movie and compare it against a "known good" image
|
||||
ignore = false # If true, ignore this test. Please comment why, ideally link to an issue, so we know what's up
|
||||
|
||||
# Sometimes floating point math doesn't exactly 100% match between flash and rust.
|
||||
# If you encounter this in a test, the following section will change the output testing from "exact" to "approximate"
|
||||
# (when it comes to floating point numbers, at least.)
|
||||
[approximations]
|
||||
number_patterns = [] # A list of regex patterns with capture groups to additionally treat as approximate numbers
|
||||
epsilon = 0.0 # The upper bound of any rounding errors. Default is the difference between 1.0 and the next largest representable number
|
||||
max_relative = 0.0 # The default relative tolerance for testing values that are far-apart. Default is the difference between 1.0 and the next largest representable number
|
||||
|
||||
# Options for the player used to run this swf
|
||||
[player_options]
|
||||
max_execution_duration = { secs = 15, nanos = 0} # How long can actionscript execute for before being forcefully stopped
|
||||
viewport_dimensions = { width = 100, height = 100, scale_factor = 1 } # The size of the player. Defaults to the swfs stage size
|
||||
```
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 3
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 2
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1,2 @@
|
|||
num_frames = 2
|
||||
image = true
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 2
|
|
@ -0,0 +1 @@
|
|||
num_frames = 2
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 4
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1,2 @@
|
|||
num_frames = 1
|
||||
image = true
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 6
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 2
|
|
@ -0,0 +1 @@
|
|||
num_frames = 5
|
|
@ -0,0 +1 @@
|
|||
num_frames = 3
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 6
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 2
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 3
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 3
|
|
@ -0,0 +1 @@
|
|||
num_frames = 14
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1,4 @@
|
|||
num_frames = 1
|
||||
|
||||
[approximations]
|
||||
epsilon = 3.0
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1,4 @@
|
|||
num_frames = 1
|
||||
|
||||
[approximations]
|
||||
epsilon = 0.1
|
|
@ -0,0 +1,4 @@
|
|||
num_frames = 1
|
||||
|
||||
[approximations]
|
||||
epsilon = 3.0
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1,4 @@
|
|||
num_frames = 1
|
||||
|
||||
[approximations]
|
||||
epsilon = 3.0
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
|
@ -0,0 +1 @@
|
|||
num_frames = 1
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue