tests: Port Shumway's avm1 tests over

This commit is contained in:
Nathan Adams 2023-07-23 23:50:49 +02:00
parent cd9efb2dfa
commit 9c661a14c3
203 changed files with 1170 additions and 0 deletions

View File

@ -0,0 +1,7 @@
concat: a,1,b,[object Object]
pop: b undefined
push: 2 c 2
shift: a b
slice: b true
splice1: b true 2 c
splice2: true 4 d c

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/array
num_frames = 1
ignore = true # https://github.com/ruffle-rs/ruffle/issues/12269

View File

@ -0,0 +1,2 @@
255
true

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/bitmapdata
num_frames = 1

View File

@ -0,0 +1,3 @@
1
1
(x=0, y=0, w=1, h=1)

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/bitmapdata
num_frames = 1

View File

@ -0,0 +1,2 @@
callee = f1: true
caller = f2: true

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/callee
num_frames = 1

View File

@ -0,0 +1,6 @@
getNextHighestDepth before 0
getNextHighestDepth after 2
-16383 t1 -16383
-16381 t2 -16381
0 s1 0
1 s2 1

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/depth
num_frames = 1

View File

@ -0,0 +1,7 @@
root1
sym1: _level0.sym1
test1: undefined
sym1
root2
sym1: _level0.sym1
test2: hello

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/doactionorder
num_frames = 1

View File

