From f3dee5c310f0c17d486c4ff26b4984ad88f54d71 Mon Sep 17 00:00:00 2001 From: David Wendt Date: Mon, 24 Feb 2020 18:01:57 -0500 Subject: [PATCH] Add (currently failing) test for constructors. --- core/tests/regression_tests.rs | 1 + core/tests/swfs/avm2/constructor_call/Test.as | 14 ++++++++++++++ core/tests/swfs/avm2/constructor_call/output.txt | 3 +++ core/tests/swfs/avm2/constructor_call/test.fla | Bin 0 -> 3985 bytes core/tests/swfs/avm2/constructor_call/test.swf | Bin 0 -> 705 bytes 5 files changed, 18 insertions(+) create mode 100644 core/tests/swfs/avm2/constructor_call/Test.as create mode 100644 core/tests/swfs/avm2/constructor_call/output.txt create mode 100644 core/tests/swfs/avm2/constructor_call/test.fla create mode 100644 core/tests/swfs/avm2/constructor_call/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index bce5b6481..e9137bf9f 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -229,6 +229,7 @@ swf_tests! { (context_menu_item, "avm1/context_menu_item", 1), (as3_hello_world, "avm2/hello_world", 1), (as3_function_call, "avm2/function_call", 1), + (as3_constructor_call, "avm2/constructor_call", 1), } // TODO: These tests have some inaccuracies currently, so we use approx_eq to test that numeric values are close enough. diff --git a/core/tests/swfs/avm2/constructor_call/Test.as b/core/tests/swfs/avm2/constructor_call/Test.as new file mode 100644 index 000000000..ab4401bb1 --- /dev/null +++ b/core/tests/swfs/avm2/constructor_call/Test.as @@ -0,0 +1,14 @@ +package { + public class Test { + } +} + +class Test2 { + function Test2(v1, v2, v3) { + trace(v1); + trace(v2); + trace(v3); + } +} + +new Test2("arg1", "arg2", "arg3"); \ No newline at end of file diff --git a/core/tests/swfs/avm2/constructor_call/output.txt b/core/tests/swfs/avm2/constructor_call/output.txt new file mode 100644 index 000000000..6a8e7e73b --- /dev/null +++ b/core/tests/swfs/avm2/constructor_call/output.txt @@ -0,0 +1,3 @@ +arg1 +arg2 +arg3 diff --git a/core/tests/swfs/avm2/constructor_call/test.fla b/core/tests/swfs/avm2/constructor_call/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..84376c02ef3abb67f80e2788b6e658e5112c93b8 GIT binary patch literal 3985 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 literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm2/constructor_call/test.swf b/core/tests/swfs/avm2/constructor_call/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..6104d91193c5c1cf7756101a328298ed24d28e13 GIT binary patch literal 705 zcmV;y0zUmiS5qr|1ONbdoSjl_Pt#BozAtTW+ih$JjDb!-<_7~A?T|!9jK<;1Fa!-m z`LKqS?#|WhEp0dToAHP)rjs|((NqlLG1_%_ zo6nmF9ZmkE0)Uf3d7&1Ow#WToMTi9<^0uE_eNYtF!pc?PZUFM2-n5I`w%guwTfFJE z`O0s!?%6GFF8w2F6qQ6>W#{lccLM#AP9D;wuJWrFHR7W+5&-y(e9iT{P5YC!-RZl$ z)O5R3*D@+mlMlC!&uX! zCKQbISQ6^Ygw(=Y7~KmcfEfiiJ#5_4Pj7}ehX!?JM<*cxuL@IWO9O)=K@>Bpaif|r ns$)hqX;fwS_DME64e9hwn1Pf>6SL=Ud+pkx$Kd$|gOo3zB-&l4 literal 0 HcmV?d00001