Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1goTZ2-0005PK-My for pgadmin-hackers@arkaria.postgresql.org; Tue, 29 Jan 2019 13:36:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1goTZ0-0003gZ-5u for pgadmin-hackers@arkaria.postgresql.org; Tue, 29 Jan 2019 13:36:30 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1goTYz-0003gR-Ot for pgadmin-hackers@lists.postgresql.org; Tue, 29 Jan 2019 13:36:30 +0000 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1goTYv-0003N1-UU for pgadmin-hackers@postgresql.org; Tue, 29 Jan 2019 13:36:28 +0000 Received: by mail-lj1-x243.google.com with SMTP id x85-v6so17517911ljb.2 for ; Tue, 29 Jan 2019 05:36:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=yXds3DrhLB30IW4oAjeFBz1LMBOhLtnpqyA+02ezOJs=; b=QbdZGbWC6CoOrxpGfzWAk48v9d6mCLMXqRGKV7rarXA/xbxaAFrwKjAgWV4Ej1vbUD 83jD3rYE0uaf0kH79t89W9br7Q7jxQnZZYErafnIyOd2ntK5jmSDHHPgLgZfdwDukyJQ U0dp53/JAlZ/1UEEkjz+1AIUa3iTIAkxoV2yL/+K141Rd7gjqqcrFOB2Xb4GdCgVbtcd BEV4oNDAgFMn0NALav1y1ptNOxbs7e6tLtQPqxLqRHCgs5KWEExCbpEPdYPzbmmEsXf9 UOQdnfBCXOQ/shQA0nu3YO61tk3rHbH+auneNR2NLb1E3gNgmTPEAxstDRq+WGVeFUZF ITIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yXds3DrhLB30IW4oAjeFBz1LMBOhLtnpqyA+02ezOJs=; b=OB6bD13KIWloRm+iHLsb5vsKEU6RdmLZTq1x9WSWZWoEdCyCs4QO9ClhY8CMAE2WQF OqzTu80bHoeltHUNhS7F5BeV1n19YLHkjnlCrQ5fYlNtruXZA7nrDx8o49LySXEP4oox 9XWm/7zt8LF68fFDZj2l7lMKVV0wSL8S1cukiW2AkfssbSsJZGPcZSjGpAEKfqGEfSO0 JaXGZnbpfiwg6/yMliiD0YyF35aRGYbuYUtAFB0jE+bwNYDvAzsdfvrVFS3jZDEhKx7p uGWE/OGV/CMGs0fd7RPtHPdhuTxPuyDEc8LoxhivNQuWw8HoKRmzlm7aOGc2bmEM1keN KO+g== X-Gm-Message-State: AJcUukcuKT1HOmqH17ymWbJ63qSgtopdI5oAE7ceWBZDz3uRL8slSnFN bdg1cT90p5qJTL85WeFoGwE70PC1r5PZX/vkH/124g== X-Google-Smtp-Source: ALg8bN58wsMAygqtrtOqaFR8W50qB6ntvQ5rFfGO2qx+UvwZEX2f+Iqy7EmAPJZbQepybCL5JQAUNXjz/2M2pT5Y9sg= X-Received: by 2002:a2e:4784:: with SMTP id u126-v6mr20772240lja.124.1548768983857; Tue, 29 Jan 2019 05:36:23 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Tue, 29 Jan 2019 19:06:12 +0530 Message-ID: Subject: Re: [pgAdmin4][RM3936] Feature tests failing intermittently for SQL editor related test cases To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000001f6c68058098e104" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000001f6c68058098e104 Content-Type: multipart/alternative; boundary="0000000000001f6c64058098e102" --0000000000001f6c64058098e102 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached is the updated patch. I have changed fill_input_by_field_name function to use javascript to set values of text boxes and the selector is changed from xpath to CSS with a :not(:disabled) clause. With this, test case will fail if tried to set the value of a disabled input. Kindly review. On Mon, Jan 28, 2019 at 5:44 PM Aditya Toshniwal < aditya.toshniwal@enterprisedb.com> wrote: > > > On Mon, Jan 28, 2019 at 5:39 PM Dave Page wrote: > >> On Mon, Jan 28, 2019 at 12:05 PM Aditya Toshniwal >> wrote: >> > >> > Hi Dave, >> > >> > On Mon, Jan 28, 2019 at 5:01 PM Dave Page wrote: >> >> >> >> Hi >> >> >> >> On Mon, Jan 28, 2019 at 7:00 AM Aditya Toshniwal >> >> wrote: >> >> > >> >> > Hi Hackers, >> >> > >> >> > Attached is the patch to fix failing SQL editor related feature >> tests. >> >> > The failure is occurring mostly because of send_keys function of >> selenium which sometimes does not input the complete text. The change will >> use Codemirror javascript object to set the text. >> >> > >> >> > I have also added new args flag "--modules" which can be used after >> --pkg where you can test a specific module file under the pkg. This is not >> so useful for build but definitely helpful for the developers. >> >> >> >> One of the most common failures I see is failure to fill in the >> >> details on the Add Server dialogue (it might type half of an entry, >> >> then just hang). Should we get rid of all uses of send_keys? >> > >> > Setting the text using javascript executor can be done. send_keys >> simulate an actual person, so if you try to set a disabled text box using >> send_keys, it won't. Places where disabled fields doesn't matter, send_keys >> can be removed. >> >> Can't we just do something like: >> >> if input.disabled == false: >> input.value = 'Foo'; >> else: >> raise exception .... >> > I'll check if this can be done. Will get back. > >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > -- > Thanks and Regards, > Aditya Toshniwal > Software Engineer | EnterpriseDB Software Solutions | Pune > "Don't Complain about Heat, Plant a tree" > -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" --0000000000001f6c64058098e102 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