@ -0,0 +1,330 @@
<?xml version="1.0" encoding="UTF-8"?>
<swf version="17" compressed="1">
<Header framerate="24" frames="1">
<size>
<Rectangle left="0" right="11000" top="0" bottom="8000"/>
</size>
<tags>
<FileAttributes hasMetaData="1" allowABC="0" suppressCrossDomainCaching="0" swfRelativeURLs="0" useNetwork="0"/>
<Metadata>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about=""> <xmp:CreatorTool>Adobe Flash Professional CS6 - build 537</xmp:CreatorTool> <xmp:CreateDate>2015-04-28T13:11:50-05:00</xmp:CreateDate> <xmp:MetadataDate>2015-04-28T13:35:05-05:00</xmp:MetadataDate> <xmp:ModifyDate>2015-04-28T13:35:05-05:00</xmp:ModifyDate> </rdf:Description> <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:about=""> <dc:format>application/x-shockwave-flash</dc:format> </rdf:Description> <rdf:Description xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" rdf:about=""> <xmpMM:InstanceID>xmp.iid:CAAB283ED5EDE41185DF942595CE2973</xmpMM:InstanceID> <xmpMM:DocumentID>xmp.did:CAAB283ED5EDE41185DF942595CE2973</xmpMM:DocumentID> <xmpMM:OriginalDocumentID>xmp.did:550A6EC8BDEDE41185DF942595CE2973</xmpMM:OriginalDocumentID> <xmpMM:DerivedFrom rdf:parseType="Resource"> <stRef:instanceID>xmp.iid:550A6EC8BDEDE41185DF942595CE2973</stRef:instanceID> <stRef:documentID>xmp.did:550A6EC8BDEDE41185DF942595CE2973</stRef:documentID> <stRef:originalDocumentID>xmp.did:550A6EC8BDEDE41185DF942595CE2973</stRef:originalDocumentID> </xmpMM:DerivedFrom> </rdf:Description> </rdf:RDF>
</Metadata>
<SetBackgroundColor>
<color>
<Color red="255" green="255" blue="255"/>
</color>
</SetBackgroundColor>
<DoAction>
<actions>
<Dictionary>
<strings>
<String value="root1"/>
<String value="sym1: "/>
<String value="sym1"/>
<String value="log"/>
<String value="text"/>
<String value="test1="/>
<String value="test"/>
<String value="&#10;"/>
<String value="test1: "/>
</strings>
</Dictionary>
<PushData>
<items>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<Trace/>
<PushData>
<items>
<StackDictionaryLookup index="1"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<AddTyped/>
<Trace/>
<PushData>
<items>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<GetMember/>
<PushData>
<items>
<StackDictionaryLookup index="5"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetMember/>
<AddTyped/>
<PushData>
<items>
<StackDictionaryLookup index="7"/>
</items>
</PushData>
<AddTyped/>
<AddTyped/>
<SetMember/>
<PushData>
<items>
<StackDictionaryLookup index="8"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetMember/>
<AddTyped/>
<Trace/>
<EndAction/>
</actions>
</DoAction>
<DefineShape objectID="1">
<bounds>
<Rectangle left="0" right="1520" top="0" bottom="920"/>
</bounds>
<styles>
<StyleList>
<fillStyles>
<Solid>
<color>
<Color red="0" green="102" blue="51"/>
</color>
</Solid>
</fillStyles>
<lineStyles/>
</StyleList>
</styles>
<shapes>
<Shape>
<edges>
<ShapeSetup x="1520" y="920" fillStyle1="1"/>
<LineTo x="-1520" y="0"/>
<LineTo x="0" y="-920"/>
<LineTo x="1520" y="0"/>
<LineTo x="0" y="920"/>
<ShapeSetup/>
</edges>
</Shape>
</shapes>
</DefineShape>
<DefineSprite objectID="2" frames="1">
<tags>
<DoAction>
<actions>
<Dictionary>
<strings>
<String value="test"/>
<String value="hello"/>
<String value="sym1"/>
<String value="_parent"/>
<String value="log"/>
<String value="text"/>
<String value="sym1&#10;"/>
</strings>
</Dictionary>
<PushData>
<items>
<StackDictionaryLookup index="0"/>
<StackDictionaryLookup index="1"/>
</items>
</PushData>
<SetLocalVariable/>
<PushData>
<items>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<Trace/>
<PushData>
<items>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<GetMember/>
<PushData>
<items>
<StackDictionaryLookup index="5"/>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<GetMember/>
<PushData>
<items>
<StackDictionaryLookup index="5"/>
</items>
</PushData>
<GetMember/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<AddTyped/>
<SetMember/>
<EndAction/>
</actions>
</DoAction>
<PlaceObject2 replace="0" depth="1" objectID="1">
<transform>
<Transform transX="0" transY="0"/>
</transform>
</PlaceObject2>
<ShowFrame/>
<End/>
</tags>
</DefineSprite>
<PlaceObject2 replace="0" depth="1" objectID="2" name="sym1">
<transform>
<Transform transX="2460" transY="2900"/>
</transform>
</PlaceObject2>
<DefineFont3 objectID="3" isShiftJIS="0" isUnicode="0" isANSII="0" wideGlyphOffsets="0" italic="0" bold="0" language="1" name="_sans">
<glyphs/>
</DefineFont3>
<DefineFontAlignZones objectID="3" csmTableHint="1">
<zoneArrays/>
</DefineFontAlignZones>
<DefineEditText objectID="4" wordWrap="1" multiLine="1" password="0" readOnly="1" autoSize="0" hasLayout="1" notSelectable="1" hasBorder="0" isHTML="1" useOutlines="0" fontRef="3" fontHeight="160" align="0" leftMargin="0" rightMargin="0" indent="0" leading="40" variableName="" initialText="&lt;p align=&quot;left&quot;&gt;&lt;/p&gt;">
<size>
<Rectangle left="-40" right="3600" top="-40" bottom="7100"/>
</size>
<color>
<Color red="0" green="102" blue="51" alpha="255"/>
</color>
</DefineEditText>
<PlaceObject2 replace="0" depth="3" objectID="4" name="log">
<transform>
<Transform transX="11139" transY="360"/>
</transform>
</PlaceObject2>
<DoAction>
<actions>
<Dictionary>
<strings>
<String value="root2"/>
<String value="sym1: "/>
<String value="sym1"/>
<String value="log"/>
<String value="text"/>
<String value="test2="/>
<String value="test"/>
<String value="&#10;"/>
<String value="test2: "/>
</strings>
</Dictionary>
<PushData>
<items>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<Trace/>
<PushData>
<items>
<StackDictionaryLookup index="1"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<AddTyped/>
<Trace/>
<PushData>
<items>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<GetMember/>
<PushData>
<items>
<StackDictionaryLookup index="5"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetMember/>
<AddTyped/>
<PushData>
<items>
<StackDictionaryLookup index="7"/>
</items>
</PushData>
<AddTyped/>
<AddTyped/>
<SetMember/>
<PushData>
<items>
<StackDictionaryLookup index="8"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetMember/>
<AddTyped/>
<Trace/>
<EndAction/>
</actions>
</DoAction>
<ShowFrame/>
<End/>
</tags>
</Header>
</swf>

