<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>231790</bug_id>
          
          <creation_ts>2021-10-14 18:22:04 -0700</creation_ts>
          <short_desc>[webkitpy] webkit-test-runner doesn&apos;t report all results when a test is run several times</short_desc>
          <delta_ts>2021-10-25 08:17:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229788</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=231241</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=231999</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>clopez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804634</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-10-14 18:22:04 -0700</bug_when>
    <thetext>webkit-test-runner is not correctly reporting flaky tests when a test is run more than once (for example, when passing the flag --repeat-each=X or when specifiyng the test twice or more on the command line).

This is due to how webkit-test-runner accounts the test result values 

This is what is happening when passing the flag --repeat-each=X is passed:

 1. Run the test X times and if it fails on any of those times, annotate one of the failure types (for example: timeout)
 2. Repeat the test one run more (on the retry step) and if it gives any different result than the failure previously annotated then mark the test as &quot; Valuefrom_1 | Valuefrom_retry&quot;

And this has several issues

- The first issue is that when on the step 1 a test gives different results like: &quot;Pass, Timeout, Fail&quot; webkit-test-runner only picks one of the failures.

For example, for a test that gives

 - Pass
 - Pass
 - Timeout
 - Failure
 - Pass
 - Failure
 - Timeout
 - Pass

It will pick &quot;Timeout&quot; as the value from the first run.

Then on the retry step, suppose the test gives &quot;Pass&quot;

So webkit-test-runner will mark the test as flaky  &quot;[ Timeout Pass ]&quot;, which is wrong as it has ignored completely the &quot;Failure&quot; value.


 - And the second issue happens when you pass the flag &quot;--no-retry-failures&quot;. Since there is no retry step then it just picks the last failure value.

So on the previous example it will just mark the test as &quot;[ Timeout ]&quot; and it will not report the test as flaky.




You can verify the current bug with the following patch that adds a test named fast/random/fails-timeout-pass.html that will &quot;Pass|Fail|Timeout&quot; with equal probability (1/3 of the times)
 
So to test this apply the patch: http://sprunge.us/88Ks7Y and run webkit-test-runner as follows:


1.

$ Tools/Scripts/run-webkit-tests --debug-rwt-logging --release --repeat-each=10 --time-out-ms=1000 fast/random/fails-timeout-pass.html

You should see the above behaviour (it picks only one failure value from the first try and then the value of the retry step (if different))

2.
Now try to run it passing &quot;--no-retry-failures&quot;

$ Tools/Scripts/run-webkit-tests --debug-rwt-logging --release --repeat-each=10 --time-out-ms=1000 --no-retry-failures fast/random/fails-timeout-pass.html

And you will see that it just picks only one failure value, ignoring any pass and any other different failure value


Note: if you get a python KeyError exception then apply the fix from bug 229788 (if still didn&apos;t landed)


See for example this test run that just happened here http://sprunge.us/CRNNCn :

 - On the first 10 retries it gave &quot;pass, pass, fail, pass, fail, timeout, timeout, pass, fail, timeout&quot; and on the retry step it gave &quot;timeout&quot; and WTR marked this as  [ Timeout ] (no flaky)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804640</commentid>
    <comment_count>1</comment_count>
      <attachid>441316</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-10-14 18:43:16 -0700</bug_when>
    <thetext>Created attachment 441316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807488</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-21 18:23:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/84531445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808203</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-10-24 05:32:56 -0700</bug_when>
    <thetext>ping reviewers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808407</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-25 08:17:53 -0700</bug_when>
    <thetext>Committed r284784 (243493@main): &lt;https://commits.webkit.org/243493@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441316.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441316</attachid>
            <date>2021-10-14 18:43:16 -0700</date>
            <delta_ts>2021-10-25 08:17:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231790-20211015024230.patch</filename>
            <type>text/plain</type>
            <size>5013</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjIyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjVjNTgwZGFiNjNhNjg4YWVmYzQ2NzkxN2EwN2VhZjE0
