<?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>88474</bug_id>
          
          <creation_ts>2012-06-06 17:34:50 -0700</creation_ts>
          <short_desc>[GTK] run-api-tests should not buffer test stdout</short_desc>
          <delta_ts>2012-09-20 08:48:19 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>643007</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-06 17:34:50 -0700</bug_when>
    <thetext>Not buffering stdout  makes it easier to see why Google Tests time out (as you don&apos;t have to wait until the test times out to see the output) and preserves coloration of the output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643012</commentid>
    <comment_count>1</comment_count>
      <attachid>146159</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-06 17:42:07 -0700</bug_when>
    <thetext>Created attachment 146159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643253</commentid>
    <comment_count>2</comment_count>
      <attachid>146159</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-06-06 23:31:26 -0700</bug_when>
    <thetext>Comment on attachment 146159
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=146159&amp;action=review

Yes, I never liked either, but it&apos;s used to get the pid and kill the test in case of timeout.

&gt; Tools/gtk/run-api-tests:215
&gt;              child_pid = self._get_child_pid_from_test_output(stdout)

stdout is used here, and you removed it. I&apos;m fine with not buffering stdout but we need to figure out a way to kill the tests when they timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643275</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-07 00:05:18 -0700</bug_when>
    <thetext>(In reply to comment #2)

&gt; stdout is used here, and you removed it. I&apos;m fine with not buffering stdout but we need to figure out a way to kill the tests when they timeout.

Hrm. That&apos;s a really good point. Perhaps it would be sufficient to only capture stdout for GLib test programs. This change is most useful for the Google tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643499</commentid>
    <comment_count>4</comment_count>
      <attachid>146277</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-06-07 06:38:05 -0700</bug_when>
    <thetext>Created attachment 146277
Another patch

I think we could use select to read the output to avoid the buffering. We would still buffer lines, but we can send them to stdout when they are read, instead of waiting for the whole command output. And to preserve the colored output of google tests, we can use forkpty + exec instead of Popen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686609</commentid>
    <comment_count>5</comment_count>
      <attachid>156338</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-03 05:50:54 -0700</bug_when>
    <thetext>Created attachment 156338
Patch updated to apply on current git master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723340</commentid>
    <comment_count>6</comment_count>
      <attachid>156338</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-09-19 00:20:24 -0700</bug_when>
    <thetext>Comment on attachment 156338
Patch updated to apply on current git master

View in context: https://bugs.webkit.org/attachment.cgi?id=156338&amp;action=review

&gt; Tools/ChangeLog:8
&gt; +
&gt; +

Nit, either provide a general description of the change or remove these empty lines :)

&gt; Tools/Scripts/run-gtk-tests:218
&gt; +        child_pid = [-1]

What is the reason for using a list? From what I can see only its first item is used anyway.

&gt; Tools/gtk/common.py:130
&gt; +                parse_line(output[:pos + 1])

Where is this function defined? Also I&apos;m not sure to understand the reason for this loop, can output.splitlines() simply be used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723348</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-19 00:29:59 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 156338 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156338&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:8
&gt; &gt; +
&gt; &gt; +
&gt; 
&gt; Nit, either provide a general description of the change or remove these empty lines :)

Oh, sure.

&gt; &gt; Tools/Scripts/run-gtk-tests:218
&gt; &gt; +        child_pid = [-1]
&gt; 
&gt; What is the reason for using a list? From what I can see only its first item is used anyway.

It&apos;s a trick, since parameters are passed by value in python, using an integer wouldn&apos;t work, the value would be copied and the global variable is not updated. Using a list the pointer to the list is copied and updating the contents of the list affects the passed variable. 

&gt; &gt; Tools/gtk/common.py:130
&gt; &gt; +                parse_line(output[:pos + 1])
&gt; 
&gt; Where is this function defined? Also I&apos;m not sure to understand the reason for this loop, can output.splitlines() simply be used?

At the beginning, it&apos;s the one getting the list you commented before. splitlines can&apos;t be used in this case, because we need to leave in the buffer anything after the last &apos;\n&apos;. splitlines would work after reading the whole output, but that&apos;s exactly what we are trying to avoid here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723349</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-19 00:33:25 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Tools/gtk/common.py:130
&gt; &gt; +                parse_line(output[:pos + 1])
&gt; 
&gt; Where is this function defined? 

The function is passed as parameter to parse_output_lines().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723435</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-09-19 03:35:40 -0700</bug_when>
    <thetext>Oh wow ok this parse_line thing confused me. Can it be renamed ro parse_line_callback for instance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723437</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-19 03:50:59 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Oh wow ok this parse_line thing confused me. Can it be renamed ro parse_line_callback for instance?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724460</commentid>
    <comment_count>11</comment_count>
      <attachid>164904</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-20 06:04:02 -0700</bug_when>
    <thetext>Created attachment 164904
Updated patch according to review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724549</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-20 08:48:19 -0700</bug_when>
    <thetext>Committed r129138: &lt;http://trac.webkit.org/changeset/129138&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146159</attachid>
            <date>2012-06-06 17:42:07 -0700</date>
            <delta_ts>2012-06-06 23:31:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88474-20120606174205.patch</filename>
            <type>text/plain</type>
            <size>1821</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NjAzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjc0OGEyM2YxZDAxOGM1YjNjMDI1YjFjN2ViMGY0NTYw