View File

@ -0,0 +1,4 @@
Class1 constructed
timeline
_level0.test1
test function called

View File

@ -0,0 +1,9 @@
dynamic class Class1 extends MovieClip {
function Class1() {
trace('Class1 constructed');
}
function test() {
trace('test function called');
}
}

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/doactionorder
num_frames = 1

View File

@ -0,0 +1,6 @@
_level0.test
_level0.test1
_level0.test2
_level0.test
_level0.test1
undefined

View File

@ -0,0 +1,4 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/duplicatemovieclip
num_frames = 4
ignore = true # https://github.com/ruffle-rs/ruffle/issues/12270

View File

@ -0,0 +1,4 @@
clone
51
50
100

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/duplicatemovieclip
num_frames = 1

View File

@ -0,0 +1,3 @@
true
true
true

View File

@ -0,0 +1,4 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/duplicatemovieclip
num_frames = 1
ignore = true # https://github.com/ruffle-rs/ruffle/issues/12271

View File

@ -0,0 +1,6 @@
undefined
_level0.test1
undefined
_level0.test2
undefined
undefined

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/duplicatemovieclip
num_frames = 3

View File

@ -0,0 +1,4 @@
available: undefined
after addCallback
call result: undefined
after call

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/externalinterface
num_frames = 1

View File

@ -0,0 +1,150 @@
Filters (7)
DropShadowFilter
distance 5
angle 0
color 0
alpha 1
blurX 5
blurY 5
strength 1
quality 1
inner false
knockout false
hideObject false
BlurFilter
blurX 5
blurY 5
quality 1
GlowFilter
color 16711680
alpha 1
blurX 5
blurY 5
strength 1
quality 1
inner false
knockout false
BevelFilter
distance 5
angle 0
highlightColor 16777215
highlightAlpha 1
shadowColor 0
shadowAlpha 1
blurX 5
blurY 5
strength 1
quality 1
type inner
knockout false
GradientGlowFilter
distance 5
angle 0
colors 16777215,0
alphas 0,1
ratios 0,255
blurX 5
blurY 5
strength 1
quality 1
type outer
knockout false
GradientBevelFilter
distance 5
angle 0
colors 16777215,16711680,0
alphas 1,0,1
ratios 0,128,255
blurX 5
blurY 5
strength 1
quality 1
type inner
knockout false
ColorMatrixFilter
matrix 1,0,0,0,50,0,1,0,0,50,0,0,1,0,50,0,0,0,1,0
Filters (9)
BevelFilter
distance 1
angle 1
highlightColor 12
highlightAlpha 1
shadowColor 34
shadowAlpha 1
blurX 2
blurY 3
strength 1
quality 1
type inner
knockout false
BlurFilter
blurX 2
blurY 3
quality 1
ColorMatrixFilter
matrix 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0
ConvolutionFilter
matrixX 3
matrixY 3
matrix 1,2,3,4,5,6,7,8,9
divisor 1
bias 1
preserveAlpha false
clamp false
color 123
alpha 1
DisplacementMapFilter
mapBitmap [object Object]
mapPoint (x=1, y=2)
componentX 1
componentY 1
scaleX 2
scaleY 2
mode clamp
color 2
alpha 1
DropShadowFilter
distance 2
angle 1
color 23
alpha 1
blurX 4
blurY 2
strength 1
quality 1
inner true
knockout true
hideObject false
GlowFilter
color 321
alpha 1
blurX 4
blurY 2
strength 1
quality 1
inner false
knockout false
GradientBevelFilter
distance 2
angle 1
colors 23,12,42
alphas 0,1,1
ratios 0,25,255
blurX 5
blurY 4
strength 5
quality 2
type full
knockout true
GradientGlowFilter
distance 1
angle 1
colors 3,4,5
alphas 1,1,1
ratios 0,50,255
blurX 1
blurY 2
strength 1
quality 1
type inner
knockout false

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/filters
num_frames = 1
ignore = true # https://github.com/ruffle-rs/ruffle/issues/12272

View File

