From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brendan Higgins Subject: [PATCH v12 03/18] kunit: test: add string_stream a std::stream like string builder Date: Mon, 12 Aug 2019 11:24:06 -0700 Message-ID: <20190812182421.141150-4-brendanhiggins@google.com> References: <20190812182421.141150-1-brendanhiggins@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190812182421.141150-1-brendanhiggins@google.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: frowand.list@gmail.com, gregkh@linuxfoundation.org, jpoimboe@redhat.com, keescook@google.com, kieran.bingham@ideasonboard.com, mcgrof@kernel.org, peterz@infradead.org, robh@kernel.org, sboyd@kernel.org, shuah@kernel.org, tytso@mit.edu, yamada.masahiro@socionext.com Cc: pmladek@suse.com, linux-doc@vger.kernel.org, amir73il@gmail.com, Brendan Higgins , dri-devel@lists.freedesktop.org, Alexander.Levin@microsoft.com, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, khilman@baylibre.com, knut.omang@oracle.com, wfg@linux.intel.com, joel@jms.id.au, rientjes@google.com, jdike@addtoit.com, dan.carpenter@oracle.com, devicetree@vger.kernel.org, linux-kbuild@vger.kernel.org, Tim.Bird@sony.com, linux-um@lists.infradead.org, rostedt@goodmis.org, julia.lawall@lip6.fr, kunit-dev@googlegroups.com, richard@nod.at, rdunlap@infradead.org, linux-kernel@vger.kernel.org, mpe@ellerman.id.au, linux-fsdevel@vger.kernel.org, logang@deltatee.com List-Id: devicetree@vger.kernel.org QSBudW1iZXIgb2YgdGVzdCBmZWF0dXJlcyBuZWVkIHRvIGRvIHByZXR0eSBjb21wbGljYXRlZCBz dHJpbmcgcHJpbnRpbmcKd2hlcmUgaXQgbWF5IG5vdCBiZSBwb3NzaWJsZSB0byByZWx5IG9uIGEg c2luZ2xlIHByZWFsbG9jYXRlZCBzdHJpbmcKd2l0aCBwYXJhbWV0ZXJzLgoKU28gcHJvdmlkZSBh IGxpYnJhcnkgZm9yIGNvbnN0cnVjdGluZyB0aGUgc3RyaW5nIGFzIHlvdSBnbyBzaW1pbGFyIHRv CkMrKydzIHN0ZDo6c3RyaW5nLiBzdHJpbmdfc3RyZWFtIGlzIHJlYWxseSBqdXN0IGEgc3RyaW5n IGJ1aWxkZXIsCm5vdGhpbmcgbW9yZS4KClNpZ25lZC1vZmYtYnk6IEJyZW5kYW4gSGlnZ2lucyA8 YnJlbmRhbmhpZ2dpbnNAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IEdyZWcgS3JvYWgtSGFydG1h biA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+ClJldmlld2VkLWJ5OiBMb2dhbiBHdW50aG9y cGUgPGxvZ2FuZ0BkZWx0YXRlZS5jb20+Ci0tLQogaW5jbHVkZS9rdW5pdC9zdHJpbmctc3RyZWFt LmggfCAgNDkgKysrKysrKysrKysKIGt1bml0L01ha2VmaWxlICAgICAgICAgICAgICAgIHwgICAz ICstCiBrdW5pdC9zdHJpbmctc3RyZWFtLmMgICAgICAgICB8IDE1MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIwMyBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9rdW5pdC9zdHJpbmctc3Ry ZWFtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBrdW5pdC9zdHJpbmctc3RyZWFtLmMKCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2t1bml0L3N0cmluZy1zdHJlYW0uaCBiL2luY2x1ZGUva3VuaXQvc3RyaW5n LXN0cmVhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjRmYTEw N2UzOGRlYjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2t1bml0L3N0cmluZy1zdHJlYW0u aApAQCAtMCwwICsxLDQ5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAq LworLyoKKyAqIEMrKyBzdHJlYW0gc3R5bGUgc3RyaW5nIGJ1aWxkZXIgdXNlZCBpbiBLVW5pdCBm b3IgYnVpbGRpbmcgbWVzc2FnZXMuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5LCBHb29nbGUg TExDLgorICogQXV0aG9yOiBCcmVuZGFuIEhpZ2dpbnMgPGJyZW5kYW5oaWdnaW5zQGdvb2dsZS5j b20+CisgKi8KKworI2lmbmRlZiBfS1VOSVRfU1RSSU5HX1NUUkVBTV9ICisjZGVmaW5lIF9LVU5J VF9TVFJJTkdfU1RSRUFNX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8 bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKworc3RydWN0IHN0cmluZ19z dHJlYW1fZnJhZ21lbnQgeworCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKKwljaGFyICpmcmFnbWVu dDsKK307CisKK3N0cnVjdCBzdHJpbmdfc3RyZWFtIHsKKwlzaXplX3QgbGVuZ3RoOworCXN0cnVj dCBsaXN0X2hlYWQgZnJhZ21lbnRzOworCS8qIGxlbmd0aCBhbmQgZnJhZ21lbnRzIGFyZSBwcm90 ZWN0ZWQgYnkgdGhpcyBsb2NrICovCisJc3BpbmxvY2tfdCBsb2NrOworCXN0cnVjdCBrdW5pdCAq dGVzdDsKKwlnZnBfdCBnZnA7Cit9OworCitzdHJ1Y3Qga3VuaXQ7CisKK3N0cnVjdCBzdHJpbmdf c3RyZWFtICphbGxvY19zdHJpbmdfc3RyZWFtKHN0cnVjdCBrdW5pdCAqdGVzdCwgZ2ZwX3QgZ2Zw KTsKKworaW50IHN0cmluZ19zdHJlYW1fYWRkKHN0cnVjdCBzdHJpbmdfc3RyZWFtICpzdHJlYW0s IGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKworaW50IHN0cmluZ19zdHJlYW1fdmFkZChzdHJ1Y3Qg c3RyaW5nX3N0cmVhbSAqc3RyZWFtLAorCQkgICAgICAgY29uc3QgY2hhciAqZm10LAorCQkgICAg ICAgdmFfbGlzdCBhcmdzKTsKKworY2hhciAqc3RyaW5nX3N0cmVhbV9nZXRfc3RyaW5nKHN0cnVj dCBzdHJpbmdfc3RyZWFtICpzdHJlYW0pOworCitpbnQgc3RyaW5nX3N0cmVhbV9hcHBlbmQoc3Ry dWN0IHN0cmluZ19zdHJlYW0gKnN0cmVhbSwKKwkJCSBzdHJ1Y3Qgc3RyaW5nX3N0cmVhbSAqb3Ro ZXIpOworCit2b2lkIHN0cmluZ19zdHJlYW1fY2xlYXIoc3RydWN0IHN0cmluZ19zdHJlYW0gKnN0 cmVhbSk7CisKK2Jvb2wgc3RyaW5nX3N0cmVhbV9pc19lbXB0eShzdHJ1Y3Qgc3RyaW5nX3N0cmVh bSAqc3RyZWFtKTsKKworI2VuZGlmIC8qIF9LVU5JVF9TVFJJTkdfU1RSRUFNX0ggKi8KZGlmZiAt LWdpdCBhL2t1bml0L01ha2VmaWxlIGIva3VuaXQvTWFrZWZpbGUKaW5kZXggNWVmZGM0ZGVhMmMw OC4uMjc1YjU2NWEwZTgxZiAxMDA2NDQKLS0tIGEva3VuaXQvTWFrZWZpbGUKKysrIGIva3VuaXQv TWFrZWZpbGUKQEAgLTEgKzEsMiBAQAotb2JqLSQoQ09ORklHX0tVTklUKSArPQkJCXRlc3Qubwor b2JqLSQoQ09ORklHX0tVTklUKSArPQkJCXRlc3QubyBcCisJCQkJCXN0cmluZy1zdHJlYW0ubwpk aWZmIC0tZ2l0IGEva3VuaXQvc3RyaW5nLXN0cmVhbS5jIGIva3VuaXQvc3RyaW5nLXN0cmVhbS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmJjZDU2ZDY3NTU1NDQK LS0tIC9kZXYvbnVsbAorKysgYi9rdW5pdC9zdHJpbmctc3RyZWFtLmMKQEAgLTAsMCArMSwxNTIg QEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQysrIHN0cmVh bSBzdHlsZSBzdHJpbmcgYnVpbGRlciB1c2VkIGluIEtVbml0IGZvciBidWlsZGluZyBtZXNzYWdl cy4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTksIEdvb2dsZSBMTEMuCisgKiBBdXRob3I6IEJy ZW5kYW4gSGlnZ2lucyA8YnJlbmRhbmhpZ2dpbnNAZ29vZ2xlLmNvbT4KKyAqLworCisjaW5jbHVk ZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxrdW5p dC9zdHJpbmctc3RyZWFtLmg+CisjaW5jbHVkZSA8a3VuaXQvdGVzdC5oPgorCitpbnQgc3RyaW5n X3N0cmVhbV92YWRkKHN0cnVjdCBzdHJpbmdfc3RyZWFtICpzdHJlYW0sCisJCSAgICAgICBjb25z dCBjaGFyICpmbXQsCisJCSAgICAgICB2YV9saXN0IGFyZ3MpCit7CisJc3RydWN0IHN0cmluZ19z dHJlYW1fZnJhZ21lbnQgKmZyYWdfY29udGFpbmVyOworCWludCBsZW47CisJdmFfbGlzdCBhcmdz X2Zvcl9jb3VudGluZzsKKworCS8qIE1ha2UgYSBjb3B5IGJlY2F1c2UgYHZzbnByaW50ZmAgY291 bGQgY2hhbmdlIGl0ICovCisJdmFfY29weShhcmdzX2Zvcl9jb3VudGluZywgYXJncyk7CisKKwkv KiBOZWVkIHNwYWNlIGZvciBudWxsIGJ5dGUuICovCisJbGVuID0gdnNucHJpbnRmKE5VTEwsIDAs IGZtdCwgYXJnc19mb3JfY291bnRpbmcpICsgMTsKKworCXZhX2VuZChhcmdzX2Zvcl9jb3VudGlu Zyk7CisKKwlmcmFnX2NvbnRhaW5lciA9IGt1bml0X2ttYWxsb2Moc3RyZWFtLT50ZXN0LCBzaXpl b2YoKmZyYWdfY29udGFpbmVyKSwKKwkJCQkgICAgICAgc3RyZWFtLT5nZnApOworCWlmICghZnJh Z19jb250YWluZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJZnJhZ19jb250YWluZXItPmZyYWdt ZW50ID0ga3VuaXRfa21hbGxvYyhzdHJlYW0tPnRlc3QsIGxlbiwKKwkJCQkJCSBzdHJlYW0tPmdm cCk7CisJaWYgKCFmcmFnX2NvbnRhaW5lci0+ZnJhZ21lbnQpCisJCXJldHVybiAtRU5PTUVNOwor CisJbGVuID0gdnNucHJpbnRmKGZyYWdfY29udGFpbmVyLT5mcmFnbWVudCwgbGVuLCBmbXQsIGFy Z3MpOworCXNwaW5fbG9jaygmc3RyZWFtLT5sb2NrKTsKKwlzdHJlYW0tPmxlbmd0aCArPSBsZW47 CisJbGlzdF9hZGRfdGFpbCgmZnJhZ19jb250YWluZXItPm5vZGUsICZzdHJlYW0tPmZyYWdtZW50 cyk7CisJc3Bpbl91bmxvY2soJnN0cmVhbS0+bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKworaW50 IHN0cmluZ19zdHJlYW1fYWRkKHN0cnVjdCBzdHJpbmdfc3RyZWFtICpzdHJlYW0sIGNvbnN0IGNo YXIgKmZtdCwgLi4uKQoreworCXZhX2xpc3QgYXJnczsKKwlpbnQgcmVzdWx0OworCisJdmFfc3Rh cnQoYXJncywgZm10KTsKKwlyZXN1bHQgPSBzdHJpbmdfc3RyZWFtX3ZhZGQoc3RyZWFtLCBmbXQs IGFyZ3MpOworCXZhX2VuZChhcmdzKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgc3Ry aW5nX3N0cmVhbV9jbGVhcihzdHJ1Y3Qgc3RyaW5nX3N0cmVhbSAqc3RyZWFtKQoreworCXN0cnVj dCBzdHJpbmdfc3RyZWFtX2ZyYWdtZW50ICpmcmFnX2NvbnRhaW5lciwgKmZyYWdfY29udGFpbmVy X3NhZmU7CisKKwlzcGluX2xvY2soJnN0cmVhbS0+bG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKGZyYWdfY29udGFpbmVyLAorCQkJCSBmcmFnX2NvbnRhaW5lcl9zYWZlLAorCQkJCSAm c3RyZWFtLT5mcmFnbWVudHMsCisJCQkJIG5vZGUpIHsKKwkJbGlzdF9kZWwoJmZyYWdfY29udGFp bmVyLT5ub2RlKTsKKwl9CisJc3RyZWFtLT5sZW5ndGggPSAwOworCXNwaW5fdW5sb2NrKCZzdHJl YW0tPmxvY2spOworfQorCitjaGFyICpzdHJpbmdfc3RyZWFtX2dldF9zdHJpbmcoc3RydWN0IHN0 cmluZ19zdHJlYW0gKnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc3RyaW5nX3N0cmVhbV9mcmFnbWVudCAq ZnJhZ19jb250YWluZXI7CisJc2l6ZV90IGJ1Zl9sZW4gPSBzdHJlYW0tPmxlbmd0aCArIDE7IC8q ICsxIGZvciBudWxsIGJ5dGUuICovCisJY2hhciAqYnVmOworCisJYnVmID0ga3VuaXRfa3phbGxv YyhzdHJlYW0tPnRlc3QsIGJ1Zl9sZW4sIHN0cmVhbS0+Z2ZwKTsKKwlpZiAoIWJ1ZikKKwkJcmV0 dXJuIE5VTEw7CisKKwlzcGluX2xvY2soJnN0cmVhbS0+bG9jayk7CisJbGlzdF9mb3JfZWFjaF9l bnRyeShmcmFnX2NvbnRhaW5lciwgJnN0cmVhbS0+ZnJhZ21lbnRzLCBub2RlKQorCQlzdHJsY2F0 KGJ1ZiwgZnJhZ19jb250YWluZXItPmZyYWdtZW50LCBidWZfbGVuKTsKKwlzcGluX3VubG9jaygm c3RyZWFtLT5sb2NrKTsKKworCXJldHVybiBidWY7Cit9CisKK2ludCBzdHJpbmdfc3RyZWFtX2Fw cGVuZChzdHJ1Y3Qgc3RyaW5nX3N0cmVhbSAqc3RyZWFtLAorCQkJIHN0cnVjdCBzdHJpbmdfc3Ry ZWFtICpvdGhlcikKK3sKKwljb25zdCBjaGFyICpvdGhlcl9jb250ZW50OworCisJb3RoZXJfY29u dGVudCA9IHN0cmluZ19zdHJlYW1fZ2V0X3N0cmluZyhvdGhlcik7CisKKwlpZiAoIW90aGVyX2Nv bnRlbnQpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0dXJuIHN0cmluZ19zdHJlYW1fYWRkKHN0 cmVhbSwgb3RoZXJfY29udGVudCk7Cit9CisKK2Jvb2wgc3RyaW5nX3N0cmVhbV9pc19lbXB0eShz dHJ1Y3Qgc3RyaW5nX3N0cmVhbSAqc3RyZWFtKQoreworCXJldHVybiBsaXN0X2VtcHR5KCZzdHJl YW0tPmZyYWdtZW50cyk7Cit9CisKK3N0cnVjdCBzdHJpbmdfc3RyZWFtX2FsbG9jX2NvbnRleHQg eworCXN0cnVjdCBrdW5pdCAqdGVzdDsKKwlnZnBfdCBnZnA7Cit9OworCitzdGF0aWMgaW50IHN0 cmluZ19zdHJlYW1faW5pdChzdHJ1Y3Qga3VuaXRfcmVzb3VyY2UgKnJlcywgdm9pZCAqY29udGV4 dCkKK3sKKwlzdHJ1Y3Qgc3RyaW5nX3N0cmVhbSAqc3RyZWFtOworCXN0cnVjdCBzdHJpbmdfc3Ry ZWFtX2FsbG9jX2NvbnRleHQgKmN0eCA9IGNvbnRleHQ7CisKKwlzdHJlYW0gPSBrdW5pdF9remFs bG9jKGN0eC0+dGVzdCwgc2l6ZW9mKCpzdHJlYW0pLCBjdHgtPmdmcCk7CisJaWYgKCFzdHJlYW0p CisJCXJldHVybiAtRU5PTUVNOworCisJcmVzLT5hbGxvY2F0aW9uID0gc3RyZWFtOworCXN0cmVh bS0+Z2ZwID0gY3R4LT5nZnA7CisJc3RyZWFtLT50ZXN0ID0gY3R4LT50ZXN0OworCUlOSVRfTElT VF9IRUFEKCZzdHJlYW0tPmZyYWdtZW50cyk7CisJc3Bpbl9sb2NrX2luaXQoJnN0cmVhbS0+bG9j ayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgc3RyaW5nX3N0cmVhbV9mcmVlKHN0 cnVjdCBrdW5pdF9yZXNvdXJjZSAqcmVzKQoreworCS8qIE5vdGhpbmcgdG8gZG8gc2luY2UgZXZl cnl0aGluZyBpcyBhbHJlYWR5IGEgS1VuaXQgbWFuYWdlZCByZXNvdXJjZSAqLworfQorCitzdHJ1 Y3Qgc3RyaW5nX3N0cmVhbSAqYWxsb2Nfc3RyaW5nX3N0cmVhbShzdHJ1Y3Qga3VuaXQgKnRlc3Qs IGdmcF90IGdmcCkKK3sKKwlzdHJ1Y3Qgc3RyaW5nX3N0cmVhbV9hbGxvY19jb250ZXh0IGNvbnRl eHQgPSB7CisJCS50ZXN0ID0gdGVzdCwKKwkJLmdmcCA9IGdmcAorCX07CisKKwlyZXR1cm4ga3Vu aXRfYWxsb2NfcmVzb3VyY2UodGVzdCwKKwkJCQkgICAgc3RyaW5nX3N0cmVhbV9pbml0LAorCQkJ CSAgICBzdHJpbmdfc3RyZWFtX2ZyZWUsCisJCQkJICAgIGdmcCwKKwkJCQkgICAgJmNvbnRleHQp OworfQotLSAKMi4yMy4wLnJjMS4xNTMuZ2RlZWQ4MDMzMGYtZ29vZwoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs