From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Meneghel Rodrigues Subject: Re: [PATCH] Autotest: Add subtest inteface to client utils. Date: Tue, 20 Dec 2011 18:40:02 -0200 Message-ID: <4EF0F2A2.3050402@redhat.com> References: <1323435003-2550-1-git-send-email-jzupka@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: autotest@test.kernel.org, kvm-autotest@redhat.com, kvm@vger.kernel.org To: =?UTF-8?B?SmnFmcOtIMW9dXBrYQ==?= Return-path: In-Reply-To: <1323435003-2550-1-git-send-email-jzupka@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: autotest-bounces@test.kernel.org Errors-To: autotest-bounces@test.kernel.org List-Id: kvm.vger.kernel.org T24gMTIvMDkvMjAxMSAxMDo1MCBBTSwgSmnFmcOtIMW9dXBrYSB3cm90ZToKPiBUaGlzIGNsYXNz IGFuZCBzb21lIGRlY29yYXRvcnMgYXJlIGZvciBlYXN5IHdheSBvZiBzdGFydCBmdW5jdGlvbiBs aWtlIGEgc3VidGVzdC4KPiBTdWJ0ZXN0cyByZXN1bHQgYXJlIGNvbGxlY3RlZCBhbmQgaXQgaXMg cG9zaWJsZSBmb3IgcmV2aWV3IG9uIGVuZCBvZiB0ZXN0Lgo+IFN1YnRlc3QgY2xhc3MgYW5kIGRl Y29yYXRvcnMgc2hvdWxkIGJlIHBsYWNlZCBpbiBhdXRvdGVzdF9saWIuY2xpZW50LnV0aWxzLgo+ Cj4gICAgICBUaGVyZSBpcyBwb3NzaWJpbGl0eSBob3cgdG8gY2hhbmdlICByZXN1bHRzIGZvcm1h dC4KPgo+ICAgICAgRXhhbXBsZToKPiAgICAgICAgICBAc3RhdGljbWV0aG9kCj4gICAgICAgICAg ZGVmIHJlc3VsdF90b19zdHJpbmcocmVzdWx0KToKPiAgICAgICAgICAgICAgIiIiCj4gICAgICAg ICAgICAgIEBwYXJhbSByZXN1bHQ6IFJlc3VsdCBvZiB0ZXN0Lgo+ICAgICAgICAgICAgICAiIiIK PiAgICAgICAgICAgICAgcHJpbnQgcmVzdWx0Cj4gICAgICAgICAgICAgIHJldHVybiAoIlslKHJl c3VsdCldJShuYW1lKTogJShvdXRwdXQpIikgJSAocmVzdWx0KQo+Cj4gICAgICAgIDEpCj4gICAg ICAgICAgU3VidGVzdC5yZXN1bHRfdG9fc3RyaW5nID0gcmVzdWx0X3RvX3N0cmluZwo+ICAgICAg ICAgIFN1YnRlc3QuZ2V0X3RleHRfcmVzdWx0KCkKPgo+ICAgICAgICAyKQo+ICAgICAgICAgIFN1 YnRlc3QuZ2V0X3RleHRfcmVzdWx0KHJlc3VsdF90b19zdHJpbmcpCj4KPiBQdWxsLXJlcXVlc3Q6 IGh0dHBzOi8vZ2l0aHViLmNvbS9hdXRvdGVzdC9hdXRvdGVzdC9wdWxsLzExMQoKXiBJIG1hZGUg YSBmZXcgcmVtYXJrcyB0byB0aGUgcHVsbCByZXF1ZXN0LCBhbmQgbm93IEkgd2FpdCBvbiBhbiB1 cGRhdGVkIAp2ZXJzaW9uIG9mIHRoZSBwYXRjaHNldC4gVGhhbmtzIEppcmkhCgo+IFNpZ25lZC1v ZmYtYnk6IEppxZnDrSDFvXVwa2E8anp1cGthQHJlZGhhdC5jb20+Cj4gLS0tCj4gICBjbGllbnQv Y29tbW9uX2xpYi9iYXNlX3V0aWxzLnB5ICAgICAgICAgIHwgIDIxNCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgIGNsaWVudC9jb21tb25fbGliL2Jhc2VfdXRpbHNfdW5pdHRlc3Qu cHkgfCAgMTE3ICsrKysrKysrKysrKysrKysKPiAgIDIgZmlsZXMgY2hhbmdlZCwgMzMxIGluc2Vy dGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvY2xpZW50L2NvbW1vbl9s aWIvYmFzZV91dGlscy5weSBiL2NsaWVudC9jb21tb25fbGliL2Jhc2VfdXRpbHMucHkKPiBpbmRl eCAwMDVlM2IwLi5mYzY1NzhkIDEwMDY0NAo+IC0tLSBhL2NsaWVudC9jb21tb25fbGliL2Jhc2Vf dXRpbHMucHkKPiArKysgYi9jbGllbnQvY29tbW9uX2xpYi9iYXNlX3V0aWxzLnB5Cj4gQEAgLTEx OSw2ICsxMTksMjIwIEBAIGNsYXNzIEJnSm9iKG9iamVjdCk6Cj4gICAgICAgICAgIHNpZ25hbC5z aWduYWwoc2lnbmFsLlNJR1BJUEUsIHNpZ25hbC5TSUdfREZMKQo+Cj4KPiArZGVmIHN1YnRlc3Rf ZmF0YWwoZnVuY3Rpb24pOgo+ICsgICAgIiIiCj4gKyAgICBEZWNvcmF0b3Igd2hpY2ggbWFyayB0 ZXN0IGNyaXRpY2FsLgo+ICsgICAgSWYgc3VidGVzdCBmYWlsZWQgd2hvbGUgdGVzdCBlbmRzLgo+ ICsgICAgIiIiCj4gKyAgICBkZWYgd3JhcHBlZChzZWxmLCAqYXJncywgKiprd2RzKToKPiArICAg ICAgICBzZWxmLl9mYXRhbCA9IFRydWUKPiArICAgICAgICBzZWxmLmRlY29yZWQoKQo+ICsgICAg ICAgIHJlc3VsdCA9IGZ1bmN0aW9uKHNlbGYsICphcmdzLCAqKmt3ZHMpCj4gKyAgICAgICAgcmV0 dXJuIHJlc3VsdAo+ICsgICAgd3JhcHBlZC5mdW5jX25hbWUgPSBmdW5jdGlvbi5mdW5jX25hbWUK PiArICAgIHJldHVybiB3cmFwcGVkCj4gKwo+ICsKPiArZGVmIHN1YnRlc3Rfbm9jbGVhbnVwKGZ1 bmN0aW9uKToKPiArICAgICIiIgo+ICsgICAgRGVjb3JhdG9yIGRpc2FibGUgY2xlYW51cCBmdW5j dGlvbi4KPiArICAgICIiIgo+ICsgICAgZGVmIHdyYXBwZWQoc2VsZiwgKmFyZ3MsICoqa3dkcyk6 Cj4gKyAgICAgICAgc2VsZi5fY2xlYW51cCA9IEZhbHNlCj4gKyAgICAgICAgc2VsZi5kZWNvcmVk KCkKPiArICAgICAgICByZXN1bHQgPSBmdW5jdGlvbihzZWxmLCAqYXJncywgKiprd2RzKQo+ICsg ICAgICAgIHJldHVybiByZXN1bHQKPiArICAgIHdyYXBwZWQuZnVuY19uYW1lID0gZnVuY3Rpb24u ZnVuY19uYW1lCj4gKyAgICByZXR1cm4gd3JhcHBlZAo+ICsKPiArCj4gK2NsYXNzIFN1YnRlc3Qo b2JqZWN0KToKPiArICAgICIiIgo+ICsgICAgQ29sbGVjdCByZXN1bHQgb2Ygc3VidGVzdCBvZiBt YWluIHRlc3QuCj4gKyAgICAiIiIKPiArICAgIHJlc3VsdCA9IFtdCj4gKyAgICBwYXNzZWQgPSAw Cj4gKyAgICBmYWlsZWQgPSAwCj4gKyAgICBkZWYgX19uZXdfXyhjbHMsICphcmdzLCAqKmthcmdz KToKPiArICAgICAgICBzZWxmID0gc3VwZXIoU3VidGVzdCwgY2xzKS5fX25ld19fKGNscykKPiAr Cj4gKyAgICAgICAgc2VsZi5fZmF0YWwgPSBGYWxzZQo+ICsgICAgICAgIHNlbGYuX2NsZWFudXAg PSBUcnVlCj4gKyAgICAgICAgc2VsZi5fbnVtX2RlY29yZWQgPSAwCj4gKwo+ICsgICAgICAgIHJl dCA9IE5vbmUKPiArICAgICAgICBpZiBhcmdzIGlzIE5vbmU6Cj4gKyAgICAgICAgICAgIGFyZ3Mg PSBbXQo+ICsKPiArICAgICAgICByZXMgPSB7Cj4gKyAgICAgICAgICAgICAgICdyZXN1bHQnIDog Tm9uZSwKPiArICAgICAgICAgICAgICAgJ25hbWUnICAgOiBzZWxmLl9fY2xhc3NfXy5fX25hbWVf XywKPiArICAgICAgICAgICAgICAgJ2FyZ3MnICAgOiBhcmdzLAo+ICsgICAgICAgICAgICAgICAn a2FyZ3MnICA6IGthcmdzLAo+ICsgICAgICAgICAgICAgICAnb3V0cHV0JyA6IE5vbmUsCj4gKyAg ICAgICAgICAgICAgfQo+ICsgICAgICAgIHRyeToKPiArICAgICAgICAgICAgbG9nZ2luZy5pbmZv KCJTdGFydGluZyB0ZXN0ICVzIiAlIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKQo+ICsgICAgICAg ICAgICByZXQgPSBzZWxmLnRlc3QoKmFyZ3MsICoqa2FyZ3MpCj4gKyAgICAgICAgICAgIHJlc1sn cmVzdWx0J10gPSAnUEFTUycKPiArICAgICAgICAgICAgcmVzWydvdXRwdXQnXSA9IHJldAo+ICsg ICAgICAgICAgICB0cnk6Cj4gKyAgICAgICAgICAgICAgICBsb2dnaW5nLmluZm8oU3VidGVzdC5y ZXN1bHRfdG9fc3RyaW5nKHJlcykpCj4gKyAgICAgICAgICAgIGV4Y2VwdDoKPiArICAgICAgICAg ICAgICAgIHNlbGYuX251bV9kZWNvcmVkID0gMAo+ICsgICAgICAgICAgICAgICAgcmFpc2UKPiAr ICAgICAgICAgICAgU3VidGVzdC5yZXN1bHQuYXBwZW5kKHJlcykKPiArICAgICAgICAgICAgU3Vi dGVzdC5wYXNzZWQgKz0gMQo+ICsgICAgICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgo+ ICsgICAgICAgICAgICByYWlzZQo+ICsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Cj4gKyAgICAg ICAgICAgIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190cmFjZWJhY2sgPSBzeXMuZXhjX2luZm8o KQo+ICsgICAgICAgICAgICBmb3IgXyBpbiByYW5nZShzZWxmLl9udW1fZGVjb3JlZCk6Cj4gKyAg ICAgICAgICAgICAgICBleGNfdHJhY2ViYWNrID0gZXhjX3RyYWNlYmFjay50Yl9uZXh0Cj4gKyAg ICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoIkluIGZ1bmN0aW9uICgiICsgc2VsZi5fX2NsYXNzX18u X19uYW1lX18gKyAiKToiKQo+ICsgICAgICAgICAgICBsb2dnaW5nLmVycm9yKCJDYWxsIGZyb206 XG4iICsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2suZm9ybWF0X3N0YWNr KClbLTJdWzotMV0pCj4gKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoIkV4Y2VwdGlvbiBmcm9t OlxuIiArCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiIuam9pbih0cmFjZWJhY2suZm9y bWF0X2V4Y2VwdGlvbigKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBleGNfdHlwZSwgZXhjX3ZhbHVlLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y190cmFjZWJhY2sudGJfbmV4dCkpKQo+ICsg ICAgICAgICAgICAjIENsZWFuIHVwIGVudmlyb25tZW50IGFmdGVyIHN1YlRlc3QgY3Jhc2gKPiAr ICAgICAgICAgICAgcmVzWydyZXN1bHQnXSA9ICdGQUlMJwo+ICsgICAgICAgICAgICBsb2dnaW5n LmluZm8oc2VsZi5yZXN1bHRfdG9fc3RyaW5nKHJlcykpCj4gKyAgICAgICAgICAgIFN1YnRlc3Qu cmVzdWx0LmFwcGVuZChyZXMpCj4gKyAgICAgICAgICAgIFN1YnRlc3QuZmFpbGVkICs9IDEKPiAr ICAgICAgICAgICAgaWYgc2VsZi5fZmF0YWw6Cj4gKyAgICAgICAgICAgICAgICByYWlzZQo+ICsg ICAgICAgIGZpbmFsbHk6Cj4gKyAgICAgICAgICAgIGlmIHNlbGYuX2NsZWFudXA6Cj4gKyAgICAg ICAgICAgICAgICBzZWxmLmNsZWFuKCkKPiArCj4gKyAgICAgICAgcmV0dXJuIHJldAo+ICsKPiAr Cj4gKyAgICBkZWYgdGVzdChzZWxmKToKPiArICAgICAgICAiIiIKPiArICAgICAgICBDaGVjayBp ZiB0ZXN0IGlzIGRlZmluZWQuCj4gKwo+ICsgICAgICAgIEZvciBtYWtlcyB0ZXN0IGZhdGFsIGFk ZCBiZWZvcmUgaW1wbGVtZW50YXRpb24gb2YgdGVzdCBtZXRob2QKPiArICAgICAgICBkZWNvcmF0 b3IgQHN1YnRlc3RfZmF0YWwKPiArICAgICAgICAiIiIKPiArICAgICAgICByYWlzZSBOb3RJbXBs ZW1lbnRlZEVycm9yKCJNZXRob2QgdGVzdCBpcyBub3QgaW1wbGVtZW50ZWQuIikKPiArCj4gKwo+ ICsgICAgZGVmIGNsZWFuKHNlbGYpOgo+ICsgICAgICAgICIiIgo+ICsgICAgICAgIENoZWNrIGlm IGNsZWFudXAgaXMgZGVmaW5lZC4KPiArCj4gKyAgICAgICAgRm9yIG1ha2VzIHRlc3QgZmF0YWwg YWRkIGJlZm9yZSBpbXBsZW1lbnRhdGlvbiBvZiB0ZXN0IG1ldGhvZAo+ICsgICAgICAgIGRlY29y YXRvciBAc3VidGVzdF9ub2NsZWFudXAKPiArICAgICAgICAiIiIKPiArICAgICAgICByYWlzZSBO b3RJbXBsZW1lbnRlZEVycm9yKCJNZXRob2QgY2xlYW51cCBpcyBub3QgaW1wbGVtZW50ZWQuIikK PiArCj4gKwo+ICsgICAgZGVmIGRlY29yZWQoc2VsZik6Cj4gKyAgICAgICAgc2VsZi5fbnVtX2Rl Y29yZWQgKz0gMQo+ICsKPiArCj4gKyAgICBAY2xhc3NtZXRob2QKPiArICAgIGRlZiBoYXNfZmFp bGVkKGNscyk6Cj4gKyAgICAgICAgIiIiCj4gKyAgICAgICAgQHJldHVybjogSWYgYW55IG9mIHN1 YnRlc3Qgbm90IHBhc3MgcmV0dXJuIFRydWUuCj4gKyAgICAgICAgIiIiCj4gKyAgICAgICAgaWYg Y2xzLmZhaWxlZD4gIDA6Cj4gKyAgICAgICAgICAgIHJldHVybiBUcnVlCj4gKyAgICAgICAgZWxz ZToKPiArICAgICAgICAgICAgcmV0dXJuIEZhbHNlCj4gKwo+ICsKPiArICAgIEBjbGFzc21ldGhv ZAo+ICsgICAgZGVmIGdldF9yZXN1bHQoY2xzKToKPiArICAgICAgICAiIiIKPiArICAgICAgICBA cmV0dXJuOiBSZXN1bHQgb2Ygc3VidGVzdHMuCj4gKyAgICAgICAgICAgRm9ybWF0Ogo+ICsgICAg ICAgICAgICAgdHVwbGUocGFzcy9mYWlsLGZ1bmN0aW9uX25hbWUsY2FsbF9hcmd1bWVudHMpCj4g KyAgICAgICAgIiIiCj4gKyAgICAgICAgcmV0dXJuIGNscy5yZXN1bHQKPiArCj4gKwo+ICsgICAg QHN0YXRpY21ldGhvZAo+ICsgICAgZGVmIHJlc3VsdF90b19zdHJpbmdfZGVidWcocmVzdWx0KToK PiArICAgICAgICAiIiIKPiArICAgICAgICBAcGFyYW0gcmVzdWx0OiBSZXN1bHQgb2YgdGVzdC4K PiArICAgICAgICAiIiIKPiArICAgICAgICBzYXJncyA9ICIiCj4gKyAgICAgICAgZm9yIGFyZyBp biByZXN1bHRbJ2FyZ3MnXToKPiArICAgICAgICAgICAgc2FyZ3MgKz0gc3RyKGFyZykgKyAiLCIK PiArICAgICAgICBzYXJncyA9IHNhcmdzWzotMV0KPiArICAgICAgICByZXR1cm4gKCJTdWJ0ZXN0 ICglcyglcykpOiAtLT4gICVzIikgJSAocmVzdWx0WyduYW1lJ10sCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FyZ3MsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0WydzdGF0dXMnXSkKPiArCj4g Kwo+ICsgICAgQHN0YXRpY21ldGhvZAo+ICsgICAgZGVmIHJlc3VsdF90b19zdHJpbmcocmVzdWx0 KToKPiArICAgICAgICAiIiIKPiArICAgICAgICBGb3JtYXQgb2YgcmVzdWx0IGRpY3QuCj4gKwo+ ICsgICAgICAgIHJlc3VsdCA9IHsKPiArICAgICAgICAgICAgICAgJ3Jlc3VsdCcgOiAiUEFTUyIg LyAiRkFJTCIsCj4gKyAgICAgICAgICAgICAgICduYW1lJyAgIDogY2xhc3MgbmFtZSwKPiArICAg ICAgICAgICAgICAgJ2FyZ3MnICAgOiB0ZXN0J3MgYXJncywKPiArICAgICAgICAgICAgICAgJ2th cmdzJyAgOiB0ZXN0J3Mga2FyZ3MsCj4gKyAgICAgICAgICAgICAgICdvdXRwdXQnIDogcmV0dXJu IG9mIHRlc3QgZnVuY3Rpb24sCj4gKyAgICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICBAcGFy YW0gcmVzdWx0OiBSZXN1bHQgb2YgdGVzdC4KPiArICAgICAgICAiIiIKPiArICAgICAgICByZXR1 cm4gKCJTdWJ0ZXN0ICglKG5hbWUpcyk6IC0tPiAgJShyZXN1bHQpcyIpICUgKHJlc3VsdCkKPiAr Cj4gKwo+ICsgICAgQGNsYXNzbWV0aG9kCj4gKyAgICBkZWYgbG9nX2FwcGVuZChjbHMsIG1zZyk6 Cj4gKyAgICAgICAgIiIiCj4gKyAgICAgICAgQWRkIGxvZ19hcHBlbmQgdG8gcmVzdWx0IG91dHB1 dC4KPiArCj4gKyAgICAgICAgQHBhcmFtIG1zZzogVGVzdCBvZiBsb2dfYXBwZW5kCj4gKyAgICAg ICAgIiIiCj4gKyAgICAgICAgY2xzLnJlc3VsdC5hcHBlbmQoW21zZ10pCj4gKwo+ICsKPiArICAg IEBjbGFzc21ldGhvZAo+ICsgICAgZGVmIF9nZW5fcmVzKGNscywgZm9ybWF0X2Z1bmMpOgo+ICsg ICAgICAgICIiIgo+ICsgICAgICAgIEZvcm1hdCByZXN1bHQgd2l0aCBmb3JtYXR0aW5nIGZ1bmN0 aW9uCj4gKwo+ICsgICAgICAgIEBwYXJhbSBmb3JtYXRfZnVuYzogRnVuYyBmb3IgZm9ybWF0aW5n IHJlc3VsdC4KPiArICAgICAgICAiIiIKPiArICAgICAgICByZXN1bHQgPSAiIgo+ICsgICAgICAg IGZvciByZXMgaW4gY2xzLnJlc3VsdDoKPiArICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UocmVz LGRpY3QpKToKPiArICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXRfZnVuYyhyZXMpICsg IlxuIgo+ICsgICAgICAgICAgICBlbHNlOgo+ICsgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN0 cihyZXNbMF0pICsgIlxuIgo+ICsgICAgICAgIHJldHVybiByZXN1bHQKPiArCj4gKwo+ICsgICAg QGNsYXNzbWV0aG9kCj4gKyAgICBkZWYgZ2V0X2Z1bGxfdGV4dF9yZXN1bHQoY2xzLCBmb3JtYXRf ZnVuYz1Ob25lKToKPiArICAgICAgICAiIiIKPiArICAgICAgICBAcmV0dXJuIHN0cmluZyB3aXRo IHRleHQgZm9ybSBvZiByZXN1bHQKPiArICAgICAgICAiIiIKPiArICAgICAgICBpZiBmb3JtYXRf ZnVuYyBpcyBOb25lOgo+ICsgICAgICAgICAgICBmb3JtYXRfZnVuYyA9IGNscy5yZXN1bHRfdG9f c3RyaW5nX2RlYnVnCj4gKyAgICAgICAgcmV0dXJuIGNscy5fZ2VuX3JlcyhsYW1iZGEgczogZm9y bWF0X2Z1bmMocykpCj4gKwo+ICsKPiArICAgIEBjbGFzc21ldGhvZAo+ICsgICAgZGVmIGdldF90 ZXh0X3Jlc3VsdChjbHMsIGZvcm1hdF9mdW5jPU5vbmUpOgo+ICsgICAgICAgICIiIgo+ICsgICAg ICAgIEByZXR1cm4gc3RyaW5nIHdpdGggdGV4dCBmb3JtIG9mIHJlc3VsdAo+ICsgICAgICAgICIi Igo+ICsgICAgICAgIGlmIGZvcm1hdF9mdW5jIGlzIE5vbmU6Cj4gKyAgICAgICAgICAgIGZvcm1h dF9mdW5jID0gY2xzLnJlc3VsdF90b19zdHJpbmcKPiArICAgICAgICByZXR1cm4gY2xzLl9nZW5f cmVzKGxhbWJkYSBzOiBmb3JtYXRfZnVuYyhzKSkKPiArCj4gKwo+ICAgZGVmIGlwX3RvX2xvbmco aXApOgo+ICAgICAgICMgIUwgaXMgYSBsb25nIGluIG5ldHdvcmsgYnl0ZSBvcmRlcgo+ICAgICAg IHJldHVybiBzdHJ1Y3QudW5wYWNrKCchTCcsIHNvY2tldC5pbmV0X2F0b24oaXApKVswXQo+IGRp ZmYgLS1naXQgYS9jbGllbnQvY29tbW9uX2xpYi9iYXNlX3V0aWxzX3VuaXR0ZXN0LnB5IGIvY2xp ZW50L2NvbW1vbl9saWIvYmFzZV91dGlsc191bml0dGVzdC5weQo+IGluZGV4IDM5YWNhYjIuLmU2 OTdmZjEgMTAwNzU1Cj4gLS0tIGEvY2xpZW50L2NvbW1vbl9saWIvYmFzZV91dGlsc191bml0dGVz dC5weQo+ICsrKyBiL2NsaWVudC9jb21tb25fbGliL2Jhc2VfdXRpbHNfdW5pdHRlc3QucHkKPiBA QCAtNjI1LDYgKzYyNSwxMjMgQEAgY2xhc3MgdGVzdF9zaF9lc2NhcGUodW5pdHRlc3QuVGVzdENh c2UpOgo+ICAgICAgICAgICBzZWxmLl90ZXN0X2luX3NoZWxsKCdcXDAwMCcpCj4KPgo+ICtjbGFz cyB0ZXN0X3N1YnRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgo+ICsgICAgIiIiCj4gKyAgICBUZXN0 IHN1YnRlc3QgY2xhc3MuCj4gKyAgICAiIiIKPiArICAgIGRlZiBzZXRVcChzZWxmKToKPiArICAg ICAgICBzZWxmLmdvZCA9IG1vY2subW9ja19nb2QodXQ9c2VsZikKPiArICAgICAgICBzZWxmLmdv ZC5zdHViX2Z1bmN0aW9uKGJhc2VfdXRpbHMubG9nZ2luZywgJ2Vycm9yJykKPiArICAgICAgICBz ZWxmLmdvZC5zdHViX2Z1bmN0aW9uKGJhc2VfdXRpbHMubG9nZ2luZywgJ2luZm8nKQo+ICsKPiAr ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKPiArICAgICAgICBzZWxmLmdvZC51bnN0dWJfYWxsKCkK PiArCj4gKyAgICBkZWYgdGVzdF90ZXN0X25vdF9pbXBsZW1lbnRlZF9yYWlzZShzZWxmKToKPiAr ICAgICAgICBiYXNlX3V0aWxzLmxvZ2dpbmcuaW5mby5leHBlY3RfYW55X2NhbGwoKQo+ICsgICAg ICAgIGJhc2VfdXRpbHMubG9nZ2luZy5lcnJvci5leHBlY3RfYW55X2NhbGwoKQo+ICsgICAgICAg IGJhc2VfdXRpbHMubG9nZ2luZy5lcnJvci5leHBlY3RfYW55X2NhbGwoKQo+ICsgICAgICAgIGJh c2VfdXRpbHMubG9nZ2luZy5lcnJvci5leHBlY3RfYW55X2NhbGwoKQo+ICsgICAgICAgIGJhc2Vf dXRpbHMubG9nZ2luZy5pbmZvLmV4cGVjdF9jYWxsKCJTdWJ0ZXN0ICh0ZXN0X25vdF9pbXBsZW1l bnQpOiIKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0t PiAgRkFJTCIpCj4gKwo+ICsgICAgICAgIGNsYXNzIHRlc3Rfbm90X2ltcGxlbWVudChiYXNlX3V0 aWxzLlN1YnRlc3QpOgo+ICsgICAgICAgICAgICBwYXNzCj4gKwo+ICsgICAgICAgIHNlbGYuYXNz ZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIHRlc3Rfbm90X2ltcGxlbWVudCkKPiArCj4g KyAgICBkZWYgdGVzdF9jbGVhbl9ub3RfaW1wbGVtZW50ZWRfcmFpc2Uoc2VsZik6Cj4gKyAgICAg ICAgYmFzZV91dGlscy5sb2dnaW5nLmluZm8uZXhwZWN0X2FueV9jYWxsKCkKPiArICAgICAgICBi YXNlX3V0aWxzLmxvZ2dpbmcuaW5mby5leHBlY3RfYW55X2NhbGwoKQo+ICsKPiArICAgICAgICBj bGFzcyB0ZXN0X3Rlc3Rfbm90X2NsZWFudXBfaW1wbGVtZW50KGJhc2VfdXRpbHMuU3VidGVzdCk6 Cj4gKyAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgo+ICsgICAgICAgICAgICAgICAgcGFzcwo+ ICsKPiArICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCB0ZXN0 X3Rlc3Rfbm90X2NsZWFudXBfaW1wbGVtZW50KQo+ICsKPiArICAgIGRlZiB0ZXN0X2ZhaWxfaW5f bm9mYXRhbF90ZXN0KHNlbGYpOgo+ICsgICAgICAgIGJhc2VfdXRpbHMubG9nZ2luZy5pbmZvLmV4 cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGlscy5sb2dnaW5nLmVycm9yLmV4cGVj dF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGlscy5sb2dnaW5nLmVycm9yLmV4cGVjdF9h bnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGlscy5sb2dnaW5nLmVycm9yLmV4cGVjdF9hbnlf Y2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGlscy5sb2dnaW5nLmluZm8uZXhwZWN0X2NhbGwoIlN1 YnRlc3QgKHRlc3RfcmFpc2VfaW5fbm9mYXRhbCIKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiX3Rlc3QpOiAtLT4gIEZBSUwiKQo+ICsKPiArICAgICAgICBj bGFzcyB0ZXN0X3JhaXNlX2luX25vZmF0YWxfdGVzdChiYXNlX3V0aWxzLlN1YnRlc3QpOgo+ICsg ICAgICAgICAgICBAYmFzZV91dGlscy5zdWJ0ZXN0X25vY2xlYW51cAo+ICsgICAgICAgICAgICBk ZWYgdGVzdChzZWxmKToKPiArICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gZmF0 YWwgdGVzdC4iKQo+ICsKPiArICAgICAgICB0ZXN0X3JhaXNlX2luX25vZmF0YWxfdGVzdCgpCj4g Kwo+ICsgICAgZGVmIHRlc3RfZmFpbF9pbl9mYXRhbF90ZXN0KHNlbGYpOgo+ICsgICAgICAgIGJh c2VfdXRpbHMubG9nZ2luZy5pbmZvLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91 dGlscy5sb2dnaW5nLmVycm9yLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGls cy5sb2dnaW5nLmVycm9yLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGlscy5s b2dnaW5nLmVycm9yLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGlscy5sb2dn aW5nLmluZm8uZXhwZWN0X2NhbGwoIlN1YnRlc3QgKHRlc3RfcmFpc2VfaW5fZmF0YWwiCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl90ZXN0KTogLS0+ICBG QUlMIikKPiArCj4gKyAgICAgICAgY2xhc3MgdGVzdF9yYWlzZV9pbl9mYXRhbF90ZXN0KGJhc2Vf dXRpbHMuU3VidGVzdCk6Cj4gKyAgICAgICAgICAgIEBiYXNlX3V0aWxzLnN1YnRlc3Rfbm9jbGVh bnVwCj4gKyAgICAgICAgICAgIEBiYXNlX3V0aWxzLnN1YnRlc3RfZmF0YWwKPiArICAgICAgICAg ICAgZGVmIHRlc3Qoc2VsZik6Cj4gKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkZh dGFsIHRlc3QuIikKPiArCj4gKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCB0 ZXN0X3JhaXNlX2luX2ZhdGFsX3Rlc3QpCj4gKwo+ICsgICAgZGVmIHRlc3RfcGFzc193aXRoX2Ns ZWFudXBfdGVzdChzZWxmKToKPiArICAgICAgICBiYXNlX3V0aWxzLmxvZ2dpbmcuaW5mby5leHBl Y3RfYW55X2NhbGwoKQo+ICsgICAgICAgIGJhc2VfdXRpbHMubG9nZ2luZy5pbmZvLmV4cGVjdF9j YWxsKCJTdWJ0ZXN0ICh0ZXN0X3Bhc3NfdGVzdCk6Igo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIgLS0+ICBQQVNTIikKPiArCj4gKyAgICAgICAgY2xhc3Mg dGVzdF9wYXNzX3Rlc3QoYmFzZV91dGlscy5TdWJ0ZXN0KToKPiArICAgICAgICAgICAgQGJhc2Vf dXRpbHMuc3VidGVzdF9mYXRhbAo+ICsgICAgICAgICAgICBkZWYgdGVzdChzZWxmKToKPiArICAg ICAgICAgICAgICAgIHBhc3MKPiArCj4gKyAgICAgICAgICAgIGRlZiBjbGVhbihzZWxmKToKPiAr ICAgICAgICAgICAgICAgIHBhc3MKPiArCj4gKyAgICAgICAgdGVzdF9wYXNzX3Rlc3QoKQo+ICsK PiArCj4gKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgo+ICsgICAgICAgIGJhc2VfdXRpbHMu bG9nZ2luZy5pbmZvLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91dGlscy5sb2dn aW5nLmluZm8uZXhwZWN0X2NhbGwoIlN1YnRlc3QgKHRlc3RfcGFzc190ZXN0KToiCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtLT4gIFBBU1MiKQo+ICsg ICAgICAgIGJhc2VfdXRpbHMubG9nZ2luZy5pbmZvLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAg ICAgYmFzZV91dGlscy5sb2dnaW5nLmVycm9yLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAg YmFzZV91dGlscy5sb2dnaW5nLmVycm9yLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFz ZV91dGlscy5sb2dnaW5nLmVycm9yLmV4cGVjdF9hbnlfY2FsbCgpCj4gKyAgICAgICAgYmFzZV91 dGlscy5sb2dnaW5nLmluZm8uZXhwZWN0X2NhbGwoIlN1YnRlc3QgKHRlc3RfcmFpc2VfaW5fbm9m YXRhbCIKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX3Rl c3QpOiAtLT4gIEZBSUwiKQo+ICsKPiArICAgICAgICAjUmVzZXQgdGVzdCBmYWlsIGNvdW50Lgo+ ICsgICAgICAgIGJhc2VfdXRpbHMuU3VidGVzdC5mYWlsZWQgPSAwCj4gKwo+ICsgICAgICAgIGNs YXNzIHRlc3RfcGFzc190ZXN0KGJhc2VfdXRpbHMuU3VidGVzdCk6Cj4gKyAgICAgICAgICAgIEBi YXNlX3V0aWxzLnN1YnRlc3RfZmF0YWwKPiArICAgICAgICAgICAgZGVmIHRlc3Qoc2VsZik6Cj4g KyAgICAgICAgICAgICAgICBwYXNzCj4gKwo+ICsgICAgICAgICAgICBkZWYgY2xlYW4oc2VsZik6 Cj4gKyAgICAgICAgICAgICAgICBwYXNzCj4gKwo+ICsgICAgICAgIGNsYXNzIHRlc3RfcmFpc2Vf aW5fbm9mYXRhbF90ZXN0KGJhc2VfdXRpbHMuU3VidGVzdCk6Cj4gKyAgICAgICAgICAgIEBiYXNl X3V0aWxzLnN1YnRlc3Rfbm9jbGVhbnVwCj4gKyAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgo+ ICsgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBmYXRhbCB0ZXN0LiIpCj4gKwo+ ICsgICAgICAgIHRlc3RfcGFzc190ZXN0KCkKPiArICAgICAgICB0ZXN0X3JhaXNlX2luX25vZmF0 YWxfdGVzdCgpCj4gKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYXNlX3V0aWxzLlN1YnRlc3Qu aGFzX2ZhaWxlZCgpLCBUcnVlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIlN1YnRlc3Qg bm90IGNhdGNoIHN1YnRlc3QgZmFpbC4iKQo+ICsgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFz ZV91dGlscy5TdWJ0ZXN0LmZhaWxlZCwgMSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICJD b3VudCBvZiB0ZXN0IGZhaWxpbmcgaXMgd3JvbmciKQo+ICsKPiArCj4gICBjbGFzcyB0ZXN0X3J1 bih1bml0dGVzdC5UZXN0Q2FzZSk6Cj4gICAgICAgIiIiCj4gICAgICAgVGVzdCB0aGUgYmFzZV91 dGlscy5ydW4oKSBmdW5jdGlvbi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkF1dG90ZXN0IG1haWxpbmcgbGlzdApBdXRvdGVzdEB0ZXN0Lmtlcm5lbC5v cmcKaHR0cDovL3Rlc3Qua2VybmVsLm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vYXV0b3Rl c3QK