Skip to content

Commit

Permalink
avm1/tests: Replace unit tests for global functions with SWF tests
Browse files Browse the repository at this point in the history
Added 3 tests for SWFv5, SWFv6, and SWFv7
  • Loading branch information
Lord-McSweeney authored and Lord-McSweeney committed Mar 1, 2025
1 parent 644d167 commit 7d4578e
Show file tree
Hide file tree
Showing 13 changed files with 729 additions and 178 deletions.
178 changes: 0 additions & 178 deletions core/src/avm1/globals.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1026,181 +1026,3 @@ pub fn remove_display_object<'gc>(this: DisplayObject<'gc>, activation: &mut Act
}
}
}

#[cfg(test)]
#[allow(clippy::unreadable_literal)]
mod tests {
use super::*;

fn setup<'gc>(activation: &mut Activation<'_, 'gc>) -> Object<'gc> {
create_globals(activation.strings()).1
}

test_method!(boolean_function, "Boolean", setup,
[19] => {
[true] => true,
[false] => false,
[10.0] => true,
[-10.0] => true,
[0.0] => false,
[f64::INFINITY] => true,
[f64::NAN] => false,
[""] => false,
["Hello"] => true,
[" "] => true,
["0"] => true,
["1"] => true,
[Value::Undefined] => false,
[Value::Null] => false,
[] => Value::Undefined
},
[6] => {
[true] => true,
[false] => false,
[10.0] => true,
[-10.0] => true,
[0.0] => false,
[f64::INFINITY] => true,
[f64::NAN] => false,
[""] => false,
["Hello"] => false,
[" "] => false,
["0"] => false,
["1"] => true,
[Value::Undefined] => false,
[Value::Null] => false,
[] => Value::Undefined
}
);

test_method!(is_nan_function, "isNaN", setup,
[19] => {
[true] => false,
[false] => false,
[10.0] => false,
[-10.0] => false,
[0.0] => false,
[f64::INFINITY] => false,
[f64::NAN] => true,
[""] => true,
["Hello"] => true,
[" "] => true,
[" 5 "] => true,
["0"] => false,
["1"] => false,
["Infinity"] => true,
["100a"] => true,
["0x10"] => false,
["0xhello"] => true,
["0x1999999981ffffff"] => false,
["0xUIXUIDFKHJDF012345678"] => true,
["123e-1"] => false,
[] => true
}
);

test_method!(is_finite, "isFinite", setup,
[19] => {
[true] => true,
[false] => true,
[10.0] => true,
[-10.0] => true,
[0.0] => true,
[f64::INFINITY] => false,
[f64::NEG_INFINITY] => false,
[f64::NAN] => false,
[""] => false,
["Hello"] => false,
[" "] => false,
[" 5 "] => false,
["0"] => true,
["1"] => true,
["Infinity"] => false,
["-Infinity"] => false,
["100a"] => false,
["0x10"] => true,
["0xhello"] => false,
["0x1999999981ffffff"] => true,
["0xUIXUIDFKHJDF012345678"] => false,
["123e-1"] => true,
[Value::Undefined] => false,
[Value::Null] => false,
[] => false
}
);

test_method!(number_function, "Number", setup,
[5, 6] => {
[true] => 1.0,
[false] => 0.0,
[10.0] => 10.0,
[-10.0] => -10.0,
["true"] => f64::NAN,
["false"] => f64::NAN,
[1.0] => 1.0,
[0.0] => 0.0,
[0.000] => 0.0,
["0.000"] => 0.0,
["True"] => f64::NAN,
["False"] => f64::NAN,
[f64::NAN] => f64::NAN,
[f64::INFINITY] => f64::INFINITY,
[f64::NEG_INFINITY] => f64::NEG_INFINITY,
[" 12"] => 12.0,
[" \t\r\n12"] => 12.0,
["\u{A0}12"] => f64::NAN,
[" 0x12"] => f64::NAN,
["01.2"] => 1.2,
[""] => f64::NAN,
["Hello"] => f64::NAN,
[" "] => f64::NAN,
[" 5 "] => f64::NAN,
["0"] => 0.0,
["1"] => 1.0,
["Infinity"] => f64::NAN,
["-Infinity"] => f64::NAN,
["inf"] => f64::NAN,
["-inf"] => f64::NAN,
["100a"] => f64::NAN,
["0xhello"] => f64::NAN,
["123e-1"] => 12.3,
["0xUIXUIDFKHJDF012345678"] => f64::NAN,
[] => 0.0
},
[5] => {
["0x12"] => f64::NAN,
["0x10"] => f64::NAN,
["0x1999999981ffffff"] => f64::NAN,
["010"] => 10,
["-010"] => -10,
["+010"] => 10,
[" 010"] => 10,
[" -010"] => -10,
[" +010"] => 10,
["037777777777"] => 37777777777.0,
["-037777777777"] => -37777777777.0
},
[6, 7] => {
["0x12"] => 18.0,
["0x10"] => 16.0,
["-0x10"] => f64::NAN,
["0x1999999981ffffff"] => -2113929217.0,
["010"] => 8,
["-010"] => -8,
["+010"] => 8,
[" 010"] => 10,
[" -010"] => -10,
[" +010"] => 10,
["037777777777"] => -1,
["-037777777777"] => 1
},
[5, 6] => {
[Value::Undefined] => 0.0,
[Value::Null] => 0.0
},
[7] => {
[Value::Undefined] => f64::NAN,
[Value::Null] => f64::NAN
}
);
}
Loading

0 comments on commit 7d4578e

Please sign in to comment.