From nobody Mon Nov 10 17:57:12 2025 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=1558395370; cv=none; d=zoho.com; s=zohoarc; b=hFqyaFKoRZmzSYA+UmMccuGlG6sQA8IMHiLseuhvA8dMNXmOrNPowipiENg7xQgfGJox7zu4y1oj0NHv+bkzoYPEeE3LFEAYCAj4j4kP1wHES5elkVeS19yEMFVSwNVJoC5wsQvjLQdHQ2MxGJHOjZQTO+uaYg0I5AxuDOoNzBI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558395370; 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=LyeC5SIkWSswRpgMCoLH46DfpqNwHEFcApMfwNNH+d3nwuLn46wWKFCmG5RwPkA5vPVemt7ft797PqtZBF7uduhuJZFHgVT1YfDCDVbobgQwrTcctWu6S0uj2cmUM5fH5apR8La0t9af0AODq5W6oqgDt2DN1+fYeQU7IgFOnH4= 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 1558395370395307.0016464046997; Mon, 20 May 2019 16:36:10 -0700 (PDT) Received: from localhost ([127.0.0.1]:43691 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSrp2-0002vn-8F for importer@patchew.org; Mon, 20 May 2019 19:36:00 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47207) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSrYu-0005nv-D5 for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSrYs-0004uW-Fs for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:20 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:44519) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSrYq-0004qi-I1 for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:18 -0400 Received: by mail-wr1-x444.google.com with SMTP id w13so5630663wru.11 for ; Mon, 20 May 2019 16:19:15 -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 b10sm44261849wrh.59.2019.05.20.16.19.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 16:19:13 -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=jVAWmZKmI6y+r6VDFVkTBi6LAZNWENUiNHOYXG6qPOkHgcZGB5Ci0TKw4Bxrfo5s+A 9dXyuPzOn0Dgjv6kdVigPzGpiwi81AI7Je9l6f49uG1YeD4pNBBwBb5Xm0n5XWcjWgir tLWAx3uWve9ygWbyP7/M9RmGnGuK9TvgCjty2a3eEj88z8lBMgbpasEc5u8buNf1iSJM aUMFmEP05m+a9QnJt/+GUEvLvoRNCpd8gPd7u+XOUFqO5lABhijWVtTL3NJ66kNcZAi2 2ab9bQhiDLjRDl5Fd1WxQzTSSnY0BImL77Az9EbEKvxaLg8Li01JgLAmhMFlMtLheAUZ uClQ== 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=OuLOvYyqrAbXYTCQmviQ6LJxGrkGYNwMZlIOQTdAFjTZgXJjoDQJfnAYtZoOs/VMCD gZdQDMyapJJFwYzFwaXqPKlijLsfiDSdtQZQRdgPBIPf3Ksozw5GK6cFfFjxYAhEoDOS bJ5ewLWu8TVjnrZgfmoc282ICcm2zSN8FrPGhOORxVafvOfwsrACL4jrBD+3L1ij/RBy XbvxGxXYB1un+k8h1gEcjL1rfzfiSt6vMW/+urxujGQAq/N4ueHn8q6qoUbfbQyBPaH2 hDR09Ux+GWBwb8IpNPa2oBXaVEYs1JDiVfpBfSzQ8stOC76XU1z/6y8AxqXRdK99CaEe rCgA== X-Gm-Message-State: APjAAAXkoHYkrPBlJawXKQeGbDi6bEJx54/ZcGoFdqfek1+Dc/yRd4+T 3uqpDQj8Sfeknw4b4yyIHG0c9sO17hM= X-Google-Smtp-Source: APXvYqw6eP1t6lpsFsk5GLbbrjCMA39Gky8ZVPcE6rBeSlAEJgU+YIESrnJ6cQ5Iqg3RNEVKw6TsOQ== X-Received: by 2002:a5d:638a:: with SMTP id p10mr21118903wru.273.1558394353844; Mon, 20 May 2019 16:19:13 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Tue, 21 May 2019 01:19:07 +0200 Message-Id: <20190520231910.12184-2-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190520231910.12184-1-f4bug@amsat.org> References: <20190520231910.12184-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 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: Eduardo Habkost , Aleksandar Rikalo , Caio Carrara , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Markovic , Aleksandar Markovic , Cleber Rosa , =?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 Mon Nov 10 17:57:12 2025 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=1558396119; cv=none; d=zoho.com; s=zohoarc; b=oUFi0hjqAFqy2ItsPvvOMzrY3igwE87hiXOFt7UNhbBww+BAdlAg1GNJuwFOVaLf9kgY4Lsd/gyIFtn84oOAPtTdda/OVuN87yjAeJY3Ut3Sg3+j/xLbvKQsnZkWdRpKbYIt5PBH7iDDVvSYz6E3rvB98N3qTrCeuRd7R5Sq3jk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558396119; 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=DPXzLTNqBU4l3fARPnx0lJTvBFyc2Ro9xYgrHLPJuXU=; b=X31NawJ7MscbZ68sU2/zR+VYZ/DvBIEotZDE9V5Rzzg/3LZbGw06RNOBEMAKk1bP1Hja3kX2FdxDzyhytxFLXb49VB3D9x747+sCcFRmezWicNdx05WfqekST1BVAxWG/onIrBle3xApZGAwpDijz5mN9wJhzOPkE6uXGq64anc= 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 155839611933879.25991477781474; Mon, 20 May 2019 16:48:39 -0700 (PDT) Received: from localhost ([127.0.0.1]:43858 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSs1B-00037o-DV for importer@patchew.org; Mon, 20 May 2019 19:48:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47208) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSrYu-0005nw-D3 for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSrYs-0004uc-GL for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:20 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:43789) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSrYq-0004rr-IG for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:17 -0400 Received: by mail-wr1-x442.google.com with SMTP id r4so16354087wro.10 for ; Mon, 20 May 2019 16:19:16 -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 b10sm44261849wrh.59.2019.05.20.16.19.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 16:19:14 -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=DPXzLTNqBU4l3fARPnx0lJTvBFyc2Ro9xYgrHLPJuXU=; b=KsqsJYh36ENBAbVnlh8Up/0HiOZVg2EU9AaRSR8cQIn37Mn4QFUvF7Q830vnb9br4P 4sKUf43EJHROR/Z/X5UgBMlDbhE1jtCVgd5Df4wEepn1ChfUX8L+8R1BZZSaXH1auADZ neLZLPp+f7NQ8NhlgLwludJXqMyTCI8zOnlJRJV3fycxEMD0x8y00jV3T7RGeQ5urnJo lvNxC1K/kCPpYmLcNWjIuqhFFGbnuLe/0DveT/zpbpCHY+vdk7AszDLfiVHaRELoLvw1 fD9CIo3de9wpS2rLpvLRic/G7NjxODzbnCsrk/3oPAbKqZOqJRSWouQnNesrfHTsFpIr ZENw== 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=DPXzLTNqBU4l3fARPnx0lJTvBFyc2Ro9xYgrHLPJuXU=; b=fuwbdQv2/m6cFmggcRa0F98BcI9f6MvYuq4R0bDzDWSex2t1R+Yk93icsWaJWZDUSW wrhPz6lxuNigOCBYLWGNEUf7DpRlPe/Go0szd5fH7qtAr4k7PIN86z0IkUpT6gjWu2KG NOIpmrt/QQvLzwkAIJMCZ8B7BKXbd2P/Uk2YIxU8Jr5LIRCCcRMQiawj924IC5VaZ4Vn iLzc8ELEyRdd2v5K0IANljOV8CSVA1heWz4IZyt9AcNdfoMSdPBS922LHy8OzyQW+cm1 HXt6N6d7+Yqz5Nw3+wGYnFHmzBDo6Iqp6pbfDjHpXDd7g5UuFB0HThGIBo2Kb5GGfGXa IU9w== X-Gm-Message-State: APjAAAVyfDC2VBfLjEXbpikrQNQQ94iakU+sxtGBrMwjzEb9J6GOURsw qme4Cz6H6Rbv+fA5/SPIvLEFwx+gwYY= X-Google-Smtp-Source: APXvYqyvqzK6t+uU680yLHIIKv2BiCIntyUt8vupVLMoCosstvY3X97AEFGq5s4z+bZqqBNKMArmbw== X-Received: by 2002:adf:9794:: with SMTP id s20mr35026827wrb.104.1558394354927; Mon, 20 May 2019 16:19:14 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Tue, 21 May 2019 01:19:08 +0200 Message-Id: <20190520231910.12184-3-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190520231910.12184-1-f4bug@amsat.org> References: <20190520231910.12184-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 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: Eduardo Habkost , Aleksandar Rikalo , Caio Carrara , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Markovic , Aleksandar Markovic , Cleber Rosa , Aurelien Jarno 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 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Aleksandar Markovic Tested-by: Cleber Rosa --- tests/acceptance/boot_linux_console.py | 58 ++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot= _linux_console.py index 6aa084e049..1c330871c0 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -10,6 +10,8 @@ =20 import os import logging +import lzma +import shutil =20 from avocado_qemu import Test from avocado.utils import process @@ -136,6 +138,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 Mon Nov 10 17:57:12 2025 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=1558395594; cv=none; d=zoho.com; s=zohoarc; b=YrgCwvRQMwpL+n1cawOEmRwZWlTgODRIA+gk3vijVLuhdULsp611YTetwBb8cg7KZs1Jr/TLe7B/7DH8F2rwe9jMfpxBL12pUF8v5ttr5qOgHh5259KVz2Zu+fgtYUNk/hBMtnucc06h270DWFq+aBb3VFRvkgiUiCDIqN3XvgA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558395594; 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=AQeFho+GAF0XNyv3/66Q7+XaAILCa23wijwHXatigto=; b=iyoHpR84L1bcYtVp3qVk6RLmxxbqbR/8D00GD8mTEXiMFebSrISiji25jBNmgF6AMgCAIAaFh+uI45bhMvQu61zw92HqkPB7EWd3aEwl38GlG3JXZ2RcgRkKu0P6cUW6zlV65aMjlc9XULFe15rXdjgB5MzylgSHQmJG75gYTWc= 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 1558395594670209.72015678573644; Mon, 20 May 2019 16:39:54 -0700 (PDT) Received: from localhost ([127.0.0.1]:43735 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSrsi-00068h-Lu for importer@patchew.org; Mon, 20 May 2019 19:39:48 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47260) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSrYv-0005pM-Tq for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSrYu-0004we-CW for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:21 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:42801) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSrYs-0004sq-Cw for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:18 -0400 Received: by mail-wr1-x442.google.com with SMTP id l2so16381291wrb.9 for ; Mon, 20 May 2019 16:19:17 -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 b10sm44261849wrh.59.2019.05.20.16.19.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 16:19:15 -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=AQeFho+GAF0XNyv3/66Q7+XaAILCa23wijwHXatigto=; b=GealTQ1/MAq8B1XUh0r4MAFDG57cwOkNLgMg1rzn0Jb/J+zasngSn/fLYngnKtRddg 09yxNv5MZ0Hjvd1GnSVzsz9kixgoNaS1oN/WnfVZ69v8TxYAt7Tt86rCVPAXDYA+g2cx HcR5BBB6lUxnVWIipjL6jiiOBrUS+zqOIGJb70OE1YppYrajNqgaoL2PF+f35a/E4iYd seyachZ0LRRzjM/rQKhL5BJjS4tySJYbRdJjHYU6cnNOj2Dj5bTLsTYjNW1DrY7i9isS eBlo0dxsgSuEpNNs1s/584iL8LUb2JzPFlm7pnEnTttg1r64tcapxnZmJ/P3D/zoi+Jo 2Sbg== 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=AQeFho+GAF0XNyv3/66Q7+XaAILCa23wijwHXatigto=; b=fhyxlMHTJirsCvyr2KD7QRp1b1+lBk3gpZ7SIm0LXf+As8+YiF7R2tLBsUKi1qH+RV NBkuiRZVK7nDw/HWCjo5HIb83O3q8ejN8DlqSKTPEbEkSpWuccBox/pK8OV034fu/0t7 YUwdClOzl8FZdO2IzSPNRaxwc+nAOWu76ea+VPNk+HLQy+/3QuyqOjUoDeQ3EYsb+rgu Ru+f2AympKZZxiJ3CvDeKZXp7t2/zs35JI1bLhgRY61L5JECg2hOVZjLq993+8y5U7jx Ydp76DSaTiGwgTX9k+B7jFXnTiOjbqUecHX3SE41+B0XlUsxz+Ol9lbzpwYzRx7aFVaK ogdQ== X-Gm-Message-State: APjAAAVfVzl915V5NTGlsFjjM38zwGzqs3X2lx45VjkyvcCKQY6D1iAk iF9YkpnrBsSUaw0srPvb9+LB7smuf6A= X-Google-Smtp-Source: APXvYqzfFPII2wd1qhWENl6tWnfA14B24Vq1U98pPBCfw5iOFb52KXHsIkRnwQK3MAF7l4GhobGTcg== X-Received: by 2002:adf:fe49:: with SMTP id m9mr45979193wrs.73.1558394356042; Mon, 20 May 2019 16:19:16 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Tue, 21 May 2019 01:19:09 +0200 Message-Id: <20190520231910.12184-4-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190520231910.12184-1-f4bug@amsat.org> References: <20190520231910.12184-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 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: Eduardo Habkost , Aleksandar Rikalo , Caio Carrara , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Markovic , Aleksandar Markovic , Cleber Rosa , Aurelien Jarno 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 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Aleksandar Markovic Tested-by: Cleber Rosa --- 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 1c330871c0..60ea240ab6 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -11,6 +11,7 @@ import os import logging import lzma +import gzip import shutil =20 from avocado_qemu import Test @@ -47,6 +48,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 @@ -138,6 +144,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 Mon Nov 10 17:57:12 2025 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=1558395514; cv=none; d=zoho.com; s=zohoarc; b=UgkNs1y57Zs0gJrX0p65CzkbD8vUm4XgdQxYjOjbp0jx2j0MU9ocUktgOikob1llq213zgv9XN3gTPRHJC5JiAoDhPmAd7e83YRS9JlcMWqLMcG1ovgYECBK/9QYe3kP8U24XRfuLpecIpZLpiP+y8kumCbrUmHzAHIgGpEDFzw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558395514; 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=pu2A0KfHNgovaSWOQISjqVHgyVxWcPDBEOyqTCPGifQ=; b=R4Ouh0OKeNnWig6TMTaptX7+oqCzBjYQGmRsoeEh4gBt8Lzr1aLX+PSxr8x5LEPENLtBsKgoNGuPKLeLA9WNekJsUMTM8JmoV8ep4ABomYsCYwmXv7+t3f3RNJwH4G+5U+U1mg5am+BSTzxpXN9DdgmMBCivCBzdb9NUzkL7dcI= 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 1558395514093394.37429253503376; Mon, 20 May 2019 16:38:34 -0700 (PDT) Received: from localhost ([127.0.0.1]:43717 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSrrP-00056I-1C for importer@patchew.org; Mon, 20 May 2019 19:38:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSrYx-0005rD-NB for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSrYu-0004xW-Se for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:23 -0400 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:54060) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSrYu-0004tx-IK for qemu-devel@nongnu.org; Mon, 20 May 2019 19:19:20 -0400 Received: by mail-wm1-x341.google.com with SMTP id 198so958857wme.3 for ; Mon, 20 May 2019 16:19:18 -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 b10sm44261849wrh.59.2019.05.20.16.19.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 16:19:16 -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=pu2A0KfHNgovaSWOQISjqVHgyVxWcPDBEOyqTCPGifQ=; b=aJZUUvDJxmM84shysYW0Uqtbnigg7lIa3R/yZ3MGMQyWYxTGHM8tf+6jhLIPF7ZeC5 zchjuhsLtu8Vd9LqVgFkA2d7D2JHnvUziQHARfYmbRnx9D7+sXmTanLA13mlmY0p9AhJ +jIYPbjX11wMom0OXrF7nV6LAdfcOVH2U3Peb4Y49NyxRDeU0PhyCklFj/zcdnIdZJwq eRHlXFnneMr2VECDQC5ID6fLZRaOnYsvUb27YHGpCpgN8b9ZG46zNWCsVe0upmEviPlF HuZvdv6vzhVoCHyqRiJjqS+BkD8rKRchHCUOqI1g3EwrTRPWtvmruKmksbmh8L+HXmGw ONXQ== 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=pu2A0KfHNgovaSWOQISjqVHgyVxWcPDBEOyqTCPGifQ=; b=Wz5vAFKOX0o/FKrrjRrmZUZKWiJuzkdLH6Cmy+TizgDlZmV7+cqqBk0weDR3VOkxqD RR3e9RUJa1gWpYf0LjUK75b5+Nck6q9SsvGV4uVLvrOjxiw8ytDBz0SibZSzx1c/GwSY f5kcHKBh2vBG0324dI1ExcCUTqO/yVfhpgDCfRLwvQk18YDjcDBwyBuyDlV3HdCNUEQD TlDZD2wRuORVkhfigQcVdJJtTP7C0yDq3K+0YGaDiaXdm3FwYTgsIObYqFazEMexfh+9 feN8Jp80JU3/qXtpcszZ4ycmJdsnmPCMIsuSO40ivn5+qgoGb4eMI/+lfKwsyiS1u2wt w2Tw== X-Gm-Message-State: APjAAAXo5IkmZ2U0DEE3C5HpiHW+hlkNxBomEnGcAY7NmxNGBW4w1nfY eNP7ipKRqh/vL1PVbpFAgPqDX82qmd0= X-Google-Smtp-Source: APXvYqzg+Bwsa1mDHIZjGYNMznp49NvR/gUBM4tNcObWi1Tro6q8o2AHxzncU939lFlbKY8Fae1N7g== X-Received: by 2002:a1c:7ed2:: with SMTP id z201mr981658wmc.113.1558394357471; Mon, 20 May 2019 16:19:17 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Tue, 21 May 2019 01:19:10 +0200 Message-Id: <20190520231910.12184-5-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190520231910.12184-1-f4bug@amsat.org> References: <20190520231910.12184-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::341 Subject: [Qemu-devel] [PATCH 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: Eduardo Habkost , Aleksandar Rikalo , Caio Carrara , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Markovic , Aleksandar Markovic , Cleber Rosa , Aurelien Jarno 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 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Eduardo Habkost Reviewed-by: Aleksandar Markovic --- TODO: do not run this tests by default, use the 'slow' tag --- MAINTAINERS | 1 + tests/acceptance/linux_ssh_mips_malta.py | 229 +++++++++++++++++++++++ tests/requirements.txt | 1 + 3 files changed, 231 insertions(+) create mode 100644 tests/acceptance/linux_ssh_mips_malta.py diff --git a/MAINTAINERS b/MAINTAINERS index 9424a490d6..69fa4b3abc 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..ceb530ff88 --- /dev/null +++ b/tests/acceptance/linux_ssh_mips_malta.py @@ -0,0 +1,229 @@ +# 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_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() + + def test_mips_malta32eb_kernel3_2_0(self): + """ + :avocado: tags=3Dslow + :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') + + def test_mips_malta32el_kernel3_2_0(self): + """ + :avocado: tags=3Dslow + :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') + + def test_mips_malta64eb_kernel3_2_0(self): + """ + :avocado: tags=3Dslow + :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') + + def test_mips_malta64el_kernel3_2_0(self): + """ + :avocado: tags=3Dslow + :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