Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbaX8-0005d3-OU for pgadmin-hackers@arkaria.postgresql.org; Wed, 08 Feb 2017 22:16:14 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cbaX7-0005Vr-Q5 for pgadmin-hackers@arkaria.postgresql.org; Wed, 08 Feb 2017 22:16:13 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cbaX6-0005Vk-2p for pgadmin-hackers@postgresql.org; Wed, 08 Feb 2017 22:16:12 +0000 Received: from mail-qk0-x231.google.com ([2607:f8b0:400d:c09::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cbaWv-0007fL-4K for pgadmin-hackers@postgresql.org; Wed, 08 Feb 2017 22:16:11 +0000 Received: by mail-qk0-x231.google.com with SMTP id s186so138217943qkb.1 for ; Wed, 08 Feb 2017 14:16:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=UsK18GJ+70epa3akd8NqSPnggDVL04npIDweBlygBtk=; b=ET6AHZ3mYeCq5/iI7N02w9aTvnK0o8Hlw87M0BWnPdYVNdm8t4zAwwll4ISwqpgZ4i txPbXWW9IrnNF2lnWS5jbL7GXhIQ6sIZGaum67/IowJ9S3k54dx94pGO1ucssHhbMDhr XSMyqdbRyLjKCUywlSr8Ax0Mz0/pF3RofD/dw9uXH9uFzKZsqx5MtBU5zTSUxXXL9kiy Wq2ZQYGGID3nAQQNn2WafXU6G3eMwtsvyFvNcaloyyl/Bx+p9ed1TaqnbPj6+O/2D57d QDLyFuG/+oGoNlu+1MRnmP9B6KA5S6G75G3DwUDnvB69SRhFSMWjk92vAcLTscbLyjXF Dm7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=UsK18GJ+70epa3akd8NqSPnggDVL04npIDweBlygBtk=; b=L5qqgBgDL1cqnmQe2u1Zi6zrpQTgiaX9edHeF/gewh4dFmXQhtG/ccl0MJlLQdr6zA MiSKqe5pXq3VfvlK0pGArj8HpBUwwz3AQtyCSMEAKQcO54MsICGc6d4qLr+QJvrA/LuU blLfm6bJHHu0P3ygk9useIcw5OMaF/QRF55l962fvkLuJigIm1tGf1jI+p4CgBotp+Dj FiydqS+msJ0rSLBKfOj4IPQo1uIdswXvkSjpZm+j8DF7/+NTd/jSp1LbEq3/HZ6R4fXK mjLOmbcFJVsN70mfEOWb+0O4SQFyt0VFp2kX+8lWtpQg/eyFEoNcXodWfng3/j/hHEQy h5LA== X-Gm-Message-State: AMke39mfk6V1j/Co7qjZC7br+9XGAVjrXYu3feRVZ1MqX/49hWGeaO9lUrgKuq0cDguPv/zTGb503Jvchmu5VEM9 X-Received: by 10.55.197.28 with SMTP id p28mr22206116qki.255.1486592158708; Wed, 08 Feb 2017 14:15:58 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.102.16 with HTTP; Wed, 8 Feb 2017 14:15:58 -0800 (PST) In-Reply-To: References: From: Atira Odhner Date: Wed, 8 Feb 2017 17:15:58 -0500 Message-ID: Subject: Re: Acceptance Tests against a browser (WIP) To: Dave Page Cc: George Gelashvili , pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1149a3008bea6305480c3561 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1149a3008bea6305480c3561 Content-Type: multipart/alternative; boundary=001a1149a3008bea5e05480c355f --001a1149a3008bea5e05480c355f Content-Type: text/plain; charset=UTF-8 Hey Dave, We re-used one of the test helpers for the 'fix-greenplum-show-tables.diff' patch, so here is an updated patch which does not include adding that test helper in case you apply the show-tables patch first. Also, we saw some strange test behavior yesterday where form fields weren't being filled in correctly so we changed the way that input fields get filled to be more reliable. In short these need to be applied in this order: > git apply fix-greenplum-show-tables.diff git apply acceptance-tests-minus-create-table-helper-with-fixed-inputs.diff We also moved the --exclude flag changes out to a separate patch. On our side we are still dealing with these as 20 separate commits. What is the best way for us to send you these patches? Do you prefer having them all squashed down to a single patch or to have smaller patches? On Mon, Feb 6, 2017 at 9:54 AM, Atira Odhner wrote: > I agree that we should rename the test. We've renamed it to > "template_selection_feature_test". > Your other suggestions are captured in our backlog as future improvements. > We definitely can and should do those things but I think it would be > valuable to go ahead and get this suite in and give other devs a chance to > use and iterate on this work. > > Thanks, > > Tira & George > > On Mon, Feb 6, 2017 at 5:32 AM, Dave Page wrote: > >> Hi >> >> On Fri, Feb 3, 2017 at 9:56 PM, Atira Odhner wrote: >> > Hi Dave, >> > >> > Here is a new patch which includes the following: >> > - randomized ports >> > - delete the acceptance_test_db database in setup in case a prior run >> failed >> > - fixed size browser window >> >> Definitely getting there :-). A couple of thoughts/questions: >> >> - Now there are 2 tests in there, it's clear that both the Python >> server and browser session are restarted for each test. Can this be >> avoided? It'll really slow down test execution as more and more are >> added. >> >> - We've got a new monster name: >> pgadmin.acceptance.tests.sql_template_selection_by_postgres_ >> version_works_feature_test.SQLTemplateSelectionByPostgresVer >> sionWorksFeatureTest >> (which on disk is >> sql_template_select_by_postgres_version_works_feature_test.py). Names >> like that really must be shortened to something more sane and >> manageable. >> >> - I'm a little confused by why the tests cannot be run in server mode. >> The error says it's because the username/password is unknown - >> however, both the pgAdmin and database server usernames and passwords >> are in test_config.json. >> >> Thanks! >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > --001a1149a3008bea5e05480c355f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hey Dave,

We re-used one of the test he= lpers for the 'fix-greenplum-show-tables.diff' patch, so here = is an updated patch=C2=A0which=C2=A0does not include adding that test helpe= r in case you apply the show-tables patch first. Also, we saw some strange = test behavior yesterday where form fields weren't being filled in corre= ctly so we changed the way that input fields get filled to be more reliable= .

In short these need to be applied in this order:=
git apply=C2=A0fix-greenplum-show-tables.diff
git apply=C2=A0acceptance-tests-minus-create-table-helper-with-fixed-inputs.diff

We also moved the --exclude flag changes out to a separate patch.

On our s= ide we are still dealing with these as 20 separate commits. What is the bes= t way for us to send you these patches? Do you prefer having them all squas= hed down to a single patch or to have smaller patches?

=


On Mon, Feb 6, 2017 at 9:54 AM, Atira Odhner <aodhner@pivotal.io&= gt; wrote:
I agree that we should rena= me the test. We've renamed it to "template_selection_feature_= test".
Your other suggestions are capt= ured in our backlog as future improvements. We definitely can and should do= those things but I think it would be valuable to go ahead and get this sui= te in and give other devs a chance to use and iterate on this work.

Thanks,
=

Tira & = George

On Mon, Feb 6, 2017 at 5:32 AM, Dave Page <dpage@p= gadmin.org> wrote:
Hi

On Fri, Feb 3, 2017 at 9:56 PM, Atira Odhner <aodhner@pivotal.io> wrote:
> Hi Dave,
>
> Here is a new patch which includes the following:
> - randomized ports
> - delete the acceptance_test_db database in setup in case a prior run = failed
> - fixed size browser window

Definitely getting there :-). A couple of thoughts/questions:

