From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH RFC 29/59] report: Add basic html report Date: Wed, 28 Dec 2016 20:14:22 -0500 Message-ID: <1482974092-15891-29-git-send-email-ronladred@gmail.com> References: <1482974092-15891-1-git-send-email-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1482974092-15891-1-git-send-email-ronladred@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel , Ian Jackson , Wei Liu , George Dunlap , George Dunlap List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgoKVXNlIEdvb2ds ZSdzIGNoYXJ0YXBpIHRvIGNyZWF0ZSBhIChtb3N0bHkpIHNlbGYtY29udGFpbmVkIGh0bWwgZmls ZS4KU3RhcnQgd2l0aCBqdXN0IHNjYXR0ZXJwbG90cyBvZiB0aGUgcmF3IGRhdGEgZm9yIHByb29m LW9mLWNvbmNlcHQuCgpTaWduZWQtb2ZmLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFw QGNpdHJpeC5jb20+Ci0tLQogTWFrZWZpbGUgICAgICB8ICAgMiArLQogYmVuY2htYXJrLmdvICB8 ICAgMSArCiBodG1scmVwb3J0LmdvIHwgMjMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIG1haW4uZ28gICAgICAgfCAgMTIgKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDI0NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgaHRtbHJlcG9ydC5nbwoKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZp bGUKaW5kZXggNTRmMmNlOC4uYzFiOWVlNCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFr ZWZpbGUKQEAgLTEzLDcgKzEzLDcgQEAgQ0dPX0xJQlMgPSAtbHlhamwgLWx4ZW5saWdodAogWEVO TElCX1BBVEggPz0gL2J1aWxkL2hnL3hlbi5naXQvZGlzdC9pbnN0YWxsL3Vzci9sb2NhbC9saWIv CiBDR09fTERGTEFHUyA9IC1MJChYRU5MSUJfUEFUSCkgLVdsLC1ycGF0aC1saW5rPSQoWEVOTElC X1BBVEgpICQoQ0dPX0xJQlMpCiAKLXNjaGVkYmVuY2g6IG1haW4uZ28gcHJvY2Vzc3dvcmtlci5n byB4ZW53b3JrZXIuZ28gYmVuY2htYXJrLmdvIHJ1bi5nbyBsaWJ4bC5nbworc2NoZWRiZW5jaDog bWFpbi5nbyBwcm9jZXNzd29ya2VyLmdvIHhlbndvcmtlci5nbyBiZW5jaG1hcmsuZ28gcnVuLmdv IGxpYnhsLmdvIGh0bWxyZXBvcnQuZ28KIAlDR09fTERGTEFHUz0iJChDR09fTERGTEFHUykiIENH T19DRkxBR1M9IiQoQ0dPX0NGTEFHUykiIGdvIGJ1aWxkIC1vICRAICReCiAKIC5QSE9OWTogY2xl YW4KZGlmZiAtLWdpdCBhL2JlbmNobWFyay5nbyBiL2JlbmNobWFyay5nbwppbmRleCBkZTFmNjUw Li44YmUwMGEwIDEwMDY0NAotLS0gYS9iZW5jaG1hcmsuZ28KKysrIGIvYmVuY2htYXJrLmdvCkBA IC00MzgsMyArNDM4LDQgQEAgZnVuYyAocGxhbiAqQmVuY2htYXJrUGxhbikgVGV4dFJlcG9ydChs ZXZlbCBpbnQpIChlcnIgZXJyb3IpIHsKIAogCXJldHVybgogfQorCmRpZmYgLS1naXQgYS9odG1s cmVwb3J0LmdvIGIvaHRtbHJlcG9ydC5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi42ZjYxOTk4Ci0tLSAvZGV2L251bGwKKysrIGIvaHRtbHJlcG9ydC5nbwpAQCAtMCwwICsx LDIzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBHZW9yZ2UgVy4gRHVubGFwLCBDaXRy aXggU3lzdGVtcyBVSyBMdGQKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBvZiB0aGUKKyAqIExpY2Vu c2Ugb25seS4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICogCisgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh cmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is IEJvc3RvbiwgTUEKKyAqIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworcGFja2FnZSBtYWluCisKK2lt cG9ydCAoCisJImZtdCIKKwkib3MiCisJImlvIgorCSJlbmNvZGluZy9qc29uIgorKQorCit0eXBl IE9wdGlvbkF4aXMgc3RydWN0IHsKKwlUaXRsZSBzdHJpbmcgYGpzb246InRpdGxlImAKKwlNaW5W YWx1ZSBmbG9hdDY0IGBqc29uOiJtaW5WYWx1ZSJgCisJTWF4VmFsdWUgZmxvYXQ2NCBganNvbjoi bWF4VmFsdWUiYAorfQorCit0eXBlIE9wdGlvbnMgc3RydWN0IHsKKwlUaXRsZSBzdHJpbmcgICAg IGBqc29uOiJ0aXRsZSJgCisJSEF4aXMgT3B0aW9uQXhpcyBganNvbjoiaEF4aXMiYAorCVZBeGlz IE9wdGlvbkF4aXMgYGpzb246InZBeGlzImAKKwlMZWdlbmQgc3RyaW5nICAgIGBqc29uOiJsZWdl bmQiYAorfQorCit0eXBlIFBvaW50IHN0cnVjdCB7CisJeCBmbG9hdDY0CisJeSBmbG9hdDY0Cit9 CisKK3R5cGUgUnVuUmF3IHN0cnVjdCB7CisJTGFiZWwgc3RyaW5nCisJUG9pbnRzIFtdW11Qb2lu dAorfQorCitmdW5jIChvcHRpb25zICpPcHRpb25zKSBPdXRwdXRKYXZhc2NyaXB0KHcgaW8uV3Jp dGVyLCBpZCBpbnQpIChlcnIgZXJyb3IpIHsKKwl2YXIgb3B0aW9uc0pzb24gW11ieXRlCisJb3B0 aW9uc0pzb24sIGVyciA9IGpzb24uTWFyc2hhbChvcHRpb25zKQorCWlmIGVyciAhPSBuaWwgewor CQlyZXR1cm4KKwl9CisKKwlmbXQuRnByaW50Zih3LCAiICAgICAgICB2YXIgc3AlZG9wdCA9ICIs IGlkKQorCWZtdC5GcHJpbnQodywgc3RyaW5nKG9wdGlvbnNKc29uKSkKKwlmbXQuRnByaW50bG4o dywgIjsiKQorCisJcmV0dXJuCit9CisKK2Z1bmMgKHAgKlBvaW50KSBPdXRwdXRKc29uKHcgaW8u V3JpdGVyLCBpZCBpbnQsIG1heCBpbnQpIChlcnIgZXJyb3IpIHsKKwlmbXQuRnByaW50Zih3LCAi ICAgICAgICAgICAgWyVmIiwgcC54KQorCWZvciBpIDo9IDA7IGkgPCBtYXg7IGkrKyB7CisJCWlm IGkgPT0gaWQgeworCQkJZm10LkZwcmludGYodywgIiwgJWYiLCBwLnkpCisJCX0gZWxzZSB7CisJ CQlmbXQuRnByaW50Zih3LCAiLCBudWxsIikKKwkJfQorCX0KKwlmbXQuRnByaW50KHcsICJdLFxu IikKKwlyZXR1cm4KK30KKworZnVuYyAoZCAqUnVuUmF3KSBPdXRwdXRIVE1MKHcgaW8uV3JpdGVy LCBydW4gaW50KSAoZXJyIGVycm9yKSB7CisJZm10LkZwcmludGYodywgIiAgICA8ZGl2IGNsYXNz PSdzY2F0dGVycGxvdCcgaWQ9J3NjYXR0ZXJwbG90JWQnPjwvZGl2PlxuIiwgcnVuKQorCXJldHVy bgorfQorCitmdW5jIChkICpSdW5SYXcpIE91dHB1dEphdmFzY3JpcHQodyBpby5Xcml0ZXIsIHJ1 biBpbnQpIChlcnIgZXJyb3IpIHsKKwl2YXIgb3B0aW9ucyBPcHRpb25zCisKKwlvcHRpb25zLlRp dGxlID0gZm10LlNwcmludGYoIlJ1biAlcyAoJWQpIEluZGl2aWR1YWwgVGhyb3VnaHB1dCIsIGQu TGFiZWwsIHJ1bikKKwlvcHRpb25zLkhBeGlzLlRpdGxlID0gIlRpbWUiCisJb3B0aW9ucy5WQXhp cy5UaXRsZSA9ICJUaHJvdWdocHV0IgorCisJdmFyIHhtbSBNaW5NYXgKKwl2YXIgeW1tIE1pbk1h eAorCWZvciBpIDo9IHJhbmdlIGQuUG9pbnRzIHsKKwkJZm9yIGogOj0gcmFuZ2UgZC5Qb2ludHNb aV0geworCQkJeG1tLlVwZGF0ZShkLlBvaW50c1tpXVtqXS54KQorCQkJeW1tLlVwZGF0ZShkLlBv aW50c1tpXVtqXS55KQorCQl9CisJfQorCisJb3B0aW9ucy5IQXhpcy5NYXhWYWx1ZSA9IHhtbS5N YXgKKwlvcHRpb25zLlZBeGlzLk1heFZhbHVlID0geW1tLk1heAorCisJZXJyID0gb3B0aW9ucy5P dXRwdXRKYXZhc2NyaXB0KHcsIHJ1bikKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQor CisJZm10LlByaW50ZigiICAgICAgICB2YXIgc3AlZGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6 YXRpb24uRGF0YVRhYmxlKCk7XG4iLCBydW4pCisJZm10LlByaW50ZigiICAgICAgICBzcCVkZGF0 YS5hZGRDb2x1bW4oJ251bWJlcicsICdUaW1lJyk7XG4iLCBydW4pCisJZm9yIGkgOj0gcmFuZ2Ug ZC5Qb2ludHMgeworCQlmbXQuUHJpbnRmKCIgICAgICAgIHNwJWRkYXRhLmFkZENvbHVtbignbnVt YmVyJywgJ1dvcmtlciAlZCcpO1xuIiwgcnVuLCBpKQorCX0KKwlmbXQuUHJpbnRmKCIgICAgICAg IHNwJWRkYXRhLmFkZFJvd3MoW1xuIiwgcnVuKQorCisJLy8gQ2FuJ3QgdXNlIGpzb24gaGVyZSBi ZWNhdXNlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byB1c2UgJ251bGwnIGZvciBub24tZXhpc3RlbnQg dmFsdWVzCisJZm9yIGkgOj0gcmFuZ2UgZC5Qb2ludHMgeworCQlmb3IgaiA6PSByYW5nZSBkLlBv aW50c1tpXSB7CisJCQllcnIgPSBkLlBvaW50c1tpXVtqXS5PdXRwdXRKc29uKHcsIGksIGxlbihk LlBvaW50cykpCisJCQlpZiBlcnIgIT0gbmlsIHsKKwkJCQlyZXR1cm4KKwkJCX0KKwkJfQorCX0K KwlmbXQuUHJpbnQoIiAgICAgICAgICBdKTtcbiIpCisJCisJZm10LlByaW50ZigiICAgICAgICB2 YXIgc3AlZGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLlNjYXR0ZXJDaGFydChkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgnc2NhdHRlcnBsb3QlZCcpKTtcbiIsIHJ1biwgcnVuKTsKKwlm bXQuUHJpbnRmKCIgICAgICAgIHNwJWRjaGFydC5kcmF3KHNwJWRkYXRhLCBzcCVkb3B0KTtcblxu IiwgcnVuLCBydW4sIHJ1bikKKwkKKwlyZXR1cm4KK30KKwordHlwZSBIVE1MUmVwb3J0IHN0cnVj dCB7CisJUmF3IFtdUnVuUmF3Cit9CisKKworZnVuYyAocnB0ICpIVE1MUmVwb3J0KSBPdXRwdXQo dyBpby5Xcml0ZXIpIChlcnIgZXJyb3IpIHsKKwkvLyBQcmludCBzdGFydCAtPiBqc29uIGNoYXJ0 cworCWZtdC5GcHJpbnQodywKKwkJYDxodG1sPgorICA8aGVhZD4KKyAgICA8c3R5bGU+CisgICAg ICAuc2NhdHRlcnBsb3QgeworICAgICAgbWFyZ2luOmF1dG87CisgICAgICB3aWR0aDogMTAwdnc7 CisgICAgICBoZWlnaHQ6IDYwdnc7CisgICAgICB9CisKKyAgICAgIC5lbXB0eSB7CisgICAgICBt YXJnaW46IGF1dG87CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRl eHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nc3RhdGljLmNvbS9jaGFydHMvbG9hZGVy LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAg ICBnb29nbGUuY2hhcnRzLmxvYWQoJ2N1cnJlbnQnLCB7J3BhY2thZ2VzJzpbJ2NvcmVjaGFydCdd fSk7CisgICAgICBnb29nbGUuY2hhcnRzLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwor ICAgICAgZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKK2ApOworCS8vIFByaW50IGpzb24gY2hhcnQg Y29kZQorCWZvciBpIDo9IHJhbmdlIHJwdC5SYXcgeworCQllcnIgPSBycHQuUmF3W2ldLk91dHB1 dEphdmFzY3JpcHQodywgaSkKKwkJaWYgZXJyICE9IG5pbCB7CisJCQlyZXR1cm4KKwkJfQorCX0K KwkvLyBQcmludCBqc29uIC0+IGh0bWwKKwlmbXQuRnByaW50KHcsCisJCWAgICAgICB9CisgICAg PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CitgKTsKKwkvLyBQcmludCBodG1sCisJZm9y IGkgOj0gcmFuZ2UgcnB0LlJhdyB7CisJCWVyciA9IHJwdC5SYXdbaV0uT3V0cHV0SFRNTCh3LCBp KQorCQlpZiBlcnIgIT0gbmlsIHsKKwkJCXJldHVybgorCQl9CisJfQorCS8vIFByaW50IGh0bWwg LT4gZW5kCisJZm10LkZwcmludCh3LAorCQlgICA8L2JvZHk+Cis8L2h0bWw+CitgKTsKKwlyZXR1 cm4KK30KKworZnVuYyAocnB0ICpIVE1MUmVwb3J0KSBBZGRSdW4ocnVuICpCZW5jaG1hcmtSdW4p IChlcnIgZXJyb3IpIHsKKwl2YXIgZCBSdW5SYXcKKworCWQuTGFiZWwgPSBydW4uTGFiZWwKKwlm b3Igc2V0IDo9IHJhbmdlIHJ1bi5SZXN1bHRzLlN1bW1hcnkgeworCQl2YXIgaWRQb2ludHMgW11Q b2ludAorCQlmb3IgaWQgOj0gcmFuZ2UgcnVuLlJlc3VsdHMuU3VtbWFyeVtzZXRdLldvcmtlcnMg eworCQkJdmFyIGxlIFdvcmtlclJlcG9ydAorCQkJZm9yIF8sIGUgOj0gcmFuZ2UgcnVuLlJlc3Vs dHMuU3VtbWFyeVtzZXRdLldvcmtlcnNbaWRdLlJhdyB7CisJCQkJaWYgZS5Ob3cgPiBsZS5Ob3cg eworCQkJCQl0aW1lIDo9IGZsb2F0NjQoZS5Ob3cpIC8gU0VDCisJCQkJCXRwdXQgOj0gVGhyb3Vn aHB1dChlLk5vdywgZS5Lb3BzLCBsZS5Ob3csIGxlLktvcHMpCisJCQkJCWlkUG9pbnRzID0gYXBw ZW5kKGlkUG9pbnRzLCBQb2ludHt4OnRpbWUsIHk6dHB1dH0pCisJCQkJfQorCQkJCWxlID0gZQor CQkJfQorCQl9CisJCWQuUG9pbnRzID0gYXBwZW5kKGQuUG9pbnRzLCBpZFBvaW50cykKKwl9CisJ cnB0LlJhdyA9IGFwcGVuZChycHQuUmF3LCBkKQorCXJldHVybgorfQorCitmdW5jIChwbGFuICpC ZW5jaG1hcmtQbGFuKSBIVE1MUmVwb3J0KCkgKGVyciBlcnJvcikgeworCXJwdCA6PSBIVE1MUmVw b3J0e30KKworCWZvciBpIDo9IHJhbmdlIHBsYW4uUnVucyB7CisJCXIgOj0gJnBsYW4uUnVuc1tp XQorCQlpZiAhIHIuQ29tcGxldGVkIHsKKwkJCWZtdC5QcmludGYoIlRlc3QgWyVkXSAlcyBub3Qg cnVuXG4iLCBpLCByLkxhYmVsKQorCQl9CisKKwkJZXJyID0gci5Qcm9jZXNzKCkKKwkJaWYgZXJy ICE9IG5pbCB7CisJCQlmbXQuUHJpbnRmKCJFcnJvciBwcm9jZXNzaW5nIFslZF0gJXM6ICV2XG4i LCBpLCByLkxhYmVsLCBlcnIpCisJCQlyZXR1cm4KKwkJfQorCisJCWVyciA9IHJwdC5BZGRSdW4o cikKKwkJaWYgZXJyICE9IG5pbCB7CisJCQlyZXR1cm4KKwkJfQorCX0KKwllcnIgPSBycHQuT3V0 cHV0KG9zLlN0ZG91dCkKKworCXJldHVybgorfQpkaWZmIC0tZ2l0IGEvbWFpbi5nbyBiL21haW4u Z28KaW5kZXggMTMyMzBhNy4uZjhkNzdjZiAxMDA2NDQKLS0tIGEvbWFpbi5nbworKysgYi9tYWlu LmdvCkBAIC0xMDcsNiArMTA3LDE4IEBAIGZ1bmMgbWFpbigpIHsKIAkJCWZtdC5QcmludGxuKCJS dW5uaW5nIGJlbmNobWFyayBydW46IiwgZXJyKQogCQkJb3MuRXhpdCgxKQogCQl9CisJY2FzZSAi aHRtbHJlcG9ydCI6CisJCXBsYW4sIGVyciA6PSBMb2FkQmVuY2htYXJrKGZpbGVuYW1lKQorCQlp ZiBlcnIgIT0gbmlsIHsKKwkJCWZtdC5QcmludGxuKCJMb2FkaW5nIGJlbmNobWFyayAiLCBmaWxl bmFtZSwgIiAiLCBlcnIpCisJCQlvcy5FeGl0KDEpCisJCX0KKwkKKwkJZXJyID0gcGxhbi5IVE1M UmVwb3J0KCkKKwkJaWYgZXJyICE9IG5pbCB7CisJCQlmbXQuUHJpbnRsbigiUnVubmluZyBiZW5j aG1hcmsgcnVuOiIsIGVycikKKwkJCW9zLkV4aXQoMSkKKwkJfQogCWRlZmF1bHQ6CiAJCWZtdC5Q cmludGxuKCJVbmtub3duIGFyZ3VtZW50OiAiLCBvcy5BcmdzWzFdKQogCX0KLS0gCjIuNy40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==