Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cakh4-0000BE-Sg for pgadmin-hackers@arkaria.postgresql.org; Mon, 06 Feb 2017 14:55:03 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cakh4-0005Mq-FQ for pgadmin-hackers@arkaria.postgresql.org; Mon, 06 Feb 2017 14:55:02 +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 1cakh2-0005KS-PY for pgadmin-hackers@postgresql.org; Mon, 06 Feb 2017 14:55:00 +0000 Received: from mail-qk0-x234.google.com ([2607:f8b0:400d:c09::234]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cakgx-00007O-2e for pgadmin-hackers@postgresql.org; Mon, 06 Feb 2017 14:55:00 +0000 Received: by mail-qk0-x234.google.com with SMTP id s186so57091345qkb.1 for ; Mon, 06 Feb 2017 06:54:54 -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=ah+E6gfczwU/CjH+DaIMlg/46kzW3g0D5YGLjfN77+k=; b=w4eDkqwdDzGJKFU6ni6pW64HgZVQeypck5eyiY9E2ER8C4PIiU0hh0zLCwK7rEivW8 lUhRjs43f54By/nTL5mlR1D3gbDNt0VElvKSyTHfO8xFWrI+QAazwnsZYLFjdLNTPg+9 kCGv6xdGDL/afBwFd97QncW612/dTocHlsS5M4YpQlLNzqK+iP5v6lvKEhgXR29RGkbk 5CYVblWF8HeZuNjmIlbb0G1ghPb0NJSEwc1wtr4z6NGSEOGSBiZksK3Sz4LH4sW3Izfg efu9JCdU4kLiDdR546tA21RyDrmj0/ta8mgRCjXUkoPbj/4KkVHTK09Rhmnt0cAkc6BO xF6Q== 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=ah+E6gfczwU/CjH+DaIMlg/46kzW3g0D5YGLjfN77+k=; b=CZddmkpBPfn6nwP4NcpxPCVlMx+TWJkiM7k4CWeBYNfwUcTHGOQn1oY+uTuCsgwiAz TdNq9HTdX/u77T/VOYeoBWrKadWn3Vk1Va+QuMC2x/FfabuKfTXGcAZvjOQT6yAa4+6a twqYo2OKa3jWUy0YXxLR2W4XIZORv7WZbn4vBLiJIS+eij0+CVuFvJXgiI3KXfs2vCK8 FGn2udbkD/J4U64nJKRFZYW0ELqCJ6dYAjAgY4yGn/NZeul10WYVJ5cXtAFlXbQfg0lw aQPNS6pkCkLihiEGqJeIOLxekbIjvPDEhGQpztpra9Rjfrpjm3stKSHFlwv0TrotC9d3 SfkQ== X-Gm-Message-State: AMke39keQZspiUmudfvNp4372HcQfxssScg52Y4DY+v9v7DmTwJlF1sdCYGXgvTLl90ma0nYls0xk3txhdEbKAmt X-Received: by 10.55.23.78 with SMTP id i75mr9131621qkh.212.1486392892993; Mon, 06 Feb 2017 06:54:52 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.102.16 with HTTP; Mon, 6 Feb 2017 06:54:52 -0800 (PST) In-Reply-To: References: From: Atira Odhner Date: Mon, 6 Feb 2017 09:54:52 -0500 Message-ID: Subject: Re: Acceptance Tests against a browser (WIP) To: Dave Page Cc: George Gelashvili , pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11479df0628d040547ddd086 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 --001a11479df0628d040547ddd086 Content-Type: multipart/alternative; boundary=001a11479df0628d010547ddd084 --001a11479df0628d010547ddd084 Content-Type: text/plain; charset=UTF-8 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.SQLTemplateSelectionByPostgresVersionWorksFeatureTest > (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 > --001a11479df0628d010547ddd084 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I ag= ree that we should rename the test. We've renamed it to "template_= selection_feature_test".
Your other su= ggestions 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 ahea= d 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 <dpage@pgadmi= n.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.SQLTemplateSelectionByPostgresVersionW= orksFeatureTest
(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

--001a11479df0628d010547ddd084-- --001a11479df0628d040547ddd086 Content-Type: text/plain; charset=US-ASCII; name="acceptance_test_with_randomized_ports_renamed.diff" Content-Disposition: attachment; filename="acceptance_test_with_randomized_ports_renamed.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iyu7y77d0 ZGlmZiAtLWdpdCBhL3JlcXVpcmVtZW50c19weTIudHh0IGIvcmVxdWlyZW1l bnRzX3B5Mi50eHQKaW5kZXggNGZiMDU4OTEuLjk5OGNkYWJmIDEwMDY0NAot LS0gYS9yZXF1aXJlbWVudHNfcHkyLnR4dAorKysgYi9yZXF1aXJlbWVudHNf cHkyLnR4dApAQCAtMzYsNiArMzYsNyBAQCB0ZXN0c2NlbmFyaW9zPT0wLjUu MAogdGVzdHRvb2xzPT0yLjAuMAogdHJhY2ViYWNrMj09MS40LjAKIHVuaXR0 ZXN0Mj09MS4xLjAKK3NlbGVuaXVtPT0zLjAuMgogV2Vya3pldWc9PTAuOS42 CiBXVEZvcm1zPT0yLjAuMgogc3FscGFyc2U9PTAuMS4xOQpkaWZmIC0tZ2l0 IGEvcmVxdWlyZW1lbnRzX3B5My50eHQgYi9yZXF1aXJlbWVudHNfcHkzLnR4 dAppbmRleCBjNDQ5MGY1Mi4uMjIzOWRlNjMgMTAwNjQ0Ci0tLSBhL3JlcXVp cmVtZW50c19weTMudHh0CisrKyBiL3JlcXVpcmVtZW50c19weTMudHh0CkBA IC0zNSw2ICszNSw3IEBAIHRlc3RzY2VuYXJpb3M9PTAuNS4wCiB0ZXN0dG9v bHM9PTIuMC4wCiB0cmFjZWJhY2syPT0xLjQuMAogdW5pdHRlc3QyPT0xLjEu MAorc2VsZW5pdW09PTMuMC4yCiBXZXJremV1Zz09MC45LjYKIFdURm9ybXM9 PTIuMC4yCiBzcWxwYXJzZT09MC4xLjE5CmRpZmYgLS1naXQgYS93ZWIvcGdB ZG1pbjQucHkgYi93ZWIvcGdBZG1pbjQucHkKaW5kZXggNjg4NDhjMDAuLjk1 ZTY3NWI3IDEwMDY0NAotLS0gYS93ZWIvcGdBZG1pbjQucHkKKysrIGIvd2Vi L3BnQWRtaW40LnB5CkBAIC01OSw2ICs1OSwxMiBAQCBpZiAnUEdBRE1JTl9Q T1JUJyBpbiBnbG9iYWxzKCk6CiAgICAgICAgICAgICAgICAgICAgICBnbG9i YWxzKClbJ1BHQURNSU5fUE9SVCddKQogICAgIHNlcnZlcl9wb3J0ID0gaW50 KGdsb2JhbHMoKVsnUEdBRE1JTl9QT1JUJ10pCiAgICAgUEdBRE1JTl9SVU5U SU1FID0gVHJ1ZQorZWxpZiAnUEdBRE1JTl9QT1JUJyBpbiBvcy5lbnZpcm9u OgorICAgIHBvcnQgPSBvcy5lbnZpcm9uWydQR0FETUlOX1BPUlQnXQorICAg IGFwcC5sb2dnZXIuZGVidWcoCisgICAgICAgICdOb3QgcnVubmluZyB1bmRl ciB0aGUgZGVza3RvcCBydW50aW1lLCBwb3J0OiAlcycsCisgICAgICAgIHBv cnQpCisgICAgc2VydmVyX3BvcnQgPSBpbnQocG9ydCkKIGVsc2U6CiAgICAg YXBwLmxvZ2dlci5kZWJ1ZygKICAgICAgICAgJ05vdCBydW5uaW5nIHVuZGVy IHRoZSBkZXNrdG9wIHJ1bnRpbWUsIHBvcnQ6ICVzJywKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2FjY2VwdGFuY2UvX19pbml0X18ucHkgYi93ZWIvcGdh ZG1pbi9hY2NlcHRhbmNlL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwLi5lNjlkZTI5YgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2FjY2VwdGFuY2UvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmU2OWRlMjliCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9hY2NlcHRhbmNlL3Rlc3RzL2Nvbm5lY3RfdG9f c2VydmVyX2ZlYXR1cmVfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2FjY2VwdGFu Y2UvdGVzdHMvY29ubmVjdF90b19zZXJ2ZXJfZmVhdHVyZV90ZXN0LnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5iNTQ2OTZmNgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2FjY2VwdGFuY2UvdGVz dHMvY29ubmVjdF90b19zZXJ2ZXJfZmVhdHVyZV90ZXN0LnB5CkBAIC0wLDAg KzEsNzMgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHRpbWUKKworZnJv bSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCitmcm9tIHNlbGVuaXVtLmNv bW1vbi5leGNlcHRpb25zIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9u Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgQWN0aW9uQ2hhaW5z CisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKKworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBvcworaW1w b3J0IHNpZ25hbAoraW1wb3J0IGNvbmZpZyBhcyBhcHBfY29uZmlnCitmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMKK2Zyb20gcmVncmVzc2lv bi51dGlscy5hcHBfc3RhcnRlciBpbXBvcnQgQXBwU3RhcnRlcgorZnJvbSBy ZWdyZXNzaW9uLnV0aWxzLnBnYWRtaW5fcGFnZSBpbXBvcnQgUGdhZG1pblBh Z2UKKworCitjbGFzcyBDb25uZWN0c1RvU2VydmVyRmVhdHVyZVRlc3QoQmFz ZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAgIFRlc3RzIHRoYXQgYSBk YXRhYmFzZSBjb25uZWN0aW9uIGNhbiBiZSBjcmVhdGVkIGZyb20gdGhlIFVJ CisgICAgIiIiCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGlm IGFwcF9jb25maWcuU0VSVkVSX01PREU6CisgICAgICAgICAgICBzZWxmLnNr aXBUZXN0KCJDdXJyZW50bHksIGNvbmZpZyBpcyBzZXQgdG8gc3RhcnQgcGdh ZG1pbiBpbiBzZXJ2ZXIgbW9kZS4gIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAiVGhpcyB0ZXN0IGRvZXNuJ3Qga25vdyB1c2VybmFtZSBhbmQgcGFz c3dvcmQgc28gZG9lc24ndCB3b3JrIGluIHNlcnZlciBtb2RlIikKKworICAg ICAgICBkcml2ZXIgPSB3ZWJkcml2ZXIuQ2hyb21lKCkKKyAgICAgICAgc2Vs Zi5hcHBfc3RhcnRlciA9IEFwcFN0YXJ0ZXIoZHJpdmVyLCBhcHBfY29uZmln KQorICAgICAgICBzZWxmLnBhZ2UgPSBQZ2FkbWluUGFnZShkcml2ZXIsIGFw cF9jb25maWcpCisKKyAgICAgICAgc2VsZi5hcHBfc3RhcnRlci5zdGFydF9h cHAoKQorICAgICAgICBzZWxmLnBhZ2Uud2FpdF9mb3JfYXBwKCkKKworCisg ICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoYXBwX2NvbmZpZy5BUFBfTkFNRSwgc2VsZi5wYWdlLmRyaXZlci50aXRs ZSkKKyAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9yX3NwaW5uZXJfdG9fZGlz YXBwZWFyKCkKKworICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgi Ly8qW0BjbGFzcz0nYWNpVHJlZVRleHQnIGFuZCAuPSdTZXJ2ZXJzJ10iKS5j bGljaygpCisgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVtZW50 X2J5X2xpbmtfdGV4dCgiT2JqZWN0IikuY2xpY2soKQorICAgICAgICBBY3Rp b25DaGFpbnMoc2VsZi5wYWdlLmRyaXZlcikgXAorICAgICAgICAgICAgLm1v dmVfdG9fZWxlbWVudChzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9i eV9saW5rX3RleHQoIkNyZWF0ZSIpKSBcCisgICAgICAgICAgICAucGVyZm9y bSgpCisgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3BhcnRpYWxfbGlua190 ZXh0KCJTZXJ2ZXIuLi4iKS5jbGljaygpCisKKyAgICAgICAgc2VydmVyX2Nv bmZpZyA9IHNlbGYuc2VydmVyCisgICAgICAgIHNlbGYucGFnZS5maWxsX2lu cHV0X2J5X2ZpZWxkX25hbWUoIm5hbWUiLCBzZXJ2ZXJfY29uZmlnWyduYW1l J10pCisgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3BhcnRpYWxfbGlua190 ZXh0KCJDb25uZWN0aW9uIikuY2xpY2soKQorICAgICAgICBzZWxmLnBhZ2Uu ZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKCJob3N0Iiwgc2VydmVyX2NvbmZp Z1snaG9zdCddKQorICAgICAgICBzZWxmLnBhZ2UuZmlsbF9pbnB1dF9ieV9m aWVsZF9uYW1lKCJwb3J0Iiwgc2VydmVyX2NvbmZpZ1sncG9ydCddKQorICAg ICAgICBzZWxmLnBhZ2UuZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKCJ1c2Vy bmFtZSIsIHNlcnZlcl9jb25maWdbJ3VzZXJuYW1lJ10pCisgICAgICAgIHNl bGYucGFnZS5maWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoInBhc3N3b3JkIiwg c2VydmVyX2NvbmZpZ1snZGJfcGFzc3dvcmQnXSkKKyAgICAgICAgc2VsZi5w YWdlLmZpbmRfYnlfeHBhdGgoIi8vYnV0dG9uW2NvbnRhaW5zKC4sJ1NhdmUn KV0iKS5jbGljaygpCisKKyAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfeHBh dGgoIi8vKltAaWQ9J3RyZWUnXS8vKlsuPSciICsgc2VydmVyX2NvbmZpZ1sn bmFtZSddICsgIiddIikKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAg ICAgICAgc2VsZi5wYWdlLnJlbW92ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCisg ICAgICAgIHNlbGYuYXBwX3N0YXJ0ZXIuc3RvcF9hcHAoKQorCisgICAgZGVm IGZhaWx1cmVFeGNlcHRpb24oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAg ICAgICAgc2VsZi5wYWdlLmRyaXZlci5zYXZlX3NjcmVlbnNob3QoJy90bXAv cGdhZG1pbl9jb25uZWN0X3RvX3NlcnZlcl90ZXN0X2ZhaWx1cmUucG5nJykK KyAgICAgICAgcmV0dXJuIEFzc2VydGlvbkVycm9yKCphcmdzLCAqKmt3YXJn cykKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2FjY2VwdGFuY2UvdGVzdHMv dGVtcGxhdGVfc2VsZWN0aW9uX2ZlYXR1cmVfdGVzdC5weSBiL3dlYi9wZ2Fk bWluL2FjY2VwdGFuY2UvdGVzdHMvdGVtcGxhdGVfc2VsZWN0aW9uX2ZlYXR1 cmVfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MC4uYjc0MDVkNTYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9h Y2NlcHRhbmNlL3Rlc3RzL3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0dXJlX3Rl c3QucHkKQEAgLTAsMCArMSw3OCBAQAorZnJvbSBzZWxlbml1bSBpbXBvcnQg d2ViZHJpdmVyCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgQWN0 aW9uQ2hhaW5zCisKK2ltcG9ydCBjb25maWcgYXMgYXBwX2NvbmZpZworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzCitmcm9tIHJl Z3Jlc3Npb24udXRpbHMuYXBwX3N0YXJ0ZXIgaW1wb3J0IEFwcFN0YXJ0ZXIK K2Zyb20gcmVncmVzc2lvbi51dGlscy5wZ2FkbWluX3BhZ2UgaW1wb3J0IFBn YWRtaW5QYWdlCisKKworY2xhc3MgVGVtcGxhdGVTZWxlY3Rpb25GZWF0dXJl VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgZGVmIHNldFVwKHNlbGYp OgorICAgICAgICBpZiBhcHBfY29uZmlnLlNFUlZFUl9NT0RFOgorICAgICAg ICAgICAgc2VsZi5za2lwVGVzdCgiQ3VycmVudGx5LCBjb25maWcgaXMgc2V0 IHRvIHN0YXJ0IHBnYWRtaW4gaW4gc2VydmVyIG1vZGUuICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIlRoaXMgdGVzdCBkb2Vzbid0IGtub3cgdXNl cm5hbWUgYW5kIHBhc3N3b3JkIHNvIGRvZXNuJ3Qgd29yayBpbiBzZXJ2ZXIg bW9kZSIpCisKKyAgICAgICAgZHJpdmVyID0gd2ViZHJpdmVyLkNocm9tZSgp CisgICAgICAgIHNlbGYuYXBwX3N0YXJ0ZXIgPSBBcHBTdGFydGVyKGRyaXZl ciwgYXBwX2NvbmZpZykKKyAgICAgICAgc2VsZi5wYWdlID0gUGdhZG1pblBh Z2UoZHJpdmVyLCBhcHBfY29uZmlnKQorCisgICAgICAgIGNvbm5lY3Rpb24g PSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydk YiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydo b3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0J10pCisgICAgICAgIHRl c3RfdXRpbHMuZHJvcF9kYXRhYmFzZShjb25uZWN0aW9uLCAiYWNjZXB0YW5j ZV90ZXN0X2RiIikKKworICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV9kYXRh YmFzZShzZWxmLnNlcnZlciwgImFjY2VwdGFuY2VfdGVzdF9kYiIpCisKKyAg ICAgICAgc2VsZi5hcHBfc3RhcnRlci5zdGFydF9hcHAoKQorICAgICAgICBz ZWxmLnBhZ2Uud2FpdF9mb3JfYXBwKCkKKworICAgICAgICBzZWxmLnBhZ2Uu YWRkX3NlcnZlcihzZWxmLnNlcnZlcikKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNl cnZlciwgImFjY2VwdGFuY2VfdGVzdF9kYiIsICJ0ZXN0X3RhYmxlIikKKwor ICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKHNlbGYu c2VydmVyWyduYW1lJ10pCisgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Bl bl90cmVlX2l0ZW0oJ0RhdGFiYXNlcycpCisgICAgICAgIHNlbGYucGFnZS50 b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ2FjY2VwdGFuY2VfdGVzdF9kYicpCisg ICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ1NjaGVt YXMnKQorICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVt KCdwdWJsaWMnKQorICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgi Ly8qW0BpZD0ndHJlZSddLy8qW0BjbGFzcz0nYWNpVHJlZVRleHQnIGFuZCAu PSdUcmlnZ2VyIEZ1bmN0aW9ucyddIikuY2xpY2soKQorICAgICAgICBzZWxm LnBhZ2UuZmluZF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgiT2JqZWN0IikuY2xp Y2soKQorICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5wYWdlLmRyaXZlcikg XAorICAgICAgICAgICAgLm1vdmVfdG9fZWxlbWVudChzZWxmLnBhZ2UuZHJp dmVyLmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoIkNyZWF0ZSIpKSBcCisg ICAgICAgICAgICAucGVyZm9ybSgpCisgICAgICAgIHNlbGYucGFnZS5maW5k X2J5X3BhcnRpYWxfbGlua190ZXh0KCJUcmlnZ2VyIGZ1bmN0aW9uLi4uIiku Y2xpY2soKQorICAgICAgICBzZWxmLnBhZ2UuZmlsbF9pbnB1dF9ieV9maWVs ZF9uYW1lKCJuYW1lIiwgInRlc3QtdHJpZ2dlci1mdW5jdGlvbiIpCisgICAg ICAgIHNlbGYucGFnZS5maW5kX2J5X3BhcnRpYWxfbGlua190ZXh0KCJEZWZp bml0aW9uIikuY2xpY2soKQorICAgICAgICBzZWxmLnBhZ2UuZmlsbF9jb2Rl bWlycm9yX2FyZWFfd2l0aCgKKyIiIkNSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIGxvZ19sYXN0X25hbWVfY2hhbmdlcygpCitSRVRVUk5TIFRSSUdHRVIg QVMKKyRCT0RZJAorQkVHSU4KKworRU5EOworJEJPRFkkCisiIiIKKyAgICAg ICAgKQorICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV9wYXJ0aWFsX2xpbmtf dGV4dCgiU1FMIikuY2xpY2soKQorCisgICAgICAgIHNlbGYucGFnZS5maW5k X2J5X3hwYXRoKCIvLypbY29udGFpbnMoQGNsYXNzLCdDb2RlTWlycm9yLWxp bmVzJykgYW5kIGNvbnRhaW5zKC4sJ0xFQUtQUk9PRicpXSIpCisKKyAgICBk ZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHNlbGYucGFnZS5maW5kX2J5 X3hwYXRoKCIvL2J1dHRvbltjb250YWlucyguLCdDYW5jZWwnKV0iKS5jbGlj aygpCisgICAgICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYuc2Vy dmVyKQorICAgICAgICBzZWxmLmFwcF9zdGFydGVyLnN0b3BfYXBwKCkKKyAg ICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rp b24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2Vy bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Bv cnQnXSkKKyAgICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5l Y3Rpb24sICJhY2NlcHRhbmNlX3Rlc3RfZGIiKQorCisgICAgZGVmIGZhaWx1 cmVFeGNlcHRpb24oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAg c2VsZi5wYWdlLmRyaXZlci5zYXZlX3NjcmVlbnNob3QoJy90bXAvcGdhZG1p bl9zcWxfdGVtcGxhdGVfc2VsZWN0aW9uX2ZhaWx1cmUucG5nJykKKyAgICAg ICAgcmV0dXJuIEFzc2VydGlvbkVycm9yKCphcmdzLCAqKmt3YXJncykKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5IGIvd2ViL3Bn YWRtaW4vdXRpbHMvcm91dGUucHkKaW5kZXggZjE4ZDJjMTguLjk5Njg5MmE2 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQorKysg Yi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQpAQCAtNTQsMjcgKzU0LDIz IEBAIGNsYXNzIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkoQUJDTWV0YSk6CiAg ICAgICAgIEFCQ01ldGEuX19pbml0X18oY2xzLCBuYW1lLCBiYXNlcywgZCkK IAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBsb2FkX2dlbmVyYXRvcnMo Y2xzLCBwa2cpOgorICAgIGRlZiBsb2FkX2dlbmVyYXRvcnMoY2xzLCBwa2df cm9vdCwgZXhjbHVkZV9wa2dzKToKIAogICAgICAgICBjbHMucmVnaXN0cnkg PSBkaWN0KCkKIAorICAgICAgICBhbGxfbW9kdWxlcyA9IFtdCisKKyAgICAg ICAgYWxsX21vZHVsZXMgKz0gZmluZF9tb2R1bGVzKHBrZ19yb290LCBGYWxz ZSwgVHJ1ZSkKKwogICAgICAgICAjIENoZWNrIGZvciBTRVJWRVIgbW9kZQot ICAgICAgICBpZiBjb25maWcuU0VSVkVSX01PREU6Ci0gICAgICAgICAgICBm b3IgbW9kdWxlX25hbWUgaW4gZmluZF9tb2R1bGVzKHBrZywgRmFsc2UsIFRy dWUpOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAg ICAgaWYgInRlc3RzLiIgaW4gc3RyKG1vZHVsZV9uYW1lKToKLSAgICAgICAg ICAgICAgICAgICAgICAgIGltcG9ydF9tb2R1bGUobW9kdWxlX25hbWUpCi0g ICAgICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAg ICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVy cikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZvciBtb2R1bGVfbmFt ZSBpbiBmaW5kX21vZHVsZXMocGtnLCBGYWxzZSwgVHJ1ZSk6Ci0gICAgICAg ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAjIEV4Y2x1ZGUg dGhlIHRlc3QgY2FzZXMgaW4gYnJvd3NlciBub2RlIGlmIFNFUlZFUl9NT0RF Ci0gICAgICAgICAgICAgICAgICAgICMgaXMgRmFsc2UKLSAgICAgICAgICAg ICAgICAgICAgaWYgInBnYWRtaW4uYnJvd3Nlci50ZXN0cyIgbm90IGluIG1v ZHVsZV9uYW1lOgotICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0X21v ZHVsZShtb2R1bGVfbmFtZSkKLSAgICAgICAgICAgICAgICBleGNlcHQgSW1w b3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmlu dF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICBmb3IgbW9kdWxlX25h bWUgaW4gYWxsX21vZHVsZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAg ICAgICAgICAgaWYgInRlc3RzLiIgaW4gc3RyKG1vZHVsZV9uYW1lKSBhbmQg bm90IGFueSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cihtb2R1bGVf bmFtZSkuc3RhcnRzd2l0aCgncGdhZG1pbi4nICsgc3RyKGV4Y2x1ZGVfcGtn KSkgZm9yIGV4Y2x1ZGVfcGtnIGluIGV4Y2x1ZGVfcGtncworICAgICAgICAg ICAgICAgICk6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydF9tb2R1bGUo bW9kdWxlX25hbWUpCisgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6 CisgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5 cy5zdGRlcnIpCiAKIAogaW1wb3J0IHNpeApkaWZmIC0tZ2l0IGEvd2ViL3Jl Z3Jlc3Npb24vLmdpdGlnbm9yZSBiL3dlYi9yZWdyZXNzaW9uLy5naXRpZ25v cmUKaW5kZXggMDU4MTgxMGIuLjcyM2ZjZTdlIDEwMDY0NAotLS0gYS93ZWIv cmVncmVzc2lvbi8uZ2l0aWdub3JlCisrKyBiL3dlYi9yZWdyZXNzaW9uLy5n aXRpZ25vcmUKQEAgLTEsNCArMSw1IEBACiBwYXJlbnRfaWQucGtsCiByZWdy ZXNzaW9uLmxvZwordGVzdF9ncmVlbnBsdW1fY29uZmlnLmpzb24KIHRlc3Rf YWR2YW5jZWRfY29uZmlnLmpzb24KIHRlc3RfY29uZmlnLmpzb24KZGlmZiAt LWdpdCBhL3dlYi9yZWdyZXNzaW9uL1JFQURNRSBiL3dlYi9yZWdyZXNzaW9u L1JFQURNRQppbmRleCA4Y2MyOTk4Ny4uNWIwNzdkODEgMTAwNjQ0Ci0tLSBh L3dlYi9yZWdyZXNzaW9uL1JFQURNRQorKysgYi93ZWIvcmVncmVzc2lvbi9S RUFETUUKQEAgLTEwMyw2ICsxMDMsMTAgQEAgVGVzdCBEYXRhIERldGFpbHMK IEV4ZWN1dGlvbjoKIC0tLS0tLS0tLS0tCiAKKy0gRm9yIGFjY2VwdGFuY2Ug dGVzdHMgdG8gcnVuIGFzIHBhcnQgb2YgdGhlIGVudGlyZSB0ZXN0IHN1aXRl LCBDaHJvbWUgYW5kIGNocm9tZWRyaXZlciBuZWVkIHRvIGJlIGluc3RhbGxl ZDoKKyAgZ2V0IGNocm9tZWRyaXZlciBmcm9tIGh0dHBzOi8vc2l0ZXMuZ29v Z2xlLmNvbS9hL2Nocm9taXVtLm9yZy9jaHJvbWVkcml2ZXIvZG93bmxvYWRz IG9yIGEgcGFja2FnZSBtYW5hZ2VyCisgIGFuZCBtYWtlIHN1cmUgaXQgaXMg b24gdGhlIFBBVEgKKwogLSBUaGUgdGVzdCBmcmFtZXdvcmsgaXMgbW9kdWxh ciBhbmQgcGx1Z2dhYmxlIGFuZCBkeW5hbWljYWxseSBsb2NhdGVzIHRlc3Rz CiAgIGZvciBtb2R1bGVzIHdoaWNoIGFyZSBkaXNjb3ZlcmVkIGF0IHJ1bnRp bWUuIEFsbCB0ZXN0IGNhc2VzIGFyZSBmb3VuZAogICBhbmQgcmVnaXN0ZXJl ZCBhdXRvbWF0aWNhbGx5IGJ5IGl0cyBtb2R1bGUgbmFtZSBpbgpAQCAtMTIy LDMgKzEyNiw4IEBAIEV4ZWN1dGlvbjoKIAogICAgICBFeGFtcGxlIDIpIFJ1 biB0ZXN0IGZyYW1ld29yayBmb3IgJ2RhdGFiYXNlJyBub2RlCiAgICAgIHJ1 biAncHl0aG9uIHJ1bnRlc3RzLnB5IC0tcGtnIGJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcycKKworLSBFeGNsdWRlIGEgcGFja2Fn ZSBhbmQgaXRzIHN1YnBhY2thZ2VzIHdoZW4gcnVubmluZyB0ZXN0czoKKwor ICAgIEV4YW1wbGU6IGV4Y2x1ZGUgYWNjZXB0YW5jZSB0ZXN0cyBidXQgcnVu IGFsbCBvdGhlcnM6CisgICAgcnVuICdweXRob24gcnVudGVzdHMucHkgLS1l eGNsdWRlIGFjY2VwdGFuY2UnCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lv bi9ydW50ZXN0cy5weSBiL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5Cmlu ZGV4IDI3MmUzODAyLi43YjFiZjU0MyAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jl c3Npb24vcnVudGVzdHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVudGVz dHMucHkKQEAgLTEzOCwxMiArMTM4LDIwIEBAIGRlZiBnZXRfdGVzdF9tb2R1 bGVzKGFyZ3VtZW50cyk6CiAKICAgICBmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkKIAorICAgIGV4Y2x1 ZGVfcGtncyA9IFtdCisKKyAgICBpZiBub3QgY29uZmlnLlNFUlZFUl9NT0RF OgorICAgICAgICBleGNsdWRlX3BrZ3MuYXBwZW5kKCJicm93c2VyLnRlc3Rz IikKKyAgICBpZiAnZXhjbHVkZScgaW4gYXJndW1lbnRzOgorICAgICAgICBl eGNsdWRlX3BrZ3MuYXBwZW5kKGFyZ3VtZW50c1snZXhjbHVkZSddKQorCiAg ICAgIyBMb2FkIHRoZSB0ZXN0IG1vZHVsZXMgd2hpY2ggYXJlIGluIGdpdmVu IHBhY2thZ2UoaS5lLiBpbiBhcmd1bWVudHMucGtnKQogICAgIGlmIGFyZ3Vt ZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1bWVudHNbJ3BrZyddID09ICJh bGwiOgotICAgICAgICBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5LmxvYWRfZ2Vu ZXJhdG9ycygncGdhZG1pbicpCisgICAgICAgIFRlc3RzR2VuZXJhdG9yUmVn aXN0cnkubG9hZF9nZW5lcmF0b3JzKCdwZ2FkbWluJywgZXhjbHVkZV9wa2dz KQogICAgIGVsc2U6CiAgICAgICAgIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnku bG9hZF9nZW5lcmF0b3JzKCdwZ2FkbWluLiVzLnRlc3RzJyAlCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Vt ZW50c1sncGtnJ10pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyZ3VtZW50c1sncGtnJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVf cGtncykKIAogICAgICMgU29ydCBtb2R1bGUgbGlzdCBzbyB0aGF0IHRlc3Qg c3VpdGUgZXhlY3V0ZXMgdGhlIHRlc3QgY2FzZXMgc2VxdWVudGlhbGx5CiAg ICAgbW9kdWxlX2xpc3QgPSBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5LnJlZ2lz dHJ5Lml0ZW1zKCkKQEAgLTE2NCw2ICsxNzIsOCBAQCBkZWYgYWRkX2FyZ3Vt ZW50cygpOgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2Vy KGRlc2NyaXB0aW9uPSdUZXN0IHN1aXRlIGZvciBwZ0FkbWluNCcpCiAgICAg cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wa2cnLCBoZWxwPSdFeGVjdXRlcyB0 aGUgdGVzdCBjYXNlcyBvZiBwYXJ0aWN1bGFyJwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnIHBhY2thZ2UnKQorICAgIHBhcnNl ci5hZGRfYXJndW1lbnQoJy0tZXhjbHVkZScsIGhlbHA9J1NraXBzIGV4ZWN1 dGlvbiBvZiB0aGUgdGVzdCAnCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnY2FzZXMgb2YgcGFydGljdWxhciBwYWNrYWdl JykKICAgICBhcmcgPSBwYXJzZXIucGFyc2VfYXJncygpCiAKICAgICByZXR1 cm4gYXJnCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxz LnB5IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQppbmRleCAxZjlm MDUyMi4uNjhmMzZjYmMgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rl c3RfdXRpbHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5w eQpAQCAtMTM0LDYgKzEzNCwyNCBAQCBkZWYgY3JlYXRlX2RhdGFiYXNlKHNl cnZlciwgZGJfbmFtZSk6CiAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMo ZmlsZT1zeXMuc3RkZXJyKQogCiAKK2RlZiBjcmVhdGVfdGFibGUoc2VydmVy LCBkYl9uYW1lLCB0YWJsZV9uYW1lKToKKyAgICB0cnk6CisgICAgICAgIGNv bm5lY3Rpb24gPSBnZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2Vy bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQn XSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24u aXNvbGF0aW9uX2xldmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xh dGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9u LmN1cnNvcigpCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCcnJ0NSRUFU RSBUQUJMRSAiJXMiIChuYW1lIFZBUkNIQVIsIHZhbHVlIE5VTUVSSUMpJycn ICUgdGFibGVfbmFtZSkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoJycn SU5TRVJUIElOVE8gIiVzIiBWQUxVRVMgKCdTb21lLU5hbWUnLCA2KScnJyAl IHRhYmxlX25hbWUpCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlv bl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICBjb25uZWN0 aW9uLmNvbW1pdCgpCisKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAg ICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKwogZGVm IGRyb3BfZGF0YWJhc2UoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6CiAg ICAgIiIiVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGRyb3AgdGhlIGRhdGFiYXNl IiIiCiAgICAgaWYgZGF0YWJhc2VfbmFtZSBub3QgaW4gWyJwb3N0Z3JlcyIs ICJ0ZW1wbGF0ZTEiLCAidGVtcGxhdGUwIl06CmRpZmYgLS1naXQgYS93ZWIv cmVncmVzc2lvbi91dGlscy9hcHBfc3RhcnRlci5weSBiL3dlYi9yZWdyZXNz aW9uL3V0aWxzL2FwcF9zdGFydGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwLi5iMjk3YmQ2ZAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9yZWdyZXNzaW9uL3V0aWxzL2FwcF9zdGFydGVyLnB5CkBAIC0wLDAg KzEsMzQgQEAKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKKworaW1w b3J0IHNpZ25hbAorCitpbXBvcnQgcmFuZG9tCisKK2NsYXNzIEFwcFN0YXJ0 ZXI6CisgICAgIiIiCisgICAgSGVscGVyIGZvciBzdGFydGluZyB0aGUgZnVs bCBwZ2FkbWluNCBhcHAgYW5kIGxvYWRpbmcgdGhlIHBhZ2UgdmlhIHNlbGVu aXVtCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZHJpdmVy LCBhcHBfY29uZmlnKToKKyAgICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIK KyAgICAgICAgc2VsZi5hcHBfY29uZmlnID0gYXBwX2NvbmZpZworCisgICAg ZGVmIHN0YXJ0X2FwcChzZWxmKToKKyAgICAgICAgcmFuZG9tX3NlcnZlcl9w b3J0ID0gc3RyKHJhbmRvbS5yYW5kaW50KDEwMDAwLCA2NTUzNSkpCisgICAg ICAgIGVudiA9IHsiUEdBRE1JTl9QT1JUIjogcmFuZG9tX3NlcnZlcl9wb3J0 fQorICAgICAgICBlbnYudXBkYXRlKG9zLmVudmlyb24pCisKKyAgICAgICAg c2VsZi5wZ2FkbWluX3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKFsicHl0 aG9uIiwgInBnQWRtaW40LnB5IiwgIm1hZ2ljLXBvcnRhbCIsIHJhbmRvbV9z ZXJ2ZXJfcG9ydF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaGVsbD1GYWxzZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWV4ZWNfZm49 b3Muc2V0c2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RkZXJyPW9wZW4ob3MuZGV2bnVsbCwgJ3cnKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudj1lbnYpCisKKyAgICAgICAgc2VsZi5kcml2ZXIuc2V0X3dpbmRv d19zaXplKDEwMjQsIDEwMjQpCisgICAgICAgIHByaW50KCJvcGVuaW5nIGJy b3dzZXIiKQorICAgICAgICBzZWxmLmRyaXZlci5nZXQoImh0dHA6Ly8iICsg c2VsZi5hcHBfY29uZmlnLkRFRkFVTFRfU0VSVkVSICsgIjoiICsgcmFuZG9t X3NlcnZlcl9wb3J0KQorCisgICAgZGVmIHN0b3BfYXBwKHNlbGYpOgorICAg ICAgICBzZWxmLmRyaXZlci5jbG9zZSgpCisgICAgICAgIG9zLmtpbGxwZyhv cy5nZXRwZ2lkKHNlbGYucGdhZG1pbl9wcm9jZXNzLnBpZCksIHNpZ25hbC5T SUdURVJNKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdXRpbHMvcGdh ZG1pbl9wYWdlLnB5IGIvd2ViL3JlZ3Jlc3Npb24vdXRpbHMvcGdhZG1pbl9w YWdlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi40 ZTMzNGU4MAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNzaW9uL3V0 aWxzL3BnYWRtaW5fcGFnZS5weQpAQCAtMCwwICsxLDEwNiBAQAoraW1wb3J0 IHRpbWUKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0 IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0ud2ViZHJp dmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKKworCitjbGFzcyBQZ2FkbWluUGFn ZToKKyAgICAiIiIKKyAgICBIZWxwZXIgY2xhc3MgZm9yIGludGVyYWN0aW5n IHdpdGggdGhlIHBhZ2UsIGdpdmVuIGEgc2VsZW5pdW0gZHJpdmVyCisgICAg IiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlciwgYXBwX2NvbmZp Zyk6CisgICAgICAgIHNlbGYuZHJpdmVyID0gZHJpdmVyCisgICAgICAgIHNl bGYuYXBwX2NvbmZpZyA9IGFwcF9jb25maWcKKworICAgIGRlZiBhZGRfc2Vy dmVyKHNlbGYsIHNlcnZlcl9jb25maWcpOgorICAgICAgICBzZWxmLndhaXRf Zm9yX3NwaW5uZXJfdG9fZGlzYXBwZWFyKCkKKworICAgICAgICBzZWxmLmZp bmRfYnlfeHBhdGgoIi8vKltAY2xhc3M9J2FjaVRyZWVUZXh0JyBhbmQgY29u dGFpbnMoLiwnU2VydmVycycpXSIpLmNsaWNrKCkKKyAgICAgICAgc2VsZi5k cml2ZXIuZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dCgiT2JqZWN0IikuY2xp Y2soKQorICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpIFwKKyAg ICAgICAgICAgIC5tb3ZlX3RvX2VsZW1lbnQoc2VsZi5kcml2ZXIuZmluZF9l bGVtZW50X2J5X2xpbmtfdGV4dCgiQ3JlYXRlIikpIFwKKyAgICAgICAgICAg IC5wZXJmb3JtKCkKKyAgICAgICAgc2VsZi5maW5kX2J5X3BhcnRpYWxfbGlu a190ZXh0KCJTZXJ2ZXIuLi4iKS5jbGljaygpCisKKyAgICAgICAgc2VsZi5m aWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoIm5hbWUiLCBzZXJ2ZXJfY29uZmln WyduYW1lJ10pCisgICAgICAgIHNlbGYuZmluZF9ieV9wYXJ0aWFsX2xpbmtf dGV4dCgiQ29ubmVjdGlvbiIpLmNsaWNrKCkKKyAgICAgICAgc2VsZi5maWxs X2lucHV0X2J5X2ZpZWxkX25hbWUoImhvc3QiLCBzZXJ2ZXJfY29uZmlnWydo b3N0J10pCisgICAgICAgIHNlbGYuZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1l KCJwb3J0Iiwgc2VydmVyX2NvbmZpZ1sncG9ydCddKQorICAgICAgICBzZWxm LmZpbGxfaW5wdXRfYnlfZmllbGRfbmFtZSgidXNlcm5hbWUiLCBzZXJ2ZXJf Y29uZmlnWyd1c2VybmFtZSddKQorICAgICAgICBzZWxmLmZpbGxfaW5wdXRf YnlfZmllbGRfbmFtZSgicGFzc3dvcmQiLCBzZXJ2ZXJfY29uZmlnWydkYl9w YXNzd29yZCddKQorICAgICAgICBzZWxmLmZpbmRfYnlfeHBhdGgoIi8vYnV0 dG9uW2NvbnRhaW5zKC4sJ1NhdmUnKV0iKS5jbGljaygpCisKKyAgICAgICAg c2VsZi5maW5kX2J5X3hwYXRoKCIvLypbQGlkPSd0cmVlJ10vLypbLj0nIiAr IHNlcnZlcl9jb25maWdbJ25hbWUnXSArICInXSIpCisKKyAgICBkZWYgcmVt b3ZlX3NlcnZlcihzZWxmLCBzZXJ2ZXJfY29uZmlnKToKKyAgICAgICAgc2Vs Zi5maW5kX2J5X3hwYXRoKCIvLypbQGlkPSd0cmVlJ10vLypbLj0nIiArIHNl cnZlcl9jb25maWdbJ25hbWUnXSArICInIGFuZCBAY2xhc3M9J2FjaVRyZWVJ dGVtJ10iKS5jbGljaygpCisgICAgICAgIHNlbGYuZmluZF9ieV9wYXJ0aWFs X2xpbmtfdGV4dCgiT2JqZWN0IikuY2xpY2soKQorICAgICAgICBzZWxmLmZp bmRfYnlfcGFydGlhbF9saW5rX3RleHQoIkRlbGV0ZS9Ecm9wIikuY2xpY2so KQorICAgICAgICB0aW1lLnNsZWVwKDAuNSkKKyAgICAgICAgc2VsZi5maW5k X2J5X3hwYXRoKCIvL2J1dHRvbltjb250YWlucyguLCdPSycpXSIpLmNsaWNr KCkKKworICAgIGRlZiB0b2dnbGVfb3Blbl90cmVlX2l0ZW0oc2VsZiwgdHJl ZV9pdGVtX3RleHQpOgorICAgICAgICBzZWxmLmZpbmRfYnlfeHBhdGgoIi8v KltAaWQ9J3RyZWUnXS8vKlsuPSciICsgdHJlZV9pdGVtX3RleHQgKyAiJ10v Li4vKltAY2xhc3M9J2FjaVRyZWVCdXR0b24nXSIpLmNsaWNrKCkKKworICAg IGRlZiBmaW5kX2J5X3hwYXRoKHNlbGYsIHhwYXRoKToKKyAgICAgICAgcmV0 dXJuIHNlbGYud2FpdF9mb3JfZWxlbWVudChsYW1iZGE6IHNlbGYuZHJpdmVy LmZpbmRfZWxlbWVudF9ieV94cGF0aCh4cGF0aCkpCisKKyAgICBkZWYgZmlu ZF9ieV9pZChzZWxmLCBlbGVtZW50X2lkKToKKyAgICAgICAgcmV0dXJuIHNl bGYud2FpdF9mb3JfZWxlbWVudChsYW1iZGE6IHNlbGYuZHJpdmVyLmZpbmRf ZWxlbWVudF9ieV9pZChlbGVtZW50X2lkKSkKKworICAgIGRlZiBmaW5kX2J5 X3BhcnRpYWxfbGlua190ZXh0KHNlbGYsIGxpbmtfdGV4dCk6CisgICAgICAg IHJldHVybiBzZWxmLndhaXRfZm9yX2VsZW1lbnQobGFtYmRhOiBzZWxmLmRy aXZlci5maW5kX2VsZW1lbnRfYnlfcGFydGlhbF9saW5rX3RleHQobGlua190 ZXh0KSkKKworICAgIGRlZiBmaWxsX2lucHV0X2J5X2ZpZWxkX25hbWUoc2Vs ZiwgZmllbGRfbmFtZSwgZmllbGRfY29udGVudCk6CisgICAgICAgIHNlbGYu ZmluZF9ieV94cGF0aCgiLy9pbnB1dFtAbmFtZT0nIiArIGZpZWxkX25hbWUg KyAiJ10iKS5jbGVhcigpCisgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgi Ly9pbnB1dFtAbmFtZT0nIiArIGZpZWxkX25hbWUgKyAiJ10iKS5zZW5kX2tl eXMoCisgICAgICAgICAgICBmaWVsZF9jb250ZW50KQorCisgICAgZGVmIGZp bGxfY29kZW1pcnJvcl9hcmVhX3dpdGgoc2VsZiwgZmllbGRfY29udGVudCk6 CisgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAgICIv L3ByZVtjb250YWlucyhAY2xhc3MsJ0NvZGVNaXJyb3ItbGluZScpXS8uLi8u Li8uLi8qW2NvbnRhaW5zKEBjbGFzcywnQ29kZU1pcnJvci1jb2RlJyldIiku Y2xpY2soKQorICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpLnNl bmRfa2V5cyhmaWVsZF9jb250ZW50KS5wZXJmb3JtKCkKKworICAgIGRlZiB3 YWl0X2Zvcl9lbGVtZW50KHNlbGYsIGZpbmRfbWV0aG9kX3dpdGhfYXJncyk6 CisgICAgICAgIGRlZiBlbGVtZW50X2lmX2l0X2V4aXN0cygpOgorICAgICAg ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBmaW5kX21l dGhvZF93aXRoX2FyZ3MoKQorICAgICAgICAgICAgICAgIGlmIGVsZW1lbnQu aXNfZGlzcGxheWVkKCkgJiBlbGVtZW50LmlzX2VuYWJsZWQoKToKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQKKyAgICAgICAgICAgIGV4 Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uOgorICAgICAgICAgICAgICAg IHJldHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBzZWxmLl93YWl0X2Zv cigiZWxlbWVudCB0byBleGlzdCIsIGVsZW1lbnRfaWZfaXRfZXhpc3RzKQor CisgICAgZGVmIHdhaXRfZm9yX3NwaW5uZXJfdG9fZGlzYXBwZWFyKHNlbGYp OgorICAgICAgICBkZWYgc3Bpbm5lcl9oYXNfZGlzYXBwZWFyZWQoKToKKyAg ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmRyaXZlci5m aW5kX2VsZW1lbnRfYnlfaWQoInBnLXNwaW5uZXIiKQorICAgICAgICAgICAg ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgZXhjZXB0IE5vU3VjaEVs ZW1lbnRFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUK KworICAgICAgICBzZWxmLl93YWl0X2Zvcigic3Bpbm5lciB0byBkaXNhcHBl YXIiLCBzcGlubmVyX2hhc19kaXNhcHBlYXJlZCkKKworICAgIGRlZiB3YWl0 X2Zvcl9hcHAoc2VsZik6CisgICAgICAgIGRlZiBwYWdlX3Nob3dzX2FwcCgp OgorICAgICAgICAgICAgaWYgc2VsZi5kcml2ZXIudGl0bGUgPT0gc2VsZi5h cHBfY29uZmlnLkFQUF9OQU1FOgorICAgICAgICAgICAgICAgIHJldHVybiBU cnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYu ZHJpdmVyLnJlZnJlc2goKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxz ZQorCisgICAgICAgIHNlbGYuX3dhaXRfZm9yKCJhcHAgdG8gc3RhcnQiLCBw YWdlX3Nob3dzX2FwcCkKKworICAgIGRlZiBfd2FpdF9mb3Ioc2VsZiwgd2Fp dGluZ19mb3JfbWVzc2FnZSwgY29uZGl0aW9uX21ldF9mdW5jdGlvbik6Cisg ICAgICAgIHRpbWVvdXQgPSA1CisgICAgICAgIHRpbWVfd2FpdGVkID0gMAor ICAgICAgICBzbGVlcF90aW1lID0gMC4wMQorCisgICAgICAgIHdoaWxlIHRp bWVfd2FpdGVkIDwgdGltZW91dDoKKyAgICAgICAgICAgIHJlc3VsdCA9IGNv bmRpdGlvbl9tZXRfZnVuY3Rpb24oKQorICAgICAgICAgICAgaWYgcmVzdWx0 OgorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgICAg IHRpbWVfd2FpdGVkICs9IHNsZWVwX3RpbWUKKyAgICAgICAgICAgIHRpbWUu c2xlZXAoc2xlZXBfdGltZSkKKworICAgICAgICByYWlzZSBSdW50aW1lRXJy b3IoInRpbWVkIG91dCB3YWl0aW5nIGZvciAiICsgd2FpdGluZ19mb3JfbWVz c2FnZSkK --001a11479df0628d040547ddd086 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 --001a11479df0628d040547ddd086--