Răsfoiți Sursa

Adding TTD test that verifies multiple reactions on a single handler

Mike Kaufman 7 ani în urmă
părinte
comite
ae2ae5cba5

+ 47 - 0
test/TTBasic/promise_MultipleThenCalls.js

@@ -0,0 +1,47 @@
+//-------------------------------------------------------------------------------------------------------
+// Copyright (C) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
+//-------------------------------------------------------------------------------------------------------
+
+let val = -7
+
+let turi = '';
+let elog = () => {};
+let tlog = (msg, val) => { console.log(msg); }
+if (typeof telemetryLog !== 'undefined') {
+    tlog = telemetryLog;
+    elog = emitTTDLog;
+    turi = ttdLogURI;
+}
+
+function addThens()
+{
+    let resolveFunc;
+    const p = new Promise((resolve, reject) => {
+        resolveFunc = resolve;
+    });
+    
+    WScript.SetTimeout(() => {
+        p.then(() => {
+            val = val * 3;
+        });
+    }, 200);
+    
+    WScript.SetTimeout(() => {        
+        p.then(() => {
+            val = val + 21
+        });
+    }, 300);
+
+    WScript.SetTimeout(resolveFunc, 400);
+    WScript.SetTimeout(testFunction, 1000);
+}
+
+WScript.SetTimeout(addThens, 100);
+
+function testFunction()
+{
+    tlog(`val is ${val} (Expect 0)`, true);
+
+    elog(turi);
+}

+ 1 - 0
test/TTBasic/promise_MultipleThenCallsRecord.baseline

@@ -0,0 +1 @@
+val is 0 (Expect 0)

+ 3 - 0
test/TTBasic/promise_MultipleThenCallsReplay.baseline

@@ -0,0 +1,3 @@
+val is 0 (Expect 0)
+
+Reached end of Execution -- Exiting.

+ 64 - 0
test/TTBasic/rlexe.xml

@@ -536,6 +536,70 @@
       <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
     </default>
   </test>
+  <test>
+    <default>
+      <files>promise_MultipleThenCalls.js</files>
+      <compile-flags>-TTRecord=promise_MultipleThenCallsTest -TTSnapInterval=0</compile-flags>
+      <baseline>promise_MultipleThenCallsRecord.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>ttdSentinal.js</files>
+      <compile-flags>-TTReplay=promise_MultipleThenCallsTest -TTDStartEvent=1</compile-flags>
+      <baseline>promise_MultipleThenCallsReplay.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>ttdSentinal.js</files>
+      <compile-flags>-TTReplay=promise_MultipleThenCallsTest -TTDStartEvent=2</compile-flags>
+      <baseline>promise_MultipleThenCallsReplay.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>ttdSentinal.js</files>
+      <compile-flags>-TTReplay=promise_MultipleThenCallsTest -TTDStartEvent=3</compile-flags>
+      <baseline>promise_MultipleThenCallsReplay.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>ttdSentinal.js</files>
+      <compile-flags>-TTReplay=promise_MultipleThenCallsTest -TTDStartEvent=4</compile-flags>
+      <baseline>promise_MultipleThenCallsReplay.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>ttdSentinal.js</files>
+      <compile-flags>-TTReplay=promise_MultipleThenCallsTest -TTDStartEvent=5</compile-flags>
+      <baseline>promise_MultipleThenCallsReplay.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>ttdSentinal.js</files>
+      <compile-flags>-TTReplay=promise_MultipleThenCallsTest -TTDStartEvent=6</compile-flags>
+      <baseline>promise_MultipleThenCallsReplay.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>ttdSentinal.js</files>
+      <compile-flags>-TTReplay=promise_MultipleThenCallsTest -TTDStartEvent=7</compile-flags>
+      <baseline>promise_MultipleThenCallsReplay.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_jshost,exclude_snap,exclude_serialized</tags>
+    </default>
+  </test>
   <test>
     <default>
       <files>proxy.js</files>