YzkzYmNjNy4uNmU4MmU3Y2QzZmU4Nzk5ZDExMDk5ZGRiNGVmMDExN2MzY2JmNDU0ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDIxLTEwLTE0ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFt3ZWJraXRweV0gd2Via2l0LXRlc3QtcnVubmVyIGRvZXNuJ3Qg
cmVwb3J0IGFsbCByZXN1bHRzIHdoZW4gYSB0ZXN0IGlzIHJ1biBzZXZlcmFsIHRpbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3OTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXVFIgd2FzIG9ubHkg
cGlja2luZyBvbmUgb2YgdGhlIGZhaWx1cmUgcmVzdWx0cyB3aGVuIGEgdGVzdCB3YXMgcnVuIG1v
cmUgdGhhbiBvbmNlCisgICAgICAgIChmb3IgZXhhbXBsZSB3aXRoIHRoZSBmbGFnIC0tcmVwZWF0
LWVhY2g9WCksIHNvIGl0IHdhcyBub3QgcmVwb3J0aW5nIGFsbCB0aGUgdmFsdWVzCisgICAgICAg
IHRoYXQgdGhlIHRlc3QgZ2VuZXJhdGVkLiBUaGlzIGlzIGEgbWFqb3IgaXNzdWUgd2hlbiBzZWFy
Y2hpbmcgZm9yIGZsYWt5IHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRpY3Rp
b25hcnkgdG8gc3RvcmUgYWxsIHRoZSByZXN1bHRzIG9mIGEgZ2l2ZW4gdGVzdCBvbiB0aGUgcmVw
ZWF0ZWQKKyAgICAgICAgcmVwZWF0cyBhbmQgdGhlbiBpdCBlbnN1cmVzIHRob3NlIHZhbHVlcyBh
cmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gcmVwb3J0aW5nIHRoZQorICAgICAgICBmaW5hbCBy
ZXN1bHRzIGZvciB0aGUgdGVzdC4gSXQgbWFya3MgdGhlIHRlc3QgYXMgZmxha3kgaWYgbW9yZSB0
aGFuIG9uZSBkaWZmZXJlbnQgdmFsdWUKKyAgICAgICAgd2FzIGdlbmVyYXRlZC4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRz
LnB5OgorICAgICAgICAoVGVzdFJ1blJlc3VsdHMuX19pbml0X18pOgorICAgICAgICAoVGVzdFJ1
blJlc3VsdHMuYWRkKToKKyAgICAgICAgKFRlc3RSdW5SZXN1bHRzLm1lcmdlKToKKyAgICAgICAg
KHN1bW1hcml6ZV9yZXN1bHRzKToKKwogMjAyMS0xMC0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBzb21lIGlPUyBidWlsZHMgYWZ0
ZXIgcjI4NDIwMwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQppbmRleCAyODgxYzc2MGE4ZTU5
Y2E3NzVkODYxNGQ5YTNiYzNmZDFkOGZmMTBkLi5lYWIzYmQ4ZjgyY2RlNmY5YmNiOWZjMTE1YTg2
ZjczNWVlNGRhMzZjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQpAQCAtNTgsNiArNTgs
NyBAQCBjbGFzcyBUZXN0UnVuUmVzdWx0cyhvYmplY3QpOgogICAgICAgICBzZWxmLmV4cGVjdGVk
X3Jlc3VsdHNfYnlfbmFtZSA9IHt9CiAgICAgICAgIHNlbGYudW5leHBlY3RlZF9yZXN1bHRzX2J5
X25hbWUgPSB7fQogICAgICAgICBzZWxmLmZhaWx1cmVzX2J5X25hbWUgPSB7fQorICAgICAgICBz
ZWxmLnJlcGVhdGVkX3Jlc3VsdHNfYnlfbmFtZSA9IHt9ICAjIE1hcCBvZiB0ZXN0IG5hbWUgdG8g
YSBsaXN0IG9mIHJlc3VsdHMsIHdoZW4gYSB0ZXN0cyBpcyBydW4gbW9yZSB0aGFuIG9uY2UgKGxp
a2Ugd2hlbiBwYXNzaW5nIC0tcmVwZWF0LWVhY2gpCiAgICAgICAgIHNlbGYudG90YWxfZmFpbHVy
ZXMgPSAwCiAgICAgICAgIHNlbGYuZXhwZWN0ZWRfc2tpcHMgPSAwCiAgICAgICAgIGZvciBleHBl
Y3RhdGlvbiBpbiB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9O
Uy52YWx1ZXMoKToKQEAgLTcwLDYgKzcxLDkgQEAgY2xhc3MgVGVzdFJ1blJlc3VsdHMob2JqZWN0
KToKIAogICAgIGRlZiBhZGQoc2VsZiwgdGVzdF9yZXN1bHQsIGV4cGVjdGVkKToKICAgICAgICAg
c2VsZi50ZXN0c19ieV9leHBlY3RhdGlvblt0ZXN0X3Jlc3VsdC50eXBlXS5hZGQodGVzdF9yZXN1
bHQudGVzdF9uYW1lKQorICAgICAgICBpZiB0ZXN0X3Jlc3VsdC50ZXN0X25hbWUgbm90IGluIHNl
bGYucmVwZWF0ZWRfcmVzdWx0c19ieV9uYW1lOgorICAgICAgICAgICAgc2VsZi5yZXBlYXRlZF9y
ZXN1bHRzX2J5X25hbWVbdGVzdF9yZXN1bHQudGVzdF9uYW1lXSA9IHNldCgpCisgICAgICAgIHNl
bGYucmVwZWF0ZWRfcmVzdWx0c19ieV9uYW1lW3Rlc3RfcmVzdWx0LnRlc3RfbmFtZV0uYWRkKHRl
c3RfcmVzdWx0LnR5cGUpCiAgICAgICAgIHNlbGYucmVzdWx0c19ieV9uYW1lW3Rlc3RfcmVzdWx0
LnRlc3RfbmFtZV0gPSBzZWxmLnJlc3VsdHNfYnlfbmFtZS5nZXQodGVzdF9yZXN1bHQudGVzdF9u
YW1lLCB0ZXN0X3Jlc3VsdCkKICAgICAgICAgaWYgdGVzdF9yZXN1bHQuaXNfb3RoZXJfY3Jhc2g6
CiAgICAgICAgICAgICByZXR1cm4KQEAgLTE1OCw2ICsxNjIsNyBAQCBjbGFzcyBUZXN0UnVuUmVz
dWx0cyhvYmplY3QpOgogICAgICAgICBzZWxmLnVuZXhwZWN0ZWRfdGltZW91dHMgKz0gdGVzdF9y
dW5fcmVzdWx0cy51bmV4cGVjdGVkX3RpbWVvdXRzCiAgICAgICAgIHNlbGYudGVzdHNfYnlfZXhw
ZWN0YXRpb24gPSBtZXJnZV9kaWN0X3NldHMoc2VsZi50ZXN0c19ieV9leHBlY3RhdGlvbiwgdGVz
dF9ydW5fcmVzdWx0cy50ZXN0c19ieV9leHBlY3RhdGlvbikKICAgICAgICAgc2VsZi50ZXN0c19i
eV90aW1lbGluZSA9IG1lcmdlX2RpY3Rfc2V0cyhzZWxmLnRlc3RzX2J5X3RpbWVsaW5lLCB0ZXN0
X3J1bl9yZXN1bHRzLnRlc3RzX2J5X3RpbWVsaW5lKQorICAgICAgICBzZWxmLnJlcGVhdGVkX3Jl
c3VsdHNfYnlfbmFtZSA9IG1lcmdlX2RpY3Rfc2V0cyhzZWxmLnJlcGVhdGVkX3Jlc3VsdHNfYnlf
bmFtZSwgdGVzdF9ydW5fcmVzdWx0cy5yZXBlYXRlZF9yZXN1bHRzX2J5X25hbWUpCiAgICAgICAg
IHNlbGYucmVzdWx0c19ieV9uYW1lLnVwZGF0ZSh0ZXN0X3J1bl9yZXN1bHRzLnJlc3VsdHNfYnlf
bmFtZSkKICAgICAgICAgc2VsZi5hbGxfcmVzdWx0cyArPSB0ZXN0X3J1bl9yZXN1bHRzLmFsbF9y
ZXN1bHRzCiAgICAgICAgIHNlbGYuZXhwZWN0ZWRfcmVzdWx0c19ieV9uYW1lLnVwZGF0ZSh0ZXN0
X3J1bl9yZXN1bHRzLmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZSkKQEAgLTMxNSwxMyArMzIwLDI0
IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhwZWN0YXRpb25zX2J5X3R5cGUs
IGluaXRpYWxfcmVzdWx0cywgcmV0cnlfcmVzCiAgICAgICAgICAgICAgICAgICAgIG51bV9yZWdy
ZXNzaW9ucyArPSAxCiAgICAgICAgICAgICAgICAgICAgIHRlc3RfZGljdFsncmVwb3J0J10gPSAn
UkVHUkVTU0lPTicKICAgICAgICAgICAgIGVsaWYgcmV0cnlfcmVzdWx0cyBhbmQgdGVzdF9uYW1l
IGluIHJldHJ5X3Jlc3VsdHMuZXhwZWN0ZWRfcmVzdWx0c19ieV9uYW1lOgotICAgICAgICAgICAg
ICAgIGFjdHVhbC5hcHBlbmQoa2V5d29yZHNbcmV0cnlfcmVzdWx0cy5leHBlY3RlZF9yZXN1bHRz
X2J5X25hbWVbdGVzdF9uYW1lXS50eXBlXSkKKyAgICAgICAgICAgICAgICByZXRyeV9yZXN1bHRf
bmFtZSA9IGtleXdvcmRzW3JldHJ5X3Jlc3VsdHMuZXhwZWN0ZWRfcmVzdWx0c19ieV9uYW1lW3Rl
c3RfbmFtZV0udHlwZV0KKyAgICAgICAgICAgICAgICBpZiByZXRyeV9yZXN1bHRfbmFtZSBub3Qg
aW4gYWN0dWFsOgorICAgICAgICAgICAgICAgICAgICBhY3R1YWwuYXBwZW5kKHJldHJ5X3Jlc3Vs
dF9uYW1lKQogICAgICAgICAgICAgICAgIG51bV9mbGFreSArPSAxCiAgICAgICAgICAgICAgICAg
dGVzdF9kaWN0WydyZXBvcnQnXSA9ICdGTEFLWScKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICAgICAgbnVtX3JlZ3Jlc3Npb25zICs9IDEKICAgICAgICAgICAgICAgICB0ZXN0X2RpY3Rb
J3JlcG9ydCddID0gJ1JFR1JFU1NJT04nCiAKKyAgICAgICAgIyBJZiBhIHRlc3Qgd2FzIHJ1biBt
b3JlIHRoYW4gb25jZSBvbiB0aGUgaW5pdGlhbF9yZXN1bHRzIChmb3IgZXhhbXBsZSB3aXRoIC0t
cmVwZWF0LWVhY2gpLAorICAgICAgICAjIGNoZWNrIGZvciBwb3NzaWJsZSBmbGFraW5lc3MgdGhl
cmUgYW5kIGFsc28gYWNjb3VudCBpbiAiYWN0dWFsIiBmb3IgdGhlIGV4dHJhIHJlc3VsdHMuCisg
ICAgICAgIGZvciByZXBlYXRlZF9yZXN1bHQgaW4gaW5pdGlhbF9yZXN1bHRzLnJlcGVhdGVkX3Jl
c3VsdHNfYnlfbmFtZVt0ZXN0X25hbWVdOgorICAgICAgICAgICAgcmVwZWF0ZWRfcmVzdWx0X25h
bWUgPSBrZXl3b3Jkc1tyZXBlYXRlZF9yZXN1bHRdCisgICAgICAgICAgICBpZiByZXBlYXRlZF9y
ZXN1bHRfbmFtZSBub3QgaW4gYWN0dWFsOgorICAgICAgICAgICAgICAgIGFjdHVhbC5hcHBlbmQo
cmVwZWF0ZWRfcmVzdWx0X25hbWUpCisgICAgICAgICAgICAgICAgaWYgdGVzdF9uYW1lIGluIGlu
aXRpYWxfcmVzdWx0cy51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdF9kaWN0WydyZXBvcnQnXSA9ICdGTEFLWScKKwogICAgICAgICB0ZXN0X2RpY3Rb
J2V4cGVjdGVkJ10gPSBleHBlY3RlZAogICAgICAgICB0ZXN0X2RpY3RbJ2FjdHVhbCddID0gIiAi
LmpvaW4oYWN0dWFsKQogICAgICAgICBpZiBpbmNsdWRlX3RpbWVfYW5kX21vZGlmaWVyczoK
</data>

          </attachment>
      

    </bug>

</bugzilla>