From patchwork Mon Jan 20 19:43:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wainer dos Santos Moschetta X-Patchwork-Id: 11342787 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4505D139A for ; Mon, 20 Jan 2020 19:43:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1906A2253D for ; Mon, 20 Jan 2020 19:43:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XF0PzpLk" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726901AbgATTn2 (ORCPT ); Mon, 20 Jan 2020 14:43:28 -0500 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:59687 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726843AbgATTn1 (ORCPT ); Mon, 20 Jan 2020 14:43:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579549405; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VTqpjA5GA7gYa91oDRULWOFt2VzDjQR3x+cfcyYPfd8=; b=XF0PzpLkNpDlI9x8zj9mIkAWn49KPC5EdZ8FZcb9hhWxOqySznmpgTcPgKlp70f/DZJiXO jiSk25hLr8JeUg5UECXFizDaBwGgUE+DBtV+Aw02207B/Pt3N+FTGyJ02x916hAendGBDz w5PYUPeewmHCr1dQlG4GSiGrD6VwIvc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-382-XZz3UEhWMfGWy5VvkoMV5A-1; Mon, 20 Jan 2020 14:43:21 -0500 X-MC-Unique: XZz3UEhWMfGWy5VvkoMV5A-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8996D800D50 for ; Mon, 20 Jan 2020 19:43:20 +0000 (UTC) Received: from localhost.localdomain (ovpn-116-78.gru2.redhat.com [10.97.116.78]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2DA235C1BB; Mon, 20 Jan 2020 19:43:16 +0000 (UTC) From: Wainer dos Santos Moschetta To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, drjones@redhat.com Subject: [kvm-unit-tests v2 1/2] README: Fix markdown formatting Date: Mon, 20 Jan 2020 16:43:09 -0300 Message-Id: <20200120194310.3942-2-wainersm@redhat.com> In-Reply-To: <20200120194310.3942-1-wainersm@redhat.com> References: <20200120194310.3942-1-wainersm@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org There are formatting issues that prevent README.md from being rendered correctly in a browser. This patch fixes the following categories of issues: - blocks which aren't indented correctly; - texts wrapped in <> which need escape, or be replaced with another thing. Also some inline commands are marked with ``. Signed-off-by: Wainer dos Santos Moschetta Reviewed-by: Andrew Jones --- README.md | 72 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 1a9a4ab..367c92a 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,11 @@ To create the test images do: ./configure make -in this directory. Test images are created in .//*.flat +in this directory. Test images are created in ./ARCH/\*.flat ## Standalone tests -The tests can be built as standalone -To create and use standalone tests do: +The tests can be built as standalone. To create and use standalone tests do: ./configure make standalone @@ -26,7 +25,7 @@ To create and use standalone tests do: (go to somewhere) ./some-test -'make install' will install all tests in PREFIX/share/kvm-unit-tests/tests, +`make install` will install all tests in PREFIX/share/kvm-unit-tests/tests, each as a standalone test. @@ -42,39 +41,40 @@ or: to run them all. -To select a specific qemu binary, specify the QEMU= +By default the runner script searches for a suitable qemu binary in the system. +To select a specific qemu binary though, specify the QEMU=path/to/binary environment variable: QEMU=/tmp/qemu/x86_64-softmmu/qemu-system-x86_64 ./x86-run ./x86/msr.flat To select an accelerator, for example "kvm" or "tcg", specify the -ACCEL= environment variable: +ACCEL=name environment variable: ACCEL=kvm ./x86-run ./x86/msr.flat # Unit test inputs -Unit tests use QEMU's '-append ' parameter for command line +Unit tests use QEMU's '-append args...' parameter for command line inputs, i.e. all args will be available as argv strings in main(). Additionally a file of the form -KEY=VAL -KEY2=VAL -... + KEY=VAL + KEY2=VAL + ... -may be passed with '-initrd ' to become the unit test's environ, -which can then be accessed in the usual ways, e.g. VAL = getenv("KEY") -Any key=val strings can be passed, but some have reserved meanings in +may be passed with '-initrd file' to become the unit test's environ, +which can then be accessed in the usual ways, e.g. VAL = getenv("KEY"). + Any key=val strings can be passed, but some have reserved meanings in the framework. The list of reserved environment variables is below - QEMU_ACCEL ... either kvm or tcg - QEMU_VERSION_STRING ... string of the form `qemu -h | head -1` - KERNEL_VERSION_STRING ... string of the form `uname -r` + QEMU_ACCEL either kvm or tcg + QEMU_VERSION_STRING string of the form `qemu -h | head -1` + KERNEL_VERSION_STRING string of the form `uname -r` Additionally these self-explanatory variables are reserved - QEMU_MAJOR, QEMU_MINOR, QEMU_MICRO, KERNEL_VERSION, KERNEL_PATCHLEVEL, - KERNEL_SUBLEVEL, KERNEL_EXTRAVERSION + QEMU_MAJOR, QEMU_MINOR, QEMU_MICRO, KERNEL_VERSION, KERNEL_PATCHLEVEL, + KERNEL_SUBLEVEL, KERNEL_EXTRAVERSION # Guarding unsafe tests @@ -85,42 +85,48 @@ host. kvm-unit-tests provides two ways to handle tests like those. unittests.cfg file. When a unit test is in the nodefault group it is only run when invoked - a) independently, arch-run arch/test - b) by specifying any other non-nodefault group it is in, - groups = nodefault,mygroup : ./run_tests.sh -g mygroup - c) by specifying all tests should be run, ./run_tests.sh -a + a) independently, `ARCH-run ARCH/test` + + b) by specifying any other non-nodefault group it is in, + groups = nodefault,mygroup : `./run_tests.sh -g mygroup` + + c) by specifying all tests should be run, `./run_tests.sh -a` 2) Making the test conditional on errata in the code, + ``` if (ERRATA(abcdef012345)) { do_unsafe_test(); } + ``` With the errata condition the unsafe unit test is only run when - a) the ERRATA_abcdef012345 environ variable is provided and 'y' - b) the ERRATA_FORCE environ variable is provided and 'y' - c) by specifying all tests should be run, ./run_tests.sh -a + a) the ERRATA_abcdef012345 environment variable is provided and 'y' + + b) the ERRATA_FORCE environment variable is provided and 'y' + + c) by specifying all tests should be run, `./run_tests.sh -a` (The -a switch ensures the ERRATA_FORCE is provided and set to 'y'.) -The errata.txt file provides a mapping of the commits needed by errata +The ./errata.txt file provides a mapping of the commits needed by errata conditionals to their respective minimum kernel versions. By default, when the user does not provide an environ, then an environ generated -from the errata.txt file and the host's kernel version is provided to +from the ./errata.txt file and the host's kernel version is provided to all unit tests. # Contributing ## Directory structure - .: configure script, top-level Makefile, and run_tests.sh - ./scripts: helper scripts for building and running tests - ./lib: general architecture neutral services for the tests - ./lib/: architecture dependent services for the tests - ./: the sources of the tests and the created objects/images + .: configure script, top-level Makefile, and run_tests.sh + ./scripts: helper scripts for building and running tests + ./lib: general architecture neutral services for the tests + ./lib/: architecture dependent services for the tests + ./: the sources of the tests and the created objects/images -See /README for architecture specific documentation. +See ./ARCH/README for architecture specific documentation. ## Style From patchwork Mon Jan 20 19:43:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wainer dos Santos Moschetta X-Patchwork-Id: 11342785 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B8B05921 for ; Mon, 20 Jan 2020 19:43:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8CF822253D for ; Mon, 20 Jan 2020 19:43:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Lr+tQeJT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726897AbgATTn0 (ORCPT ); Mon, 20 Jan 2020 14:43:26 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:21301 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726607AbgATTn0 (ORCPT ); Mon, 20 Jan 2020 14:43:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579549405; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9HQNrpu01ujUeqOXt7lXDMYnSe4YCnqq+ahF9f2gdqE=; b=Lr+tQeJTM3OTiE5N1iR5CM4iM1/wN0N4jGGmJ6oinrYNwXBHqbOapbx4Pch9nW0gFpab5C 512MMb3L5632yJn8c7Avdv9dcJ3tUzcbdMSdMhj2Df3THBVhcvola64HexhGKhKy2OdOHg BG4nenRa4jIs6YrLJiXvKuTzQ10We1M= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-283-sL5StgVQPq6ia0i82O1j8Q-1; Mon, 20 Jan 2020 14:43:24 -0500 X-MC-Unique: sL5StgVQPq6ia0i82O1j8Q-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3789C804703 for ; Mon, 20 Jan 2020 19:43:23 +0000 (UTC) Received: from localhost.localdomain (ovpn-116-78.gru2.redhat.com [10.97.116.78]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3055F5C1BB; Mon, 20 Jan 2020 19:43:20 +0000 (UTC) From: Wainer dos Santos Moschetta To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, drjones@redhat.com Subject: [kvm-unit-tests v2 2/2] README: Add intro about the configuration file Date: Mon, 20 Jan 2020 16:43:10 -0300 Message-Id: <20200120194310.3942-3-wainersm@redhat.com> In-Reply-To: <20200120194310.3942-1-wainersm@redhat.com> References: <20200120194310.3942-1-wainersm@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org The 'Guarding unsafe tests' section mention the unittests.cfg file which was never introduced before. In this change it was added a section with a few words about the tests configuration file (unittests.cfg). Signed-off-by: Wainer dos Santos Moschetta --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 367c92a..763759e 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,17 @@ ACCEL=name environment variable: ACCEL=kvm ./x86-run ./x86/msr.flat +# Tests configuration file + +The test case may need specific runtime configurations, for +example, extra QEMU parameters and time to execute limited, the +runner script reads those information from a configuration file found +at ./ARCH/unittests.cfg. + +The configuration file also contain the groups (if any) each test belong +to. So that a given group can be executed by specifying its name in the +runner's -g option. + # Unit test inputs Unit tests use QEMU's '-append args...' parameter for command line