- Now there are 2 tests in there, it's clear that both the Python
server and browser session are restarted for each test. Can this be
avoided? It'll really slow down test execution as more and more are
added.

- We've got a new monster name:
pgadmin.acceptance.tests.sql_template_selection_by_postgres_versi= on_works_feature_test.SQLTemplateSelectionByPostgresVersionWorksF= eatureTest
(which on disk is
sql_template_select_by_postgres_version_works_feature_test.py). N= ames
like that really must be shortened to something more sane and
manageable.

- I'm a little confused by why the tests cannot be run in server mode.<= br> The error says it's because the username/password is unknown -
however, both the pgAdmin and database server usernames and passwords
are in test_config.json.

Thanks!

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

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


--001a1149a3008bea5e05480c355f-- --001a1149a3008bea6305480c3561 Content-Type: text/plain; charset=US-ASCII; name="acceptance-tests-minus-create-table-helper-with-fixed-inputs.diff" Content-Disposition: attachment; filename="acceptance-tests-minus-create-table-helper-with-fixed-inputs.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iyxikvt20 Y29tbWl0IGYzNDAxNzhjM2YyZDc3OWVhNTM2OGY0OGEzNmY0NzExMmUyZmEz MTYKQXV0aG9yOiBHZW9yZ2UgR2VsYXNodmlsaSBhbmQgVGlyYSBPZGhuZXIg PHBhaXIrZ2dlbGFzaHZpbGkrYW9kaG5lckBwaXZvdGFsLmlvPgpEYXRlOiAg IFdlZCBGZWIgOCAxNDo1MjozMiAyMDE3IC0wNTAwCgogICAgQUNDRVBUQU5D RSBURVNUIFNRVUFTSAogICAgCiAgICBCYXNlZCBvbiBXb3JrIGFyb3VuZCBp bnB1dCB2YWxpZGF0aW9uIGJ5IHNlbmRpbmcgYmFja3NwYWNlIHRvIGNsZWFy CgpkaWZmIC0tZ2l0IGEvcmVxdWlyZW1lbnRzX3B5Mi50eHQgYi9yZXF1aXJl bWVudHNfcHkyLnR4dAppbmRleCA0ZmIwNTg5MS4uOTk4Y2RhYmYgMTAwNjQ0 Ci0tLSBhL3JlcXVpcmVtZW50c19weTIudHh0CisrKyBiL3JlcXVpcmVtZW50 c19weTIudHh0CkBAIC0zNiw2ICszNiw3IEBAIHRlc3RzY2VuYXJpb3M9PTAu NS4wCiB0ZXN0dG9vbHM9PTIuMC4wCiB0cmFjZWJhY2syPT0xLjQuMAogdW5p dHRlc3QyPT0xLjEuMAorc2VsZW5pdW09PTMuMC4yCiBXZXJremV1Zz09MC45 LjYKIFdURm9ybXM9PTIuMC4yCiBzcWxwYXJzZT09MC4xLjE5CmRpZmYgLS1n aXQgYS9yZXF1aXJlbWVudHNfcHkzLnR4dCBiL3JlcXVpcmVtZW50c19weTMu dHh0CmluZGV4IGM0NDkwZjUyLi4yMjM5ZGU2MyAxMDA2NDQKLS0tIGEvcmVx dWlyZW1lbnRzX3B5My50eHQKKysrIGIvcmVxdWlyZW1lbnRzX3B5My50eHQK QEAgLTM1LDYgKzM1LDcgQEAgdGVzdHNjZW5hcmlvcz09MC41LjAKIHRlc3R0 b29scz09Mi4wLjAKIHRyYWNlYmFjazI9PTEuNC4wCiB1bml0dGVzdDI9PTEu MS4wCitzZWxlbml1bT09My4wLjIKIFdlcmt6ZXVnPT0wLjkuNgogV1RGb3Jt cz09Mi4wLjIKIHNxbHBhcnNlPT0wLjEuMTkKZGlmZiAtLWdpdCBhL3dlYi9w Z0FkbWluNC5weSBiL3dlYi9wZ0FkbWluNC5weQppbmRleCA2ODg0OGMwMC4u OTVlNjc1YjcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ0FkbWluNC5weQorKysgYi93 ZWIvcGdBZG1pbjQucHkKQEAgLTU5LDYgKzU5LDEyIEBAIGlmICdQR0FETUlO X1BPUlQnIGluIGdsb2JhbHMoKToKICAgICAgICAgICAgICAgICAgICAgIGds b2JhbHMoKVsnUEdBRE1JTl9QT1JUJ10pCiAgICAgc2VydmVyX3BvcnQgPSBp bnQoZ2xvYmFscygpWydQR0FETUlOX1BPUlQnXSkKICAgICBQR0FETUlOX1JV TlRJTUUgPSBUcnVlCitlbGlmICdQR0FETUlOX1BPUlQnIGluIG9zLmVudmly b246CisgICAgcG9ydCA9IG9zLmVudmlyb25bJ1BHQURNSU5fUE9SVCddCisg ICAgYXBwLmxvZ2dlci5kZWJ1ZygKKyAgICAgICAgJ05vdCBydW5uaW5nIHVu ZGVyIHRoZSBkZXNrdG9wIHJ1bnRpbWUsIHBvcnQ6ICVzJywKKyAgICAgICAg cG9ydCkKKyAgICBzZXJ2ZXJfcG9ydCA9IGludChwb3J0KQogZWxzZToKICAg ICBhcHAubG9nZ2VyLmRlYnVnKAogICAgICAgICAnTm90IHJ1bm5pbmcgdW5k ZXIgdGhlIGRlc2t0b3AgcnVudGltZSwgcG9ydDogJXMnLApkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYWNjZXB0YW5jZS9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2FjY2VwdGFuY2UvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAuLmU2OWRlMjliCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9hY2NlcHRhbmNlL3Rlc3RzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZTY5ZGUyOWIKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2FjY2VwdGFuY2UvdGVzdHMvY29ubmVjdF90 b19zZXJ2ZXJfZmVhdHVyZV90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vYWNjZXB0 YW5jZS90ZXN0cy9jb25uZWN0X3RvX3NlcnZlcl9mZWF0dXJlX3Rlc3QucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmMzYmVlNGU2 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYWNjZXB0YW5jZS90 ZXN0cy9jb25uZWN0X3RvX3NlcnZlcl9mZWF0dXJlX3Rlc3QucHkKQEAgLTAs MCArMSw5MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHNlbGVuaXVtIGlt cG9ydCB3ZWJkcml2ZXIKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9y dCBBY3Rpb25DaGFpbnMKKworaW1wb3J0IGNvbmZpZyBhcyBhcHBfY29uZmln Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMKK2Zy b20gcmVncmVzc2lvbi51dGlscy5hcHBfc3RhcnRlciBpbXBvcnQgQXBwU3Rh cnRlcgorZnJvbSByZWdyZXNzaW9uLnV0aWxzLnBnYWRtaW5fcGFnZSBpbXBv cnQgUGdhZG1pblBhZ2UKKworCitjbGFzcyBDb25uZWN0c1RvU2VydmVyRmVh dHVyZVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAgIFRl c3RzIHRoYXQgYSBkYXRhYmFzZSBjb25uZWN0aW9uIGNhbiBiZSBjcmVhdGVk IGZyb20gdGhlIFVJCisgICAgIiIiCisKKyAgICBkZWYgc2V0VXAoc2VsZik6 CisgICAgICAgIGlmIGFwcF9jb25maWcuU0VSVkVSX01PREU6CisgICAgICAg ICAgICBzZWxmLnNraXBUZXN0KCJDdXJyZW50bHksIGNvbmZpZyBpcyBzZXQg dG8gc3RhcnQgcGdhZG1pbiBpbiBzZXJ2ZXIgbW9kZS4gIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAiVGhpcyB0ZXN0IGRvZXNuJ3Qga25vdyB1c2Vy bmFtZSBhbmQgcGFzc3dvcmQgc28gZG9lc24ndCB3b3JrIGluIHNlcnZlciBt b2RlIikKKworICAgICAgICBkcml2ZXIgPSB3ZWJkcml2ZXIuQ2hyb21lKCkK KyAgICAgICAgc2VsZi5hcHBfc3RhcnRlciA9IEFwcFN0YXJ0ZXIoZHJpdmVy LCBhcHBfY29uZmlnKQorICAgICAgICBzZWxmLnBhZ2UgPSBQZ2FkbWluUGFn ZShkcml2ZXIsIGFwcF9jb25maWcpCisKKyAgICAgICAgY29ubmVjdGlvbiA9 IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2Ri J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hv c3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgdGVz dF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sICJhY2NlcHRhbmNl X3Rlc3RfZGIiKQorICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV9kYXRhYmFz ZShzZWxmLnNlcnZlciwgImFjY2VwdGFuY2VfdGVzdF9kYiIpCisgICAgICAg IHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCAiYWNjZXB0 YW5jZV90ZXN0X2RiIiwgInRlc3RfdGFibGUiKQorCisgICAgICAgIHNlbGYu YXBwX3N0YXJ0ZXIuc3RhcnRfYXBwKCkKKyAgICAgICAgc2VsZi5wYWdlLndh aXRfZm9yX2FwcCgpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbChhcHBfY29uZmlnLkFQUF9OQU1FLCBzZWxm LnBhZ2UuZHJpdmVyLnRpdGxlKQorICAgICAgICBzZWxmLnBhZ2Uud2FpdF9m b3Jfc3Bpbm5lcl90b19kaXNhcHBlYXIoKQorCisgICAgICAgIHNlbGYuX2Nv bm5lY3RzX3RvX3NlcnZlcigpCisgICAgICAgIHNlbGYuX3RhYmxlc19ub2Rl X2V4cGFuZGFibGUoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg ICAgICBzZWxmLnBhZ2UucmVtb3ZlX3NlcnZlcihzZWxmLnNlcnZlcikKKyAg ICAgICAgc2VsZi5hcHBfc3RhcnRlci5zdG9wX2FwcCgpCisKKyAgICAgICAg Y29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2Vs Zi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkK KyAgICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24s ICJhY2NlcHRhbmNlX3Rlc3RfZGIiKQorCisgICAgZGVmIGZhaWx1cmVFeGNl cHRpb24oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5w YWdlLmRyaXZlci5zYXZlX3NjcmVlbnNob3QoJy90bXAvcGdhZG1pbl9jb25u ZWN0X3RvX3NlcnZlcl90ZXN0X2ZhaWx1cmUucG5nJykKKyAgICAgICAgcmV0 dXJuIEFzc2VydGlvbkVycm9yKCphcmdzLCAqKmt3YXJncykKKworICAgIGRl ZiBfY29ubmVjdHNfdG9fc2VydmVyKHNlbGYpOgorICAgICAgICBzZWxmLnBh Z2UuZmluZF9ieV94cGF0aCgiLy8qW0BjbGFzcz0nYWNpVHJlZVRleHQnIGFu ZCAuPSdTZXJ2ZXJzJ10iKS5jbGljaygpCisgICAgICAgIHNlbGYucGFnZS5k cml2ZXIuZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dCgiT2JqZWN0IikuY2xp Y2soKQorICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5wYWdlLmRyaXZlcikg XAorICAgICAgICAgICAgLm1vdmVfdG9fZWxlbWVudChzZWxmLnBhZ2UuZHJp dmVyLmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoIkNyZWF0ZSIpKSBcCisg ICAgICAgICAgICAucGVyZm9ybSgpCisgICAgICAgIHNlbGYucGFnZS5maW5k X2J5X3BhcnRpYWxfbGlua190ZXh0KCJTZXJ2ZXIuLi4iKS5jbGljaygpCisK KyAgICAgICAgc2VydmVyX2NvbmZpZyA9IHNlbGYuc2VydmVyCisgICAgICAg IHNlbGYucGFnZS5maWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoIm5hbWUiLCBz ZXJ2ZXJfY29uZmlnWyduYW1lJ10pCisgICAgICAgIHNlbGYucGFnZS5maW5k X2J5X3BhcnRpYWxfbGlua190ZXh0KCJDb25uZWN0aW9uIikuY2xpY2soKQor ICAgICAgICBzZWxmLnBhZ2UuZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKCJo b3N0Iiwgc2VydmVyX2NvbmZpZ1snaG9zdCddKQorICAgICAgICBzZWxmLnBh Z2UuZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKCJwb3J0Iiwgc2VydmVyX2Nv bmZpZ1sncG9ydCddKQorICAgICAgICBzZWxmLnBhZ2UuZmlsbF9pbnB1dF9i eV9maWVsZF9uYW1lKCJ1c2VybmFtZSIsIHNlcnZlcl9jb25maWdbJ3VzZXJu YW1lJ10pCisgICAgICAgIHNlbGYucGFnZS5maWxsX2lucHV0X2J5X2ZpZWxk X25hbWUoInBhc3N3b3JkIiwgc2VydmVyX2NvbmZpZ1snZGJfcGFzc3dvcmQn XSkKKyAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoIi8vYnV0dG9u W2NvbnRhaW5zKC4sJ1NhdmUnKV0iKS5jbGljaygpCisKKyAgICBkZWYgX3Rh Ymxlc19ub2RlX2V4cGFuZGFibGUoc2VsZik6CisgICAgICAgIHNlbGYucGFn ZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oc2VsZi5zZXJ2ZXJbJ25hbWUnXSkK KyAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnRGF0 YWJhc2VzJykKKyAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVf aXRlbSgnYWNjZXB0YW5jZV90ZXN0X2RiJykKKyAgICAgICAgc2VsZi5wYWdl LnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnU2NoZW1hcycpCisgICAgICAgIHNl bGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ3B1YmxpYycpCisgICAg ICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ1RhYmxlcycp CisgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ3Rl c3RfdGFibGUnKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYWNjZXB0YW5j ZS90ZXN0cy90ZW1wbGF0ZV9zZWxlY3Rpb25fZmVhdHVyZV90ZXN0LnB5IGIv d2ViL3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cy90ZW1wbGF0ZV9zZWxlY3Rp b25fZmVhdHVyZV90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwLi5iNzQwNWQ1NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2FjY2VwdGFuY2UvdGVzdHMvdGVtcGxhdGVfc2VsZWN0aW9uX2Zl YXR1cmVfdGVzdC5weQpAQCAtMCwwICsxLDc4IEBACitmcm9tIHNlbGVuaXVt IGltcG9ydCB3ZWJkcml2ZXIKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGlt cG9ydCBBY3Rpb25DaGFpbnMKKworaW1wb3J0IGNvbmZpZyBhcyBhcHBfY29u ZmlnCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMK K2Zyb20gcmVncmVzc2lvbi51dGlscy5hcHBfc3RhcnRlciBpbXBvcnQgQXBw U3RhcnRlcgorZnJvbSByZWdyZXNzaW9uLnV0aWxzLnBnYWRtaW5fcGFnZSBp bXBvcnQgUGdhZG1pblBhZ2UKKworCitjbGFzcyBUZW1wbGF0ZVNlbGVjdGlv bkZlYXR1cmVUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICBkZWYgc2V0 VXAoc2VsZik6CisgICAgICAgIGlmIGFwcF9jb25maWcuU0VSVkVSX01PREU6 CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJDdXJyZW50bHksIGNvbmZp ZyBpcyBzZXQgdG8gc3RhcnQgcGdhZG1pbiBpbiBzZXJ2ZXIgbW9kZS4gIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyB0ZXN0IGRvZXNuJ3Qg a25vdyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgc28gZG9lc24ndCB3b3JrIGlu IHNlcnZlciBtb2RlIikKKworICAgICAgICBkcml2ZXIgPSB3ZWJkcml2ZXIu Q2hyb21lKCkKKyAgICAgICAgc2VsZi5hcHBfc3RhcnRlciA9IEFwcFN0YXJ0 ZXIoZHJpdmVyLCBhcHBfY29uZmlnKQorICAgICAgICBzZWxmLnBhZ2UgPSBQ Z2FkbWluUGFnZShkcml2ZXIsIGFwcF9jb25maWcpCisKKyAgICAgICAgY29u bmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5z ZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAg ICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sICJh Y2NlcHRhbmNlX3Rlc3RfZGIiKQorCisgICAgICAgIHRlc3RfdXRpbHMuY3Jl YXRlX2RhdGFiYXNlKHNlbGYuc2VydmVyLCAiYWNjZXB0YW5jZV90ZXN0X2Ri IikKKworICAgICAgICBzZWxmLmFwcF9zdGFydGVyLnN0YXJ0X2FwcCgpCisg ICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9hcHAoKQorCisgICAgICAgIHNl bGYucGFnZS5hZGRfc2VydmVyKHNlbGYuc2VydmVyKQorCisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxl KHNlbGYuc2VydmVyLCAiYWNjZXB0YW5jZV90ZXN0X2RiIiwgInRlc3RfdGFi bGUiKQorCisgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0 ZW0oc2VsZi5zZXJ2ZXJbJ25hbWUnXSkKKyAgICAgICAgc2VsZi5wYWdlLnRv Z2dsZV9vcGVuX3RyZWVfaXRlbSgnRGF0YWJhc2VzJykKKyAgICAgICAgc2Vs Zi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnYWNjZXB0YW5jZV90ZXN0 X2RiJykKKyAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRl bSgnU2NoZW1hcycpCisgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90 cmVlX2l0ZW0oJ3B1YmxpYycpCisgICAgICAgIHNlbGYucGFnZS5maW5kX2J5 X3hwYXRoKCIvLypbQGlkPSd0cmVlJ10vLypbQGNsYXNzPSdhY2lUcmVlVGV4 dCcgYW5kIC49J1RyaWdnZXIgRnVuY3Rpb25zJ10iKS5jbGljaygpCisgICAg ICAgIHNlbGYucGFnZS5maW5kX2J5X3BhcnRpYWxfbGlua190ZXh0KCJPYmpl Y3QiKS5jbGljaygpCisgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2Uu ZHJpdmVyKSBcCisgICAgICAgICAgICAubW92ZV90b19lbGVtZW50KHNlbGYu cGFnZS5kcml2ZXIuZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dCgiQ3JlYXRl IikpIFwKKyAgICAgICAgICAgIC5wZXJmb3JtKCkKKyAgICAgICAgc2VsZi5w YWdlLmZpbmRfYnlfcGFydGlhbF9saW5rX3RleHQoIlRyaWdnZXIgZnVuY3Rp b24uLi4iKS5jbGljaygpCisgICAgICAgIHNlbGYucGFnZS5maWxsX2lucHV0 X2J5X2ZpZWxkX25hbWUoIm5hbWUiLCAidGVzdC10cmlnZ2VyLWZ1bmN0aW9u IikKKyAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfcGFydGlhbF9saW5rX3Rl eHQoIkRlZmluaXRpb24iKS5jbGljaygpCisgICAgICAgIHNlbGYucGFnZS5m aWxsX2NvZGVtaXJyb3JfYXJlYV93aXRoKAorIiIiQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gbG9nX2xhc3RfbmFtZV9jaGFuZ2VzKCkKK1JFVFVSTlMg VFJJR0dFUiBBUworJEJPRFkkCitCRUdJTgorCitFTkQ7CiskQk9EWSQKKyIi IgorICAgICAgICApCisgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3BhcnRp YWxfbGlua190ZXh0KCJTUUwiKS5jbGljaygpCisKKyAgICAgICAgc2VsZi5w YWdlLmZpbmRfYnlfeHBhdGgoIi8vKltjb250YWlucyhAY2xhc3MsJ0NvZGVN aXJyb3ItbGluZXMnKSBhbmQgY29udGFpbnMoLiwnTEVBS1BST09GJyldIikK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgc2VsZi5wYWdl LmZpbmRfYnlfeHBhdGgoIi8vYnV0dG9uW2NvbnRhaW5zKC4sJ0NhbmNlbCcp XSIpLmNsaWNrKCkKKyAgICAgICAgc2VsZi5wYWdlLnJlbW92ZV9zZXJ2ZXIo c2VsZi5zZXJ2ZXIpCisgICAgICAgIHNlbGYuYXBwX3N0YXJ0ZXIuc3RvcF9h cHAoKQorICAgICAgICBjb25uZWN0aW9uID0gdGVzdF91dGlscy5nZXRfZGJf Y29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29y ZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlclsncG9ydCddKQorICAgICAgICB0ZXN0X3V0aWxzLmRyb3BfZGF0YWJh c2UoY29ubmVjdGlvbiwgImFjY2VwdGFuY2VfdGVzdF9kYiIpCisKKyAgICBk ZWYgZmFpbHVyZUV4Y2VwdGlvbihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgor ICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnNhdmVfc2NyZWVuc2hvdCgnL3Rt cC9wZ2FkbWluX3NxbF90ZW1wbGF0ZV9zZWxlY3Rpb25fZmFpbHVyZS5wbmcn KQorICAgICAgICByZXR1cm4gQXNzZXJ0aW9uRXJyb3IoKmFyZ3MsICoqa3dh cmdzKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vLmdpdGlnbm9yZSBi L3dlYi9yZWdyZXNzaW9uLy5naXRpZ25vcmUKaW5kZXggMDU4MTgxMGIuLjcy M2ZjZTdlIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi8uZ2l0aWdub3Jl CisrKyBiL3dlYi9yZWdyZXNzaW9uLy5naXRpZ25vcmUKQEAgLTEsNCArMSw1 IEBACiBwYXJlbnRfaWQucGtsCiByZWdyZXNzaW9uLmxvZwordGVzdF9ncmVl bnBsdW1fY29uZmlnLmpzb24KIHRlc3RfYWR2YW5jZWRfY29uZmlnLmpzb24K IHRlc3RfY29uZmlnLmpzb24KZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9u L1JFQURNRSBiL3dlYi9yZWdyZXNzaW9uL1JFQURNRQppbmRleCA4Y2MyOTk4 Ny4uYWU1ZDI2OGQgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL1JFQURN RQorKysgYi93ZWIvcmVncmVzc2lvbi9SRUFETUUKQEAgLTEwMyw2ICsxMDMs MTAgQEAgVGVzdCBEYXRhIERldGFpbHMKIEV4ZWN1dGlvbjoKIC0tLS0tLS0t LS0tCiAKKy0gRm9yIGFjY2VwdGFuY2UgdGVzdHMgdG8gcnVuIGFzIHBhcnQg b2YgdGhlIGVudGlyZSB0ZXN0IHN1aXRlLCBDaHJvbWUgYW5kIGNocm9tZWRy aXZlciBuZWVkIHRvIGJlIGluc3RhbGxlZDoKKyAgZ2V0IGNocm9tZWRyaXZl ciBmcm9tIGh0dHBzOi8vc2l0ZXMuZ29vZ2xlLmNvbS9hL2Nocm9taXVtLm9y Zy9jaHJvbWVkcml2ZXIvZG93bmxvYWRzIG9yIGEgcGFja2FnZSBtYW5hZ2Vy CisgIGFuZCBtYWtlIHN1cmUgaXQgaXMgb24gdGhlIFBBVEgKKwogLSBUaGUg dGVzdCBmcmFtZXdvcmsgaXMgbW9kdWxhciBhbmQgcGx1Z2dhYmxlIGFuZCBk eW5hbWljYWxseSBsb2NhdGVzIHRlc3RzCiAgIGZvciBtb2R1bGVzIHdoaWNo IGFyZSBkaXNjb3ZlcmVkIGF0IHJ1bnRpbWUuIEFsbCB0ZXN0IGNhc2VzIGFy ZSBmb3VuZAogICBhbmQgcmVnaXN0ZXJlZCBhdXRvbWF0aWNhbGx5IGJ5IGl0 cyBtb2R1bGUgbmFtZSBpbgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24v dXRpbHMvYXBwX3N0YXJ0ZXIucHkgYi93ZWIvcmVncmVzc2lvbi91dGlscy9h cHBfc3RhcnRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMC4uYjI5N2JkNmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVz c2lvbi91dGlscy9hcHBfc3RhcnRlci5weQpAQCAtMCwwICsxLDM0IEBACitp bXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9jZXNzCisKK2ltcG9ydCBzaWduYWwK KworaW1wb3J0IHJhbmRvbQorCitjbGFzcyBBcHBTdGFydGVyOgorICAgICIi IgorICAgIEhlbHBlciBmb3Igc3RhcnRpbmcgdGhlIGZ1bGwgcGdhZG1pbjQg YXBwIGFuZCBsb2FkaW5nIHRoZSBwYWdlIHZpYSBzZWxlbml1bQorICAgICIi IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlciwgYXBwX2NvbmZp Zyk6CisgICAgICAgIHNlbGYuZHJpdmVyID0gZHJpdmVyCisgICAgICAgIHNl bGYuYXBwX2NvbmZpZyA9IGFwcF9jb25maWcKKworICAgIGRlZiBzdGFydF9h cHAoc2VsZik6CisgICAgICAgIHJhbmRvbV9zZXJ2ZXJfcG9ydCA9IHN0cihy YW5kb20ucmFuZGludCgxMDAwMCwgNjU1MzUpKQorICAgICAgICBlbnYgPSB7 IlBHQURNSU5fUE9SVCI6IHJhbmRvbV9zZXJ2ZXJfcG9ydH0KKyAgICAgICAg ZW52LnVwZGF0ZShvcy5lbnZpcm9uKQorCisgICAgICAgIHNlbGYucGdhZG1p bl9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbInB5dGhvbiIsICJwZ0Fk bWluNC5weSIsICJtYWdpYy1wb3J0YWwiLCByYW5kb21fc2VydmVyX3BvcnRd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2hlbGw9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmVleGVjX2ZuPW9zLnNldHNpZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0ZGVycj1vcGVuKG9zLmRldm51bGwsICd3JyksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52 KQorCisgICAgICAgIHNlbGYuZHJpdmVyLnNldF93aW5kb3dfc2l6ZSgxMDI0 LCAxMDI0KQorICAgICAgICBwcmludCgib3BlbmluZyBicm93c2VyIikKKyAg ICAgICAgc2VsZi5kcml2ZXIuZ2V0KCJodHRwOi8vIiArIHNlbGYuYXBwX2Nv bmZpZy5ERUZBVUxUX1NFUlZFUiArICI6IiArIHJhbmRvbV9zZXJ2ZXJfcG9y dCkKKworICAgIGRlZiBzdG9wX2FwcChzZWxmKToKKyAgICAgICAgc2VsZi5k cml2ZXIuY2xvc2UoKQorICAgICAgICBvcy5raWxscGcob3MuZ2V0cGdpZChz ZWxmLnBnYWRtaW5fcHJvY2Vzcy5waWQpLCBzaWduYWwuU0lHVEVSTSkKZGlm ZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3V0aWxzL3BnYWRtaW5fcGFnZS5w eSBiL3dlYi9yZWdyZXNzaW9uL3V0aWxzL3BnYWRtaW5fcGFnZS5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZDZhNTgzNmMKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi91dGlscy9wZ2FkbWlu X3BhZ2UucHkKQEAgLTAsMCArMSwxMjAgQEAKK2ltcG9ydCB0aW1lCitmcm9t IHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBOb1N1Y2hFbGVt ZW50RXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQg QWN0aW9uQ2hhaW5zCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24u a2V5cyBpbXBvcnQgS2V5cworCisKK2NsYXNzIFBnYWRtaW5QYWdlOgorICAg ICIiIgorICAgIEhlbHBlciBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0 aGUgcGFnZSwgZ2l2ZW4gYSBzZWxlbml1bSBkcml2ZXIKKyAgICAiIiIKKyAg ICBkZWYgX19pbml0X18oc2VsZiwgZHJpdmVyLCBhcHBfY29uZmlnKToKKyAg ICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIKKyAgICAgICAgc2VsZi5hcHBf Y29uZmlnID0gYXBwX2NvbmZpZworCisgICAgZGVmIGFkZF9zZXJ2ZXIoc2Vs Ziwgc2VydmVyX2NvbmZpZyk6CisgICAgICAgIHNlbGYud2FpdF9mb3Jfc3Bp bm5lcl90b19kaXNhcHBlYXIoKQorCisgICAgICAgIHNlbGYuZmluZF9ieV94 cGF0aCgiLy8qW0BjbGFzcz0nYWNpVHJlZVRleHQnIGFuZCBjb250YWlucygu LCdTZXJ2ZXJzJyldIikuY2xpY2soKQorICAgICAgICBzZWxmLmRyaXZlci5m aW5kX2VsZW1lbnRfYnlfbGlua190ZXh0KCJPYmplY3QiKS5jbGljaygpCisg ICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikgXAorICAgICAgICAg ICAgLm1vdmVfdG9fZWxlbWVudChzZWxmLmRyaXZlci5maW5kX2VsZW1lbnRf YnlfbGlua190ZXh0KCJDcmVhdGUiKSkgXAorICAgICAgICAgICAgLnBlcmZv cm0oKQorICAgICAgICBzZWxmLmZpbmRfYnlfcGFydGlhbF9saW5rX3RleHQo IlNlcnZlci4uLiIpLmNsaWNrKCkKKworICAgICAgICBzZWxmLmZpbGxfaW5w dXRfYnlfZmllbGRfbmFtZSgibmFtZSIsIHNlcnZlcl9jb25maWdbJ25hbWUn XSkKKyAgICAgICAgc2VsZi5maW5kX2J5X3BhcnRpYWxfbGlua190ZXh0KCJD b25uZWN0aW9uIikuY2xpY2soKQorICAgICAgICBzZWxmLmZpbGxfaW5wdXRf YnlfZmllbGRfbmFtZSgiaG9zdCIsIHNlcnZlcl9jb25maWdbJ2hvc3QnXSkK KyAgICAgICAgc2VsZi5maWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoInBvcnQi LCBzZXJ2ZXJfY29uZmlnWydwb3J0J10pCisgICAgICAgIHNlbGYuZmlsbF9p bnB1dF9ieV9maWVsZF9uYW1lKCJ1c2VybmFtZSIsIHNlcnZlcl9jb25maWdb J3VzZXJuYW1lJ10pCisgICAgICAgIHNlbGYuZmlsbF9pbnB1dF9ieV9maWVs ZF9uYW1lKCJwYXNzd29yZCIsIHNlcnZlcl9jb25maWdbJ2RiX3Bhc3N3b3Jk J10pCisgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgiLy9idXR0b25bY29u dGFpbnMoLiwnU2F2ZScpXSIpLmNsaWNrKCkKKworICAgICAgICBzZWxmLmZp bmRfYnlfeHBhdGgoIi8vKltAaWQ9J3RyZWUnXS8vKlsuPSciICsgc2VydmVy X2NvbmZpZ1snbmFtZSddICsgIiddIikKKworICAgIGRlZiByZW1vdmVfc2Vy dmVyKHNlbGYsIHNlcnZlcl9jb25maWcpOgorICAgICAgICBzZWxmLmZpbmRf YnlfeHBhdGgoIi8vKltAaWQ9J3RyZWUnXS8vKlsuPSciICsgc2VydmVyX2Nv bmZpZ1snbmFtZSddICsgIicgYW5kIEBjbGFzcz0nYWNpVHJlZUl0ZW0nXSIp LmNsaWNrKCkKKyAgICAgICAgc2VsZi5maW5kX2J5X3BhcnRpYWxfbGlua190 ZXh0KCJPYmplY3QiKS5jbGljaygpCisgICAgICAgIHNlbGYuZmluZF9ieV9w YXJ0aWFsX2xpbmtfdGV4dCgiRGVsZXRlL0Ryb3AiKS5jbGljaygpCisgICAg ICAgIHRpbWUuc2xlZXAoMC41KQorICAgICAgICBzZWxmLmZpbmRfYnlfeHBh dGgoIi8vYnV0dG9uW2NvbnRhaW5zKC4sJ09LJyldIikuY2xpY2soKQorCisg ICAgZGVmIHRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLCB0cmVlX2l0ZW1f dGV4dCk6CisgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgiLy8qW0BpZD0n dHJlZSddLy8qWy49JyIgKyB0cmVlX2l0ZW1fdGV4dCArICInXS8uLi8qW0Bj bGFzcz0nYWNpVHJlZUJ1dHRvbiddIikuY2xpY2soKQorCisgICAgZGVmIGZp bmRfYnlfeHBhdGgoc2VsZiwgeHBhdGgpOgorICAgICAgICByZXR1cm4gc2Vs Zi53YWl0X2Zvcl9lbGVtZW50KGxhbWJkYTogc2VsZi5kcml2ZXIuZmluZF9l bGVtZW50X2J5X3hwYXRoKHhwYXRoKSkKKworICAgIGRlZiBmaW5kX2J5X2lk KHNlbGYsIGVsZW1lbnRfaWQpOgorICAgICAgICByZXR1cm4gc2VsZi53YWl0 X2Zvcl9lbGVtZW50KGxhbWJkYTogc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50 X2J5X2lkKGVsZW1lbnRfaWQpKQorCisgICAgZGVmIGZpbmRfYnlfcGFydGlh bF9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgcmV0dXJu IHNlbGYud2FpdF9mb3JfZWxlbWVudChsYW1iZGE6IHNlbGYuZHJpdmVyLmZp bmRfZWxlbWVudF9ieV9wYXJ0aWFsX2xpbmtfdGV4dChsaW5rX3RleHQpKQor CisgICAgZGVmIGZpbGxfaW5wdXRfYnlfZmllbGRfbmFtZShzZWxmLCBmaWVs ZF9uYW1lLCBmaWVsZF9jb250ZW50KToKKyAgICAgICAgZmllbGQgPSBzZWxm LmZpbmRfYnlfeHBhdGgoIi8vaW5wdXRbQG5hbWU9JyIgKyBmaWVsZF9uYW1l ICsgIiddIikKKyAgICAgICAgYmFja3NwYWNlcyA9IFtLZXlzLkJBQ0tTUEFD RV0qbGVuKGZpZWxkLmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykpCisKKyAgICAg ICAgZmllbGQuY2xpY2soKQorICAgICAgICBmaWVsZC5zZW5kX2tleXMoYmFj a3NwYWNlcykKKyAgICAgICAgZmllbGQuc2VuZF9rZXlzKHN0cihmaWVsZF9j b250ZW50KSkKKyAgICAgICAgc2VsZi53YWl0X2Zvcl9pbnB1dF9maWVsZF9j b250ZW50KGZpZWxkX25hbWUsIGZpZWxkX2NvbnRlbnQpCisKKyAgICBkZWYg ZmlsbF9jb2RlbWlycm9yX2FyZWFfd2l0aChzZWxmLCBmaWVsZF9jb250ZW50 KToKKyAgICAgICAgc2VsZi5maW5kX2J5X3hwYXRoKAorICAgICAgICAgICAg Ii8vcHJlW2NvbnRhaW5zKEBjbGFzcywnQ29kZU1pcnJvci1saW5lJyldLy4u Ly4uLy4uLypbY29udGFpbnMoQGNsYXNzLCdDb2RlTWlycm9yLWNvZGUnKV0i KS5jbGljaygpCisgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLmRyaXZlciku c2VuZF9rZXlzKGZpZWxkX2NvbnRlbnQpLnBlcmZvcm0oKQorCisgICAgZGVm IHdhaXRfZm9yX2lucHV0X2ZpZWxkX2NvbnRlbnQoc2VsZiwgZmllbGRfbmFt ZSwgY29udGVudCk6CisgICAgICAgIGRlZiBpbnB1dF9maWVsZF9oYXNfY29u dGVudCgpOgorICAgICAgICAgICAgZWxlbWVudCA9IHNlbGYuZHJpdmVyLmZp bmRfZWxlbWVudF9ieV94cGF0aCgKKyAgICAgICAgICAgICAgICAiLy9pbnB1 dFtAbmFtZT0nIiArIGZpZWxkX25hbWUgKyAiJ10iKQorCisgICAgICAgICAg ICByZXR1cm4gc3RyKGNvbnRlbnQpID09IGVsZW1lbnQuZ2V0X2F0dHJpYnV0 ZSgndmFsdWUnKQorCisgICAgICAgIHJldHVybiBzZWxmLl93YWl0X2Zvcigi ZmllbGQgdG8gY29udGFpbiAnIiArIHN0cihjb250ZW50KSArICInIiwgaW5w dXRfZmllbGRfaGFzX2NvbnRlbnQpCisKKyAgICBkZWYgd2FpdF9mb3JfZWxl bWVudChzZWxmLCBmaW5kX21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICBk ZWYgZWxlbWVudF9pZl9pdF9leGlzdHMoKToKKyAgICAgICAgICAgIHRyeToK KyAgICAgICAgICAgICAgICBlbGVtZW50ID0gZmluZF9tZXRob2Rfd2l0aF9h cmdzKCkKKyAgICAgICAgICAgICAgICBpZiBlbGVtZW50LmlzX2Rpc3BsYXll ZCgpICYgZWxlbWVudC5pc19lbmFibGVkKCk6CisgICAgICAgICAgICAgICAg ICAgIHJldHVybiBlbGVtZW50CisgICAgICAgICAgICBleGNlcHQgTm9TdWNo RWxlbWVudEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFs c2UKKworICAgICAgICByZXR1cm4gc2VsZi5fd2FpdF9mb3IoImVsZW1lbnQg dG8gZXhpc3QiLCBlbGVtZW50X2lmX2l0X2V4aXN0cykKKworICAgIGRlZiB3 YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcihzZWxmKToKKyAgICAgICAg ZGVmIHNwaW5uZXJfaGFzX2Rpc2FwcGVhcmVkKCk6CisgICAgICAgICAgICB0 cnk6CisgICAgICAgICAgICAgICAgc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50 X2J5X2lkKCJwZy1zcGlubmVyIikKKyAgICAgICAgICAgICAgICByZXR1cm4g RmFsc2UKKyAgICAgICAgICAgIGV4Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0 aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAg c2VsZi5fd2FpdF9mb3IoInNwaW5uZXIgdG8gZGlzYXBwZWFyIiwgc3Bpbm5l cl9oYXNfZGlzYXBwZWFyZWQpCisKKyAgICBkZWYgd2FpdF9mb3JfYXBwKHNl bGYpOgorICAgICAgICBkZWYgcGFnZV9zaG93c19hcHAoKToKKyAgICAgICAg ICAgIGlmIHNlbGYuZHJpdmVyLnRpdGxlID09IHNlbGYuYXBwX2NvbmZpZy5B UFBfTkFNRToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmRyaXZlci5yZWZy ZXNoKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAg ICBzZWxmLl93YWl0X2ZvcigiYXBwIHRvIHN0YXJ0IiwgcGFnZV9zaG93c19h cHApCisKKyAgICBkZWYgX3dhaXRfZm9yKHNlbGYsIHdhaXRpbmdfZm9yX21l c3NhZ2UsIGNvbmRpdGlvbl9tZXRfZnVuY3Rpb24pOgorICAgICAgICB0aW1l b3V0ID0gMTAKKyAgICAgICAgdGltZV93YWl0ZWQgPSAwCisgICAgICAgIHNs ZWVwX3RpbWUgPSAwLjAxCisKKyAgICAgICAgd2hpbGUgdGltZV93YWl0ZWQg PCB0aW1lb3V0OgorICAgICAgICAgICAgcmVzdWx0ID0gY29uZGl0aW9uX21l dF9mdW5jdGlvbigpCisgICAgICAgICAgICBpZiByZXN1bHQ6CisgICAgICAg ICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICAgICAgdGltZV93YWl0 ZWQgKz0gc2xlZXBfdGltZQorICAgICAgICAgICAgdGltZS5zbGVlcChzbGVl cF90aW1lKQorCisgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidGltZWQg b3V0IHdhaXRpbmcgZm9yICIgKyB3YWl0aW5nX2Zvcl9tZXNzYWdlKQo= --001a1149a3008bea6305480c3561 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1149a3008bea6305480c3561--