<= span style=3D"font-family:verdana,sans-serif">Attached is the updated patch= . I have changed=C2=A0fill_input_by_field_name function to use javascript to s= et values of text boxes and the selector is changed from xpath to CSS with = a :not(:disabled) clause. With this, test case will fail if tried to set th= e value of a disabled input.

Kindly review.


On Mon, Jan = 28, 2019 at 5:44 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:


On Mon, Jan 28, 2019 at 5:39 PM = Dave Page <dpage@= pgadmin.org> wrote:
On Mon, Jan 28, 2019 at 12:05 PM Aditya Toshniwal
<= aditya.toshniwal@enterprisedb.com> wrote:
>
> Hi Dave,
>
> On Mon, Jan 28, 2019 at 5:01 PM Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi
>>
>> On Mon, Jan 28, 2019 at 7:00 AM Aditya Toshniwal
>> <aditya.toshniwal@enterprisedb.com> wrote:
>> >
>> > Hi Hackers,
>> >
>> > Attached is the patch to fix failing SQL editor related featu= re tests.
>> > The failure is occurring mostly because of send_keys function= of selenium which sometimes does not input the complete text. The change w= ill use Codemirror javascript object to set the text.
>> >
>> > I have also added new args flag "--modules" which c= an be used after --pkg where you can test a specific module file under the = pkg. This is not so useful for build but definitely helpful for the develop= ers.
>>
>> One of the most common failures I see is failure to fill in the >> details on the Add Server dialogue (it might type half of an entry= ,
>> then just hang). Should we get rid of all uses of send_keys?
>
> Setting the text using javascript executor can be done. send_keys simu= late an actual person,=C2=A0 so if you try to set a disabled text box using= send_keys, it won't. Places where disabled fields doesn't matter, = send_keys can be removed.

Can't we just do something like:

if input.disabled =3D=3D false:
=C2=A0 input.value =3D 'Foo';
else:
=C2=A0 raise exception ....
I'll check if this can be = done. Will get back.=C2=A0

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Sol= utions |=C2=A0Pune
"Don't Complain about Heat, Plant a tr= ee"


