From patchwork Mon Mar 24 10:02:33 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Apfelbaum X-Patchwork-Id: 333000 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 8355D14008B for ; Mon, 24 Mar 2014 22:23:48 +1100 (EST) Received: from localhost ([::1]:35408 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WS1il-0004qZ-Fe for incoming@patchwork.ozlabs.org; Mon, 24 Mar 2014 06:03:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49805) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WS1i1-0004IP-6U for qemu-devel@nongnu.org; Mon, 24 Mar 2014 06:02:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WS1hv-0007Yj-51 for qemu-devel@nongnu.org; Mon, 24 Mar 2014 06:02:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46713) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WS1hu-0007Yd-Ta for qemu-devel@nongnu.org; Mon, 24 Mar 2014 06:02:15 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s2OA29Ym025990 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 24 Mar 2014 06:02:10 -0400 Received: from localhost.localdomain.com (vpn1-5-210.ams2.redhat.com [10.36.5.210]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s2OA27Fb024373; Mon, 24 Mar 2014 06:02:07 -0400 From: Marcel Apfelbaum To: qemu-devel@nongnu.org Date: Mon, 24 Mar 2014 12:02:33 +0200 Message-Id: <1395655353-19051-1-git-send-email-marcel.a@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: aik@ozlabs.ru, peter.maydell@linaro.org, pbonzini@redhat.com, afaerber@suse.de, mst@redhat.com Subject: [Qemu-devel] [PATCH for-2.0 V4] tests/acpi-test: do not fail if iasl is broken 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 There is an issue with iasl on big endian machines: It cannot disassemble acpi tables taken from little endian machines, so we cannot check the expected tables. The acpi test will check if the expected aml files can be disassembled, and will issue an warning not failing the test on those machines until this problem is solved by the acpica community. Signed-off-by: Marcel Apfelbaum --- V3 -> V4: Addressed all upstream comments: - Instead of disabling iasl for big endian machines, the test checks if the expected aml files can be disassembled, if not it issues a warning instead of failing the test V2 -> V3: Addressed Michael S. Tsirkin's review: - tests don't need to re-run detection, use configure to figure out if it is an LE machine. V1 -> V2: Addressed an offline tip for a much cleaner macro line, thanks! tests/acpi-test.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/acpi-test.c b/tests/acpi-test.c index 249fe03..76fbccf 100644 --- a/tests/acpi-test.c +++ b/tests/acpi-test.c @@ -456,13 +456,12 @@ static bool load_asl(GArray *sdts, AcpiSdtTable *sdt) /* pass 'out' and 'out_err' in order to be redirected */ ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error); g_assert_no_error(error); - if (ret) { ret = g_file_get_contents(sdt->asl_file, (gchar **)&sdt->asl, &sdt->asl_len, &error); g_assert(ret); g_assert_no_error(error); - g_assert(sdt->asl_len); + ret = (sdt->asl_len > 0); } g_free(out); @@ -560,15 +559,20 @@ static void test_acpi_asl(test_data *data) g_assert(!err || exp_err); if (g_strcmp0(asl->str, exp_asl->str)) { - uint32_t signature = cpu_to_le32(exp_sdt->header.signature); - sdt->tmp_files_retain = true; - exp_sdt->tmp_files_retain = true; - fprintf(stderr, - "acpi-test: Warning! %.4s mismatch. " - "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n", - (gchar *)&signature, - sdt->asl_file, sdt->aml_file, - exp_sdt->asl_file, exp_sdt->aml_file); + if (exp_err) { + fprintf(stderr, + "Warning! iasl couldn't parse the expected aml\n"); + } else { + uint32_t signature = cpu_to_le32(exp_sdt->header.signature); + sdt->tmp_files_retain = true; + exp_sdt->tmp_files_retain = true; + fprintf(stderr, + "acpi-test: Warning! %.4s mismatch. " + "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n", + (gchar *)&signature, + sdt->asl_file, sdt->aml_file, + exp_sdt->asl_file, exp_sdt->aml_file); + } } g_string_free(asl, true); g_string_free(exp_asl, true);