From nobody Sun Feb 8 14:12:20 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 163655574438893.50215970648469; Wed, 10 Nov 2021 06:49:04 -0800 (PST) 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-548-oAlOGMheOYWAGDFaH_2-ug-1; Wed, 10 Nov 2021 09:49:01 -0500 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 4EFD21923761; Wed, 10 Nov 2021 14:48:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2E28479585; Wed, 10 Nov 2021 14:48:56 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id EDD934EA3D; Wed, 10 Nov 2021 14:48:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1AAEPQ7N020393 for ; Wed, 10 Nov 2021 09:25:26 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1BE512026D6B; Wed, 10 Nov 2021 14:25:26 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 169032026D60 for ; Wed, 10 Nov 2021 14:25:24 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6BBC5185A7B4 for ; Wed, 10 Nov 2021 14:25:24 +0000 (UTC) Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-533-IJuzwQ5fMB-JYMeapC8Rsg-1; Wed, 10 Nov 2021 09:25:22 -0500 Received: by mail-pj1-f46.google.com with SMTP id x7so1673016pjn.0 for ; Wed, 10 Nov 2021 06:25:22 -0800 (PST) Received: from localhost ([2400:ddc0:1000::b373:390c]) by smtp.gmail.com with ESMTPSA id x33sm12744109pfh.133.2021.11.10.06.25.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Nov 2021 06:25:20 -0800 (PST) X-MC-Unique: oAlOGMheOYWAGDFaH_2-ug-1 X-MC-Unique: IJuzwQ5fMB-JYMeapC8Rsg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gQnEZHQ0Fw7Z52kXRzyjPM9SZRtk7DCy5MnVRhptsFo=; b=RPuT3zN7pp4hbZBtVdIf/VqLivDJKICFHg7aSQgVfefkc7M+m8NCJnjkbOXcG1ZXyX Nf2ZI+ERSEBsO9UeuC/IRJYEOqjj50CwrWvUJbfT0eDyk6vudIanrytqHFvs/l5QOm2r rdSZuvdtfpQGABDcNPlcSGqIltq2GtBBvnP21KZkneuwViQjNTqYXNP7mvtpJLMQ6Esb AP3RG21diMOArxQXfTqGkLDhgtS8OkJqbPb0O2hsEUJ7zz/8hay9AwEZg14jyrQ2+QjJ Chze5SKyhaBcwqoG6iLKzwwt5kCMjQB0yy0If46NZuTORvjfGZcOwhGSHxms79/UvneC MYnQ== X-Gm-Message-State: AOAM532me0bBUIJ7a77r/kHREgfBpJX12A8EQiqExQ98VH5jZl/66Xwa mwlXYmNJqhvcFEO65u9Nq7wTX24La/wwRTV+ X-Google-Smtp-Source: ABdhPJxKQ//QtVAMKkudghHY3F7KyjE0C+cYOFRcMFeCf1q/FL5GUmdf+ybVXiCenGd53Ak7d6WI9w== X-Received: by 2002:a17:90a:5986:: with SMTP id l6mr64799pji.215.1636554320861; Wed, 10 Nov 2021 06:25:20 -0800 (PST) From: Luke Yue To: libvir-list@redhat.com Subject: [PATCH v3 12/12] tests: Test detach-device and detach-device-alias for test driver Date: Wed, 10 Nov 2021 22:24:31 +0800 Message-Id: <20211110142431.10622-13-lukedyue@gmail.com> In-Reply-To: <20211110142431.10622-1-lukedyue@gmail.com> References: <20211110142431.10622-1-lukedyue@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1636555746501100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Luke Yue --- tests/virshtest.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/tests/virshtest.c b/tests/virshtest.c index af2a70f5fb..8e5b397420 100644 --- a/tests/virshtest.c +++ b/tests/virshtest.c @@ -160,6 +160,8 @@ static char *custom_uri; "--connect", \ custom_uri =20 +# define TEST_XML_PATH abs_top_builddir "/../examples/xml/test" + static int testCompareListDefault(const void *data G_GNUC_UNUSED) { const char *const argv[] =3D { VIRSH_DEFAULT, "list", NULL }; @@ -437,6 +439,88 @@ static int testIOThreadPin(const void *data G_GNUC_UNU= SED) return testCompareOutputLit(exp, "", NULL, argv); } =20 +static int testCompareDetachDevice(const void *data G_GNUC_UNUSED) +{ + const char *const argv[] =3D { VIRSH_CUSTOM, "detach-device fc5\ + " TEST_XML_PATH "/testdevif.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevdiskcdrom.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevsound.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevhostdev.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevlease.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevcontroller.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevfs.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevrng.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevmem.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevshmem.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevwatchdog.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevinput.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevvsock.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevtpm.xml", + NULL }; + const char *exp =3D +"Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n\ +Device detached successfully\n\n"; + return testCompareOutputLit(exp, "", NULL, argv); +} + +static int testCompareDetachDeviceError(const void *data G_GNUC_UNUSED) +{ + const char *const argv[] =3D { VIRSH_CUSTOM, "detach-device fc5\ + " TEST_XML_PATH "/testdevtpm.xml;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevtpm.xml;\ + detach-device fc5 --live\ + " TEST_XML_PATH "/testdevmemballoon.xml", + NULL }; + const char *exp =3D +"Device detached successfully\n\n\n\n"; + const char *error_msg =3D +"error: Failed to detach device from " TEST_XML_PATH "/testdevtpm.xml\n\ +error: device not found: matching tpm device not found\n\ +error: Failed to detach device from " TEST_XML_PATH "/testdevmemballoon.xm= l\n\ +error: Operation not supported: detach of device 'memballoon' on running d= omain is not supported\n"; + return testCompareOutputLit(exp, error_msg, NULL, argv); +} + +static int testCompareDetachDeviceAlias(const void *data G_GNUC_UNUSED) +{ + const char *const argv[] =3D { VIRSH_CUSTOM, + "detach-device-alias fc5 ua-testCD;\ + detach-device fc5\ + " TEST_XML_PATH "/testdevdiskcdrom.xml", + NULL }; + const char *exp =3D "Device detach request sent successfully\n\n\n"; + const char *error_msg =3D +"error: Failed to detach device from " TEST_XML_PATH "/testdevdiskcdrom.xm= l\n\ +error: device not found: no target device hdb\n"; + return testCompareOutputLit(exp, error_msg, NULL, argv); +} + struct testInfo { const char *const *argv; const char *result; @@ -553,6 +637,18 @@ mymain(void) testIOThreadPin, NULL) !=3D 0) ret =3D -1; =20 + if (virTestRun("virsh detach-device", + testCompareDetachDevice, NULL) !=3D 0) + ret =3D -1; + + if (virTestRun("virsh detach-device (with failure)", + testCompareDetachDeviceError, NULL) !=3D 0) + ret =3D -1; + + if (virTestRun("virsh detach-device-alias", + testCompareDetachDeviceAlias, NULL) !=3D 0) + ret =3D -1; + /* It's a bit awkward listing result before argument, but that's a * limitation of C99 vararg macros. */ # define DO_TEST(i, result, ...) \ --=20 2.33.1