From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9601 invoked by alias); 19 Jan 2011 19:27:17 -0000 Received: (qmail 9591 invoked by uid 22791); 19 Jan 2011 19:27:15 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 19 Jan 2011 19:27:08 +0000 Received: from hpaq6.eem.corp.google.com (hpaq6.eem.corp.google.com [172.25.149.6]) by smtp-out.google.com with ESMTP id p0JJR6Dm008515 for ; Wed, 19 Jan 2011 11:27:06 -0800 Received: from qwh6 (qwh6.prod.google.com [10.241.194.198]) by hpaq6.eem.corp.google.com with ESMTP id p0JJQW9G025426 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Wed, 19 Jan 2011 11:27:04 -0800 Received: by qwh6 with SMTP id 6so1178161qwh.35 for ; Wed, 19 Jan 2011 11:27:04 -0800 (PST) Received: by 10.229.95.11 with SMTP id b11mr939224qcn.28.1295465224202; Wed, 19 Jan 2011 11:27:04 -0800 (PST) MIME-Version: 1.0 Received: by 10.220.29.204 with HTTP; Wed, 19 Jan 2011 11:26:34 -0800 (PST) In-Reply-To: <201101191203.35101.pedro@codesourcery.com> References: <20110111232641.AE3D5190C55@elbrus2.mtv.corp.google.com> <4D2DDD61.6040101@codesourcery.com> <201101191203.35101.pedro@codesourcery.com> From: Paul Pluzhnikov Date: Wed, 19 Jan 2011 20:30:00 -0000 Message-ID: Subject: Re: [patch] Add tests for JIT debugging interface To: Pedro Alves Cc: gdb-patches@sourceware.org, Yao Qi Content-Type: multipart/mixed; boundary=0016e648be7881e9cb049a3800af X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-01/txt/msg00406.txt.bz2 --0016e648be7881e9cb049a3800af Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1510 On Wed, Jan 19, 2011 at 11:03 AM, Pedro Alves wrot= e: >> > Cannot remove breakpoints because program is no longer writable. <-- [= 1] >> >> And that. > > It's output from infrun.c:normal_stop. =A0Sounds like a bug somewhere. It is a bug. Fix in progress... >> That's alright -- I was going to fix this area (see "JIT interface >> slowness" in gdb@sourceware.org list), and this isn't the only problem -- >> I also noticed that we leak several jit_breakpoints on rerun. That leak is in fact causing the bug above ... >> +int main (int argc, char *argv[]) >> +{ >> + =A0/* These variables are here so they can easily be set from jit.exp = =A0*/ > > "main" at column 0. =A0Period, double space. Fixed. >> +gdb_exit >> +gdb_start >> +gdb_reinitialize_dir $srcdir/$subdir >> +gdb_load $binfile > > gdb_load_shlibs call missing. =A0This will probably need tweaking for > remote host testing, but we'll handle it when/if we stumble on it > on our testing, probably. > > Did you try Yao's suggestion of using clean_restart/prepare_for_testing, = etc.? > We're prefering using those whenever possible. I am already doing clean_restart inside one_jit_test. Above were unnecessa= ry leftovers. Deleted. prepare_for_testing rebuilds the executable, which is not necessary here; so not using that. Thanks! --=20 Paul Pluzhnikov 2011-01-19 Paul Pluzhnikov * gdb.base/jit.exp: New file. * gdb.base/jit-main.c: New file. * gdb.base/jit-solib.c: New file. --0016e648be7881e9cb049a3800af Content-Type: text/plain; charset=US-ASCII; name="gdb-jit-tests-20110119.txt" Content-Disposition: attachment; filename="gdb-jit-tests-20110119.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gj4mhszm0 Content-length: 15238 SW5kZXg6IHRlc3RzdWl0ZS9nZGIuYmFzZS9qaXQtbWFpbi5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0ZS9nZGIuYmFzZS9q aXQtbWFpbi5jCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1tYWlu LmMKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisr KyB0ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LW1haW4uYwkxOSBKYW4gMjAxMSAx OToyMjoyMSAtMDAwMApAQCAtMCwwICsxLDIwMyBAQAorLyogVGhpcyB0ZXN0 IHByb2dyYW0gaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisK KyAgIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgICAqLworCisvKiBT aW11bGF0ZSBsb2FkaW5nIG9mIEpJVCBjb2RlLiAgKi8KKworI2luY2x1ZGUg PGVsZi5oPgorI2luY2x1ZGUgPGxpbmsuaD4KKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+Cisj aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNs dWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+CisKK3R5cGVkZWYgZW51bQoreworICBKSVRfTk9B Q1RJT04gPSAwLAorICBKSVRfUkVHSVNURVJfRk4sCisgIEpJVF9VTlJFR0lT VEVSX0ZOCit9IGppdF9hY3Rpb25zX3Q7CisKK3N0cnVjdCBqaXRfY29kZV9l bnRyeQoreworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKm5leHRfZW50cnk7 CisgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqcHJldl9lbnRyeTsKKyAgY29u c3QgY2hhciAqc3ltZmlsZV9hZGRyOworICB1aW50NjRfdCBzeW1maWxlX3Np emU7Cit9OworCitzdHJ1Y3Qgaml0X2Rlc2NyaXB0b3IKK3sKKyAgdWludDMy X3QgdmVyc2lvbjsKKyAgLyogVGhpcyB0eXBlIHNob3VsZCBiZSBqaXRfYWN0 aW9uc190LCBidXQgd2UgdXNlIHVpbnQzMl90CisgICAgIHRvIGJlIGV4cGxp Y2l0IGFib3V0IHRoZSBiaXR3aWR0aC4gICovCisgIHVpbnQzMl90IGFjdGlv bl9mbGFnOworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKnJlbGV2YW50X2Vu dHJ5OworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKmZpcnN0X2VudHJ5Owor fTsKKworLyogR0RCIHB1dHMgYSBicmVha3BvaW50IGluIHRoaXMgZnVuY3Rp b24uICAqLwordm9pZCBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIF9faml0 X2RlYnVnX3JlZ2lzdGVyX2NvZGUgKCkgeyB9CisKKy8qIE1ha2Ugc3VyZSB0 byBzcGVjaWZ5IHRoZSB2ZXJzaW9uIHN0YXRpY2FsbHksIGJlY2F1c2UgdGhl CisgICBkZWJ1Z2dlciBtYXkgY2hlY2sgdGhlIHZlcnNpb24gYmVmb3JlIHdl IGNhbiBzZXQgaXQuICAqLworc3RydWN0IGppdF9kZXNjcmlwdG9yIF9faml0 X2RlYnVnX2Rlc2NyaXB0b3IgPSB7IDEsIDAsIDAsIDAgfTsKKworc3RhdGlj IHZvaWQKK3VzYWdlIChjb25zdCBjaGFyICpjb25zdCBhcmd2MCkKK3sKKyAg ZnByaW50ZiAoc3RkZXJyLCAiVXNhZ2U6ICVzIGxpYnJhcnkgW2NvdW50XVxu IiwgYXJndjApOworICBleGl0ICgxKTsKK30KKworLyogVXBkYXRlIC5wX3Zh ZGRyIGFuZCAuc2hfYWRkciBhcyBpZiB0aGUgY29kZSB3YXMgSklUdGVkIHRv IEFERFIuICAqLworCitzdGF0aWMgdm9pZAordXBkYXRlX2xvY2F0aW9ucyAo Y29uc3Qgdm9pZCAqY29uc3QgYWRkciwgaW50IGlkeCkKK3sKKyAgY29uc3Qg RWxmVyAoRWhkcikgKmNvbnN0IGVoZHIgPSAoRWxmVyAoRWhkcikgKilhZGRy OworICBFbGZXIChTaGRyKSAqY29uc3Qgc2hkciA9IChFbGZXIChTaGRyKSAq KSgoY2hhciAqKWFkZHIgKyBlaGRyLT5lX3Nob2ZmKTsKKyAgRWxmVyAoUGhk cikgKmNvbnN0IHBoZHIgPSAoRWxmVyAoUGhkcikgKikoKGNoYXIgKilhZGRy ICsgZWhkci0+ZV9waG9mZik7CisgIGludCBpOworCisgIGZvciAoaSA9IDA7 IGkgPCBlaGRyLT5lX3BobnVtOyArK2kpCisgICAgaWYgKHBoZHJbaV0ucF90 eXBlID09IFBUX0xPQUQpCisgICAgICBwaGRyW2ldLnBfdmFkZHIgKz0gKEVs ZlcgKEFkZHIpKWFkZHI7CisKKyAgZm9yIChpID0gMDsgaSA8IGVoZHItPmVf c2hudW07ICsraSkKKyAgICB7CisgICAgICBpZiAoc2hkcltpXS5zaF90eXBl ID09IFNIVF9TVFJUQUIpCisgICAgICAgIHsKKyAgICAgICAgICAvKiBOb3Rl OiB3ZSB1cGRhdGUgYm90aCAuc3RydGFiIGFuZCAuZHluc3RyLiAgVGhlIGxh dHRlciB3b3VsZAorICAgICAgICAgICAgIG5vdCBiZSBjb3JyZWN0IGlmIHRo aXMgd2VyZSBhIHJlZ3VsYXIgc2hhcmVkIGxpYnJhcnkgKC5oYXNoCisgICAg ICAgICAgICAgd291bGQgYmUgd3JvbmcpLCBidXQgdGhpcyBpcyBhIHNpbXVs YXRpb24gLS0gdGhlIGxpYnJhcnkgaXMKKyAgICAgICAgICAgICBuZXZlciBl eHBvc2VkIHRvIHRoZSBkeW5hbWljIGxvYWRlciwgc28gaXQgYWxsIGVuZHMg dXAgb2suICAqLworICAgICAgICAgIGNoYXIgKmNvbnN0IHN0cnRhYiA9IChj aGFyICopKChFbGZXIChBZGRyKSlhZGRyICsgc2hkcltpXS5zaF9vZmZzZXQp OworICAgICAgICAgIGNoYXIgKmNvbnN0IHN0cnRhYl9lbmQgPSBzdHJ0YWIg KyBzaGRyW2ldLnNoX3NpemU7CisgICAgICAgICAgY2hhciAqcDsKKworICAg ICAgICAgIGZvciAocCA9IHN0cnRhYjsgcCA8IHN0cnRhYl9lbmQ7IHAgKz0g c3RybGVuIChwKSArIDEpCisgICAgICAgICAgICBpZiAoc3RyY21wIChwLCAi aml0X2Z1bmN0aW9uX1hYWFgiKSA9PSAwKQorICAgICAgICAgICAgICBzcHJp bnRmIChwLCAiaml0X2Z1bmN0aW9uXyUwNGQiLCBpZHgpOworICAgICAgICB9 CisKKyAgICAgIGlmIChzaGRyW2ldLnNoX2ZsYWdzICYgU0hGX0FMTE9DKQor ICAgICAgICBzaGRyW2ldLnNoX2FkZHIgKz0gKEVsZlcgKEFkZHIpKWFkZHI7 CisgICAgfQorfQorCitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2 W10pCit7CisgIC8qIFRoZXNlIHZhcmlhYmxlcyBhcmUgaGVyZSBzbyB0aGV5 IGNhbiBlYXNpbHkgYmUgc2V0IGZyb20gaml0LmV4cC4gICovCisgIGNvbnN0 IGNoYXIgKmxpYm5hbWUgPSBOVUxMOworICBpbnQgY291bnQgPSAwOworCisg IGNvdW50ID0gY291bnQ7ICAvKiBnZGIgYnJlYWsgaGVyZSAwICAqLworCisg IGlmIChhcmdjIDwgMikKKyAgICB1c2FnZSAoYXJndlswXSk7CisgIGVsc2UK KyAgICB7CisgICAgICBpbnQgaSwgZmQ7CisgICAgICBzdHJ1Y3Qgc3RhdCBz dDsKKworICAgICAgaWYgKGxpYm5hbWUgPT0gTlVMTCkKKyAgICAgICAgLyog T25seSBzZXQgaWYgbm90IGFscmVhZHkgc2V0IGZyb20gR0RCLiAgKi8KKyAg ICAgICAgbGlibmFtZSA9IGFyZ3ZbMV07CisKKyAgICAgIGlmIChhcmdjID4g MiAmJiBjb3VudCA9PSAwKQorICAgICAgICAvKiBPbmx5IHNldCBpZiBub3Qg YWxyZWFkeSBzZXQgZnJvbSBHREIuICAqLworICAgICAgICBjb3VudCA9IGF0 b2kgKGFyZ3ZbMl0pOworCisgICAgICBwcmludGYgKCIlczolZDogbGlibmFt ZSA9ICVzLCBjb3VudCA9ICVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18sCisg ICAgICAgICAgICAgIGxpYm5hbWUsIGNvdW50KTsKKworICAgICAgaWYgKChm ZCA9IG9wZW4gKGxpYm5hbWUsIE9fUkRPTkxZKSkgPT0gLTEpCisgICAgICAg IHsKKyAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJvcGVuIChcIiVzXCIs IE9fUkRPTkxZKTogJXNcbiIsIGxpYm5hbWUsCisgICAgICAgICAgICAgICAg ICAgc3RyZXJyb3IgKGVycm5vKSk7CisgICAgICAgICAgZXhpdCAoMSk7Cisg ICAgICAgIH0KKworICAgICAgaWYgKGZzdGF0IChmZCwgJnN0KSAhPSAwKQor ICAgICAgICB7CisgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiZnN0YXQg KFwiJWRcIik6ICVzXG4iLCBmZCwgc3RyZXJyb3IgKGVycm5vKSk7CisgICAg ICAgICAgZXhpdCAoMSk7CisgICAgICAgIH0KKworICAgICAgZm9yIChpID0g MDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICBjb25z dCB2b2lkICpjb25zdCBhZGRyID0gbW1hcCAoMCwgc3Quc3Rfc2l6ZSwgUFJP VF9SRUFEfFBST1RfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1BUF9QUklWQVRFLCBmZCwgMCk7CisgICAgICAg ICAgc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb25zdCBlbnRyeSA9IGNhbGxv YyAoMSwgc2l6ZW9mICgqZW50cnkpKTsKKworICAgICAgICAgIGlmIChhZGRy ID09IE1BUF9GQUlMRUQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IGZwcmludGYgKHN0ZGVyciwgIm1tYXA6ICVzXG4iLCBzdHJlcnJvciAoZXJy bm8pKTsKKyAgICAgICAgICAgICAgZXhpdCAoMSk7CisgICAgICAgICAgICB9 CisKKyAgICAgICAgICB1cGRhdGVfbG9jYXRpb25zIChhZGRyLCBpKTsKKwor ICAgICAgICAgIC8qIExpbmsgZW50cnkgYXQgdGhlIGVuZCBvZiB0aGUgbGlz dC4gICovCisgICAgICAgICAgZW50cnktPnN5bWZpbGVfYWRkciA9IChjb25z dCBjaGFyICopYWRkcjsKKyAgICAgICAgICBlbnRyeS0+c3ltZmlsZV9zaXpl ID0gc3Quc3Rfc2l6ZTsKKyAgICAgICAgICBlbnRyeS0+cHJldl9lbnRyeSA9 IF9faml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50cnk7CisgICAg ICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeSA9 IGVudHJ5OworCisgICAgICAgICAgaWYgKGVudHJ5LT5wcmV2X2VudHJ5ICE9 IE5VTEwpCisgICAgICAgICAgICBlbnRyeS0+cHJldl9lbnRyeS0+bmV4dF9l bnRyeSA9IGVudHJ5OworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIF9f aml0X2RlYnVnX2Rlc2NyaXB0b3IuZmlyc3RfZW50cnkgPSBlbnRyeTsKKwor ICAgICAgICAgIC8qIE5vdGlmeSBHREIuICAqLworICAgICAgICAgIF9faml0 X2RlYnVnX2Rlc2NyaXB0b3IuYWN0aW9uX2ZsYWcgPSBKSVRfUkVHSVNURVJf Rk47CisgICAgICAgICAgX19qaXRfZGVidWdfcmVnaXN0ZXJfY29kZSAoKTsK KyAgICAgICAgfQorCisgICAgICBpID0gMDsgIC8qIGdkYiBicmVhayBoZXJl IDEgKi8KKworICAgICAgLyogTm93IHVucmVnaXN0ZXIgdGhlbSBhbGwgaW4g cmV2ZXJzZSBvcmRlci4gICovCisgICAgICB3aGlsZSAoX19qaXRfZGVidWdf ZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeSAhPSBOVUxMKQorICAgICAgICB7 CisgICAgICAgICAgc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb25zdCBlbnRy eSA9CisgICAgICAgICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2 YW50X2VudHJ5OworICAgICAgICAgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAq Y29uc3QgcHJldl9lbnRyeSA9IGVudHJ5LT5wcmV2X2VudHJ5OworCisgICAg ICAgICAgaWYgKHByZXZfZW50cnkgIT0gTlVMTCkKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgcHJldl9lbnRyeS0+bmV4dF9lbnRyeSA9IE5VTEw7 CisgICAgICAgICAgICAgIGVudHJ5LT5wcmV2X2VudHJ5ID0gTlVMTDsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBfX2pp dF9kZWJ1Z19kZXNjcmlwdG9yLmZpcnN0X2VudHJ5ID0gTlVMTDsKKworICAg ICAgICAgIC8qIE5vdGlmeSBHREIuICAqLworICAgICAgICAgIF9faml0X2Rl YnVnX2Rlc2NyaXB0b3IuYWN0aW9uX2ZsYWcgPSBKSVRfVU5SRUdJU1RFUl9G TjsKKyAgICAgICAgICBfX2ppdF9kZWJ1Z19yZWdpc3Rlcl9jb2RlICgpOwor CisgICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9l bnRyeSA9IHByZXZfZW50cnk7CisgICAgICAgICAgZnJlZSAoZW50cnkpOwor ICAgICAgICB9CisgICAgfQorICByZXR1cm4gMDsgIC8qIGdkYiBicmVhayBo ZXJlIDIgICovCit9CkluZGV4OiB0ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LXNv bGliLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1 aXRlL2dkYi5iYXNlL2ppdC1zb2xpYi5jCmRpZmYgLU4gdGVzdHN1aXRlL2dk Yi5iYXNlL2ppdC1zb2xpYi5jCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAw MDowMDowMCAtMDAwMAorKysgdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1zb2xp Yi5jCTE5IEphbiAyMDExIDE5OjIyOjIxIC0wMDAwCkBAIC0wLDAgKzEsMjIg QEAKKy8qIFRoaXMgdGVzdCBwcm9ncmFtIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorICAgKi8KKworLyogVGhpcyBzaW11bGF0ZXMgYSBKSVQgbGlicmFyeS4g IFRoZSBmdW5jdGlvbiBpcyAicmVuYW1lZCIgYWZ0ZXIgYmVpbmcKKyAgIGxv YWRlZCBpbnRvIG1lbW9yeS4gICovCisKK2ludCBqaXRfZnVuY3Rpb25fWFhY WCgpIHsgcmV0dXJuIDQyOyB9CkluZGV4OiB0ZXN0c3VpdGUvZ2RiLmJhc2Uv aml0LmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiB0ZXN0 c3VpdGUvZ2RiLmJhc2Uvaml0LmV4cApkaWZmIC1OIHRlc3RzdWl0ZS9nZGIu YmFzZS9qaXQuZXhwCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDow MCAtMDAwMAorKysgdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC5leHAJMTkgSmFu IDIwMTEgMTk6MjI6MjEgLTAwMDAKQEAgLTAsMCArMSwxMDEgQEAKKyMgQ29w eXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisK KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisKK2lmICR0cmFjZWxldmVsIHsKKyAgICBzdHJh Y2UgJHRyYWNlbGV2ZWwKK30KKworaWYge1tza2lwX3NobGliX3Rlc3RzXX0g eworICAgIHVudGVzdGVkIGppdC5leHAKKyAgICByZXR1cm4gLTEKK30KKwor aWYge1tnZXRfY29tcGlsZXJfaW5mbyBub3QtdXNlZF19IHsKKyAgICB3YXJu aW5nICJDb3VsZCBub3QgZ2V0IGNvbXBpbGVyIGluZm8iCisgICAgdW50ZXN0 ZWQgaml0LmV4cAorICAgIHJldHVybiAxCit9CisKKyMKKyMgdGVzdCBydW5u aW5nIHByb2dyYW1zCisjCisKK3NldCB0ZXN0ZmlsZSBqaXQtbWFpbgorc2V0 IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYworc2V0IGJpbmZpbGUgJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQoraWYgIHsgW2dkYl9jb21waWxlICIk e3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBl eGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0geworICAgIHVudGVzdGVkIGpp dC5leHAKKyAgICByZXR1cm4gLTEKK30KKworc2V0IHNvbGliX3Rlc3RmaWxl ICJqaXQtc29saWIiCitzZXQgc29saWJfc3JjZmlsZSAiJHtzcmNkaXJ9LyR7 c3ViZGlyfS8ke3NvbGliX3Rlc3RmaWxlfS5jIgorc2V0IHNvbGliX2JpbmZp bGUgIiR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzb2xpYl90ZXN0ZmlsZX0uc28i CisKKyMgTm90ZTogY29tcGlsaW5nIHdpdGhvdXQgZGVidWcgaW5mbzogdGhl IGxpYnJhcnkgZ29lcyB0aHJvdWdoIHN5bWJvbAorIyByZW5hbWluZyBieSBt dW5naW5nIG9uIGl0cyBzeW1ib2wgdGFibGUsIGFuZCB0aGF0IHdvdWxkbid0 IHdvcmsgZm9yIC5kZWJ1ZworIyBzZWN0aW9ucy4gIEFsc28sIG91dHB1dCBm b3IgImluZm8gZnVuY3Rpb24iIGNoYW5nZXMgd2hlbiBkZWJ1ZyBpbmZvIGlz IHJlc2VudC4KK2lmIHsgW2dkYl9jb21waWxlX3NobGliICR7c29saWJfc3Jj ZmlsZX0gJHtzb2xpYl9iaW5maWxlfSB7LWZQSUN9XSAhPSAiIiB9IHsKKyAg ICB1bnRlc3RlZCBqaXQuZXhwCisgICAgcmV0dXJuIC0xCit9CisKK3Byb2Mg b25lX2ppdF90ZXN0IHtjb3VudCBtYXRjaF9zdHJ9IHsKKyAgICBnbG9iYWwg dmVyYm9zZSB0ZXN0ZmlsZSBzb2xpYl9iaW5maWxlIHBmX3ByZWZpeAorCisg ICAgc2V0IG9sZF9wZl9wcmVmaXggJHBmX3ByZWZpeAorICAgIHNldCBwZl9w cmVmaXggIm9uZV9qaXRfdGVzdC0kY291bnQiCisKKyAgICBjbGVhbl9yZXN0 YXJ0ICR0ZXN0ZmlsZQorCisgICAgIyBUaGlzIGlzIGp1c3QgdG8gaGVscCBk ZWJ1Z2dpbmcgd2hlbiB0aGluZ3MgZmFpbAorICAgIGlmIHskdmVyYm9zZSA+ IDB9IHsKKwlnZGJfdGVzdCAic2V0IGRlYnVnIGppdCAxIgorICAgIH0KKwor ICAgIGlmIHsgIVtydW50b19tYWluXSB9IHsKKwlmYWlsICJDYW4ndCBydW4g dG8gbWFpbiIKKwlyZXR1cm4KKyAgICB9CisKKyAgICBnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAiYnJlYWsgaGVyZSAwIl0KKyAgICBn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJlYWsgaGVyZSAwIgorCisg ICAgIyBQb2tlIGRlc2lyZWQgdmFsdWVzIGRpcmVjdGx5IGludG8gaW5mZXJp b3IgaW5zdGVhZCBvZiB1c2luZyAic2V0IGFyZ3MiCisgICAgIyBiZWNhdXNl ICJzZXQgYXJncyIgZG9lcyBub3Qgd29yayB1bmRlciBnZGJzZXJ2ZXIuCisg ICAgZ2RiX3Rlc3QgInNldCB2YXIgYXJnYyA9IDIiCisgICAgZ2RiX3Rlc3Qg InNldCB2YXIgbGlibmFtZSA9IFwiJHNvbGliX2JpbmZpbGVcIiIKKyAgICBn ZGJfdGVzdCAic2V0IHZhciBjb3VudCA9ICRjb3VudCIKKworICAgIGdkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicmVhayBoZXJlIDEi XQorICAgIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJicmVhayBoZXJl IDEiCisKKyAgICBnZGJfdGVzdCAiaW5mbyBmdW5jdGlvbiBqaXRfZnVuY3Rp b24iICIkbWF0Y2hfc3RyIgorCisgICAgIyBUaGlzIGlzIGp1c3QgdG8gaGVs cCBkZWJ1Z2dpbmcgd2hlbiB0aGluZ3MgZmFpbAorICAgIGlmIHskdmVyYm9z ZSA+IDB9IHsKKwlnZGJfdGVzdCAibWFpbnRlbmFuY2UgcHJpbnQgb2JqZmls ZXMiCisgICAgfQorCisgICAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgImJyZWFrIGhlcmUgMiJdCisgICAgZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgImJyZWFrIGhlcmUgMiIKKyAgICAjIEFsbCBqaXQgbGli cmFyZXMgbXVzdCBoYXZlIGJlZW4gdW5yZWdpc3RlcmVkCisgICAgZ2RiX3Rl c3QgImluZm8gZnVuY3Rpb24gaml0X2Z1bmN0aW9uIiBcCisJIkFsbCBmdW5j dGlvbnMgbWF0Y2hpbmcgcmVndWxhciBleHByZXNzaW9uIFwiaml0X2Z1bmN0 aW9uXCI6IiBcCisgICAgc2V0IHBmX3ByZWZpeCAkb2xkX3BmX3ByZWZpeAor fQorCitvbmVfaml0X3Rlc3QgMSAiJHtoZXh9ICBqaXRfZnVuY3Rpb25fMDAw MCIKK29uZV9qaXRfdGVzdCAyICIke2hleH0gIGppdF9mdW5jdGlvbl8wMDAw XFtcclxuXF0rJHtoZXh9ICBqaXRfZnVuY3Rpb25fMDAwMSIK --0016e648be7881e9cb049a3800af--