ZTJiNDRkNC4uZjI4YzNjYTJlMjA2YmYwNGY2YzYxZTI5OTQyZjU5ODhmYWM2YmMwZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5
IEBACiAyMDEyLTA2LTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAorICAgICAgICBbR1RLXSBydW4tYXBpLXRlc3RzIHNob3VsZCBub3QgYnVmZmVyIHRlc3Qgc3Rk
b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODQ3
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvIG5v
dCBidWZmZXIgc3Rkb3V0IGluIHRoZSB0ZXN0aW5nIHNjcmlwdCB0byBwcmVzZXJ2ZSBjb2xvcmF0
aW9uCisgICAgICAgIGFuZCBtYWtlIGZhaWx1cmVzIG1vcmUgb2J2aW91cyBhdCB0aGUgdGltZSB0
aGV5IGhhcHBlbi4KKworICAgICAgICAqIGd0ay9ydW4tYXBpLXRlc3RzOgorICAgICAgICAoVGVz
dFJ1bm5lci5fcnVuX3Rlc3RfY29tbWFuZC5hbGFybV9oYW5kbGVyKToKKyAgICAgICAgKFRlc3RS
dW5uZXIuX3J1bl90ZXN0X2NvbW1hbmQpOgorCisyMDEyLTA2LTA2ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBDb21iaW5lIFdlYktpdCBB
UEkgdGVzdHMgaW50byBmZXdlciBiaW5hcmllcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg0NTgKIApkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL3J1bi1h
cGktdGVzdHMgYi9Ub29scy9ndGsvcnVuLWFwaS10ZXN0cwppbmRleCA0YzcwNTViOWJjZDIxMDY1
Y2U3M2NkMGVkZTE3NzliMDlkMDVjZjRmLi4wYTMzMWNjNjdmZDIwMWUwNGJkY2IxMmJmNzkyNTY2
Y2FiNDQ2NDVmIDEwMDc1NQotLS0gYS9Ub29scy9ndGsvcnVuLWFwaS10ZXN0cworKysgYi9Ub29s
cy9ndGsvcnVuLWFwaS10ZXN0cwpAQCAtMjAxLDE4ICsyMDEsMTUgQEAgY2xhc3MgVGVzdFJ1bm5l
cjoKICAgICAgICAgZGVmIGFsYXJtX2hhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CiAgICAgICAgICAg
ICByYWlzZSBUZXN0VGltZW91dAogCi0gICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNvbW1h
bmQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIGVudj1zZWxmLl90ZXN0X2VudikKKyAgICAgICAg
cCA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwgZW52PXNlbGYuX3Rlc3RfZW52KQogICAgICAg
ICBpZiB0aW1lb3V0ID4gMDoKICAgICAgICAgICAgIHNpZ25hbChTSUdBTFJNLCBhbGFybV9oYW5k
bGVyKQogICAgICAgICAgICAgYWxhcm0odGltZW91dCkKIAotICAgICAgICBzdGRvdXQgPSAiIgog
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzdGRvdXQgPSBwLmNvbW11bmljYXRlKClbMF0KKyAg
ICAgICAgICAgIHAud2FpdCgpCiAgICAgICAgICAgICBpZiB0aW1lb3V0ID4gMDoKICAgICAgICAg
ICAgICAgICBhbGFybSgwKQotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShzdGRvdXQpCi0g
ICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKICAgICAgICAgZXhjZXB0IFRlc3RUaW1lb3V0
OgogICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHAucGlkKQogICAgICAgICAgICAgY2hp
bGRfcGlkID0gc2VsZi5fZ2V0X2NoaWxkX3BpZF9mcm9tX3Rlc3Rfb3V0cHV0KHN0ZG91dCkK
</data>
<flag name="review"
          id="153412"
          type_id="1"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146277</attachid>
            <date>2012-06-07 06:38:05 -0700</date>
            <delta_ts>2012-08-03 05:50:54 -0700</delta_ts>
            <desc>Another patch</desc>
            <filename>wk-api-tests-forkpty.diff</filename>
            <type>text/plain</type>
            <size>5324</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0Y2Fj
