From nobody Sun Apr 28 05:24:31 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1558628936; cv=none; d=zoho.com; s=zohoarc; b=c9pL8uK70X/HfgHIoAabAkBGcp9LYNiqRWlF7Bmc+ixD23K3wGQBVEQNLv+M+Cnq07wI5+SyCvfsFkjVUZO9owAbVmTpTrawozM5DAZf5Sej+78wTSg+N/uQrWHF1F7dzSASdJoxPVwRItta2XBEqGNSdp78GnlqmoKakrNis7g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558628936; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=t+fpOzpoYMTvZREMygefSwOqjQyndhbSY04K2Iq39pg=; b=kpnRwqQcYTIF+4br8Kq96Hg4Egj/zxdb3Pr0T4WiWaCKMdtD5TK9FcOe6XRlj/ANzKQedMIP2uadA1jo4bDFQiEMEOnriFJmjI7zROUM9o6VnYxTaWcNnErtqkNXJgpdAdd3hKrkSyoBpFybx+49iHhLoGw5fMAN40WoyHBUv6k= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558628936579656.1887918517887; Thu, 23 May 2019 09:28:56 -0700 (PDT) Received: from localhost ([127.0.0.1]:40381 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqaC-0001Ka-GF for importer@patchew.org; Thu, 23 May 2019 12:28:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37504) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqQQ-0002OF-7W for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTqQP-0006TD-AL for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:38 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:37427) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTqQP-0006Sa-3L for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:37 -0400 Received: by mail-wr1-x442.google.com with SMTP id e15so6963018wrs.4 for ; Thu, 23 May 2019 09:18:36 -0700 (PDT) Received: from x1.local (228.red-83-52-173.dynamicip.rima-tde.net. [83.52.173.228]) by smtp.gmail.com with ESMTPSA id q16sm10273222wmj.17.2019.05.23.09.18.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 09:18:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=t+fpOzpoYMTvZREMygefSwOqjQyndhbSY04K2Iq39pg=; b=pKxEwwboJZUmeKt5OoQX2Rivx1lS7LvoJgAtURLdWDf3ldBnS/Z4dBxnxSx2CRH6sC MEjefgUTYU+Mg5fw4pfrFPMW8z/KPWkXrxh5xaIkhtWeezf1mjRXTPez5MTJjo2XrSGq rEAORtBeXUPaAQPXdQ6kPRS/kvU46QOtbQyyubDcioUrKFqTsUoFKJKk8+Wzcp+5mNqy 1haJc8QDxs1azQ7KccQ7PvHihPNP3l5E5KBhgBXqlWt/QVEZmL5c5OpiMAod7eqLkfGo YC8osiiSSk/WD71rQsowiRWYl4KIQV+bQTZLfRatqiVvOEJlMQ4uHHzz3wFUYI9h5Tl9 /pBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=t+fpOzpoYMTvZREMygefSwOqjQyndhbSY04K2Iq39pg=; b=fGv8PYox//J+bm6/ISy7+oE9i6VkaxizTrr5Wv4NXosPlBqTfDvabb+8hCwJY5eSHc v8Sa/e2Z0Ro6TX75zl3IQEznimVwwnm6BsDDLXquR0bKfMrubCNuy1zc6wu03SG1wfj9 /2RVrc62rVsof/YX/hTL0li356kdYFwX7O7qYyl2DO7FY/DqBD6LY9+O+rwBjst3SbUx hYAZ09SmmPcs3HPoFMHKdvqfcE8/lb7TiyzYq2dB1fL2+gE4euLDeMiJtPWPVVB+dW4x a8pqSXsimY4dztBk2M7HuDsKN+QFnaSYBYR11qlOJpG82ama8wLg5a4D2vnZoyNCt/N+ TlgA== X-Gm-Message-State: APjAAAWfbPTaDlHRF0zetUSMYK9uWUcmOpzoC1R1t6ysslimJR0lZl5H Vc3qPHNMl8uBOk4evxo/kZM= X-Google-Smtp-Source: APXvYqyZOHTmTWBYjU7/FHaxxOBDtQLgthd1J+dX2g8Z3I4Wpqsb+3MyMEeXXQC87Ijp5BQ+JW7fxw== X-Received: by 2002:adf:e2c8:: with SMTP id d8mr7265314wrj.14.1558628316001; Thu, 23 May 2019 09:18:36 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Eduardo Habkost , qemu-devel@nongnu.org, Cleber Rosa Date: Thu, 23 May 2019 18:18:29 +0200 Message-Id: <20190523161832.22490-2-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190523161832.22490-1-f4bug@amsat.org> References: <20190523161832.22490-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH v2 1/4] BootLinuxConsoleTest: Let extract_from_deb handle various compressions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Markovic , Aleksandar Markovic , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Debian binary package format supports various compressions. Per man deb(5): NAME deb - Debian binary package format FORMAT ... The third, last required member is named data.tar. It contains the filesystem as a tar archive, either not compressed (supported since dpkg 1.10.24), or compressed with gzip (with .gz extension), xz (with .xz extension, supported since dpkg 1.15.6), bzip2 (with .bz2 extension, supported since dpkg 1.10.24) or lzma (with .lzma extension, supported since dpkg 1.13.25). List the archive files to have the 3rd name with the correct extension. The function avocado.utils.archive.extract() will handle the different compression format for us. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- This patch is already in Eduardo's queue, but is required in this series. --- tests/acceptance/boot_linux_console.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot= _linux_console.py index d5c500ea30..6aa084e049 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -55,8 +55,9 @@ class BootLinuxConsole(Test): """ cwd =3D os.getcwd() os.chdir(self.workdir) - process.run("ar x %s data.tar.gz" % deb) - archive.extract("data.tar.gz", self.workdir) + file_path =3D process.run("ar t %s" % deb).stdout_text.split()[2] + process.run("ar x %s %s" % (deb, file_path)) + archive.extract(file_path, self.workdir) os.chdir(cwd) return self.workdir + path =20 --=20 2.19.1 From nobody Sun Apr 28 05:24:31 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1558628598; cv=none; d=zoho.com; s=zohoarc; b=bo+5acZ0G3YlTCgpRNAmCCR9nTccai0M+RKMJDNvlIHFJYmdbowJeymjtcMfQIaQd8ReZ5DtWzV7KT7JzrKRVemO520M5siyi9lDcuq/KI5MX5aPaJ8+Ahw6NF52axNZBxBUEcA3l4PIJ+/eZVh1FIRj6jj8PJnscB5ZEK0WqjQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558628598; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=nFvZpg8Irc5ptGUvIODQuDLuD3XEDRd8WNB3Ec4ZO0M=; b=Hxkgk2db76LaXCxmMwpirgKxEO1QWHx11xhlgTL7PnlmIiJk0XIF7LRSVsZbv1w6rqojKYbBCJqbLSsHAFDskFwDb5tjlZ+1uqBtstS2Qz4PCG8S5+vqfF/J9e4DXZaJnPX5nIIkUsCYR3cTsZjvA9+WQmv1sHDHb11AAoFDKCY= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558628598697766.6111275495874; Thu, 23 May 2019 09:23:18 -0700 (PDT) Received: from localhost ([127.0.0.1]:40274 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqUh-0005Eh-GQ for importer@patchew.org; Thu, 23 May 2019 12:23:03 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37535) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqQR-0002P5-RC for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTqQQ-0006U3-9H for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:39 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:36179) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTqQQ-0006TS-1g for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:38 -0400 Received: by mail-wr1-x442.google.com with SMTP id s17so6969202wru.3 for ; Thu, 23 May 2019 09:18:37 -0700 (PDT) Received: from x1.local (228.red-83-52-173.dynamicip.rima-tde.net. [83.52.173.228]) by smtp.gmail.com with ESMTPSA id q16sm10273222wmj.17.2019.05.23.09.18.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 09:18:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nFvZpg8Irc5ptGUvIODQuDLuD3XEDRd8WNB3Ec4ZO0M=; b=Tm4obKTuCLSPdNEWoKtut3FIVhnCINvxs9fvJH8YD/mloZUl6bO8T4QTVViN92uw6h zb0kBnXJ2G72+/83WnRqTpgCCxDcT7/1KbAbnStiAjXVx4k+9DaCxsXP01sMtaIcFLGd KyNrydutQ98jfwKh0V0QNymGFDnQrKdM0eB7PYFMNZV44sWzb871M4BztJd8Ganlq0ag sjaEegbvWia9lwuptoppMoXx3RECdBfT9D4aoFbAbsd0dlwd7XJWbxmiNqHwOO+T7Xd7 WruiSHbFAd9e5HKwIb5MoEYR4FsysITwayoePbX+CmD+oA0ZIZDhTwEVQUWm//d8ULaG 7bcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=nFvZpg8Irc5ptGUvIODQuDLuD3XEDRd8WNB3Ec4ZO0M=; b=fYLc+ogcmrdkjP/WEFgkXsgrUe5rXfikCioopuh+Ou0Z3UDM9WYJOmI/TEpnMBenoQ 29gta3PCY9mLp/lNgojLOBG+B2MbLxA0Im86GJyfHnmM7STjBR9+138fJaowk7Ni1NX+ 8SAY1nTChdRfa3ZGHJ3p/1LT/ken43Z8PIbZ/pS4R5W861nLG2K9C37Au96U3KPLNpvC RB28gNofJ3bUEOLSTixkOYDUaB9GAbTmwd8jZSA3RFU6oc87RZDFn7xVjF8QzZIArKS+ hh2869G7solyBVRaY6MhEEpRrFSTffJxN/RhUvDMAJtGAnpC2fbH7zK48rJq6m9Z7btG FqmQ== X-Gm-Message-State: APjAAAUgQvCSgldFfRMgBlylEaXH6oON1nDu5lFevHsHWx2/IUciSyPa Sq3TEQ6vN8LJvwEDy9Loh8U08dICaqg= X-Google-Smtp-Source: APXvYqwbzthDgszMhapSbt5T6578H3PxDMnFPadeqc0G6s2T8Q6Yl1TW9CKFG0i4GBZMtTRVvhjmdg== X-Received: by 2002:adf:fc46:: with SMTP id e6mr31017852wrs.298.1558628317175; Thu, 23 May 2019 09:18:37 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Eduardo Habkost , qemu-devel@nongnu.org, Cleber Rosa Date: Thu, 23 May 2019 18:18:30 +0200 Message-Id: <20190523161832.22490-3-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190523161832.22490-1-f4bug@amsat.org> References: <20190523161832.22490-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH v2 2/4] BootLinuxConsoleTest: Test nanoMIPS kernels on the I7200 CPU X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Aleksandar Rikalo , Aurelien Jarno , Aleksandar Markovic , Aleksandar Markovic , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Similar to the x86_64/pc test, it boots a Linux kernel on a Malta machine and verify the serial is working. Use the documentation added in commit f7d257cb4a17 to test nanoMIPS kernels and the I7200 CPU. This test can be run using: $ avocado --show=3Dconsole run -t arch:mipsel tests/acceptance/boot_linux= _console.py console: [ 0.000000] Linux version 4.15.18-00432-gb2eb9a8b (emubuild@m= ipscs563) (gcc version 6.3.0 (Codescape GNU Tools 2018.04-02 for nanoMIPS L= inux)) #1 SMP Wed Jun 27 11:10:08 PDT 2018 console: [ 0.000000] GCRs appear to have been moved (expected them at = 0x1fbf8000)! console: [ 0.000000] GCRs appear to have been moved (expected them at = 0x1fbf8000)! console: [ 0.000000] CPU0 revision is: 00010000 (MIPS GENERIC QEMU) console: [ 0.000000] MIPS: machine is mti,malta console: [ 0.000000] Determined physical RAM map: console: [ 0.000000] memory: 08000000 @ 00000000 (usable) console: [ 0.000000] earlycon: ns16550a0 at I/O port 0x3f8 (options '3= 8400n8') console: [ 0.000000] bootconsole [ns16550a0] enabled console: [ 0.000000] User-defined physical RAM map: console: [ 0.000000] memory: 10000000 @ 00000000 (usable) console: [ 0.000000] Initrd not found or empty - disabling initrd console: [ 0.000000] MIPS CPS SMP unable to proceed without a CM console: [ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, line= size 32 bytes. console: [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache alias= es, linesize 32 bytes console: [ 0.000000] This processor doesn't support highmem. -262144k = highmem ignored console: [ 0.000000] Zone ranges: console: [ 0.000000] Normal [mem 0x0000000000000000-0x000000000fff= ffff] console: [ 0.000000] HighMem empty console: [ 0.000000] Movable zone start for each node console: [ 0.000000] Early memory node ranges console: [ 0.000000] node 0: [mem 0x0000000000000000-0x000000000ff= fffff] console: [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00= 0000000fffffff] console: [ 0.000000] random: get_random_bytes called from start_kernel= +0x60/0x2f0 with crng_init=3D0 console: [ 0.000000] percpu: Embedded 16 pages/cpu @(ptrval) s36620 r8= 192 d20724 u65536 console: [ 0.000000] Built 1 zonelists, mobility grouping on. Total p= ages: 64960 console: [ 0.000000] Kernel command line: printk.time=3D0 mem=3D256m@@= 0x0 console=3DttyS0 earlycon Acked-by: Aleksandar Markovic Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- tests/acceptance/boot_linux_console.py | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot= _linux_console.py index 6aa084e049..9d1aea7708 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -4,12 +4,15 @@ # # Author: # Cleber Rosa +# Philippe Mathieu-Daud=C3=A9 # # This work is licensed under the terms of the GNU GPL, version 2 or # later. See the COPYING file in the top-level directory. =20 import os import logging +import lzma +import shutil =20 from avocado_qemu import Test from avocado.utils import process @@ -136,6 +139,62 @@ class BootLinuxConsole(Test): console_pattern =3D 'Kernel command line: %s' % kernel_command_line self.wait_for_console_pattern(console_pattern) =20 + def do_test_mips_malta32el_nanomips(self, kernel_url, kernel_hash): + kernel_path_xz =3D self.fetch_asset(kernel_url, asset_hash=3Dkerne= l_hash) + kernel_path =3D self.workdir + "kernel" + with lzma.open(kernel_path_xz, 'rb') as f_in: + with open(kernel_path, 'wb') as f_out: + shutil.copyfileobj(f_in, f_out) + + self.vm.set_machine('malta') + self.vm.set_console() + kernel_command_line =3D (self.KERNEL_COMMON_COMMAND_LINE + + 'mem=3D256m@@0x0 ' + + 'console=3DttyS0') + self.vm.add_args('-no-reboot', + '-cpu', 'I7200', + '-kernel', kernel_path, + '-append', kernel_command_line) + self.vm.launch() + console_pattern =3D 'Kernel command line: %s' % kernel_command_line + self.wait_for_console_pattern(console_pattern) + + def test_mips_malta32el_nanomips_4k(self): + """ + :avocado: tags=3Darch:mipsel + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:little + """ + kernel_url =3D ('https://mipsdistros.mips.com/LinuxDistro/nanomips= /' + 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' + 'generic_nano32r6el_page4k.xz') + kernel_hash =3D '477456aafd2a0f1ddc9482727f20fe9575565dd6' + self.do_test_mips_malta32el_nanomips(kernel_url, kernel_hash) + + def test_mips_malta32el_nanomips_16k_up(self): + """ + :avocado: tags=3Darch:mipsel + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:little + """ + kernel_url =3D ('https://mipsdistros.mips.com/LinuxDistro/nanomips= /' + 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' + 'generic_nano32r6el_page16k_up.xz') + kernel_hash =3D 'e882868f944c71c816e832e2303b7874d044a7bc' + self.do_test_mips_malta32el_nanomips(kernel_url, kernel_hash) + + def test_mips_malta32el_nanomips_64k_dbg(self): + """ + :avocado: tags=3Darch:mipsel + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:little + """ + kernel_url =3D ('https://mipsdistros.mips.com/LinuxDistro/nanomips= /' + 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' + 'generic_nano32r6el_page64k_dbg.xz') + kernel_hash =3D '18d1c68f2e23429e266ca39ba5349ccd0aeb7180' + self.do_test_mips_malta32el_nanomips(kernel_url, kernel_hash) + def test_aarch64_virt(self): """ :avocado: tags=3Darch:aarch64 --=20 2.19.1 From nobody Sun Apr 28 05:24:31 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1558628438; cv=none; d=zoho.com; s=zohoarc; b=WD2sDfqftHeoEqrgzGF++6K1DGUQkE4gstmLITSwExjrOnR/JcZdQDSWnfMoDX+Bq0xcTHibTl9vWMa27LAm72fIye4pQKQ0+q8Ek0G+BneWqJgpH8CjVah6KNpYZW4vpiFHgKURxXJhzzqHM2zc0U93WpQMrrFZ8h9uZ7NgZZ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558628438; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=RvNtXe11ESf84PiIziVRxHbntiof1XeZaDNPGeQbAhM=; b=OOURhkjfqZbwgN/KqLSYZ8rbhXGnZKQmBqbKMQIJXpdySDLe3lqV4HJV+fhcCGIg6yCqzpd2RfGUUblJ57+6XgS4RqyFk0vfYQrzSb5ZmfAErC4yHoO8eFZxqF7nekcTevzOOsab7C25iNltQYG9R/NasIu/zbdh7hsWa9jRF54= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558628438178154.6639044525051; Thu, 23 May 2019 09:20:38 -0700 (PDT) Received: from localhost ([127.0.0.1]:40217 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqSF-0003Jv-VU for importer@patchew.org; Thu, 23 May 2019 12:20:32 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37549) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqQS-0002P6-HT for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTqQR-0006Uo-9k for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:40 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:33408) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTqQR-0006UI-2i for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:39 -0400 Received: by mail-wr1-x443.google.com with SMTP id d9so6971843wrx.0 for ; Thu, 23 May 2019 09:18:38 -0700 (PDT) Received: from x1.local (228.red-83-52-173.dynamicip.rima-tde.net. [83.52.173.228]) by smtp.gmail.com with ESMTPSA id q16sm10273222wmj.17.2019.05.23.09.18.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 09:18:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RvNtXe11ESf84PiIziVRxHbntiof1XeZaDNPGeQbAhM=; b=vRR+h5puZP4TySafBqOjqp5tgOb0XEAKJKIaoGpPc2oXpUUJYrGsibQFi2dc1GXYU0 z/+SyeG31Z5qLCb5WGFhshLJu9ry/vaY9GyYAOyJrQvo6wEEfqoWGP32KkrVF2VuagDz 8GXMwX5bBugNEV/NkaAOKgAYnX269asyWfHijmFpUADK4z//xeQVxax14HKUgEUTLW+2 6sLrDPz8QQYjknP0HaU86EBZcDBgPv34s1DDtRlRvSU0Iw/MC1qKiCtPm1o1J10AJlkG 5piSyrsNRDd/ZpS8ERNB2hgJyvnEjrwH56qK7St6hu0oP4YFiLjXVTG4XxOE6+7ABRSq vmBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=RvNtXe11ESf84PiIziVRxHbntiof1XeZaDNPGeQbAhM=; b=US8XhSF5OV0fJ2lgXVLWQ5ZCFpP+W/B9DJouDnpb/I0U529sV29FWQvC0KBPS85FvV 8KwnwtTZexTwkVVBo9uEzTqOXmqEYzxYTUb5TS4Kt+Yu40fgbOlKgPU5KO67UlQLR7tP eCwtY3x5eWQoMnRn8mhh/afmFaEXMPmz9OYPPWSFSHB4/Bb5qqE3eB7Tf6h2Fr9AVVOz k1n5bkBoguepSqSxmlFaF+6EmssxMTzJq2vtZVqTTTTFevwFJQUe2TqrG6jHiCR3fZ6V XmUGB+ymKkxANFiLD40JmZF+vLAMxgL0oVmXRpk5kfPIhdr5e618nto+n47Xplmomh4z IVRg== X-Gm-Message-State: APjAAAV3vfMbkBzhkOVSsDKOLUDHHbo85h9MCPjBAhteFzXbJ2foPzpZ Qy2xhlEy8EB89UOUp6h7RCbyi28ZU2I= X-Google-Smtp-Source: APXvYqxsJJmJ8zVc9m7CEGuaad8elzOUwRko77CPeHycuVlOtTpeVbcpnTvnNRxkBBHPWTnQZVsfUA== X-Received: by 2002:adf:f74f:: with SMTP id z15mr33540869wrp.282.1558628318220; Thu, 23 May 2019 09:18:38 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Eduardo Habkost , qemu-devel@nongnu.org, Cleber Rosa Date: Thu, 23 May 2019 18:18:31 +0200 Message-Id: <20190523161832.22490-4-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190523161832.22490-1-f4bug@amsat.org> References: <20190523161832.22490-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 Subject: [Qemu-devel] [PATCH v2 3/4] BootLinuxConsoleTest: Run kerneltests BusyBox on Malta X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Aleksandar Rikalo , Aurelien Jarno , Aleksandar Markovic , Aleksandar Markovic , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This tests boots a Linux kernel on a Malta machine up to a busybox shell on the serial console. Few commands are executed before halting the machine (via reboot). We use the initrd cpio image from the kerneltests project: https://kerneltests.org/ If MIPS is a target being built, "make check-acceptance" will automatically include this test by the use of the "arch:mips" tags. Alternatively, this test can be run using: $ avocado --show=3Dconsole run -t arch:mips tests/acceptance/boot_linux_c= onsole.py [...] console: Boot successful. [...] console: / # uname -a console: Linux buildroot 4.5.0-2-4kc-malta #1 Debian 4.5.5-1 (2016-05-29)= mips GNU/Linux console: / # reboot console: / # reboot: Restarting system Acked-by: Aleksandar Markovic Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- tests/acceptance/boot_linux_console.py | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot= _linux_console.py index 9d1aea7708..77e7af135b 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -12,6 +12,7 @@ import os import logging import lzma +import gzip import shutil =20 from avocado_qemu import Test @@ -48,6 +49,11 @@ class BootLinuxConsole(Test): fail =3D 'Failure message found in console: %s' % failure_= message self.fail(fail) =20 + def exec_command_and_wait_for_pattern(self, command, success_message): + command +=3D '\n' + self.vm.console_socket.sendall(command.encode()) + self.wait_for_console_pattern(success_message) + def extract_from_deb(self, deb, path): """ Extracts a file from a deb package into the test workdir @@ -139,6 +145,49 @@ class BootLinuxConsole(Test): console_pattern =3D 'Kernel command line: %s' % kernel_command_line self.wait_for_console_pattern(console_pattern) =20 + def test_mips_malta_cpio(self): + """ + :avocado: tags=3Darch:mips + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:big + """ + deb_url =3D ('http://snapshot.debian.org/archive/debian/' + '20160601T041800Z/pool/main/l/linux/' + 'linux-image-4.5.0-2-4kc-malta_4.5.5-1_mips.deb') + deb_hash =3D 'a3c84f3e88b54e06107d65a410d1d1e8e0f340f8' + deb_path =3D self.fetch_asset(deb_url, asset_hash=3Ddeb_hash) + kernel_path =3D self.extract_from_deb(deb_path, + '/boot/vmlinux-4.5.0-2-4kc-mal= ta') + initrd_url =3D ('https://github.com/groeck/linux-build-test/raw/' + '8584a59ed9e5eb5ee7ca91f6d74bbb06619205b8/rootfs/' + 'mips/rootfs.cpio.gz') + initrd_hash =3D 'bf806e17009360a866bf537f6de66590de349a99' + initrd_path_gz =3D self.fetch_asset(initrd_url, asset_hash=3Dinitr= d_hash) + initrd_path =3D self.workdir + "rootfs.cpio" + + with gzip.open(initrd_path_gz, 'rb') as f_in: + with open(initrd_path, 'wb') as f_out: + shutil.copyfileobj(f_in, f_out) + + self.vm.set_machine('malta') + self.vm.set_console() + kernel_command_line =3D (self.KERNEL_COMMON_COMMAND_LINE + + 'console=3DttyS0 console=3Dtty ' + + 'rdinit=3D/sbin/init noreboot') + self.vm.add_args('-kernel', kernel_path, + '-initrd', initrd_path, + '-append', kernel_command_line, + '-no-reboot') + self.vm.launch() + self.wait_for_console_pattern('Boot successful.') + + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', + 'BogoMIPS') + self.exec_command_and_wait_for_pattern('uname -a', + 'Debian') + self.exec_command_and_wait_for_pattern('reboot', + 'reboot: Restarting system') + def do_test_mips_malta32el_nanomips(self, kernel_url, kernel_hash): kernel_path_xz =3D self.fetch_asset(kernel_url, asset_hash=3Dkerne= l_hash) kernel_path =3D self.workdir + "kernel" --=20 2.19.1 From nobody Sun Apr 28 05:24:31 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1558628738; cv=none; d=zoho.com; s=zohoarc; b=Cuc4eybEV+OBlgYsQyd2Z/sgQMXwezkjnNY8e2AI1rTa94QMHHZHzTkbXmcVt0Epnz9YsG4bcyBNnz2N/mMT7s6pn+B4JvYCqWGCmlIS3d3ZMgEPu4RkGdJCf6+R57uWcNz19mriyvJ0mCIpgn8++dhyvxQcwfwhBD8dSmEcojE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558628738; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=1CN1+hmeRqyhzENLo1lRVIkezDGwSHYANWwJbh9tmqU=; b=nQ4PNMClHDTQD7Wf9kLpouq2dEqvtJoTtI+ZQR1tNp81LEKTe6/80PSjj+KqGXLID2vOAPmbX6kL2bbaIuaAcYXuxCBGT/i6AJj6ZqCfKEIasuViAhY6/DeK1m02efspz1cflY9PTcqPPoWePIm/Q/5FBVG0Q+AQJouCo7Nxnug= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 155862873805212.033688952852572; Thu, 23 May 2019 09:25:38 -0700 (PDT) Received: from localhost ([127.0.0.1]:40297 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqX4-0006yt-VV for importer@patchew.org; Thu, 23 May 2019 12:25:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37579) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTqQU-0002PD-LK for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTqQS-0006W0-Oz for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:42 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:33410) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTqQS-0006VJ-G6 for qemu-devel@nongnu.org; Thu, 23 May 2019 12:18:40 -0400 Received: by mail-wr1-x444.google.com with SMTP id d9so6971919wrx.0 for ; Thu, 23 May 2019 09:18:40 -0700 (PDT) Received: from x1.local (228.red-83-52-173.dynamicip.rima-tde.net. [83.52.173.228]) by smtp.gmail.com with ESMTPSA id q16sm10273222wmj.17.2019.05.23.09.18.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 09:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1CN1+hmeRqyhzENLo1lRVIkezDGwSHYANWwJbh9tmqU=; b=WTAtBtWf9uy70FNVkbFUQ4PVDAXEpYN4d3+IGodqLVbBMNgqpmNbBBsWaI8PU8oB40 aS5BZ4WFy4o4McSy5PFSU7MEp1X/kQIsqNj70M+D2hsSCNhLilo6b1jQJcwdNqD4j7gj tnDyZHVRlRvAB29DHFR2uaO9rrprl5zkafAsdOBdnInGpIfxl69cddhfg5g5LEQcWXMf aQ2KbHJ+2yCEkArbGD45/92G9zOFXw3h1kSfA4VionFx9LFBMMUid0heRTmMnAjdOGt+ 309Q/L+QdaqlUa7wxZ92yvQJeVIcyu0MDsA3hq+K9Uu61ZbESy29Vl+KYGAnTwZKpWB6 FUNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=1CN1+hmeRqyhzENLo1lRVIkezDGwSHYANWwJbh9tmqU=; b=KgzE0TAZTXJ1O+WVFeGCjsJB+GDQvVL6Aln4D4ZgLM5QPc4ZU1qZjbw8Ji6dV1Dj21 2Via54xLtIrriGNvTSHf1Tj5q8UAlgRmzxR0Ek4gY6lc9eh4plNrSRpzUQmpzXaEBPSS 6oEsA3IBgV9J6Wezmvr+ADqTaQFEm44q3y+DRS7cnJ5soQV/O0tnl/jTNpSqeaxkjD4L 5Qd3mDFL9nkozA71U+2eIS8lp0FMF+eUJcc0AuV3sUh8eRbeTu5aZ4ZjHALyUazBOyO5 CoJmqpdlYjmt/1d70O690QaiUKSE1M0mxh6Unk5UOkWLpZcET9FEymq8gFdpMnlCNslO w2Xg== X-Gm-Message-State: APjAAAUV/qwghvl0QO4YfGQNvUgrVS6DakNRawWPtIwtbGP49fUfyyYj Q/bdWzO7gpw8Rmt4LQM0V7s= X-Google-Smtp-Source: APXvYqwkugNIRsRog1C3bRR4+22Q/13fhe0UnvQsSdZWwZqDg7uvbBU1YgA7nBoKXbHGSBvIci4J8A== X-Received: by 2002:a5d:448e:: with SMTP id j14mr4960650wrq.158.1558628319334; Thu, 23 May 2019 09:18:39 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Eduardo Habkost , qemu-devel@nongnu.org, Cleber Rosa Date: Thu, 23 May 2019 18:18:32 +0200 Message-Id: <20190523161832.22490-5-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190523161832.22490-1-f4bug@amsat.org> References: <20190523161832.22490-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v2 4/4] BootLinuxSshTest: Test some userspace commands on Malta X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Aleksandar Rikalo , Aurelien Jarno , Aleksandar Markovic , Aleksandar Markovic , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This tests boot a full VM and check the serial console until the SSH daemon is running, then start a SSH session and run some commands. This test can be run using: $ avocado --show=3Dssh run -t arch:mips tests/acceptance/linux_ssh_mips_m= alta.py ssh: Entering interactive session. ssh: # uname -a ssh: Linux debian-mips 3.2.0-4-4kc-malta #1 Debian 3.2.51-1 mips GNU/Linux ssh: # lspci -d 11ab:4620 ssh: 00:00.0 Host bridge: Marvell Technology Group Ltd. GT-64120/64120A/6= 4121A System Controller (rev 10) ssh: # cat /sys/bus/i2c/devices/i2c-0/name ssh: SMBus PIIX4 adapter at 1100 ssh: # cat /proc/mtd ssh: dev: size erasesize name ssh: mtd0: 00100000 00010000 "YAMON" ssh: mtd1: 002e0000 00010000 "User FS" ssh: mtd2: 00020000 00010000 "Board Config" ssh: # md5sum /dev/mtd2ro ssh: 0dfbe8aa4c20b52e1b8bf3cb6cbdf193 /dev/mtd2ro ssh: # poweroff Acked-by: Aleksandar Markovic Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Eduardo Habkost --- v2: Add skipIf(getenv(CONTINUOUS_INTEGRATION)) --- MAINTAINERS | 1 + tests/acceptance/linux_ssh_mips_malta.py | 230 +++++++++++++++++++++++ tests/requirements.txt | 1 + 3 files changed, 232 insertions(+) create mode 100644 tests/acceptance/linux_ssh_mips_malta.py diff --git a/MAINTAINERS b/MAINTAINERS index 3cacd751bf..8c34d5c34b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -934,6 +934,7 @@ M: Aurelien Jarno R: Aleksandar Rikalo S: Maintained F: hw/mips/mips_malta.c +F: tests/acceptance/linux_ssh_mips_malta.py =20 Mipssim M: Aleksandar Markovic diff --git a/tests/acceptance/linux_ssh_mips_malta.py b/tests/acceptance/li= nux_ssh_mips_malta.py new file mode 100644 index 0000000000..aafb0c39f6 --- /dev/null +++ b/tests/acceptance/linux_ssh_mips_malta.py @@ -0,0 +1,230 @@ +# Functional test that boots a VM and run commands via a SSH session +# +# Copyright (c) Philippe Mathieu-Daud=C3=A9 +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import os +import re +import base64 +import logging +import paramiko +import time + +from avocado import skipIf +from avocado_qemu import Test +from avocado.utils import process +from avocado.utils import archive + + +class LinuxSSH(Test): + + timeout =3D 150 # Not for 'configure --enable-debug --enable-debug-tcg' + + KERNEL_COMMON_COMMAND_LINE =3D 'printk.time=3D0 ' + VM_IP =3D '127.0.0.1' + + IMAGE_INFO =3D { + 'be': { + 'image_url': 'https://people.debian.org/~aurel32/qemu/mips/' + 'debian_wheezy_mips_standard.qcow2', + 'image_hash': '8987a63270df67345b2135a6b7a4885a35e392d5', + 'rsa_hostkey': b'AAAAB3NzaC1yc2EAAAADAQABAAABAQCca1VitiyLAdQOl= d' + b'zT43IOEVJZ0wHD78GJi8wDAjMiYWUzNSSn0rXGQsINHuH= 5' + b'IlF+kBZsHinb/FtKCAyS9a8uCHhQI4SuB4QhAb0+39MlU= w' + b'Mm0CLkctgM2eUUZ6MQMQvDlqnue6CCkxN62EZYbaxmby7= j' + b'CQa1125o1HRKBvdGm2zrJWxXAfA+f1v6jHLyE8Jnu83eQ= +' + b'BFY25G+Vzx1PVc3zQBwJ8r0NGTRqy2//oWQP0h+bMsgeF= e' + b'KH/J3RJM22vg6+I4JAdBFcxnK+l781h1FuRxOn4O/Xslb= g' + b'go6WtB4V4TOsw2E/KfxI5IZ/icxF+swVcnvF46Hf3uQc/= 0' + b'BBqb', + }, + 'le': { + 'image_url': 'https://people.debian.org/~aurel32/qemu/mipsel/' + 'debian_wheezy_mipsel_standard.qcow2', + 'image_hash': '7866764d9de3ef536ffca24c9fb9f04ffdb45802', + 'rsa_hostkey': b'AAAAB3NzaC1yc2EAAAADAQABAAABAQClXJlBT71HL5yKv= v' + b'gfC7jmxSWx5zSBCzET6CLZczwAafSIs7YKfNOy/dQTxhu= k' + b'yIGFUugZFoF3E9PzdhunuyvyTd56MPoNIqFbb5rGokwU5= I' + b'TOx3dBHZR0mClypL6MVrwe0bsiIb8GhF1zioNwcsaAZnA= i' + b'KfXStVDtXvn/kLLq+xLABYt48CC5KYWoFaCoICskLAY+q= o' + b'L+LWyAnQisj4jAH8VSaSKIImFpfkHWEXPhHcC4ZBlDKtn= H' + b'po9vhfCHgnfW3Pzrqmk8BI4HysqPFVmJWkJGlGUL+sGeg= 3' + b'ZZolAYuDXGuBrw8ooPJq2v2dOH+z6dyD2q/ypmAbyPqj5= C' + b'rc8H', + }, + } + + def wait_for_console_pattern(self, success_message, + failure_message=3D'Oops'): + console =3D self.vm.console_socket.makefile() + console_logger =3D logging.getLogger('console') + while True: + msg =3D console.readline() + console_logger.debug(msg.strip()) + if success_message in msg: + break + if failure_message in msg: + fail =3D 'Failure message found in console: %s' % failure_= message + self.fail(fail) + + def get_portfwd(self): + res =3D self.vm.command('human-monitor-command', + command_line=3D'info usernet') + line =3D res.split('\r\n')[2] + port =3D re.split(r'.*TCP.HOST_FORWARD.*127\.0\.0\.1 (\d+)\s+10\..= *', + line)[1] + self.log.debug("sshd listening on port:" + port) + return port + + def ssh_connect(self, username, password, rsa_hostkey_b64=3DNone): + self.ssh_logger =3D logging.getLogger('ssh') + self.ssh_username =3D username + self.ssh_ps1 =3D '# ' if username is 'root' else '$ ' + self.ssh_client =3D paramiko.SSHClient() + port =3D self.get_portfwd() + if rsa_hostkey_b64: + rsa_hostkey_bin =3D base64.b64decode(rsa_hostkey_b64) + rsa_hostkey =3D paramiko.RSAKey(data =3D rsa_hostkey_bin) + ipport =3D '[%s]:%s' % (self.VM_IP, port) + self.ssh_logger.debug('ipport ' + ipport) + self.ssh_client.get_host_keys().add(ipport, 'ssh-rsa', rsa_hos= tkey) + for i in range(10): + try: + self.ssh_client.connect(self.VM_IP, int(port), + username, password, banner_timeout= =3D90) + self.ssh_logger.info("Entering interactive session.") + return + except: + time.sleep(4) + pass + self.fail("sshd timeout") + + def ssh_disconnect_vm(self): + self.ssh_client.close() + + def ssh_command(self, command, is_root=3DTrue): + self.ssh_logger.info(self.ssh_ps1 + command) + stdin, stdout, stderr =3D self.ssh_client.exec_command(command) + stdout_lines =3D [line.strip('\n') for line in stdout] + for line in stdout_lines: + self.ssh_logger.info(line) + stderr_lines =3D [line.strip('\n') for line in stderr] + for line in stderr_lines: + self.ssh_logger.warning(line) + return stdout_lines, stderr_lines + + def boot_debian_wheezy_image_and_ssh_login(self, endianess, kernel_pat= h): + image_url =3D self.IMAGE_INFO[endianess]['image_url'] + image_hash =3D self.IMAGE_INFO[endianess]['image_hash'] + image_path =3D self.fetch_asset(image_url, asset_hash=3Dimage_hash) + rsa_hostkey_b64 =3D self.IMAGE_INFO[endianess]['rsa_hostkey'] + + self.vm.set_machine('malta') + self.vm.set_console() + kernel_command_line =3D (self.KERNEL_COMMON_COMMAND_LINE + + 'console=3DttyS0 root=3D/dev/sda1') + self.vm.add_args('-no-reboot', + '-kernel', kernel_path, + '-append', kernel_command_line, + '-hda', image_path, + '-netdev', 'user,id=3Dvnet,hostfwd=3D:127.0.0.1:0= -:22', + '-device', 'pcnet,netdev=3Dvnet') + self.vm.launch() + + self.log.info('VM launched, waiting for sshd') + console_pattern =3D 'Starting OpenBSD Secure Shell server: sshd' + self.wait_for_console_pattern(console_pattern) + self.log.info('sshd ready') + + self.ssh_connect('root', 'root', rsa_hostkey_b64=3Drsa_hostkey_b64) + + def shutdown_via_ssh(self): + self.ssh_command('poweroff') + self.ssh_disconnect_vm() + self.wait_for_console_pattern('Power down') + + def run_common_commands(self): + stdout, stderr =3D self.ssh_command('lspci -d 11ab:4620') + self.assertIn(True, ["GT-64120" in line for line in stdout]) + + stdout, stderr =3D self.ssh_command('cat /sys/bus/i2c/devices/i2c-= 0/name') + self.assertIn(True, ["SMBus PIIX4 adapter" in line + for line in stdout]) + + stdout, stderr =3D self.ssh_command('cat /proc/mtd') + self.assertIn(True, ["YAMON" in line + for line in stdout]) + + # Empty 'Board Config' + stdout, stderr =3D self.ssh_command('md5sum /dev/mtd2ro') + self.assertIn(True, ["0dfbe8aa4c20b52e1b8bf3cb6cbdf193" in line + for line in stdout]) + + def do_test_mips_malta(self, endianess, kernel_path, uname_m): + self.boot_debian_wheezy_image_and_ssh_login(endianess, kernel_path) + + stdout, stderr =3D self.ssh_command('uname -a') + self.assertIn(True, [uname_m + " GNU/Linux" in line for line in st= dout]) + + self.run_common_commands() + self.shutdown_via_ssh() + + @skipIf(os.getenv('CONTINUOUS_INTEGRATION'), 'Running on Travis-CI') + def test_mips_malta32eb_kernel3_2_0(self): + """ + :avocado: tags=3Darch:mips + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:big + :avocado: tags=3Ddevice:pcnet32 + """ + kernel_url =3D ('https://people.debian.org/~aurel32/qemu/mips/' + 'vmlinux-3.2.0-4-4kc-malta') + kernel_hash =3D '592e384a4edc16dade52a6cd5c785c637bcbc9ad' + kernel_path =3D self.fetch_asset(kernel_url, asset_hash=3Dkernel_h= ash) + + self.do_test_mips_malta('be', kernel_path, 'mips') + + @skipIf(os.getenv('CONTINUOUS_INTEGRATION'), 'Running on Travis-CI') + def test_mips_malta32el_kernel3_2_0(self): + """ + :avocado: tags=3Darch:mipsel + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:little + :avocado: tags=3Ddevice:pcnet32 + """ + kernel_url =3D ('https://people.debian.org/~aurel32/qemu/mipsel/' + 'vmlinux-3.2.0-4-4kc-malta') + kernel_hash =3D 'a66bea5a8adaa2cb3d36a1d4e0ccdb01be8f6c2a' + kernel_path =3D self.fetch_asset(kernel_url, asset_hash=3Dkernel_h= ash) + + self.do_test_mips_malta('le', kernel_path, 'mips') + + @skipIf(os.getenv('CONTINUOUS_INTEGRATION'), 'Running on Travis-CI') + def test_mips_malta64eb_kernel3_2_0(self): + """ + :avocado: tags=3Darch:mips64 + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:big + :avocado: tags=3Ddevice:pcnet32 + """ + kernel_url =3D ('https://people.debian.org/~aurel32/qemu/mips/' + 'vmlinux-3.2.0-4-5kc-malta') + kernel_hash =3D 'db6eea7de35d36c77d8c165b6bcb222e16eb91db' + kernel_path =3D self.fetch_asset(kernel_url, asset_hash=3Dkernel_h= ash) + self.do_test_mips_malta('be', kernel_path, 'mips64') + + @skipIf(os.getenv('CONTINUOUS_INTEGRATION'), 'Running on Travis-CI') + def test_mips_malta64el_kernel3_2_0(self): + """ + :avocado: tags=3Darch:mips64el + :avocado: tags=3Dmachine:malta + :avocado: tags=3Dendian:little + :avocado: tags=3Ddevice:pcnet32 + """ + kernel_url =3D ('https://people.debian.org/~aurel32/qemu/mipsel/' + 'vmlinux-3.2.0-4-5kc-malta') + kernel_hash =3D '6a7f77245acf231415a0e8b725d91ed2f3487794' + kernel_path =3D self.fetch_asset(kernel_url, asset_hash=3Dkernel_h= ash) + self.do_test_mips_malta('le', kernel_path, 'mips64') diff --git a/tests/requirements.txt b/tests/requirements.txt index 002ded6a22..3ae0e29ad7 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -2,3 +2,4 @@ # in the tests/venv Python virtual environment. For more info, # refer to: https://pip.pypa.io/en/stable/user_guide/#id1 avocado-framework=3D=3D68.0 +paramiko --=20 2.19.1