@ -0,0 +1,2 @@
0
Sprite with no ShowFrame

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/haxe
num_frames = 1

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<swf version="17" compressed="1">
<Header framerate="24" frames="1">
<size>
<Rectangle left="0" right="11000" top="0" bottom="8000"/>
</size>
<tags>
<FileAttributes hasMetaData="0" allowABC="0" suppressCrossDomainCaching="0" swfRelativeURLs="0" useNetwork="0"/>
<SetBackgroundColor>
<color>
<Color red="255" green="255" blue="255"/>
</color>
</SetBackgroundColor>
<DefineSprite objectID="1" frames="1">
<tags>
<End/>
</tags>
</DefineSprite>
<Export>
<symbols>
<Symbol objectID="1" name="A"/>
</symbols>
</Export>
<DoAction>
<actions>
<Dictionary>
<strings>
<String value="A"/>
<String value="attachMovie"/>
<String value="_x"/>
<String value="Sprite with no ShowFrame"/>
</strings>
</Dictionary>
<PushData>
<items>
<StackInteger value="1"/>
<StackDictionaryLookup index="0"/>
<StackDictionaryLookup index="0"/>
<StackInteger value="3"/>
<StackDictionaryLookup index="1"/>
</items>
</PushData>
<CallFunction/>
<Pop/>
<PushData>
<items>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetMember/>
<Trace/>
<PushData>
<items>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<Trace/>
<GetURL url="FSCommand:quit" target=""/>
<EndAction/>
</actions>
</DoAction>
<ShowFrame/>
<End/>
</tags>
</Header>
</swf>

View File

@ -0,0 +1,3 @@
Test
Test
Done

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/haxe
num_frames = 1

View File

@ -0,0 +1,6 @@
[
{
"type": "MouseMove",
"pos": [250.0, 300.0]
}
]

View File

@ -0,0 +1,4 @@
undefined
_level0.hit
rollover
1

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/hitarea
num_frames = 7

View File

@ -0,0 +1,4 @@
Frame 1
Frame 3
Frame 5
Frame 6

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/label
num_frames = 7

View File

@ -0,0 +1,9 @@
level 0
true
true
_level0
level 9
false
true
true
_level9

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/levels
num_frames = 2

View File

@ -0,0 +1,9 @@
start
1b2
b
1b2c
c
1b3
b
1b3c
c

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/loadevent
num_frames = 1

View File

@ -0,0 +1 @@
foo=bar&spaced+var=value&spacedvalue=multi+word&escaped=with%26amp%3Bamp%3B&varsLoaded=1

View File

@ -0,0 +1,7 @@
loadVariables completed. Loaded the following vars:
varsLoaded=1
escaped=with&amp;amp;
spacedvalue=multi word
spaced var=value
foo=bar

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/loadvariables
num_frames = 2

View File

@ -0,0 +1 @@
var1=test&var2=test2

View File

@ -0,0 +1,2 @@
loaded true
var1: test

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/loadvariables
num_frames = 2

View File

@ -0,0 +1,3 @@
_root.label1 _root
label1 scope
label1(2) scope

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/lookup
num_frames = 10
sleep_to_meet_frame_rate = true

View File

@ -0,0 +1,19 @@
[
{
"type": "Wait"
},
{
"type": "MouseMove",
"pos": [55.0, 55.0]
},
{
"type": "MouseDown",
"pos": [55.0, 55.0],
"btn": "Left"
},
{
"type": "MouseUp",
"pos": [55.0, 55.0],
"btn": "Left"
}
]

View File

@ -0,0 +1,17 @@
// mouse-transparency.swf test script
run_test = function (t, file) {
print ("Testing " + file);
t.reset (file);
var expected = Buffer.load (file + ".trace");
t.advance (50);
t.mouse_press (55, 55);
t.mouse_release (55, 55);
var diff = t.trace.diff (expected);
};
t = new Test ();
for (var i = 0; i < filenames.length; i++) {
run_test (t, filenames[i]);
}

View File

@ -0,0 +1 @@
release

View File

@ -0,0 +1,3 @@
# Test adapted from Shumway at https://github.com/mozilla/shumway/tree/master/test/swfs/avm1/mouse-transparency
num_frames = 2

Some files were not shown because too many files have changed in this diff Show More