OWJhLi5kMjQ0MDBiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIHJ1bi1hcGktdGVzdHMgc2hv
dWxkIG5vdCBidWZmZXIgdGVzdCBzdGRvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg4NDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBndGsvY29tbW9uLnB5OgorICAgICAgICAocGFyc2Vfb3V0cHV0
X2xpbmVzKTogSGVscGVyIGZ1bmN0aW9uIHRoYXQgdXNlcyBzZWxlY3QgdG8gcmVhZAorICAgICAg
ICB0aGUgZ2l2ZW4gZmlsZSBkZXNjcmlwdG9yIGFuZCBjYWxscyB0aGUgZ2l2ZW4gZnVuY3Rpb24g
Zm9yIGV2ZXJ5CisgICAgICAgIGxpbmUgcmVhZC4KKyAgICAgICAgKiBndGsvcnVuLWFwaS10ZXN0
czoKKyAgICAgICAgKFRlc3RSdW5uZXIuX3J1bl90ZXN0X2NvbW1hbmQpOiBVc2Ugb3MuZm9ya3B0
eSgpIGluc3RlYWQgb2YKKyAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbigpIHNvIHRoYXQgZ3Rlc3Qg
c2VuZHMgdGhlIG91dHB1dCB3aXRoIGNvbG9ycyB0bworICAgICAgICBzdGRvdXQuIFVzZSBjb21t
b24ucGFyc2Vfb3V0cHV0X2xpbmVzKCkgdG8gcGFyc2UgdGhlIG91dHB1dCBhbmQKKyAgICAgICAg
d3JpdGUgaXQgdG8gc3Rkb3V0IHdoaWxlIGl0J3MgcmVhZC4KKyAgICAgICAgKFRlc3RSdW5uZXIu
X3J1bl90ZXN0X2NvbW1hbmQucGFyc2VfbGluZSk6IFBhcnNlIHRoZSBsaW5lIHRvIGdldAorICAg
ICAgICB0aGUgdGVzdCBwaWQgYW5kIHdyaXRlIHRoZSBsaW5lIHRvIHN0ZG91dC4KKyAgICAgICAg
KFRlc3RSdW5uZXIuX3J1bl90ZXN0X2NvbW1hbmQud2FpdHBpZCk6IEhlbHBlciBmdW5jdGlvbiB0
byBjYWxsCisgICAgICAgIHdhaXRwaWQgaGFuZGxpbmcgRUlOVFIuCisgICAgICAgIChUZXN0UnVu
bmVyLl9ydW5fdGVzdF9jb21tYW5kLnJldHVybl9jb2RlX2Zyb21fZXhpdF9zdGF0dXMpOgorICAg
ICAgICBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBleGl0IHN0YXR1cyBvZiB0ZXN0IGNvbW1h
bmRzIHRvIGEKKyAgICAgICAgcmV0dXJuIGNvZGUuCisKIDIwMTItMDYtMDYgIE1hcml1c3ogR3J6
ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBD
b21waWxlIHdlYmtpdDEgYW5kIHdlYmtpdDIgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1Rvb2xz
L2d0ay9jb21tb24ucHkgYi9Ub29scy9ndGsvY29tbW9uLnB5CmluZGV4IDIyMGE4Y2YuLjE1MGZl
NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2d0ay9jb21tb24ucHkKKysrIGIvVG9vbHMvZ3RrL2NvbW1v
bi5weQpAQCAtMTUsNyArMTUsOSBAQAogIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAjIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQogCitpbXBvcnQgZXJybm8KIGltcG9ydCBvcworaW1wb3J0IHNlbGVjdAogaW1wb3J0IHN1
YnByb2Nlc3MKIGltcG9ydCBzeXMKIApAQCAtMTAxLDMgKzEwMywzMiBAQCBkZWYgZ3RrX3ZlcnNp
b25fb2ZfcGtnX2NvbmZpZ19maWxlKHBrZ19jb25maWdfcGF0aCk6CiAgICAgaWYgJ2d0aystMy4w
JyBpbiBzdGRvdXQ6CiAgICAgICAgIHJldHVybiAzCiAgICAgcmV0dXJuIDIKKworCitkZWYgcGFy
c2Vfb3V0cHV0X2xpbmVzKGZkLCBwYXJzZV9saW5lKToKKyAgICBvdXRwdXQgPSAnJworICAgIHJl
YWRfc2V0ID0gW2ZkXQorICAgIHdoaWxlIHJlYWRfc2V0OgorICAgICAgICBybGlzdCwgd2xpc3Qs
IHhsaXN0ID0gc2VsZWN0LnNlbGVjdChyZWFkX3NldCwgW10sIFtdKQorCisgICAgICAgIGlmIGZk
IGluIHJsaXN0OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNodW5rID0gb3Mu
cmVhZChmZCwgMTAyNCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAg
ICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FSU86CisgICAgICAgICAgICAgICAgICAgICMg
Q2hpbGQgcHJvY2VzcyBmaW5pc2hlZC4KKyAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSAnJwor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIGUKKyAgICAg
ICAgICAgIGlmIG5vdCBjaHVuazoKKyAgICAgICAgICAgICAgICByZWFkX3NldC5yZW1vdmUoZmQp
CisKKyAgICAgICAgICAgIG91dHB1dCArPSBjaHVuaworICAgICAgICAgICAgd2hpbGUgJ1xuJyBp
biBvdXRwdXQ6CisgICAgICAgICAgICAgICAgcG9zID0gb3V0cHV0LmZpbmQoJ1xuJykKKyAgICAg
ICAgICAgICAgICBwYXJzZV9saW5lKG91dHB1dFs6cG9zICsgMV0pCisgICAgICAgICAgICAgICAg
b3V0cHV0ID0gb3V0cHV0W3BvcyArIDE6XQorCisgICAgICAgICAgICBpZiBsZW4oY2h1bmspIDwg
MTAyNCBhbmQgb3V0cHV0OgorICAgICAgICAgICAgICAgIHBhcnNlX2xpbmUob3V0cHV0KQorICAg
ICAgICAgICAgICAgIG91dHB1dCA9ICcnCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcnVuLWFwaS10
ZXN0cyBiL1Rvb2xzL2d0ay9ydW4tYXBpLXRlc3RzCmluZGV4IDM3OTM5Y2EuLmE3ZDU5MDUgMTAw
NzU1Ci0tLSBhL1Rvb2xzL2d0ay9ydW4tYXBpLXRlc3RzCisrKyBiL1Rvb2xzL2d0ay9ydW4tYXBp
LXRlc3RzCkBAIC0yMzksMjYgKzIzOSw2MCBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBk
ZWYgYWxhcm1faGFuZGxlcihzaWdudW0sIGZyYW1lKToKICAgICAgICAgICAgIHJhaXNlIFRlc3RU
aW1lb3V0CiAKLSAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwgc3Rkb3V0PXN1
YnByb2Nlc3MuUElQRSwgZW52PXNlbGYuX3Rlc3RfZW52KQorICAgICAgICBjaGlsZF9waWQgPSBb
LTFdCisgICAgICAgIGRlZiBwYXJzZV9saW5lKGxpbmUsIGNoaWxkX3BpZCA9IGNoaWxkX3BpZCk6
CisgICAgICAgICAgICBpZiBjaGlsZF9waWRbMF0gPT0gLTE6CisgICAgICAgICAgICAgICAgY2hp
bGRfcGlkWzBdID0gc2VsZi5fZ2V0X2NoaWxkX3BpZF9mcm9tX3Rlc3Rfb3V0cHV0KGxpbmUpCisg
ICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGxpbmUpCisKKyAgICAgICAgZGVmIHdhaXRwaWQo
cGlkKToKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gb3Mud2FpdHBpZChwaWQsIDApCisgICAgICAgICAgICAg
ICAgZXhjZXB0IChPU0Vycm9yLCBJT0Vycm9yKSBhcyBlOgorICAgICAgICAgICAgICAgICAgICBp
ZiBlLmVycm5vID09IGVycm5vLkVJTlRSOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICBkZWYgcmV0dXJuX2NvZGVf
ZnJvbV9leGl0X3N0YXR1cyhzdGF0dXMpOgorICAgICAgICAgICAgaWYgb3MuV0lGU0lHTkFMRUQo
c3RhdHVzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gLW9zLldURVJNU0lHKHN0YXR1cykKKyAg
ICAgICAgICAgIGVsaWYgb3MuV0lGRVhJVEVEKHN0YXR1cyk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIG9zLldFWElUU1RBVFVTKHN0YXR1cykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgIyBTaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgICAgICAgICAgcmFpc2UgUnVudGlt
ZUVycm9yKCJVbmtub3duIGNoaWxkIGV4aXQgc3RhdHVzISIpCisKKyAgICAgICAgcGlkLCBmZCA9
IG9zLmZvcmtwdHkoKQorICAgICAgICBpZiBwaWQgPT0gMDoKKyAgICAgICAgICAgIG9zLmV4ZWN2
cGUoY29tbWFuZFswXSwgY29tbWFuZCwgc2VsZi5fdGVzdF9lbnYpCisgICAgICAgICAgICBzeXMu
ZXhpdCgwKQorCiAgICAgICAgIGlmIHRpbWVvdXQgPiAwOgogICAgICAgICAgICAgc2lnbmFsKFNJ
R0FMUk0sIGFsYXJtX2hhbmRsZXIpCiAgICAgICAgICAgICBhbGFybSh0aW1lb3V0KQogCi0gICAg
ICAgIHN0ZG91dCA9ICIiCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHN0ZG91dCA9IHAuY29t
bXVuaWNhdGUoKVswXQorICAgICAgICAgICAgY29tbW9uLnBhcnNlX291dHB1dF9saW5lcyhmZCwg
cGFyc2VfbGluZSkKICAgICAgICAgICAgIGlmIHRpbWVvdXQgPiAwOgogICAgICAgICAgICAgICAg
IGFsYXJtKDApCi0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHN0ZG91dCkKLSAgICAgICAg
ICAgIHN5cy5zdGRvdXQuZmx1c2goKQogICAgICAgICBleGNlcHQgVGVzdFRpbWVvdXQ6Ci0gICAg
ICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3MocC5waWQpCi0gICAgICAgICAgICBjaGlsZF9waWQg
PSBzZWxmLl9nZXRfY2hpbGRfcGlkX2Zyb21fdGVzdF9vdXRwdXQoc3Rkb3V0KQotICAgICAgICAg
ICAgaWYgY2hpbGRfcGlkID4gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Mo
Y2hpbGRfcGlkKQorICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHBpZCkKKyAgICAgICAg
ICAgIGlmIGNoaWxkX3BpZFswXSA+IDA6CisgICAgICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9j
ZXNzKGNoaWxkX3BpZFswXSkKICAgICAgICAgICAgIHJhaXNlCiAKLSAgICAgICAgcmV0dXJuIG5v
dCBwLnJldHVybmNvZGUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZHVtbXksIHN0YXR1cyA9
IHdhaXRwaWQocGlkKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAg
aWYgZS5lcnJubyAhPSBlcnJuby5FQ0hJTEQ6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAg
ICAgICAgICMgVGhpcyBoYXBwZW5zIGlmIFNJR0NMRCBpcyBzZXQgdG8gYmUgaWdub3JlZCBvciB3
YWl0aW5nCisgICAgICAgICAgICAjIGZvciBjaGlsZCBwcm9jZXNzZXMgaGFzIG90aGVyd2lzZSBi
ZWVuIGRpc2FibGVkIGZvciBvdXIKKyAgICAgICAgICAgICMgcHJvY2Vzcy4gIFRoaXMgY2hpbGQg
aXMgZGVhZCwgd2UgY2FuJ3QgZ2V0IHRoZSBzdGF0dXMuCisgICAgICAgICAgICBzdGF0dXMgPSAw
CisKKyAgICAgICAgcmV0dXJuIG5vdCByZXR1cm5fY29kZV9mcm9tX2V4aXRfc3RhdHVzKHN0YXR1
cykKIAogICAgIGRlZiBfcnVuX3Rlc3RfZ2xpYihzZWxmLCB0ZXN0KToKICAgICAgICAgdGVzdGVy
X2NvbW1hbmQgPSBbJ2d0ZXN0ZXInXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156338</attachid>
            <date>2012-08-03 05:50:54 -0700</date>
            <delta_ts>2012-09-20 06:04:02 -0700</delta_ts>
            <desc>Patch updated to apply on current git master</desc>
            <filename>wk-api-tests-forkpty2.diff</filename>
            <type>text/plain</type>
            <size>5358</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMTYz
