From patchwork Thu Apr 7 14:13:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Corey Minyard X-Patchwork-Id: 607406 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qgl4p0M67z9t5g for ; Fri, 8 Apr 2016 00:16:10 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=Wz/rhlDz; dkim-atps=neutral Received: from localhost ([::1]:50114 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aoAj9-0007D7-Nv for incoming@patchwork.ozlabs.org; Thu, 07 Apr 2016 10:16:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53039) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aoAgR-0002fU-Uk for qemu-devel@nongnu.org; Thu, 07 Apr 2016 10:13:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aoAgP-0006ca-M3 for qemu-devel@nongnu.org; Thu, 07 Apr 2016 10:13:19 -0400 Received: from mail-pa0-x243.google.com ([2607:f8b0:400e:c03::243]:35450) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aoAgP-0006cB-9m for qemu-devel@nongnu.org; Thu, 07 Apr 2016 10:13:17 -0400 Received: by mail-pa0-x243.google.com with SMTP id zy2so6936124pac.2 for ; Thu, 07 Apr 2016 07:13:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=v0sXQfOu2uu9d5YGi+3MTJDlbkfamiJQGZG8KIBCOhU=; b=Wz/rhlDzVgwKGuuBjEsuddmCMjfbvS5KwVeLsBj6In6InK0cS/h9LAk6YNnrmdeAzf h8dYubeSAJlImgwt1ZzTn/jQS7KDxYVrzzShEhM2smqNBWn/v2w45F7tiOtwSdAbtucn bqc9vv2TkGA7hdbb/V3t4BZdvsUnzkoD20Qk6BfYvzebuTvAuz5TrWiD6DVggqyQTivc fmzyYHlu1hWJWU3c8Z1tGjmBrrQWqmvSCstHcLiOXYVue8OB7hV1jIKEaMGADO2RJM2R tQtJW9f3h8MaMcUmvzUy8zddK0FchNW7BV9Qc1fk8dW+vvt7QmJMb7ZOBqM9+8sluiBQ fNFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=v0sXQfOu2uu9d5YGi+3MTJDlbkfamiJQGZG8KIBCOhU=; b=H9CB1jM6RgAjgmjqMLlIAMWcraMUlDfj1ruisHfiguhvzFxpDHXGg6kglFM60aPQGE amzBmSaRYAuKJcru2PLBqiIBnvno2EeQzjwu+zd6ED3Z2dSLubu3m7HakWX/6Wl12EVX UIWX8C6x9QC3jGOuuMnscAPmu53YVq7B5+Np+Flr8x12frcDSnDcY0aw1F1r0twayIdm E1eBquCy6oNxBJw6wyFJqmCAD020WxyILnPYDBQtp8ycLBI3qYBKk9UlL3JPiS/Vqm7x hdzocSl2FSQCmZZtG4w4ArOloPCeQ5sBYP9Z9t2lqfJdF7yklw3QWcM+TlW7nEIS7qMF ZWuw== X-Gm-Message-State: AD7BkJImH53vOC8/pxVsdYInGGAKMQ69tG2/QtrnkgAZCbNmfEGCO/ypjGJ1DBlusYSsug== X-Received: by 10.66.27.208 with SMTP id v16mr1706455pag.35.1460038396582; Thu, 07 Apr 2016 07:13:16 -0700 (PDT) Received: from serve.minyard.net ([173.57.176.17]) by smtp.gmail.com with ESMTPSA id 8sm12629180pfk.69.2016.04.07.07.13.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Apr 2016 07:13:15 -0700 (PDT) Received: from t430.minyard.net (unknown [IPv6:2001:470:b8f6:1b:bdea:e997:eaba:4039]) by serve.minyard.net (Postfix) with ESMTPA id A22491E33; Thu, 7 Apr 2016 09:13:10 -0500 (CDT) Received: by t430.minyard.net (Postfix, from userid 1000) id 9B27E300037; Thu, 7 Apr 2016 09:13:08 -0500 (CDT) From: minyard@acm.org To: "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , qemu-devel@nongnu.org Date: Thu, 7 Apr 2016 09:13:03 -0500 Message-Id: <1460038383-5318-7-git-send-email-minyard@acm.org> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1460038383-5318-1-git-send-email-minyard@acm.org> References: <1460038383-5318-1-git-send-email-minyard@acm.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c03::243 Cc: Corey Minyard Subject: [Qemu-devel] [PATCH v6 6/6] bios: Add tests for the IPMI ACPI and SMBIOS entries X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Corey Minyard Signed-off-by: Corey Minyard --- tests/acpi-test-data/pc/DSDT.ipmikcs | Bin 0 -> 5683 bytes tests/acpi-test-data/q35/DSDT.ipmibt | Bin 0 -> 8456 bytes tests/bios-tables-test.c | 58 ++++++++++++++++++++++++++++++++--- 3 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 tests/acpi-test-data/pc/DSDT.ipmikcs create mode 100644 tests/acpi-test-data/q35/DSDT.ipmibt diff --git a/tests/acpi-test-data/pc/DSDT.ipmikcs b/tests/acpi-test-data/pc/DSDT.ipmikcs new file mode 100644 index 0000000000000000000000000000000000000000..280aeb3059eb9220108b9a2b7f0ac07819023b06 GIT binary patch literal 5683 zcmb7IUvC@75ud#yrQ?#6j?!6{?Kmc6J8sh2<{w*j(4r7|M~Req)R{-QF3#v3B^jmL zq&_Gy5Jd}jr|mL=8j9Tat?3_@OEeBw==W5 zGqZbV*hZ^32f+STUel{~wtU;t4dgKZpgy%~Ep`W-J)^whvZNGa&ckHT$46Pweqxl@ zSJ^p$eX`N^KY#3P0D&HC_?%NmU2yHP>vT_9dM&58)tZqiea&UX zEg4Nv-1VBlR8t8t6{TubS^~rngkp4~YPC#A0et;^5@OCnmFU@9m4=bEnueRz7G1kl z0-rdZPptN*9#_47>Z_gyJui81Fo6ElSG_j;v7Lf{{U<(v0iRY}y=iAMd}=>|Ge+eQ z1K0ue{3Y^++;zGqtlRlw;A=_-hOSuoqAmeHP?zFkFg;eYOKyn6g(cjToGx*Xqr30? z>Jn+8kpR`pFj==M4F=ai)=Sip^)fc9e&(_)43jped$HNlQE9kjNn9-Qcb*?xVLtev zN(;bN*fwl~G_eCt_u7rJF@npomIzj5G|^z72OcmSwFO()E=V|Er+dL%TOSRao;^BH z;qe7f30P8=4SlqUlS7YA@%a_@t^BPFu@&}Geu)dUumtbL0^RxLx>XXJy=>HGvMTU6 zU*kE(UvP<^$NvmJ#Si!g{5w9)6~$dPDw*S4qc9x*Nk}-|pVzI{$k!NX^WoOhl6w6K z-0lH9jg984^7IP(ME*opl!d*(pGr($GxK6m<1CCop@udjO3f?zl?=*)8mL(&HH9N; zxHQs(I~u7+dL^MA1@)*^?584CId3f%!Ox{wiP_{9vc{8WrBTtV4J&KApTf2#?+E48Ay$&XQV!)HyV(q5h zOdz0{%S`d)7ZZ>Of^7%BBp#3Bv(`^O>EN6@)E^Mr>DDK4ni$MsLZ+~QPp5wtE-PXCJ(0%kd}PBeFFd>_NNFcRfA{pKh>? zrzvFL#gkJ8%JL0{8NTp`UVGEu3>@^J&oRFnt>s^O?5Ps8Tz=rGjf;m>tXsNhR;_TS z(pJODm2!*WF`qW?et3U-C)>IIvH!t?UuU=PesurA_U7G>K${J+q@U=SMx%)p9Fx>x zW>CIL6Q-><;82G1aL$tK;NaQMo_I9E_e{G|@6YzkTEk{$;GfTkcskeDdS=tS6>_9dhT)((NJkBzCL5*(_IS z5OwOL2s`yE4WLe)lx!25Iy9DuKun|i+7sfDe4A(%Ff##@eLUh&uTHXh-(TM?DbrMGnl!~=dc^|gsNTgnVRs704!d*ckn59W68of_gg*I6qTvqFuu*sM zigwPlZkz1r2KdNz54Y(@=9=A#y#~5xu2pXNzd@lMs?-+D%4!ae$1tMAc4C;|2^&Jx zO4?nqDnat6OS)CdKuRQv{=n9i(B##y89Hz+q^^g}`(aZGn{wFbVPk|%C2W>Ktz?F# zgKIh6EX$MpcaPH`;YFMFj~;kae3g2YVhZwE7}hUQ{3?mZoU^phZv zh`XF}aPar0Vm?g}xj*aI<2rV}uk4eZ*rmuEtpkt(1O$hxXX%-iTeID~#2wj1Ct*5nLS3`Dc3BuU_d7iAVDuqNZ2jV z(k`X~L!z<@9W6ukUBZgrfqfc&PoaZjMrQQ7HWtf4wGZm{*xuk3h{HTNRki4L3Y^b7 z56=)GQKN}%D+*`2G#xTW) zGP1Tfl94$~)S-;*T_f4_ZU?I?p2+()CY+%0Oh)=pjwkcJjj1E#_$Gz)pzlR(I` z0evW6A{xV4$oB&JP#(+}15?QHFxj{DF*(f|Lu@3cc^hMLnmGo`NS-BnOumFPZu>~S zM>NW{GjxZtyq?gf*ReDES?aGTCgBUL;?|b&hQKtAFRQm;kOb+!4tZ%z literal 0 HcmV?d00001 diff --git a/tests/acpi-test-data/q35/DSDT.ipmibt b/tests/acpi-test-data/q35/DSDT.ipmibt new file mode 100644 index 0000000000000000000000000000000000000000..6704538dee7dcfade6a1dc74eda5b8b832d7c6a2 GIT binary patch literal 8456 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 literal 0 HcmV?d00001 diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c index 0a80ddf..e681ced 100644 --- a/tests/bios-tables-test.c +++ b/tests/bios-tables-test.c @@ -50,6 +50,8 @@ typedef struct { GArray *tables; uint32_t smbios_ep_addr; struct smbios_21_entry_point smbios_ep_table; + uint8_t *required_struct_types; + int required_struct_types_len; } test_data; #define ACPI_READ_FIELD(field, addr) \ @@ -335,7 +337,7 @@ static void test_acpi_tables(test_data *data) for (i = 0; i < tables_nr; i++) { AcpiSdtTable ssdt_table; - memset(&ssdt_table, 0 , sizeof(ssdt_table)); + memset(&ssdt_table, 0, sizeof(ssdt_table)); uint32_t addr = data->rsdt_tables_addr[i + 1]; /* fadt is first */ test_dst_table(&ssdt_table, addr); g_array_append_val(data->tables, ssdt_table); @@ -654,7 +656,6 @@ static void test_smbios_structs(test_data *data) uint32_t addr = ep_table->structure_table_address; int i, len, max_len = 0; uint8_t type, prv, crt; - uint8_t required_struct_types[] = {0, 1, 3, 4, 16, 17, 19, 32, 127}; /* walk the smbios tables */ for (i = 0; i < ep_table->number_of_structures; i++) { @@ -694,8 +695,8 @@ static void test_smbios_structs(test_data *data) g_assert_cmpuint(ep_table->max_structure_size, ==, max_len); /* required struct types must all be present */ - for (i = 0; i < ARRAY_SIZE(required_struct_types); i++) { - g_assert(test_bit(required_struct_types[i], struct_bitmap)); + for (i = 0; i < data->required_struct_types_len; i++) { + g_assert(test_bit(data->required_struct_types[i], struct_bitmap)); } } @@ -735,6 +736,9 @@ static void test_acpi_one(const char *params, test_data *data) g_free(args); } +static uint8_t base_required_struct_types[] = + {0, 1, 3, 4, 16, 17, 19, 32, 127}; + static void test_acpi_piix4_tcg(void) { test_data data; @@ -744,6 +748,8 @@ static void test_acpi_piix4_tcg(void) */ memset(&data, 0, sizeof(data)); data.machine = MACHINE_PC; + data.required_struct_types = base_required_struct_types; + data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); test_acpi_one("-machine accel=tcg", &data); free_test_data(&data); } @@ -755,6 +761,8 @@ static void test_acpi_piix4_tcg_bridge(void) memset(&data, 0, sizeof(data)); data.machine = MACHINE_PC; data.variant = ".bridge"; + data.required_struct_types = base_required_struct_types; + data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); test_acpi_one("-machine accel=tcg -device pci-bridge,chassis_nr=1", &data); free_test_data(&data); } @@ -765,6 +773,8 @@ static void test_acpi_q35_tcg(void) memset(&data, 0, sizeof(data)); data.machine = MACHINE_Q35; + data.required_struct_types = base_required_struct_types; + data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); test_acpi_one("-machine q35,accel=tcg", &data); free_test_data(&data); } @@ -776,11 +786,49 @@ static void test_acpi_q35_tcg_bridge(void) memset(&data, 0, sizeof(data)); data.machine = MACHINE_Q35; data.variant = ".bridge"; + data.required_struct_types = base_required_struct_types; + data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); test_acpi_one("-machine q35,accel=tcg -device pci-bridge,chassis_nr=1", &data); free_test_data(&data); } +static uint8_t ipmi_required_struct_types[] = + {0, 1, 3, 4, 16, 17, 19, 32, 38, 127}; + +static void test_acpi_q35_tcg_ipmi(void) +{ + test_data data; + + memset(&data, 0, sizeof(data)); + data.machine = MACHINE_Q35; + data.variant = ".ipmibt"; + data.required_struct_types = ipmi_required_struct_types; + data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types); + test_acpi_one("-machine q35,accel=tcg -device ipmi-bmc-sim,id=bmc0" + " -device isa-ipmi-bt,bmc=bmc0", + &data); + free_test_data(&data); +} + +static void test_acpi_piix4_tcg_ipmi(void) +{ + test_data data; + + /* Supplying -machine accel argument overrides the default (qtest). + * This is to make guest actually run. + */ + memset(&data, 0, sizeof(data)); + data.machine = MACHINE_PC; + data.variant = ".ipmikcs"; + data.required_struct_types = ipmi_required_struct_types; + data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types); + test_acpi_one("-machine accel=tcg -device ipmi-bmc-sim,id=bmc0" + " -device isa-ipmi-kcs,irq=0,bmc=bmc0", + &data); + free_test_data(&data); +} + int main(int argc, char *argv[]) { const char *arch = qtest_get_arch(); @@ -797,6 +845,8 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/piix4/tcg/bridge", test_acpi_piix4_tcg_bridge); qtest_add_func("acpi/q35/tcg", test_acpi_q35_tcg); qtest_add_func("acpi/q35/tcg/bridge", test_acpi_q35_tcg_bridge); + qtest_add_func("acpi/piix4/tcg/ipmi", test_acpi_piix4_tcg_ipmi); + qtest_add_func("acpi/q35/tcg/ipmi", test_acpi_q35_tcg_ipmi); } ret = g_test_run(); boot_sector_cleanup(disk);