From patchwork Mon Jan 7 22:42:22 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 210264 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)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 57E8C2C008D for ; Tue, 8 Jan 2013 10:01:06 +1100 (EST) Received: from localhost ([::1]:48023 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsLQ7-0002RJ-7S for incoming@patchwork.ozlabs.org; Mon, 07 Jan 2013 17:43:51 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52037) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsLP0-0007oj-Mq for qemu-devel@nongnu.org; Mon, 07 Jan 2013 17:42:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TsLOt-0006ua-HO for qemu-devel@nongnu.org; Mon, 07 Jan 2013 17:42:42 -0500 Received: from mout.web.de ([212.227.17.12]:63726) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsLOt-0006u9-7I for qemu-devel@nongnu.org; Mon, 07 Jan 2013 17:42:35 -0500 Received: from localhost.localdomain ([84.148.30.17]) by smtp.web.de (mrweb001) with ESMTPSA (Nemesis) id 0LdVdS-1T9y2d0V8s-00ibTz; Mon, 07 Jan 2013 23:42:33 +0100 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= To: qemu-devel@nongnu.org Date: Mon, 7 Jan 2013 23:42:22 +0100 Message-Id: <1357598544-4804-5-git-send-email-andreas.faerber@web.de> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1357598544-4804-1-git-send-email-andreas.faerber@web.de> References: <1357598544-4804-1-git-send-email-andreas.faerber@web.de> MIME-Version: 1.0 X-Provags-ID: V02:K0:MGaWHe/dIMEsYc7U1c/N/iGYlWJr5DnJ18TPNRYrC8N J2rU7J+PwJgGNyNa9UVs2VILEcClZgA0JQ/Ck2kYE+9D/CNPtn k8YN0VUuwPz4RH6sk6hjubZeDlWYEJJqifGi+O6LZryd8LcFdR /DqGv69wgp+Anwg1PnZBLk3zfwZr7+0DuueS5iv5Bx2n8DsYVk yDNwE9/EFcJ/1yAR6btlA== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 212.227.17.12 Cc: alex.horn@cs.ox.ac.uk, =?UTF-8?q?Andreas=20F=C3=A4rber?= , anthony@codemonkey.ws, peter.maydell@linaro.org Subject: [Qemu-devel] [PATCH v3 4/6] tests: Add tmp105 qtest test case 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 Exercise all four commands of the TMP105, testing for an issue in the I2C TX path. The test case uses the N800's OMAP I2C and is the first for ARM. Signed-off-by: Andreas Färber --- tests/Makefile | 3 ++ tests/tmp105-test.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 Dateien geändert, 79 Zeilen hinzugefügt(+) create mode 100644 tests/tmp105-test.c diff --git a/tests/Makefile b/tests/Makefile index a432008..7dd1cd0 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -60,6 +60,8 @@ gcov-files-i386-y += i386-softmmu/hw/mc146818rtc.c check-qtest-sparc-y = tests/m48t59-test$(EXESUF) check-qtest-sparc64-y = tests/m48t59-test$(EXESUF) gcov-files-sparc-y += hw/m48t59.c +check-qtest-arm-y = tests/tmp105-test$(EXESUF) +qcov-files-arm-y += hw/tmp105.c GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h tests/test-qmp-commands.h @@ -110,6 +112,7 @@ tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y) tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y) tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o $(trace-obj-y) tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o tests/libqtest.o $(trace-obj-y) +tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(trace-obj-y) # QTest rules diff --git a/tests/tmp105-test.c b/tests/tmp105-test.c new file mode 100644 index 0000000..a6ad213 --- /dev/null +++ b/tests/tmp105-test.c @@ -0,0 +1,76 @@ +/* + * QTest testcase for the TMP105 temperature sensor + * + * Copyright (c) 2012 Andreas Färber + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ +#include "libqtest.h" +#include "libi2c.h" +#include "hw/tmp105_regs.h" + +#include + +#define OMAP2_I2C_1_BASE 0x48070000 + +#define N8X0_ADDR 0x48 + +static I2CAdapter *i2c; +static uint8_t addr; + +static void send_and_receive(void) +{ + uint8_t cmd[3]; + uint8_t resp[2]; + + cmd[0] = TMP105_REG_TEMPERATURE; + i2c_send(i2c, addr, cmd, 1); + i2c_recv(i2c, addr, resp, 2); + g_assert_cmpuint(((uint16_t)resp[0] << 8) | resp[1], ==, 0); + + cmd[0] = TMP105_REG_CONFIG; + cmd[1] = 0x0; /* matches the reset value */ + i2c_send(i2c, addr, cmd, 2); + i2c_recv(i2c, addr, resp, 1); + g_assert_cmphex(resp[0], ==, cmd[1]); + + cmd[0] = TMP105_REG_T_LOW; + cmd[1] = 0x12; + cmd[2] = 0x34; + i2c_send(i2c, addr, cmd, 3); + i2c_recv(i2c, addr, resp, 2); + g_assert_cmphex(resp[0], ==, cmd[1]); + g_assert_cmphex(resp[1], ==, cmd[2]); + + cmd[0] = TMP105_REG_T_HIGH; + cmd[1] = 0x42; + cmd[2] = 0x31; + i2c_send(i2c, addr, cmd, 3); + i2c_recv(i2c, addr, resp, 2); + g_assert_cmphex(resp[0], ==, cmd[1]); + g_assert_cmphex(resp[1], ==, cmd[2]); +} + +int main(int argc, char **argv) +{ + QTestState *s = NULL; + int ret; + + g_test_init(&argc, &argv, NULL); + + s = qtest_start("-display none -machine n800"); + i2c = omap_i2c_create(OMAP2_I2C_1_BASE); + addr = N8X0_ADDR; + + qtest_add_func("/tmp105/tx-rx", send_and_receive); + + ret = g_test_run(); + + if (s) { + qtest_quit(s); + } + g_free(i2c); + + return ret; +}