From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH i-g-t] kms_atomic_transition: Add subtest time limit/randomize plane, pipe combinations Date: Tue, 31 Oct 2017 15:44:47 +0200 Message-ID: <20171031134447.19963-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 973096E5B3 for ; Tue, 31 Oct 2017 13:44:51 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RG9pbmcgbW9kZXNldCBvbiBpbnRlcm5hbCBwYW5lbHMgbWF5IGhhdmUgYSBjb25zaWRlcmFibGUg b3ZlcmhlYWQgZHVlIHRvCnRoZSBwYW5lbCBzcGVjaWZpYyBwb3dlciBzZXF1ZW5jaW5nIGRlbGF5 cy4gVG8gYXZvaWQgbG9uZyB0ZXN0IHJ1bnRpbWVzCmxpbWl0IHRoZSBydW50aW1lIG9mIGVhY2gg c3VidGVzdC4gUmFuZG9taXplIHRoZSBwbGFuZS9waXBlIGNvbWJpbmF0aW9ucwp0byBwcmVzZXJ2 ZSB0aGUgdGVzdCBjb3ZlcmFnZSBvbiBzdWNoIHBhbmVscyBhdCBsZWFzdCBvdmVyIG11bHRpcGxl IHRlc3QKcnVucy4KCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3df YnVnLmNnaT9pZD0xMDMzMzQKQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGlu dGVsLmNvbT4KLS0tCiB0ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRpb24uYyB8IDE3NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNTAg aW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2F0 b21pY190cmFuc2l0aW9uLmMgYi90ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRpb24uYwppbmRleCA0 YzI5NTEyNS4uYWM2N2ZjM2EgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlv bi5jCisrKyBiL3Rlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jCkBAIC0zOSw2ICszOSwxNCBA QAogI2RlZmluZSBEUk1fQ0FQX0NVUlNPUl9IRUlHSFQgMHg5CiAjZW5kaWYKIAorI2RlZmluZSBN QVhfU1VCVEVTVF9EVVJBVElPTl9OUyAoMjBVTEwgKiBOU0VDX1BFUl9TRUMpCisKK3N0cnVjdCB0 ZXN0X2NvbmZpZyB7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheTsKKwlib29sIHVzZXJfc2VlZDsK KwlpbnQgc2VlZDsKK307CisKIHN0cnVjdCBwbGFuZV9wYXJtcyB7CiAJc3RydWN0IGlndF9mYiAq ZmI7CiAJdWludDMyX3Qgd2lkdGgsIGhlaWdodDsKQEAgLTQwMSw2ICs0MDksMjggQEAgc3RhdGlj IHZvaWQgd2FpdF9mb3JfdHJhbnNpdGlvbihpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBp cGUgcGlwZSwgYm9vbCBub24KIAl9CiB9CiAKKy8qIENvcGllZCBmcm9tIGh0dHBzOi8vYmVucGZh ZmYub3JnL3dyaXRpbmdzL2NsYy9zaHVmZmxlLmh0bWwgKi8KK3N0YXRpYyB2b2lkIHNodWZmbGVf YXJyYXkodWludDMyX3QgKmFycmF5LCBpbnQgc2l6ZSwgaW50IHNlZWQpCit7CisJaW50IGk7CisK Kwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisJCWludCBqID0gaSArIHJhbmQoKSAvIChS QU5EX01BWCAvIChzaXplIC0gaSkgKyAxKTsKKworCQlpZ3Rfc3dhcChhcnJheVtpXSwgYXJyYXlb al0pOworCX0KK30KKworc3RhdGljIHZvaWQgaW5pdF9jb21iaW5hdGlvbl9hcnJheSh1aW50MzJf dCAqYXJyYXksIGludCBzaXplLCBpbnQgc2VlZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7 IGkgPCBzaXplOyBpKyspCisJCWFycmF5W2ldID0gaTsKKworCXNodWZmbGVfYXJyYXkoYXJyYXks IHNpemUsIHNlZWQpOworfQorCiAvKgogICogMS4gU2V0IHByaW1hcnkgcGxhbmUgdG8gYSBrbm93 biBmYi4KICAqIDIuIE1ha2Ugc3VyZSBnZXRjcnRjIHJldHVybnMgdGhlIGNvcnJlY3QgZmIgaWQu CkBAIC00MTEsMTkgKzQ0MSwyNyBAQCBzdGF0aWMgdm9pZCB3YWl0X2Zvcl90cmFuc2l0aW9uKGln dF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLCBib29sIG5vbgogICogc28gdGVz dCB0aGlzIGFuZCBtYWtlIHN1cmUgaXQgd29ya3MuCiAgKi8KIHN0YXRpYyB2b2lkCi1ydW5fdHJh bnNpdGlvbl90ZXN0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLCBpZ3Rf b3V0cHV0X3QgKm91dHB1dCwKLQkJZW51bSB0cmFuc2l0aW9uX3R5cGUgdHlwZSwgYm9vbCBub25i bG9ja2luZywgYm9vbCBmZW5jaW5nKQorcnVuX3RyYW5zaXRpb25fdGVzdChzdHJ1Y3QgdGVzdF9j b25maWcgKnRlc3RfY29uZmlnLCBlbnVtIHBpcGUgcGlwZSwKKwkJICAgIGlndF9vdXRwdXRfdCAq b3V0cHV0LCBlbnVtIHRyYW5zaXRpb25fdHlwZSB0eXBlLAorCQkgICAgYm9vbCBub25ibG9ja2lu ZywgYm9vbCBmZW5jaW5nKQogewogCXN0cnVjdCBpZ3RfZmIgZmIsIGFyZ2JfZmIsIHNwcml0ZV9m YjsKIAlkcm1Nb2RlTW9kZUluZm8gKm1vZGUsIG92ZXJyaWRlX21vZGU7CisJaWd0X2Rpc3BsYXlf dCAqZGlzcGxheSA9IHRlc3RfY29uZmlnLT5kaXNwbGF5OwogCWlndF9wbGFuZV90ICpwbGFuZTsK IAlpZ3RfcGlwZV90ICpwaXBlX29iaiA9ICZkaXNwbGF5LT5waXBlc1twaXBlXTsKIAl1aW50MzJf dCBpdGVyX21heCA9IDEgPDwgcGlwZV9vYmotPm5fcGxhbmVzLCBpOworCXVpbnQzMl90ICpwbGFu ZV9jb21iaW5hdGlvbnM7CisJc3RydWN0IHRpbWVzcGVjIHN0YXJ0ID0geyB9OwogCXN0cnVjdCBw bGFuZV9wYXJtcyBwYXJtc1twaXBlX29iai0+bl9wbGFuZXNdOwogCWJvb2wgc2tpcF90ZXN0ID0g ZmFsc2U7CiAJdW5zaWduZWQgZmxhZ3MgPSAwOwogCWludCByZXQ7CiAKKwlwbGFuZV9jb21iaW5h dGlvbnMgPSBtYWxsb2Moc2l6ZW9mKCpwbGFuZV9jb21iaW5hdGlvbnMpICogaXRlcl9tYXgpOwor CWlndF9hc3NlcnQocGxhbmVfY29tYmluYXRpb25zKTsKKwlpbml0X2NvbWJpbmF0aW9uX2FycmF5 KHBsYW5lX2NvbWJpbmF0aW9ucywgaXRlcl9tYXgsIHRlc3RfY29uZmlnLT5zZWVkKTsKKwogCWlm IChmZW5jaW5nKQogCQlwcmVwYXJlX2ZlbmNpbmcoZGlzcGxheSwgcGlwZSk7CiAJZWxzZQpAQCAt NTI3LDM5ICs1NjUsNTkgQEAgcnVuX3RyYW5zaXRpb25fdGVzdChpZ3RfZGlzcGxheV90ICpkaXNw bGF5LCBlbnVtIHBpcGUgcGlwZSwgaWd0X291dHB1dF90ICpvdXRwdXQKIAkJZ290byBjbGVhbnVw OwogCX0KIAorCWlndF9uc2VjX2VsYXBzZWQoJnN0YXJ0KTsKKwogCWZvciAoaSA9IDA7IGkgPCBp dGVyX21heDsgaSsrKSB7CiAJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKIAot CQl3bV9zZXR1cF9wbGFuZShkaXNwbGF5LCBwaXBlLCBpLCBwYXJtcywgZmVuY2luZyk7CisJCXdt X3NldHVwX3BsYW5lKGRpc3BsYXksIHBpcGUsIHBsYW5lX2NvbWJpbmF0aW9uc1tpXSwgcGFybXMs CisJCQkgICAgICAgZmVuY2luZyk7CiAKLQkJYXRvbWljX2NvbW1pdChkaXNwbGF5LCBwaXBlLCBm bGFncywgKHZvaWQgKikodW5zaWduZWQgbG9uZylpLCBmZW5jaW5nKTsKKwkJYXRvbWljX2NvbW1p dChkaXNwbGF5LCBwaXBlLCBmbGFncywKKwkJCSAgICAgICh2b2lkICopKHVuc2lnbmVkIGxvbmcp cGxhbmVfY29tYmluYXRpb25zW2ldLAorCQkJICAgICAgZmVuY2luZyk7CiAJCXdhaXRfZm9yX3Ry YW5zaXRpb24oZGlzcGxheSwgcGlwZSwgbm9uYmxvY2tpbmcsIGZlbmNpbmcpOwogCiAJCWlmICh0 eXBlID09IFRSQU5TSVRJT05fTU9ERVNFVF9ESVNBQkxFKSB7CisJCQlpZiAoaWd0X25zZWNfZWxh cHNlZCgmc3RhcnQpID49IE1BWF9TVUJURVNUX0RVUkFUSU9OX05TKQorCQkJCWdvdG8gY2xlYW51 cDsKKwogCQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfTk9ORSk7CiAKIAkJCXdt X3NldHVwX3BsYW5lKGRpc3BsYXksIHBpcGUsIDAsIHBhcm1zLCBmZW5jaW5nKTsKIAogCQkJYXRv bWljX2NvbW1pdChkaXNwbGF5LCBwaXBlLCBmbGFncywgKHZvaWQgKikgMFVMLCBmZW5jaW5nKTsK IAkJCXdhaXRfZm9yX3RyYW5zaXRpb24oZGlzcGxheSwgcGlwZSwgbm9uYmxvY2tpbmcsIGZlbmNp bmcpOworCiAJCX0gZWxzZSB7CiAJCQl1aW50MzJfdCBqOwogCiAJCQkvKiBpIC0+IGkrMSB3aWxs IGJlIGRvbmUgd2hlbiBpIGluY3JlYXNlcywgY2FuIGJlIHNraXBwZWQgaGVyZSAqLwogCQkJZm9y IChqID0gaXRlcl9tYXggLSAxOyBqID4gaSArIDE7IGotLSkgewotCQkJCXdtX3NldHVwX3BsYW5l KGRpc3BsYXksIHBpcGUsIGosIHBhcm1zLCBmZW5jaW5nKTsKKwkJCQlpZiAoaWd0X25zZWNfZWxh cHNlZCgmc3RhcnQpID49IE1BWF9TVUJURVNUX0RVUkFUSU9OX05TKQorCQkJCQlnb3RvIGNsZWFu dXA7CisKKwkJCQl3bV9zZXR1cF9wbGFuZShkaXNwbGF5LCBwaXBlLAorCQkJCQkgICAgICAgcGxh bmVfY29tYmluYXRpb25zW2pdLCBwYXJtcywKKwkJCQkJICAgICAgIGZlbmNpbmcpOwogCiAJCQkJ aWYgKHR5cGUgPT0gVFJBTlNJVElPTl9NT0RFU0VUKQogCQkJCQlpZ3Rfb3V0cHV0X292ZXJyaWRl X21vZGUob3V0cHV0LCAmb3ZlcnJpZGVfbW9kZSk7CiAKLQkJCQlhdG9taWNfY29tbWl0KGRpc3Bs YXksIHBpcGUsIGZsYWdzLCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKSBqLCBmZW5jaW5nKTsKKwkJ CQlhdG9taWNfY29tbWl0KGRpc3BsYXksIHBpcGUsIGZsYWdzLAorCQkJCQkgICAgICAodm9pZCAq KSh1bnNpZ25lZCBsb25nKXBsYW5lX2NvbWJpbmF0aW9uc1tqXSwKKwkJCQkJICAgICAgZmVuY2lu Zyk7CiAJCQkJd2FpdF9mb3JfdHJhbnNpdGlvbihkaXNwbGF5LCBwaXBlLCBub25ibG9ja2luZywg ZmVuY2luZyk7CiAKLQkJCQl3bV9zZXR1cF9wbGFuZShkaXNwbGF5LCBwaXBlLCBpLCBwYXJtcywg ZmVuY2luZyk7CisJCQkJd21fc2V0dXBfcGxhbmUoZGlzcGxheSwgcGlwZSwKKwkJCQkJICAgICAg IHBsYW5lX2NvbWJpbmF0aW9uc1tpXSwgcGFybXMsCisJCQkJCSAgICAgICBmZW5jaW5nKTsKIAkJ CQlpZiAodHlwZSA9PSBUUkFOU0lUSU9OX01PREVTRVQpCiAJCQkJCWlndF9vdXRwdXRfb3ZlcnJp ZGVfbW9kZShvdXRwdXQsIE5VTEwpOwogCi0JCQkJYXRvbWljX2NvbW1pdChkaXNwbGF5LCBwaXBl LCBmbGFncywgKHZvaWQgKikodW5zaWduZWQgbG9uZykgaSwgZmVuY2luZyk7CisJCQkJYXRvbWlj X2NvbW1pdChkaXNwbGF5LCBwaXBlLCBmbGFncywKKwkJCQkJICAgICAgKHZvaWQgKikodW5zaWdu ZWQgbG9uZylwbGFuZV9jb21iaW5hdGlvbnNbaV0sCisJCQkJCSAgICAgIGZlbmNpbmcpOwogCQkJ CXdhaXRfZm9yX3RyYW5zaXRpb24oZGlzcGxheSwgcGlwZSwgbm9uYmxvY2tpbmcsIGZlbmNpbmcp OwogCQkJfQogCQl9CkBAIC01NzksNiArNjM3LDkgQEAgY2xlYW51cDoKIAlpZ3RfcmVtb3ZlX2Zi KGRpc3BsYXktPmRybV9mZCwgJmZiKTsKIAlpZ3RfcmVtb3ZlX2ZiKGRpc3BsYXktPmRybV9mZCwg JmFyZ2JfZmIpOwogCWlndF9yZW1vdmVfZmIoZGlzcGxheS0+ZHJtX2ZkLCAmc3ByaXRlX2ZiKTsK KworCWZyZWUocGxhbmVfY29tYmluYXRpb25zKTsKKwogCWlmIChza2lwX3Rlc3QpCiAJCWlndF9z a2lwKCJBdG9taWMgbm9uYmxvY2tpbmcgbW9kZXNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuXG4iKTsK IH0KQEAgLTY5NiwxNiArNzU3LDI0IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3RfY3Jjc19tYXNrKGln dF9waXBlX2NyY190ICoqcGlwZV9jcmNzLCB1bnNpZ25lZCBtYXNrLCBpZ3RfY3JjCiAJfQogfQog Ci1zdGF0aWMgdm9pZCBydW5fbW9kZXNldF90ZXN0cyhpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBp bnQgaG93bWFueSwgYm9vbCBub25ibG9ja2luZywgYm9vbCBmZW5jaW5nKQorc3RhdGljIHZvaWQg cnVuX21vZGVzZXRfdGVzdHMoc3RydWN0IHRlc3RfY29uZmlnICp0ZXN0X2NvbmZpZywgaW50IGhv d21hbnksCisJCQkgICAgICBib29sIG5vbmJsb2NraW5nLCBib29sIGZlbmNpbmcpCiB7CisJaWd0 X2Rpc3BsYXlfdCAqZGlzcGxheSA9IHRlc3RfY29uZmlnLT5kaXNwbGF5OwogCXN0cnVjdCBpZ3Rf ZmIgZmJzWzJdOwogCWludCBpLCBqOwogCXVuc2lnbmVkIGl0ZXJfbWF4ID0gMSA8PCBkaXNwbGF5 LT5uX3BpcGVzOworCXVpbnQzMl90ICpwaXBlX2NvbWJpbmF0aW9uczsKKwlzdHJ1Y3QgdGltZXNw ZWMgc3RhcnQgPSB7IH07CiAJaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3Jjc1tJR1RfTUFYX1BJUEVT XSA9IHsgMCB9OwogCWlndF9vdXRwdXRfdCAqb3V0cHV0OwogCXVuc2lnbmVkIHdpZHRoID0gMCwg aGVpZ2h0ID0gMDsKIAlib29sIHNraXBfdGVzdCA9IGZhbHNlOwogCisJcGlwZV9jb21iaW5hdGlv bnMgPSBtYWxsb2Moc2l6ZW9mKCpwaXBlX2NvbWJpbmF0aW9ucykgKiBpdGVyX21heCk7CisJaWd0 X2Fzc2VydChwaXBlX2NvbWJpbmF0aW9ucyk7CisJaW5pdF9jb21iaW5hdGlvbl9hcnJheShwaXBl X2NvbWJpbmF0aW9ucywgaXRlcl9tYXgsIHRlc3RfY29uZmlnLT5zZWVkKTsKKwogCWZvcl9lYWNo X2Nvbm5lY3RlZF9vdXRwdXQoZGlzcGxheSwgb3V0cHV0KSB7CiAJCWRybU1vZGVNb2RlSW5mbyAq bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKIApAQCAtNzU3LDYgKzgyNiw4IEBA IHN0YXRpYyB2b2lkIHJ1bl9tb2Rlc2V0X3Rlc3RzKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGlu dCBob3dtYW55LCBib29sIG5vbmJsb2NrCiAKIAlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXks IENPTU1JVF9BVE9NSUMpOwogCisJaWd0X25zZWNfZWxhcHNlZCgmc3RhcnQpOworCiAJZm9yIChp ID0gMDsgaSA8IGl0ZXJfbWF4OyBpKyspIHsKIAkJaWd0X2NyY190IGNyY3NbNV1bSUdUX01BWF9Q SVBFU107CiAJCXVuc2lnbmVkIGV2ZW50X21hc2s7CkBAIC03NzMsNiArODQ0LDkgQEAgc3RhdGlj IHZvaWQgcnVuX21vZGVzZXRfdGVzdHMoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IGhvd21h bnksIGJvb2wgbm9uYmxvY2sKIAkJY29sbGVjdF9jcmNzX21hc2socGlwZV9jcmNzLCBpLCBjcmNz WzBdKTsKIAogCQlmb3IgKGogPSBpdGVyX21heCAtIDE7IGogPiBpICsgMTsgai0tKSB7CisJCQlp ZiAoaWd0X25zZWNfZWxhcHNlZCgmc3RhcnQpID49IE1BWF9TVUJURVNUX0RVUkFUSU9OX05TKQor CQkJCWdvdG8gY2xlYW51cDsKKwogCQkJaWYgKGh3ZWlnaHQzMihqKSA+IGhvd21hbnkpCiAJCQkJ Y29udGludWU7CiAKQEAgLTgyOCwxMyArOTAyLDE4IEBAIGNsZWFudXA6CiAJaWd0X3JlbW92ZV9m YihkaXNwbGF5LT5kcm1fZmQsICZmYnNbMV0pOwogCWlndF9yZW1vdmVfZmIoZGlzcGxheS0+ZHJt X2ZkLCAmZmJzWzBdKTsKIAorCWZyZWUocGlwZV9jb21iaW5hdGlvbnMpOworCiAJaWYgKHNraXBf dGVzdCkKIAkJaWd0X3NraXAoIkF0b21pYyBub25ibG9ja2luZyBtb2Rlc2V0cyBhcmUgbm90IHN1 cHBvcnRlZC5cbiIpOwogCiB9CiAKLXN0YXRpYyB2b2lkIHJ1bl9tb2Rlc2V0X3RyYW5zaXRpb24o aWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IHJlcXVlc3RlZF9vdXRwdXRzLCBib29sIG5vbmJs b2NraW5nLCBib29sIGZlbmNpbmcpCitzdGF0aWMgdm9pZCBydW5fbW9kZXNldF90cmFuc2l0aW9u KHN0cnVjdCB0ZXN0X2NvbmZpZyAqdGVzdF9jb25maWcsCisJCQkJICAgaW50IHJlcXVlc3RlZF9v dXRwdXRzLCBib29sIG5vbmJsb2NraW5nLAorCQkJCSAgIGJvb2wgZmVuY2luZykKIHsKKwlpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5ID0gdGVzdF9jb25maWctPmRpc3BsYXk7CiAJaWd0X291dHB1dF90 ICpvdXRwdXRzW0lHVF9NQVhfUElQRVNdID0ge307CiAJaW50IG51bV9vdXRwdXRzID0gMDsKIAll bnVtIHBpcGUgcGlwZTsKQEAgLTg2MSwxNiArOTQwLDQxIEBAIHN0YXRpYyB2b2lkIHJ1bl9tb2Rl c2V0X3RyYW5zaXRpb24oaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IHJlcXVlc3RlZF9vdXRw dXRzCiAJCSAgICAgICJTaG91bGQgaGF2ZSBhdCBsZWFzdCAlaSBvdXRwdXRzLCBmb3VuZCAlaVxu IiwKIAkJICAgICAgcmVxdWVzdGVkX291dHB1dHMsIG51bV9vdXRwdXRzKTsKIAotCXJ1bl9tb2Rl c2V0X3Rlc3RzKGRpc3BsYXksIHJlcXVlc3RlZF9vdXRwdXRzLCBub25ibG9ja2luZywgZmVuY2lu Zyk7CisJcnVuX21vZGVzZXRfdGVzdHModGVzdF9jb25maWcsIHJlcXVlc3RlZF9vdXRwdXRzLCBu b25ibG9ja2luZywgZmVuY2luZyk7CiB9CiAKLWlndF9tYWluCitzdGF0aWMgaW50IG9wdF9oYW5k bGVyKGludCBvcHRpb24sIGludCBvcHRpb25faW5kZXgsIHZvaWQgKmhhbmRsZXJfZGF0YSkKIHsK KwlzdHJ1Y3QgdGVzdF9jb25maWcgKnRlc3RfY29uZmlnID0gaGFuZGxlcl9kYXRhOworCisJc3dp dGNoIChvcHRpb24pIHsKKwljYXNlICdzJzoKKwkJdGVzdF9jb25maWctPnVzZXJfc2VlZCA9IHRy dWU7CisJCXRlc3RfY29uZmlnLT5zZWVkID0gc3RydG9sKG9wdGFyZywgTlVMTCwgMCk7CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCWlndF9hc3NlcnQoZmFsc2UpOworCX0KKworCXJldHVybiAwOwor fQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJY29uc3QgY2hhciAqaGVs cF9zdHIgPQorCQkiICAtLXNlZWQgICAgICAgU2VlZCBmb3IgcmFuZG9tIG51bWJlciBnZW5lcmF0 b3JcbiI7CisJc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsKKwkJeyAic2VlZCIsICAg IHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAncycgfSwKKwkJeyB9LAorCX07CisJc3RydWN0IHRl c3RfY29uZmlnIHRlc3RfY29uZmlnID0geyB9OwogCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKIAlp Z3Rfb3V0cHV0X3QgKm91dHB1dDsKIAllbnVtIHBpcGUgcGlwZTsKIAlpbnQgaTsKIAorCWlndF9z dWJ0ZXN0X2luaXRfcGFyc2Vfb3B0cygmYXJnYywgYXJndiwgIiIsIGxvbmdfb3B0aW9ucywgaGVs cF9zdHIsCisJCQkJICAgIG9wdF9oYW5kbGVyLCAmdGVzdF9jb25maWcpOwogCWlndF9za2lwX29u X3NpbXVsYXRpb24oKTsKIAogCWlndF9maXh0dXJlIHsKQEAgLTg4Myw2ICs5ODcsMTUgQEAgaWd0 X21haW4KIAkJaWd0X3JlcXVpcmUoZGlzcGxheS5pc19hdG9taWMpOwogCiAJCWlndF9kaXNwbGF5 X3JlcXVpcmVfb3V0cHV0KCZkaXNwbGF5KTsKKworCQl0ZXN0X2NvbmZpZy5kaXNwbGF5ID0gJmRp c3BsYXk7CisJCWlmICghdGVzdF9jb25maWcudXNlcl9zZWVkKQorCQkJdGVzdF9jb25maWcuc2Vl ZCA9IHRpbWUoTlVMTCk7CisKKwkJc3JhbmQodGVzdF9jb25maWcuc2VlZCk7CisKKwkJaWd0X2lu Zm8oIlJ1bm5pbmcgdGVzdHMgcmFuZG9taXplZCB3aXRoIHNlZWQgJWRcbiIsCisJCQkgdGVzdF9j b25maWcuc2VlZCk7CiAJfQogCiAJaWd0X3N1YnRlc3QoInBsYW5lLXByaW1hcnktdG9nZ2xlLXdp dGgtdmJsYW5rLXdhaXQiKQpAQCAtODkxLDU1ICsxMDA0LDY3IEBAIGlndF9tYWluCiAKIAlpZ3Rf c3VidGVzdCgicGxhbmUtYWxsLXRyYW5zaXRpb24iKQogCQlmb3JfZWFjaF9waXBlX3dpdGhfdmFs aWRfb3V0cHV0KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQpCi0JCQlydW5fdHJhbnNpdGlvbl90ZXN0 KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQsIFRSQU5TSVRJT05fUExBTkVTLCBmYWxzZSwgZmFsc2Up OworCQkJcnVuX3RyYW5zaXRpb25fdGVzdCgmdGVzdF9jb25maWcsIHBpcGUsIG91dHB1dCwKKwkJ CQkJICAgIFRSQU5TSVRJT05fUExBTkVTLCBmYWxzZSwgZmFsc2UpOwogCiAJaWd0X3N1YnRlc3Qo InBsYW5lLWFsbC10cmFuc2l0aW9uLWZlbmNpbmciKQogCQlmb3JfZWFjaF9waXBlX3dpdGhfdmFs aWRfb3V0cHV0KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQpCi0JCQlydW5fdHJhbnNpdGlvbl90ZXN0 KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQsIFRSQU5TSVRJT05fUExBTkVTLCBmYWxzZSwgdHJ1ZSk7 CisJCQlydW5fdHJhbnNpdGlvbl90ZXN0KCZ0ZXN0X2NvbmZpZywgcGlwZSwgb3V0cHV0LAorCQkJ CQkgICAgVFJBTlNJVElPTl9QTEFORVMsIGZhbHNlLCB0cnVlKTsKIAogCWlndF9zdWJ0ZXN0KCJw bGFuZS1hbGwtdHJhbnNpdGlvbi1ub25ibG9ja2luZyIpCiAJCWZvcl9lYWNoX3BpcGVfd2l0aF92 YWxpZF9vdXRwdXQoJmRpc3BsYXksIHBpcGUsIG91dHB1dCkKLQkJCXJ1bl90cmFuc2l0aW9uX3Rl c3QoJmRpc3BsYXksIHBpcGUsIG91dHB1dCwgVFJBTlNJVElPTl9QTEFORVMsIHRydWUsIGZhbHNl KTsKKwkJCXJ1bl90cmFuc2l0aW9uX3Rlc3QoJnRlc3RfY29uZmlnLCBwaXBlLCBvdXRwdXQsCisJ CQkJCSAgICBUUkFOU0lUSU9OX1BMQU5FUywgdHJ1ZSwgZmFsc2UpOwogCiAJaWd0X3N1YnRlc3Qo InBsYW5lLWFsbC10cmFuc2l0aW9uLW5vbmJsb2NraW5nLWZlbmNpbmciKQogCQlmb3JfZWFjaF9w aXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQpCi0JCQlydW5fdHJh bnNpdGlvbl90ZXN0KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQsIFRSQU5TSVRJT05fUExBTkVTLCB0 cnVlLCB0cnVlKTsKKwkJCXJ1bl90cmFuc2l0aW9uX3Rlc3QoJnRlc3RfY29uZmlnLCBwaXBlLCBv dXRwdXQsCisJCQkJCSAgICBUUkFOU0lUSU9OX1BMQU5FUywgdHJ1ZSwgdHJ1ZSk7CiAKIAlpZ3Rf c3VidGVzdCgicGxhbmUtdXNlLWFmdGVyLW5vbmJsb2NraW5nLXVuYmluZCIpCiAJCWZvcl9lYWNo X3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoJmRpc3BsYXksIHBpcGUsIG91dHB1dCkKLQkJCXJ1bl90 cmFuc2l0aW9uX3Rlc3QoJmRpc3BsYXksIHBpcGUsIG91dHB1dCwgVFJBTlNJVElPTl9BRlRFUl9G UkVFLCB0cnVlLCBmYWxzZSk7CisJCQlydW5fdHJhbnNpdGlvbl90ZXN0KCZ0ZXN0X2NvbmZpZywg cGlwZSwgb3V0cHV0LAorCQkJCQkgICAgVFJBTlNJVElPTl9BRlRFUl9GUkVFLCB0cnVlLCBmYWxz ZSk7CiAKIAlpZ3Rfc3VidGVzdCgicGxhbmUtdXNlLWFmdGVyLW5vbmJsb2NraW5nLXVuYmluZC1m ZW5jaW5nIikKIAkJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dCgmZGlzcGxheSwgcGlw ZSwgb3V0cHV0KQotCQkJcnVuX3RyYW5zaXRpb25fdGVzdCgmZGlzcGxheSwgcGlwZSwgb3V0cHV0 LCBUUkFOU0lUSU9OX0FGVEVSX0ZSRUUsIHRydWUsIHRydWUpOworCQkJcnVuX3RyYW5zaXRpb25f dGVzdCgmdGVzdF9jb25maWcsIHBpcGUsIG91dHB1dCwKKwkJCQkJICAgIFRSQU5TSVRJT05fQUZU RVJfRlJFRSwgdHJ1ZSwgdHJ1ZSk7CiAKIAlpZ3Rfc3VidGVzdCgicGxhbmUtYWxsLW1vZGVzZXQt dHJhbnNpdGlvbiIpCiAJCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoJmRpc3BsYXks IHBpcGUsIG91dHB1dCkKLQkJCXJ1bl90cmFuc2l0aW9uX3Rlc3QoJmRpc3BsYXksIHBpcGUsIG91 dHB1dCwgVFJBTlNJVElPTl9NT0RFU0VULCBmYWxzZSwgZmFsc2UpOworCQkJcnVuX3RyYW5zaXRp b25fdGVzdCgmdGVzdF9jb25maWcsIHBpcGUsIG91dHB1dCwKKwkJCQkJICAgIFRSQU5TSVRJT05f TU9ERVNFVCwgZmFsc2UsIGZhbHNlKTsKIAogCWlndF9zdWJ0ZXN0KCJwbGFuZS1hbGwtbW9kZXNl dC10cmFuc2l0aW9uLWZlbmNpbmciKQogCQlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0 KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQpCi0JCQlydW5fdHJhbnNpdGlvbl90ZXN0KCZkaXNwbGF5 LCBwaXBlLCBvdXRwdXQsIFRSQU5TSVRJT05fTU9ERVNFVCwgZmFsc2UsIHRydWUpOworCQkJcnVu X3RyYW5zaXRpb25fdGVzdCgmdGVzdF9jb25maWcsIHBpcGUsIG91dHB1dCwKKwkJCQkJICAgIFRS QU5TSVRJT05fTU9ERVNFVCwgZmFsc2UsIHRydWUpOwogCiAJaWd0X3N1YnRlc3QoInBsYW5lLXRv Z2dsZS1tb2Rlc2V0LXRyYW5zaXRpb24iKQogCQlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0 cHV0KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQpCi0JCQlydW5fdHJhbnNpdGlvbl90ZXN0KCZkaXNw bGF5LCBwaXBlLCBvdXRwdXQsIFRSQU5TSVRJT05fTU9ERVNFVF9ESVNBQkxFLCBmYWxzZSwgZmFs c2UpOworCQkJcnVuX3RyYW5zaXRpb25fdGVzdCgmdGVzdF9jb25maWcsIHBpcGUsIG91dHB1dCwK KwkJCQkJICAgIFRSQU5TSVRJT05fTU9ERVNFVF9ESVNBQkxFLAorCQkJCQkgICAgZmFsc2UsIGZh bHNlKTsKIAogCWZvciAoaSA9IDE7IGkgPD0gSUdUX01BWF9QSVBFUzsgaSsrKSB7CiAJCWlndF9z dWJ0ZXN0X2YoIiVpeC1tb2Rlc2V0LXRyYW5zaXRpb25zIiwgaSkKLQkJCXJ1bl9tb2Rlc2V0X3Ry YW5zaXRpb24oJmRpc3BsYXksIGksIGZhbHNlLCBmYWxzZSk7CisJCQlydW5fbW9kZXNldF90cmFu c2l0aW9uKCZ0ZXN0X2NvbmZpZywgaSwgZmFsc2UsIGZhbHNlKTsKIAogCQlpZ3Rfc3VidGVzdF9m KCIlaXgtbW9kZXNldC10cmFuc2l0aW9ucy1ub25ibG9ja2luZyIsIGkpCi0JCQlydW5fbW9kZXNl dF90cmFuc2l0aW9uKCZkaXNwbGF5LCBpLCB0cnVlLCBmYWxzZSk7CisJCQlydW5fbW9kZXNldF90 cmFuc2l0aW9uKCZ0ZXN0X2NvbmZpZywgaSwgdHJ1ZSwgZmFsc2UpOwogCiAJCWlndF9zdWJ0ZXN0 X2YoIiVpeC1tb2Rlc2V0LXRyYW5zaXRpb25zLWZlbmNpbmciLCBpKQotCQkJcnVuX21vZGVzZXRf dHJhbnNpdGlvbigmZGlzcGxheSwgaSwgZmFsc2UsIHRydWUpOworCQkJcnVuX21vZGVzZXRfdHJh bnNpdGlvbigmdGVzdF9jb25maWcsIGksIGZhbHNlLCB0cnVlKTsKIAogCQlpZ3Rfc3VidGVzdF9m KCIlaXgtbW9kZXNldC10cmFuc2l0aW9ucy1ub25ibG9ja2luZy1mZW5jaW5nIiwgaSkKLQkJCXJ1 bl9tb2Rlc2V0X3RyYW5zaXRpb24oJmRpc3BsYXksIGksIHRydWUsIHRydWUpOworCQkJcnVuX21v ZGVzZXRfdHJhbnNpdGlvbigmdGVzdF9jb25maWcsIGksIHRydWUsIHRydWUpOwogCX0KIAogCWln dF9maXh0dXJlIHsKIAkJaWd0X2Rpc3BsYXlfZmluaSgmZGlzcGxheSk7CiAJfQorCisJaWd0X2V4 aXQoKTsKIH0KLS0gCjIuMTMuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==