--
Thanks and Rega= rds,
Aditya Toshniwa= l
Softw= are Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
&q= uot;Don't Complain about Heat, Plant a tree"
--0000000000001f6c64058098e102-- --0000000000001f6c68058098e104 Content-Type: application/octet-stream; name="RM3936_v2.patch" Content-Disposition: attachment; filename="RM3936_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jrht1jpl0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRpbGl0aWVzX2JhY2t1 cF9yZXN0b3JlX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX3V0aWxpdGll c19iYWNrdXBfcmVzdG9yZV90ZXN0LnB5CmluZGV4IDFjODkzOTNkLi40ZTExZjk5NCAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9wZ191dGlsaXRpZXNfYmFja3VwX3Jlc3Rv cmVfdGVzdC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX3V0aWxpdGllc19i YWNrdXBfcmVzdG9yZV90ZXN0LnB5CkBAIC04Myw2ICs4Myw3IEBAIGNsYXNzIFBHVXRpbGl0aWVz QmFja3VwRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2VsZi5wYWdlLmZp bmRfYnlfY3NzX3NlbGVjdG9yKAogICAgICAgICAgICAgIi5wZy1iZy1tb3JlLWRldGFpbHMiKS5j bGljaygpCiAKKyAgICAgICAgYmFja3VwX2ZpbGUgPSBOb25lCiAgICAgICAgICMgQ2hlY2sgZm9y IFhTUyBpbiBCYWNrdXAgZGV0YWlscwogICAgICAgICBpZiBzZWxmLmlzX3hzc19jaGVjazoKICAg ICAgICAgICAgIHNlbGYuX2NoZWNrX2RldGFpbGVkX3dpbmRvd19mb3JfeHNzKCdCYWNrdXAnKQpA QCAtOTksNyArMTAwLDYgQEAgY2xhc3MgUEdVdGlsaXRpZXNCYWNrdXBGZWF0dXJlVGVzdChCYXNl RmVhdHVyZVRlc3QpOgogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJwZ19kdW1wIiwgc3Ry KGNvbW1hbmQpKQogCi0gICAgICAgICAgICBiYWNrdXBfZmlsZSA9IE5vbmUKICAgICAgICAgICAg IGlmIGNvbW1hbmQ6CiAgICAgICAgICAgICAgICAgYmFja3VwX2ZpbGUgPSBjb21tYW5kW2ludChj b21tYW5kLmZpbmQoJy0tZmlsZScpKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDg6aW50KGNvbW1hbmQuZmluZCgnLS1ob3N0JykpIC0gMl0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkKaW5k ZXggZTQ1ZTA2YjcuLmQxYzZjZTYzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9yb3V0 ZS5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQpAQCAtNTYsNyArNTYsNyBAQCBj bGFzcyBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5KEFCQ01ldGEpOgogICAgICAgICBBQkNNZXRhLl9f aW5pdF9fKGNscywgbmFtZSwgYmFzZXMsIGQpCiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYg bG9hZF9nZW5lcmF0b3JzKGNscywgcGtnX3Jvb3QsIGV4Y2x1ZGVfcGtncyk6CisgICAgZGVmIGxv YWRfZ2VuZXJhdG9ycyhjbHMsIHBrZ19yb290LCBleGNsdWRlX3BrZ3MsIGZvcl9tb2R1bGVzPVtd KToKIAogICAgICAgICBjbHMucmVnaXN0cnkgPSBkaWN0KCkKIApAQCAtNjQsNiArNjQsMTMgQEAg Y2xhc3MgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeShBQkNNZXRhKToKIAogICAgICAgICBhbGxfbW9k dWxlcyArPSBmaW5kX21vZHVsZXMocGtnX3Jvb3QsIEZhbHNlLCBUcnVlKQogCisgICAgICAgICMg SWYgc3BlY2lmaWMgbW9kdWxlcyBhcmUgdG8gYmUgdGVzdGVkLCBleGNsdWRlIG90aGVycworICAg ICAgICBpZiBsZW4oZm9yX21vZHVsZXMpID4gMDoKKyAgICAgICAgICAgIGFsbF9tb2R1bGVzID0g W21vZHVsZV9uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbW9kdWxlX25hbWUg aW4gYWxsX21vZHVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmbW9kIGluIGZv cl9tb2R1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtb2R1bGVfbmFtZS5lbmRz d2l0aChmbW9kKV0KKwogICAgICAgICAjIENoZWNrIGZvciBTRVJWRVIgbW9kZQogICAgICAgICBm b3IgbW9kdWxlX25hbWUgaW4gYWxsX21vZHVsZXM6CiAgICAgICAgICAgICB0cnk6CmRpZmYgLS1n aXQgYS93ZWIvcmVncmVzc2lvbi9SRUFETUUgYi93ZWIvcmVncmVzc2lvbi9SRUFETUUKaW5kZXgg N2U2NjhjZmQuLjZhNjhkMzZmIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9SRUFETUUKKysr IGIvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FCkBAIC0xNjcsNiArMTY3LDE0IEBAIFB5dGhvbiBUZXN0 czoKICAgICAgRXhhbXBsZSAyKSBSdW4gdGVzdCBmcmFtZXdvcmsgZm9yICdkYXRhYmFzZScgbm9k ZQogICAgICBydW4gJ3B5dGhvbiBydW50ZXN0cy5weSAtLXBrZyBicm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMnCiAKKy0gRXhlY3V0ZSB0ZXN0IGZyYW1ld29yayBm b3IgY2VydGFpbiBtb2R1bGVzIG9mIGEgdGVzdCBwa2cKKworICAgICBFeGFtcGxlIDEpIFJ1biB0 ZXN0IGZyYW1ld29yayBmb3IgJ3NxbGVkaXRvcicgcGFja2FnZSBhbmQgdGVzdF9zdGFydF9ydW5u aW5nX3F1ZXJ5IG1vZHVsZQorICAgICBydW4gJ3B5dGhvbiBydW50ZXN0cy5weSAtLXBrZyB0b29s cy5zcWxlZGl0b3IgLS1tb2R1bGVzIHRlc3Rfc3RhcnRfcnVubmluZ19xdWVyeScKKworICAgICBF eGFtcGxlIDIpIFJ1biB0ZXN0IGZyYW1ld29yayBmb3IgJ3NxbGVkaXRvcicgcGFja2FnZSBhbmQg dGVzdF9zdGFydF9ydW5uaW5nX3F1ZXJ5LHRlc3RfcXVlcnlfdG9vbF9mc191dGlscyBtb2R1bGVz CisgICAgIHJ1biAncHl0aG9uIHJ1bnRlc3RzLnB5IC0tcGtnIHRvb2xzLnNxbGVkaXRvciAtLW1v ZHVsZXMgdGVzdF9zdGFydF9ydW5uaW5nX3F1ZXJ5LHRlc3RfcXVlcnlfdG9vbF9mc191dGlscycK KwogLSBFeGNsdWRlIGEgcGFja2FnZSBhbmQgaXRzIHN1YnBhY2thZ2VzIHdoZW4gcnVubmluZyB0 ZXN0czoKIAogICAgIEV4YW1wbGU6IGV4Y2x1ZGUgZmVhdHVyZSB0ZXN0cyBidXQgcnVuIGFsbCBv dGhlcnM6CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5f cGFnZS5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdlLnB5Cmlu ZGV4IDBjOGYwZmEzLi5jZDQzNzBlNSAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vZmVhdHVy ZV91dGlscy9wZ2FkbWluX3BhZ2UucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGls cy9wZ2FkbWluX3BhZ2UucHkKQEAgLTIyNCwzOCArMjI0LDYwIEBAIGNsYXNzIFBnYWRtaW5QYWdl OgogICAgICAgICAgICAgImNsaWNraW5nIHRoZSBlbGVtZW50IG5vdCB0byB0aHJvdyBhbiBleGNl cHRpb24iLCBjbGlja19zdWNjZWVkZWQKICAgICAgICAgKQogCi0gICAgZGVmIGZpbGxfaW5wdXRf YnlfZmllbGRfbmFtZShzZWxmLCBmaWVsZF9uYW1lLCBmaWVsZF9jb250ZW50KToKLSAgICAgICAg ZmllbGQgPSBzZWxmLmZpbmRfYnlfeHBhdGgoIi8vaW5wdXRbQG5hbWU9JyIgKyBmaWVsZF9uYW1l ICsgIiddIikKKyAgICBkZWYgZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKHNlbGYsIGZpZWxkX25h bWUsIGZpZWxkX2NvbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1 dF9rZXlzPUZhbHNlKToKKyAgICAgICAgZmllbGQgPSBzZWxmLmZpbmRfYnlfY3NzX3NlbGVjdG9y KAorICAgICAgICAgICAgImlucHV0W25hbWU9JyIgKyBmaWVsZF9uYW1lICsgIiddOm5vdCg6ZGlz YWJsZWQpIikKICAgICAgICAgYmFja3NwYWNlcyA9IFtLZXlzLkJBQ0tTUEFDRV0gKiBsZW4oZmll bGQuZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKSkKIAogICAgICAgICBmaWVsZC5jbGljaygpCi0gICAg ICAgIGZpZWxkLnNlbmRfa2V5cyhiYWNrc3BhY2VzKQotICAgICAgICBmaWVsZC5zZW5kX2tleXMo c3RyKGZpZWxkX2NvbnRlbnQpKQotICAgICAgICBzZWxmLndhaXRfZm9yX2lucHV0X2ZpZWxkX2Nv bnRlbnQoZmllbGRfbmFtZSwgZmllbGRfY29udGVudCkKIAotICAgIGRlZiBmaWxsX2NvZGVtaXJy b3JfYXJlYV93aXRoKHNlbGYsIGZpZWxkX2NvbnRlbnQpOgorICAgICAgICAjIFVzZSBzZW5kIGtl eXMgaWYgaW5wdXRfa2V5cyB0cnVlLCBlbHNlIHVzZSBqYXZhc2NyaXB0IHRvIHNldCBjb250ZW50 CisgICAgICAgIGlmIGlucHV0X2tleXM6CisgICAgICAgICAgICBmaWVsZC5zZW5kX2tleXMoYmFj a3NwYWNlcykKKyAgICAgICAgICAgIGZpZWxkLnNlbmRfa2V5cyhzdHIoZmllbGRfY29udGVudCkp CisgICAgICAgICAgICBzZWxmLndhaXRfZm9yX2lucHV0X2ZpZWxkX2NvbnRlbnQoZmllbGRfbmFt ZSwgZmllbGRfY29udGVudCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZHJpdmVy LmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAgICJhcmd1bWVudHNbMF0uc2V0QXR0cmli dXRlKCd2YWx1ZScsIGFyZ3VtZW50c1sxXSkiLAorICAgICAgICAgICAgICAgIGZpZWxkLCBmaWVs ZF9jb250ZW50KQorCisgICAgICAgICAgICBhY3Rpb24gPSBBY3Rpb25DaGFpbnMoc2VsZi5kcml2 ZXIpCisgICAgICAgICAgICBhY3Rpb24ua2V5X2Rvd24oS2V5cy5BUlJPV19ET1dOKQorICAgICAg ICAgICAgYWN0aW9uLnBlcmZvcm0oKQorCisgICAgZGVmIGZpbGxfY29kZW1pcnJvcl9hcmVhX3dp dGgoc2VsZiwgZmllbGRfY29udGVudCwgaW5wdXRfa2V5cz1GYWxzZSk6CiAgICAgICAgIGRlZiBm aW5kX2NvZGVtaXJyb3IoZHJpdmVyKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg ICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCiAgICAgICAgICAgICAgICAgZHJp dmVyLnN3aXRjaF90b19mcmFtZSgKICAgICAgICAgICAgICAgICAgICAgZHJpdmVyLmZpbmRfZWxl bWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCi0gICAgICAgICAgICAgICAgZWxlbWVudCA9IGRy aXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoCi0gICAgICAgICAgICAgICAgICAgICIvL3ByZVtj b250YWlucyhAY2xhc3MsJ0NvZGVNaXJyb3ItbGluZScpXS8uLi8uLi8uLi8iCi0gICAgICAgICAg ICAgICAgICAgICIqW2NvbnRhaW5zKEBjbGFzcywnQ29kZU1pcnJvci1jb2RlJyldIikKKyAgICAg ICAgICAgICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3Io CisgICAgICAgICAgICAgICAgICAgICIjb3V0cHV0LXBhbmVsIC5Db2RlTWlycm9yIikKICAgICAg ICAgICAgICAgICBpZiBlbGVtZW50LmlzX2Rpc3BsYXllZCgpIGFuZCBlbGVtZW50LmlzX2VuYWJs ZWQoKToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQKICAgICAgICAgICAgIGV4 Y2VwdCAoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwgV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAg ICAgICAgICAgICByZXR1cm4gRmFsc2UKIAorICAgICAgICBjb2RlbWlycm9yX2VsZSA9IFdlYkRy aXZlcldhaXQoCisgICAgICAgICAgICBzZWxmLmRyaXZlciwgdGltZW91dD1zZWxmLnRpbWVvdXQs IHBvbGxfZnJlcXVlbmN5PTAuMDEpXAorICAgICAgICAgICAgLnVudGlsKGZpbmRfY29kZW1pcnJv ciwKKyAgICAgICAgICAgICAgICAgICAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIGNvZGVtaXJyb3Ig dG8gYXBwZWFyIikKKwogICAgICAgICB0aW1lLnNsZWVwKDEpCi0gICAgICAgIFdlYkRyaXZlcldh aXQoc2VsZi5kcml2ZXIsIHRpbWVvdXQ9c2VsZi50aW1lb3V0LCBwb2xsX2ZyZXF1ZW5jeT0wLjAx KS5cCi0gICAgICAgICAgICB1bnRpbChmaW5kX2NvZGVtaXJyb3IsICJUaW1lZCBvdXQgd2FpdGlu ZyBmb3IgY29kZW1pcnJvciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0 byBhcHBlYXIiKS5jbGljaygpCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgY29kZW1p cnJvcl9lbGUuY2xpY2soKQogCi0gICAgICAgIGFjdGlvbiA9IEFjdGlvbkNoYWlucyhzZWxmLmRy aXZlcikKLSAgICAgICAgYWN0aW9uLnNlbmRfa2V5cyhmaWVsZF9jb250ZW50KQotICAgICAgICBh Y3Rpb24ucGVyZm9ybSgpCisgICAgICAgICMgVXNlIHNlbmQga2V5cyBpZiBpbnB1dF9rZXlzIHRy dWUsIGVsc2UgdXNlIGphdmFzY3JpcHQgdG8gc2V0IGNvbnRlbnQKKyAgICAgICAgaWYgaW5wdXRf a2V5czoKKyAgICAgICAgICAgIGFjdGlvbiA9IEFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikKKyAg ICAgICAgICAgIGFjdGlvbi5zZW5kX2tleXMoZmllbGRfY29udGVudCkKKyAgICAgICAgICAgIGFj dGlvbi5wZXJmb3JtKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZHJpdmVyLmV4 ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAgICJhcmd1bWVudHNbMF0uQ29kZU1pcnJvci5z ZXRWYWx1ZShhcmd1bWVudHNbMV0pOyIKKyAgICAgICAgICAgICAgICAiYXJndW1lbnRzWzBdLkNv ZGVNaXJyb3Iuc2V0Q3Vyc29yKCIKKyAgICAgICAgICAgICAgICAiYXJndW1lbnRzWzBdLkNvZGVN aXJyb3IubGluZUNvdW50KCksMCk7IiwKKyAgICAgICAgICAgICAgICBjb2RlbWlycm9yX2VsZSwg ZmllbGRfY29udGVudCkKIAogICAgIGRlZiBjbGlja190YWIoc2VsZiwgdGFiX25hbWUpOgogICAg ICAgICBXZWJEcml2ZXJXYWl0KHNlbGYuZHJpdmVyLCAxMCkudW50aWwoRUMuZWxlbWVudF90b19i ZV9jbGlja2FibGUoCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weSBiL3dl Yi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5CmluZGV4IGIwMjM3MDNkLi4xMTZhMGExNiAxMDA2NDQK LS0tIGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVu dGVzdHMucHkKQEAgLTIzMyw5ICsyMzMsMTQgQEAgZGVmIGdldF90ZXN0X21vZHVsZXMoYXJndW1l bnRzKToKICAgICBpZiBhcmd1bWVudHNbJ3BrZyddIGlzIE5vbmUgb3IgYXJndW1lbnRzWydwa2cn XSA9PSAiYWxsIjoKICAgICAgICAgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeS5sb2FkX2dlbmVyYXRv cnMoJ3BnYWRtaW4nLCBleGNsdWRlX3BrZ3MpCiAgICAgZWxzZToKKyAgICAgICAgZm9yX21vZHVs ZXMgPSBbXQorICAgICAgICBpZiBhcmd1bWVudHNbJ21vZHVsZXMnXSBpcyBub3QgTm9uZToKKyAg ICAgICAgICAgIGZvcl9tb2R1bGVzID0gYXJndW1lbnRzWydtb2R1bGVzJ10uc3BsaXQoJywnKQor CiAgICAgICAgIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkubG9hZF9nZW5lcmF0b3JzKCdwZ2FkbWlu LiVzJyAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy Z3VtZW50c1sncGtnJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV4Y2x1ZGVfcGtncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZXhjbHVkZV9wa2dzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3JfbW9kdWxlcykKIAogICAgICMgU29ydCBtb2R1bGUgbGlzdCBz byB0aGF0IHRlc3Qgc3VpdGUgZXhlY3V0ZXMgdGhlIHRlc3QgY2FzZXMgc2VxdWVudGlhbGx5CiAg ICAgbW9kdWxlX2xpc3QgPSBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5LnJlZ2lzdHJ5Lml0ZW1zKCkK QEAgLTI2Niw2ICsyNzEsMTAgQEAgZGVmIGFkZF9hcmd1bWVudHMoKToKICAgICAgICAgJy0tZGVm YXVsdF9icm93c2VyJywKICAgICAgICAgaGVscD0nRXhlY3V0ZXMgdGhlIGZlYXR1cmUgdGVzdCBp biBzcGVjaWZpYyBicm93c2VyJwogICAgICkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAg ICAgICAnLS1tb2R1bGVzJywKKyAgICAgICAgaGVscD0nRXhlY3V0ZXMgdGhlIGZlYXR1cmUgdGVz dCBmb3Igc3BlY2lmaWMgbW9kdWxlcyBpbiBwa2cnCisgICAgKQogICAgIGFyZyA9IHBhcnNlci5w YXJzZV9hcmdzKCkKIAogICAgIHJldHVybiBhcmcK --0000000000001f6c68058098e104--