Bug 781362 - Delay the start time of some SVG animation reftests to prevent intermittent failures. r=dholbert
authorMatt Woodrow <mwoodrow@mozilla.com>
Mon, 13 Aug 2012 22:11:32 +1200
changeset 102205 1302dc0adcd596b51abd1d0b2b81362aabd715a3
parent 102204 5d8b73612d3371f04cf53bbc44e6839f1e43a399
child 102206 9974441b02526a3e6049d5ef4c2cfb3f4fdaa6ff
push id23269
push useremorley@mozilla.com
push dateMon, 13 Aug 2012 18:08:43 +0000
treeherdermozilla-central@75cdb3f932c6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdholbert
bugs781362
milestone17.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 781362 - Delay the start time of some SVG animation reftests to prevent intermittent failures. r=dholbert
layout/reftests/svg/smil/motion/animateMotion-by-1.svg
layout/reftests/svg/smil/motion/animateMotion-from-to-1.svg
layout/reftests/svg/smil/motion/animateMotion-rotate-1a.svg
layout/reftests/svg/smil/motion/animateMotion-rotate-1b.svg
layout/reftests/svg/smil/motion/animateMotion-rotate-2.svg
layout/reftests/svg/smil/motion/animateMotion-to-overridden-1.svg
layout/reftests/svg/smil/sort/sort-additive-1.svg
--- a/layout/reftests/svg/smil/motion/animateMotion-by-1.svg
+++ b/layout/reftests/svg/smil/motion/animateMotion-by-1.svg
@@ -1,41 +1,41 @@
 <svg xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      class="reftest-wait">
   <script xlink:href="../smil-util.js" type="text/javascript"/>
   <script type="text/javascript">
     function doTest() {
-      setTimeAndSnapshot(1, true);
+      setTimeAndSnapshot(101, true);
     }
     window.addEventListener("MozReftestInvalidate", doTest, false);
   </script>
 
   <!-- Big green background to match lime.svg -->
   <rect width="100%" height="100%" fill="lime"/>
   <!-- Red "workspace" (should be covered up, if tests pass) -->
   <rect x="100" y="100" width="100" height="100" fill="red"/>
 
   <!-- FIRST ROW -->
   <!-- Check that 'by' works at all -->
   <rect fill="lime" x="0" y="0" width="50" height="50">
-    <animateMotion by="100, 100" begin="0" dur="1" fill="freeze"/>
+    <animateMotion by="100, 100" begin="100" dur="1" fill="freeze"/>
   </rect>
 
   <!-- Check that 'by' is additive w/ 'by' -->
   <rect fill="lime" x="50" y="50" width="50" height="50">
-    <animateMotion by="60, 75" begin="0" dur="1" fill="freeze"/>
-    <animateMotion by="40, -25" begin="0" dur="1" fill="freeze"/>
+    <animateMotion by="60, 75" begin="100" dur="1" fill="freeze"/>
+    <animateMotion by="40, -25" begin="100" dur="1" fill="freeze"/>
   </rect>
 
   <!-- SECOND ROW -->
   <!-- Check that 'by' is additive w/ 'to' -->
   <rect fill="lime" width="50" height="50">
-    <animateMotion to="50,100" begin="0" dur="1" fill="freeze"/>
-    <animateMotion by="50, 50" begin="0" dur="1" fill="freeze"/>
+    <animateMotion to="50,100" begin="100" dur="1" fill="freeze"/>
+    <animateMotion by="50, 50" begin="100" dur="1" fill="freeze"/>
   </rect>
 
   <!-- Check that 'from-to' replaces 'by' -->
   <rect fill="lime" width="50" height="50">
-    <animateMotion by="500, 500" begin="0" dur="1" fill="freeze"/>
-    <animateMotion from="300,300" to="150,150" begin="0" dur="1" fill="freeze"/>
+    <animateMotion by="500, 500" begin="100" dur="1" fill="freeze"/>
+    <animateMotion from="300,300" to="150,150" begin="100" dur="1" fill="freeze"/>
   </rect>
 </svg>
--- a/layout/reftests/svg/smil/motion/animateMotion-from-to-1.svg
+++ b/layout/reftests/svg/smil/motion/animateMotion-from-to-1.svg
@@ -1,44 +1,44 @@
 <svg xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      class="reftest-wait">
   <script xlink:href="../smil-util.js" type="text/javascript"/>
   <script type="text/javascript">
     function doTest() {
-      setTimeAndSnapshot(1, true);
+      setTimeAndSnapshot(101, true);
     }
     window.addEventListener("MozReftestInvalidate", doTest, false);
   </script>
 
   <!-- Big green background to match lime.svg -->
   <rect width="100%" height="100%" fill="lime"/>
   <!-- Red "workspace" (should be covered up, if tests pass) -->
   <rect x="100" y="100" width="100" height="100" fill="red"/>
 
   <!-- FIRST ROW -->
   <!-- Check that 'from' gets applied at begin time -->
   <rect fill="lime" x="0" y="0" width="50" height="50">
-    <animateMotion from="100, 100" to="500, 500" begin="1" dur="1"/>
+    <animateMotion from="100, 100" to="500, 500" begin="101" dur="1"/>
   </rect>
 
   <!-- Check that 'to' gets hit at end time -->
   <rect fill="lime" x="0" y="0" width="50" height="50">