ZjgyLi5kMzBjNWE5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDgtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIHJ1bi1hcGktdGVzdHMgc2hv
dWxkIG5vdCBidWZmZXIgdGVzdCBzdGRvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg4NDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKworCisgICAgICAgICogU2NyaXB0cy9ydW4tZ3RrLXRlc3RzOgorICAgICAgICAo
VGVzdFJ1bm5lci5fcnVuX3Rlc3RfY29tbWFuZCk6IFVzZSBvcy5mb3JrcHR5KCkgaW5zdGVhZCBv
ZgorICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKCkgc28gdGhhdCBndGVzdCBzZW5kcyB0aGUgb3V0
cHV0IHdpdGggY29sb3JzIHRvCisgICAgICAgIHN0ZG91dC4gVXNlIGNvbW1vbi5wYXJzZV9vdXRw
dXRfbGluZXMoKSB0byBwYXJzZSB0aGUgb3V0cHV0IGFuZAorICAgICAgICB3cml0ZSBpdCB0byBz
dGRvdXQgd2hpbGUgaXQncyByZWFkLgorICAgICAgICAoVGVzdFJ1bm5lci5fcnVuX3Rlc3RfY29t
bWFuZC5wYXJzZV9saW5lKTogUGFyc2UgdGhlIGxpbmUgdG8gZ2V0CisgICAgICAgIHRoZSB0ZXN0
IHBpZCBhbmQgd3JpdGUgdGhlIGxpbmUgdG8gc3Rkb3V0LgorICAgICAgICAoVGVzdFJ1bm5lci5f
cnVuX3Rlc3RfY29tbWFuZC53YWl0cGlkKTogSGVscGVyIGZ1bmN0aW9uIHRvIGNhbGwKKyAgICAg
ICAgd2FpdHBpZCBoYW5kbGluZyBFSU5UUi4KKyAgICAgICAgKFRlc3RSdW5uZXIuX3J1bl90ZXN0
X2NvbW1hbmQucmV0dXJuX2NvZGVfZnJvbV9leGl0X3N0YXR1cyk6CisgICAgICAgIEhlbHBlciBm
dW5jdGlvbiB0byBjb252ZXJ0IGV4aXQgc3RhdHVzIG9mIHRlc3QgY29tbWFuZHMgdG8gYQorICAg
ICAgICByZXR1cm4gY29kZS4KKyAgICAgICAgKiBndGsvY29tbW9uLnB5OgorICAgICAgICAocGFy
c2Vfb3V0cHV0X2xpbmVzKTogSGVscGVyIGZ1bmN0aW9uIHRoYXQgdXNlcyBzZWxlY3QgdG8gcmVh
ZAorICAgICAgICB0aGUgZ2l2ZW4gZmlsZSBkZXNjcmlwdG9yIGFuZCBjYWxscyB0aGUgZ2l2ZW4g
ZnVuY3Rpb24gZm9yIGV2ZXJ5CisgICAgICAgIGxpbmUgcmVhZC4KKwogMjAxMi0wOC0wMyAgQmFs
YXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWxsIHBvcnRzIHNo
b3VsZCBzdXBwb3J0IHBlciB0ZXN0IHN3aXRjaGluZyBvZiBwaXhlbCB0ZXN0aW5nCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1ndGst
dGVzdHMKaW5kZXggNGYxZDRjMS4uN2I4ZWIwYyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9y
dW4tZ3RrLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cwpAQCAtMjE1LDI2
ICsyMTUsNjAgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgZGVmIGFsYXJtX2hhbmRsZXIo
c2lnbnVtLCBmcmFtZSk6CiAgICAgICAgICAgICByYWlzZSBUZXN0VGltZW91dAogCi0gICAgICAg
IHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNvbW1hbmQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIGVu
dj1zZWxmLl90ZXN0X2VudikKKyAgICAgICAgY2hpbGRfcGlkID0gWy0xXQorICAgICAgICBkZWYg
cGFyc2VfbGluZShsaW5lLCBjaGlsZF9waWQgPSBjaGlsZF9waWQpOgorICAgICAgICAgICAgaWYg
Y2hpbGRfcGlkWzBdID09IC0xOgorICAgICAgICAgICAgICAgIGNoaWxkX3BpZFswXSA9IHNlbGYu
X2dldF9jaGlsZF9waWRfZnJvbV90ZXN0X291dHB1dChsaW5lKQorICAgICAgICAgICAgc3lzLnN0
ZG91dC53cml0ZShsaW5lKQorCisgICAgICAgIGRlZiB3YWl0cGlkKHBpZCk6CisgICAgICAgICAg
ICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG9zLndhaXRwaWQocGlkLCAwKQorICAgICAgICAgICAgICAgIGV4Y2VwdCAoT1NFcnJv
ciwgSU9FcnJvcikgYXMgZToKKyAgICAgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJu
by5FSU5UUjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlCisKKyAgICAgICAgZGVmIHJldHVybl9jb2RlX2Zyb21fZXhpdF9zdGF0dXMo
c3RhdHVzKToKKyAgICAgICAgICAgIGlmIG9zLldJRlNJR05BTEVEKHN0YXR1cyk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIC1vcy5XVEVSTVNJRyhzdGF0dXMpCisgICAgICAgICAgICBlbGlmIG9z
LldJRkVYSVRFRChzdGF0dXMpOgorICAgICAgICAgICAgICAgIHJldHVybiBvcy5XRVhJVFNUQVRV
UyhzdGF0dXMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgU2hvdWxkIG5l
dmVyIGhhcHBlbgorICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiVW5rbm93biBj
aGlsZCBleGl0IHN0YXR1cyEiKQorCisgICAgICAgIHBpZCwgZmQgPSBvcy5mb3JrcHR5KCkKKyAg
ICAgICAgaWYgcGlkID09IDA6CisgICAgICAgICAgICBvcy5leGVjdnBlKGNvbW1hbmRbMF0sIGNv
bW1hbmQsIHNlbGYuX3Rlc3RfZW52KQorICAgICAgICAgICAgc3lzLmV4aXQoMCkKKwogICAgICAg
ICBpZiB0aW1lb3V0ID4gMDoKICAgICAgICAgICAgIHNpZ25hbChTSUdBTFJNLCBhbGFybV9oYW5k
bGVyKQogICAgICAgICAgICAgYWxhcm0odGltZW91dCkKIAotICAgICAgICBzdGRvdXQgPSAiIgog
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzdGRvdXQgPSBwLmNvbW11bmljYXRlKClbMF0KKyAg
ICAgICAgICAgIGNvbW1vbi5wYXJzZV9vdXRwdXRfbGluZXMoZmQsIHBhcnNlX2xpbmUpCiAgICAg
ICAgICAgICBpZiB0aW1lb3V0ID4gMDoKICAgICAgICAgICAgICAgICBhbGFybSgwKQotICAgICAg
ICAgICAgc3lzLnN0ZG91dC53cml0ZShzdGRvdXQpCi0gICAgICAgICAgICBzeXMuc3Rkb3V0LmZs
dXNoKCkKICAgICAgICAgZXhjZXB0IFRlc3RUaW1lb3V0OgotICAgICAgICAgICAgc2VsZi5fa2ls
bF9wcm9jZXNzKHAucGlkKQotICAgICAgICAgICAgY2hpbGRfcGlkID0gc2VsZi5fZ2V0X2NoaWxk
X3BpZF9mcm9tX3Rlc3Rfb3V0cHV0KHN0ZG91dCkKLSAgICAgICAgICAgIGlmIGNoaWxkX3BpZCA+
IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKGNoaWxkX3BpZCkKKyAgICAg
ICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhwaWQpCisgICAgICAgICAgICBpZiBjaGlsZF9waWRb
MF0gPiAwOgorICAgICAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhjaGlsZF9waWRbMF0p
CiAgICAgICAgICAgICByYWlzZQogCi0gICAgICAgIHJldHVybiBub3QgcC5yZXR1cm5jb2RlCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGR1bW15LCBzdGF0dXMgPSB3YWl0cGlkKHBpZCkKKyAg
ICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJy
bm8uRUNISUxEOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAjIFRoaXMgaGFw
cGVucyBpZiBTSUdDTEQgaXMgc2V0IHRvIGJlIGlnbm9yZWQgb3Igd2FpdGluZworICAgICAgICAg
ICAgIyBmb3IgY2hpbGQgcHJvY2Vzc2VzIGhhcyBvdGhlcndpc2UgYmVlbiBkaXNhYmxlZCBmb3Ig
b3VyCisgICAgICAgICAgICAjIHByb2Nlc3MuICBUaGlzIGNoaWxkIGlzIGRlYWQsIHdlIGNhbid0
IGdldCB0aGUgc3RhdHVzLgorICAgICAgICAgICAgc3RhdHVzID0gMAorCisgICAgICAgIHJldHVy
biBub3QgcmV0dXJuX2NvZGVfZnJvbV9leGl0X3N0YXR1cyhzdGF0dXMpCiAKICAgICBkZWYgX3J1
bl90ZXN0X2dsaWIoc2VsZiwgdGVzdF9wcm9ncmFtKToKICAgICAgICAgdGVzdGVyX2NvbW1hbmQg
PSBbJ2d0ZXN0ZXInXQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2NvbW1vbi5weSBiL1Rvb2xzL2d0
ay9jb21tb24ucHkKaW5kZXggN2IwNTdlNy4uYThmZjViMyAxMDA2NDQKLS0tIGEvVG9vbHMvZ3Rr
L2NvbW1vbi5weQorKysgYi9Ub29scy9ndGsvY29tbW9uLnB5CkBAIC0xNSw3ICsxNSw5IEBACiAj
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKICMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCiAKK2ltcG9ydCBlcnJubwogaW1w
b3J0IG9zCitpbXBvcnQgc2VsZWN0CiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCkBA
IC0xMDIsMyArMTA0LDMyIEBAIGRlZiBndGtfdmVyc2lvbl9vZl9wa2dfY29uZmlnX2ZpbGUocGtn
X2NvbmZpZ19wYXRoKToKICAgICBpZiAnZ3RrKy0zLjAnIGluIHN0ZG91dDoKICAgICAgICAgcmV0
dXJuIDMKICAgICByZXR1cm4gMgorCisKK2RlZiBwYXJzZV9vdXRwdXRfbGluZXMoZmQsIHBhcnNl
X2xpbmUpOgorICAgIG91dHB1dCA9ICcnCisgICAgcmVhZF9zZXQgPSBbZmRdCisgICAgd2hpbGUg
cmVhZF9zZXQ6CisgICAgICAgIHJsaXN0LCB3bGlzdCwgeGxpc3QgPSBzZWxlY3Quc2VsZWN0KHJl
YWRfc2V0LCBbXSwgW10pCisKKyAgICAgICAgaWYgZmQgaW4gcmxpc3Q6CisgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgY2h1bmsgPSBvcy5yZWFkKGZkLCAxMDI0KQorICAgICAgICAg
ICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVy
cm5vLkVJTzoKKyAgICAgICAgICAgICAgICAgICAgIyBDaGlsZCBwcm9jZXNzIGZpbmlzaGVkLgor
ICAgICAgICAgICAgICAgICAgICBjaHVuayA9ICcnCisgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgcmFpc2UgZQorICAgICAgICAgICAgaWYgbm90IGNodW5rOgorICAg
ICAgICAgICAgICAgIHJlYWRfc2V0LnJlbW92ZShmZCkKKworICAgICAgICAgICAgb3V0cHV0ICs9
IGNodW5rCisgICAgICAgICAgICB3aGlsZSAnXG4nIGluIG91dHB1dDoKKyAgICAgICAgICAgICAg
ICBwb3MgPSBvdXRwdXQuZmluZCgnXG4nKQorICAgICAgICAgICAgICAgIHBhcnNlX2xpbmUob3V0
cHV0Wzpwb3MgKyAxXSkKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXRbcG9zICsgMTpd
CisKKyAgICAgICAgICAgIGlmIGxlbihjaHVuaykgPCAxMDI0IGFuZCBvdXRwdXQ6CisgICAgICAg
ICAgICAgICAgcGFyc2VfbGluZShvdXRwdXQpCisgICAgICAgICAgICAgICAgb3V0cHV0ID0gJycK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164904</attachid>
            <date>2012-09-20 06:04:02 -0700</date>
            <delta_ts>2012-09-20 08:32:51 -0700</delta_ts>
            <desc>Updated patch according to review comments</desc>
            <filename>wk-unit-tests-forkpty4.diff</filename>
            <type>text/plain</type>
            <size>5410</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZDNl
MWUzLi5hNGQyNTNmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIHJ1bi1hcGktdGVzdHMgc2hv
dWxkIG5vdCBidWZmZXIgdGVzdCBzdGRvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg4NDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1ndGstdGVzdHM6CisgICAgICAgIChUZXN0
UnVubmVyLl9ydW5fdGVzdF9jb21tYW5kKTogVXNlIG9zLmZvcmtwdHkoKSBpbnN0ZWFkIG9mCisg
ICAgICAgIHN1YnByb2Nlc3MuUG9wZW4oKSBzbyB0aGF0IGd0ZXN0IHNlbmRzIHRoZSBvdXRwdXQg
d2l0aCBjb2xvcnMgdG8KKyAgICAgICAgc3Rkb3V0LiBVc2UgY29tbW9uLnBhcnNlX291dHB1dF9s
aW5lcygpIHRvIHBhcnNlIHRoZSBvdXRwdXQgYW5kCisgICAgICAgIHdyaXRlIGl0IHRvIHN0ZG91
dCB3aGlsZSBpdCdzIHJlYWQuCisgICAgICAgIChUZXN0UnVubmVyLl9ydW5fdGVzdF9jb21tYW5k
LnBhcnNlX2xpbmUpOiBQYXJzZSB0aGUgbGluZSB0byBnZXQKKyAgICAgICAgdGhlIHRlc3QgcGlk
IGFuZCB3cml0ZSB0aGUgbGluZSB0byBzdGRvdXQuCisgICAgICAgIChUZXN0UnVubmVyLl9ydW5f
dGVzdF9jb21tYW5kLndhaXRwaWQpOiBIZWxwZXIgZnVuY3Rpb24gdG8gY2FsbAorICAgICAgICB3
YWl0cGlkIGhhbmRsaW5nIEVJTlRSLgorICAgICAgICAoVGVzdFJ1bm5lci5fcnVuX3Rlc3RfY29t
bWFuZC5yZXR1cm5fY29kZV9mcm9tX2V4aXRfc3RhdHVzKToKKyAgICAgICAgSGVscGVyIGZ1bmN0
aW9uIHRvIGNvbnZlcnQgZXhpdCBzdGF0dXMgb2YgdGVzdCBjb21tYW5kcyB0byBhCisgICAgICAg
IHJldHVybiBjb2RlLgorICAgICAgICAqIGd0ay9jb21tb24ucHk6CisgICAgICAgIChwYXJzZV9v
dXRwdXRfbGluZXMpOiBIZWxwZXIgZnVuY3Rpb24gdGhhdCB1c2VzIHNlbGVjdCB0byByZWFkCisg
ICAgICAgIHRoZSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IgYW5kIGNhbGwgdGhlIGdpdmVuIGNhbGxi
YWNrIGZvciBldmVyeQorICAgICAgICBsaW5lIHJlYWQuCisKIDIwMTItMDktMTkgIENocmlzdG9w
aGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBF
RkwncyBEUlQgZG9lcyBub3Qgc3VwcG9ydCBvdmVycmlkaW5nICdXZWJLaXRDU1NSZWdpb25zRW5h
YmxlZCcgcHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3Rz
IGIvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCmluZGV4IDc3NmY0Y2QuLjlkNWI3MTEgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cworKysgYi9Ub29scy9TY3JpcHRz
L3J1bi1ndGstdGVzdHMKQEAgLTIxMywyNiArMjEzLDYwIEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAg
ICAgICAgIGRlZiBhbGFybV9oYW5kbGVyKHNpZ251bSwgZnJhbWUpOgogICAgICAgICAgICAgcmFp
c2UgVGVzdFRpbWVvdXQKIAotICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihjb21tYW5kLCBz
dGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBlbnY9c2VsZi5fdGVzdF9lbnYpCisgICAgICAgIGNoaWxk
X3BpZCA9IFstMV0KKyAgICAgICAgZGVmIHBhcnNlX2xpbmUobGluZSwgY2hpbGRfcGlkID0gY2hp
bGRfcGlkKToKKyAgICAgICAgICAgIGlmIGNoaWxkX3BpZFswXSA9PSAtMToKKyAgICAgICAgICAg
ICAgICBjaGlsZF9waWRbMF0gPSBzZWxmLl9nZXRfY2hpbGRfcGlkX2Zyb21fdGVzdF9vdXRwdXQo
bGluZSkKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUobGluZSkKKworICAgICAgICBkZWYg
d2FpdHBpZChwaWQpOgorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcy53YWl0cGlkKHBpZCwgMCkKKyAgICAg
ICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpIGFzIGU6CisgICAgICAgICAgICAg
ICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUlOVFI6CisgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICByYWlzZQorCisgICAgICAgIGRlZiByZXR1
cm5fY29kZV9mcm9tX2V4aXRfc3RhdHVzKHN0YXR1cyk6CisgICAgICAgICAgICBpZiBvcy5XSUZT
SUdOQUxFRChzdGF0dXMpOgorICAgICAgICAgICAgICAgIHJldHVybiAtb3MuV1RFUk1TSUcoc3Rh
dHVzKQorICAgICAgICAgICAgZWxpZiBvcy5XSUZFWElURUQoc3RhdHVzKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gb3MuV0VYSVRTVEFUVVMoc3RhdHVzKQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAjIFNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgICAgICAgICByYWlz
ZSBSdW50aW1lRXJyb3IoIlVua25vd24gY2hpbGQgZXhpdCBzdGF0dXMhIikKKworICAgICAgICBw
aWQsIGZkID0gb3MuZm9ya3B0eSgpCisgICAgICAgIGlmIHBpZCA9PSAwOgorICAgICAgICAgICAg
b3MuZXhlY3ZwZShjb21tYW5kWzBdLCBjb21tYW5kLCBzZWxmLl90ZXN0X2VudikKKyAgICAgICAg
ICAgIHN5cy5leGl0KDApCisKICAgICAgICAgaWYgdGltZW91dCA+IDA6CiAgICAgICAgICAgICBz
aWduYWwoU0lHQUxSTSwgYWxhcm1faGFuZGxlcikKICAgICAgICAgICAgIGFsYXJtKHRpbWVvdXQp
CiAKLSAgICAgICAgc3Rkb3V0ID0gIiIKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc3Rkb3V0
ID0gcC5jb21tdW5pY2F0ZSgpWzBdCisgICAgICAgICAgICBjb21tb24ucGFyc2Vfb3V0cHV0X2xp
bmVzKGZkLCBwYXJzZV9saW5lKQogICAgICAgICAgICAgaWYgdGltZW91dCA+IDA6CiAgICAgICAg
ICAgICAgICAgYWxhcm0oMCkKLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoc3Rkb3V0KQot
ICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAgICAgICAgIGV4Y2VwdCBUZXN0VGltZW91
dDoKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhwLnBpZCkKLSAgICAgICAgICAgIGNo
aWxkX3BpZCA9IHNlbGYuX2dldF9jaGlsZF9waWRfZnJvbV90ZXN0X291dHB1dChzdGRvdXQpCi0g
ICAgICAgICAgICBpZiBjaGlsZF9waWQgPiAwOgotICAgICAgICAgICAgICAgIHNlbGYuX2tpbGxf
cHJvY2VzcyhjaGlsZF9waWQpCisgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3MocGlkKQor
ICAgICAgICAgICAgaWYgY2hpbGRfcGlkWzBdID4gMDoKKyAgICAgICAgICAgICAgICBzZWxmLl9r
aWxsX3Byb2Nlc3MoY2hpbGRfcGlkWzBdKQogICAgICAgICAgICAgcmFpc2UKIAotICAgICAgICBy
ZXR1cm4gbm90IHAucmV0dXJuY29kZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkdW1teSwg
c3RhdHVzID0gd2FpdHBpZChwaWQpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAg
ICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVDSElMRDoKKyAgICAgICAgICAgICAgICByYWlz
ZQorICAgICAgICAgICAgIyBUaGlzIGhhcHBlbnMgaWYgU0lHQ0xEIGlzIHNldCB0byBiZSBpZ25v
cmVkIG9yIHdhaXRpbmcKKyAgICAgICAgICAgICMgZm9yIGNoaWxkIHByb2Nlc3NlcyBoYXMgb3Ro
ZXJ3aXNlIGJlZW4gZGlzYWJsZWQgZm9yIG91cgorICAgICAgICAgICAgIyBwcm9jZXNzLiAgVGhp
cyBjaGlsZCBpcyBkZWFkLCB3ZSBjYW4ndCBnZXQgdGhlIHN0YXR1cy4KKyAgICAgICAgICAgIHN0
YXR1cyA9IDAKKworICAgICAgICByZXR1cm4gbm90IHJldHVybl9jb2RlX2Zyb21fZXhpdF9zdGF0
dXMoc3RhdHVzKQogCiAgICAgZGVmIF9ydW5fdGVzdF9nbGliKHNlbGYsIHRlc3RfcHJvZ3JhbSk6
CiAgICAgICAgIHRlc3Rlcl9jb21tYW5kID0gWydndGVzdGVyJ10KZGlmZiAtLWdpdCBhL1Rvb2xz
L2d0ay9jb21tb24ucHkgYi9Ub29scy9ndGsvY29tbW9uLnB5CmluZGV4IDdiMDU3ZTcuLmUwOTBl
ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2d0ay9jb21tb24ucHkKKysrIGIvVG9vbHMvZ3RrL2NvbW1v
bi5weQpAQCAtMTUsNyArMTUsOSBAQAogIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAjIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQogCitpbXBvcnQgZXJybm8KIGltcG9ydCBvcworaW1wb3J0IHNlbGVjdAogaW1wb3J0IHN1
YnByb2Nlc3MKIGltcG9ydCBzeXMKIApAQCAtMTAyLDMgKzEwNCwzMiBAQCBkZWYgZ3RrX3ZlcnNp
b25fb2ZfcGtnX2NvbmZpZ19maWxlKHBrZ19jb25maWdfcGF0aCk6CiAgICAgaWYgJ2d0aystMy4w
JyBpbiBzdGRvdXQ6CiAgICAgICAgIHJldHVybiAzCiAgICAgcmV0dXJuIDIKKworCitkZWYgcGFy
c2Vfb3V0cHV0X2xpbmVzKGZkLCBwYXJzZV9saW5lX2NhbGxiYWNrKToKKyAgICBvdXRwdXQgPSAn
JworICAgIHJlYWRfc2V0ID0gW2ZkXQorICAgIHdoaWxlIHJlYWRfc2V0OgorICAgICAgICBybGlz
dCwgd2xpc3QsIHhsaXN0ID0gc2VsZWN0LnNlbGVjdChyZWFkX3NldCwgW10sIFtdKQorCisgICAg
ICAgIGlmIGZkIGluIHJsaXN0OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNo
dW5rID0gb3MucmVhZChmZCwgMTAyNCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6
CisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FSU86CisgICAgICAgICAgICAg
ICAgICAgICMgQ2hpbGQgcHJvY2VzcyBmaW5pc2hlZC4KKyAgICAgICAgICAgICAgICAgICAgY2h1
bmsgPSAnJworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNl
IGUKKyAgICAgICAgICAgIGlmIG5vdCBjaHVuazoKKyAgICAgICAgICAgICAgICByZWFkX3NldC5y
ZW1vdmUoZmQpCisKKyAgICAgICAgICAgIG91dHB1dCArPSBjaHVuaworICAgICAgICAgICAgd2hp
bGUgJ1xuJyBpbiBvdXRwdXQ6CisgICAgICAgICAgICAgICAgcG9zID0gb3V0cHV0LmZpbmQoJ1xu
JykKKyAgICAgICAgICAgICAgICBwYXJzZV9saW5lX2NhbGxiYWNrKG91dHB1dFs6cG9zICsgMV0p
CisgICAgICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0W3BvcyArIDE6XQorCisgICAgICAgICAg
ICBpZiBsZW4oY2h1bmspIDwgMTAyNCBhbmQgb3V0cHV0OgorICAgICAgICAgICAgICAgIHBhcnNl
X2xpbmVfY2FsbGJhY2sob3V0cHV0KQorICAgICAgICAgICAgICAgIG91dHB1dCA9ICcnCg==
</data>
<flag name="review"
          id="176832"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>