-    <animateMotion from="200,200" to="150,100" begin="0" dur="1" fill="freeze"/>
+    <animateMotion from="200,200" to="150,100" begin="100" dur="1" fill="freeze"/>
   </rect>
 
   <!-- SECOND ROW -->
   <!-- Check that animation effects are removed after end time
        (note that fill="remove" is default; just specifying it for clarity -->
   <rect fill="lime" x="100" y="150" width="50" height="50">
-    <animateMotion from="500,500" to="600,600" begin="0" dur="1" fill="remove"/>
+    <animateMotion from="500,500" to="600,600" begin="1000" dur="1" fill="remove"/>
   </rect>
   <rect fill="purple" x="-25" y="-25" width="25" height="25">
     <!-- With the purple rect's x/y offsets, this animateMotion path moves us
          around the 2nd row, 1st col -->
-    <animateMotion from="125,175" to="150,175" begin="0" dur="1" fill="remove"/>
+    <animateMotion from="125,175" to="150,175" begin="100" dur="1" fill="remove"/>
   </rect>
 
   <!-- Check interpolation halfway through animation -->
   <rect fill="lime" width="50" height="50">
-    <animateMotion from="200,100" to="100,200" begin="0.5" dur="1"/>
+    <animateMotion from="200,100" to="100,200" begin="100.5" dur="1"/>
   </rect>
 </svg>
--- a/layout/reftests/svg/smil/motion/animateMotion-rotate-1a.svg
+++ b/layout/reftests/svg/smil/motion/animateMotion-rotate-1a.svg
@@ -6,58 +6,58 @@
     .workspace  { fill: red  }
     .test       { fill: lime }
     .filler     { fill: lime }
   </style>
 
   <script xlink:href="../smil-util.js" type="text/javascript"/>
   <script type="text/javascript">
     function doTest() {
-      setTimeAndSnapshot(1, true);
+      setTimeAndSnapshot(101, true);
     }
     window.addEventListener("MozReftestInvalidate", doTest, false);
   </script>
 
   <!-- Big green background to match lime.svg -->
   <rect class="background" width="100%" height="100%" />
   <!-- Red "workspace" (should be covered up, if tests pass) -->
   <rect class="workspace" x="100" y="100" width="100" height="100"/>
 
   <!-- FIRST ROW -->
   <!-- Check that 'rotate' gets applied at begin time -->
   <g>
     <animateMotion from="150, 100" to="500, 500" rotate="90"
-                   begin="1" dur="1"/>
+                   begin="101" dur="1"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="100" y="120" width="30" height="30"/>
 
   <!-- Check that 'rotate' gets applied at end time -->
   <g>
-    <animateMotion from="600, 700" to="200, 150" rotate="180" begin="0"
+    <animateMotion from="600, 700" to="200, 150" rotate="180" begin="100"
                    dur="1" fill="freeze"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="150" y="100" width="30" height="30"/>
 
   <!-- SECOND ROW -->
   <!-- Check that rotate combines with existing rotate -->
   <g transform="rotate(90)">
     <animateMotion from="150,200" to="600,600" rotate="90"
-                   begin="1" dur="1"/>
+                   begin="101" dur="1"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="100" y="150" width="30" height="30"/>
 
   <!-- Check additivity of <animateMotion> "rotate" adds -->
   <g>
     <animateMotion from="100,100" to="100,200" rotate="90"
-                   begin="0.5" dur="1"/>
+                   begin="100.5" dur="1"/>
     <animateMotion by="100,-200" rotate="90"
-                   begin="0.5" dur="1"/>
+                   begin="100.5" dur="1"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="150" y="150" width="30" height="30"/>
 </svg>
--- a/layout/reftests/svg/smil/motion/animateMotion-rotate-1b.svg
+++ b/layout/reftests/svg/smil/motion/animateMotion-rotate-1b.svg
@@ -6,58 +6,58 @@
     .workspace  { fill: red  }
     .test       { fill: lime }
     .filler     { fill: lime }
   </style>
 
   <script xlink:href="../smil-util.js" type="text/javascript"/>
   <script type="text/javascript">
     function doTest() {
-      setTimeAndSnapshot(1, true);
+      setTimeAndSnapshot(101, true);
     }
     window.addEventListener("MozReftestInvalidate", doTest, false);
   </script>
 
   <!-- Big green background to match lime.svg -->
   <rect class="background" width="100%" height="100%" />
   <!-- Red "workspace" (should be covered up, if tests pass) -->
   <rect class="workspace" x="100" y="100" width="100" height="100"/>
 
   <!-- FIRST ROW -->
   <!-- Check that 'rotate' gets applied at begin time -->
   <g>
     <animateMotion from="150, 100" to="500, 500" rotate="100grad"
-                   begin="1" dur="1"/>
+                   begin="101" dur="1"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="100" y="120" width="30" height="30"/>
 
   <!-- Check that 'rotate' gets applied at end time -->
   <g>
-    <animateMotion from="600, 700" to="200, 150" rotate="200grad" begin="0"
+    <animateMotion from="600, 700" to="200, 150" rotate="200grad" begin="100"
                    dur="1" fill="freeze"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="150" y="100" width="30" height="30"/>
 
   <!-- SECOND ROW -->
   <!-- Check that rotate combines with existing rotate -->
   <g transform="rotate(90)">
     <animateMotion from="150,200" to="600,600" rotate="100grad"
-                   begin="1" dur="1"/>
+                   begin="101" dur="1"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="100" y="150" width="30" height="30"/>
 
   <!-- Check additivity of <animateMotion> "rotate" adds -->
   <g>
     <animateMotion from="100,100" to="100,200" rotate="100grad"
-                   begin="0.5" dur="1"/>
+                   begin="100.5" dur="1"/>
     <animateMotion by="100,-200" rotate="100grad"
-                   begin="0.5" dur="1"/>
+                   begin="100.5" dur="1"/>
     <rect class="test" x="0" y="0" width="20" height="50"/>
     <rect class="test" x="0" y="0" width="50" height="20"/>
   </g>
   <rect class="filler" x="150" y="150" width="30" height="30"/>
 </svg>
--- a/layout/reftests/svg/smil/motion/animateMotion-rotate-2.svg
+++ b/layout/reftests/svg/smil/motion/animateMotion-rotate-2.svg
@@ -20,33 +20,33 @@
          maximum distance from a path that antialiasing of square pixels can
          cause the path to affect. -->
     <path id="marker" d="m0,0 l-10,-30  c-5,-20 25,-20 20,0 z"
           style="fill: currentColor; stroke: lime; stroke-width: 2.83px"/>
   </defs>
   <script xlink:href="../smil-util.js" type="text/javascript"/>
   <script type="text/javascript">
     function doTest() {
-      setTimeAndSnapshot(1, true);
+      setTimeAndSnapshot(101, true);
     }
     window.addEventListener("MozReftestInvalidate", doTest, false);
   </script>
 
   <!-- Big green background to match lime.svg -->
   <rect class="background" width="100%" height="100%" />
   <g transform="translate(50,50)">
     <!-- Here's the hole -->
     <use xlink:href="#marker" class="hole"
          transform="translate(20,20) rotate(45)"/>
 
     <!-- And here's a stack of elements animated with 'animateMotion' that
          should end up there. -->
     <use xlink:href="#marker" class="testBegin">
-      <animateMotion from="20,20" to="40,40" rotate="auto" begin="1s" dur="1s"/>
+      <animateMotion from="20,20" to="40,40" rotate="auto" begin="101s" dur="1s"/>
     </use>
     <use xlink:href="#marker" class="testEnd">
-      <animateMotion by="20,20" rotate="auto" dur="1s" fill="freeze"/>
+      <animateMotion by="20,20" rotate="auto" begin="100" dur="1s" fill="freeze"/>
     </use>
     <use xlink:href="#marker" class="mask">
-      <animateMotion by="40,40" rotate="auto" dur="2s"/>
+      <animateMotion by="40,40" rotate="auto" begin="100s" dur="2s"/>
     </use>
   </g>
 </svg>
--- a/layout/reftests/svg/smil/motion/animateMotion-to-overridden-1.svg
+++ b/layout/reftests/svg/smil/motion/animateMotion-to-overridden-1.svg
@@ -1,61 +1,61 @@
 <svg xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      class="reftest-wait">
   <script xlink:href="../smil-util.js" type="text/javascript"/>
   <script type="text/javascript">
     function doTest() {
-      setTimeAndSnapshot(1, true);
+      setTimeAndSnapshot(101, true);
     }
     window.addEventListener("MozReftestInvalidate", doTest, false);
   </script>
 
   <!-- Big green background to match lime.svg -->
   <rect fill="lime" width="100%" height="100%" />
 
   <!-- In the following pairs of rects, the only pairwise differences are the
        fill-color and the presence of the "to" attribute on the animateMotion
        element.  "to" shouldn't have any effect in these cases, since it has
        lower priority than "values," "path," and "mpath". So in each case, the
        lime rect should cover up the red rect at all times. -->
 
   <!-- Single-point path specified with "values" attribute: -->
   <g transform="translate(0,0)">
     <rect width="20" height="20" fill="red">
-      <animateMotion values="20,0" dur="2"/>
+      <animateMotion values="20,0" dur="2" begin="100"/>
     </rect>
     <rect width="20" height="20" fill="lime">
-      <animateMotion values="20,0" dur="2" to="-50,0"/>
+      <animateMotion values="20,0" dur="2" to="-50,0" begin="100"/>
     </rect>
   </g>
 
   <!-- Multi-point path specified with "values" attribute: -->
   <g transform="translate(0,30)">
     <rect width="20" height="20" fill="red">
-      <animateMotion values="20,0; 80,0" dur="2"/>
+      <animateMotion values="20,0; 80,0" dur="2" begin="100"/>
     </rect>
     <rect width="20" height="20" fill="lime">
-      <animateMotion values="20,0; 80,0" dur="2" to="-50,0"/>
+      <animateMotion values="20,0; 80,0" dur="2" to="-50,0" begin="100"/>
     </rect>
   </g>
 
   <!-- Path specified with "path" attribute: -->
   <g transform="translate(0,60)">
     <rect width="20" height="20" fill="red">
-      <animateMotion path="m0,0 h100" dur="2"/>
+      <animateMotion path="m0,0 h100" dur="2" begin="100"/>
     </rect>
     <rect width="20" height="20" fill="lime">
-      <animateMotion path="m0,0 h100" dur="2" to="-50,0"/>
+      <animateMotion path="m0,0 h100" dur="2" to="-50,0" begin="100"/>
     </rect>
   </g>
 
   <!-- Path specified with "mpath" subelement: -->
   <path id="p" d="m0,0 h100"/>
   <g transform="translate(0,90)">
     <rect width="20" height="20" fill="red">
-      <animateMotion dur="2"><mpath xlink:href="#p"/></animateMotion>
+      <animateMotion dur="2" begin="100"><mpath xlink:href="#p"/></animateMotion>
     </rect>
     <rect width="20" height="20" fill="lime">
-      <animateMotion dur="2" to="-50,0"><mpath xlink:href="#p"/></animateMotion>
+      <animateMotion dur="2" to="-50,0" begin="100"><mpath xlink:href="#p"/></animateMotion>
     </rect>
   </g>
 </svg>
--- a/layout/reftests/svg/smil/sort/sort-additive-1.svg
+++ b/layout/reftests/svg/smil/sort/sort-additive-1.svg
@@ -5,17 +5,17 @@
   <script type="text/ecmascript"><![CDATA[
     function swapAnimations() {
       var high = document.getElementById("high");
       high.parentNode.insertBefore(high, null);
 
       var low = document.getElementById("low");
       low.parentNode.insertBefore(low, low.parentNode.firstChild);
 
-      setTimeAndSnapshot(3.1, true);
+      setTimeAndSnapshot(103.1, true);
     }
     window.addEventListener("MozReftestInvalidate", swapAnimations, false);
   ]]></script>
   <script xlink:href="../smil-util.js" type="text/javascript"/>
   <!-- start line -->
   <line x1="5" x2="5" y1="0" y2="330" stroke="grey" stroke-width="2"
     stroke-dasharray="5,5"/>
   <!-- non-additive line -->
@@ -24,94 +24,93 @@
   <!-- additive line -->
   <line x1="205" x2="205" y1="0" y2="330" stroke="grey" stroke-width="2"
     stroke-dasharray="5,5"/>
   <!-- Not additive group -->
   <!-- additive behaviour defaults to replace so this shouldn't add -->
   <g transform="translate(5, 5)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
     height="30">
-     <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
-     <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
+     <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
+     <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
     </rect>
   </g>
   <!-- Additive group -->
   <!-- We only need to specify additive behaviour on the second animation as
        it will be higher in the animation sandwich -->
   <g transform="translate(5, 45)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
     height="30">
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"
         additive="sum"/>
     </rect>
   </g>
   <!-- Not additive group -->
   <!-- Specifying additive behaviour on the first animation has no effect
        as it is lower in the animation sandwich (begin times are the same
        so the order in the document takes precedence). -->
   <g transform="translate(5, 85)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
       height="30">
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"
         additive="sum"/>
-     <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
+     <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
     </rect>
   </g>
   <!-- Additive group -->
   <!-- The first animation should be composed second as it has a later begin
        time so its additive attribute should apply even though it appears
        first in the document -->
   <g transform="translate(5, 125)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
       height="30">
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"
-        additive="sum" begin="1ms"/>
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
+      <animate attributeName="x" from="0" to="100" begin="100.001s" dur="3s" fill="freeze"
+        additive="sum"/>
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
     </rect>
   </g>
   <!-- Not additive group -->
   <!-- The first animation overrides the second animation because of its
        later begin time. -->
   <g transform="translate(5, 165)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
       height="30">
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"
-        begin="1ms"/>
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"
+      <animate attributeName="x" from="0" to="100" begin="100.001s" dur="3s" fill="freeze"/>
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"
         additive="sum"/>
     </rect>
   </g>
   <!-- Additive group -->
   <!-- Even though additive is replace, by animation is always additive -->
   <g transform="translate(5, 205)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
       height="30">
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
-      <animate attributeName="x" by="100" dur="3s" fill="freeze"
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
+      <animate attributeName="x" by="100" dur="3s" begin="100s" fill="freeze"
         additive="replace"/>
     </rect>
   </g>
   <!-- Not additive group -->
   <!-- This begins as additive, but after the document loads the two animations
        will be swapped giving them the opposite priority and making this not
        additive. -->
   <g transform="translate(5, 245)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
       height="30">
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"
         additive="sum" id="low"/>
     </rect>
   </g>
   <!-- Additive group -->
   <!-- This is the inverse of the above. The animations will have their
        positions in the document swapped effectively making this not additive.
        -->
   <g transform="translate(5, 285)">
     <rect style="stroke: black; fill: lightskyblue" x="0" y="0" width="30"
       height="30">
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"
         additive="sum" id="high"/>
-      <animate attributeName="x" from="0" to="100" dur="3s" fill="freeze"/>
+      <animate attributeName="x" from="0" to="100" begin="100s" dur="3s" fill="freeze"/>
     </rect>
   </g>
 </svg>