From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BF54DC369D9 for ; Wed, 30 Apr 2025 21:33:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=xmo9xN1PSA0IoBAWHe8BbDXkEvarT9n6PtCrQ5JBok4=; b=A1KQImKJuK3ypLDLxxtcLVJtV/ KAlcPbnFxHnBxY+car6hqei5pEMfmJIinBV0kzOpVKtacT/GOvzTO32fbikpe0yf8MWyqcPDvdgyK 2gg2VImy/CJEiHtoFQ0Ns5M6VG5sizwZdqMYvyDOn720i55rpTTByKNs1popntl4yvtj2GNcTx8uQ JkCd1a/cLwb2l+jThBMeo2f0nQnji6JtbJ1tlHAWRbB1u6fqE8CunRuUXwkCkmOYfd6/fo26pdvBu niXL04hGXdhMkS2pqE/Jawsn5iqw6Pt2HCW50GdRbMbER9vYtfFDf3fv3COGNAzBk+dDbyksvSGUv ceD9dR1Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uAF3G-0000000E5Lz-1e4f; Wed, 30 Apr 2025 21:33:10 +0000 Received: from mail-pj1-x1049.google.com ([2607:f8b0:4864:20::1049]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uAF1I-0000000E4dq-2Fds for kvm-riscv@lists.infradead.org; Wed, 30 Apr 2025 21:31:09 +0000 Received: by mail-pj1-x1049.google.com with SMTP id 98e67ed59e1d1-30a3c3014fcso231207a91.3 for ; Wed, 30 Apr 2025 14:31:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746048666; x=1746653466; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=xuwtCmee8bUCMaCxATpebgMybOMoD89ZAK9YtlS2GJU=; b=YswCFDk+XwEj2cXH5DCPbDCHl4edNaGAop9vP0mGPz14f2jrzcahLFIsAUZfTiLGqd nY4vNZ60bQh290JaIlzIYED365cQiOVyrAUcIFqMjuGuXiZB9745nTH6Efl4zaX/Fj5s /NI4ZL0qtgKN3IGYq8yllz+HGePkmwG4JeDymLYOU4E8GzYrtZyhq2sz7Ki9MXDpoOLm ZZaJqNkFR4Dseh4oLHcuIrMJrPIzxOl6uVALbPG9bABSHq600/Tr0KR/p+z6MOAeAM8M RPWgisKn28xcb/083mkAab3bFhaHFhkL5jYsLzysL2oAq5Z2KY7F9ecFfdVc83PiFPO2 ATFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746048666; x=1746653466; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=xuwtCmee8bUCMaCxATpebgMybOMoD89ZAK9YtlS2GJU=; b=HhsGejhK9swFonBti8QEsn9nETrUxFjkXwT0zjTCUtSEZnSZdaZPa7lQ5MLa10joxm 5VqhvcD0AsL4XVdnIEWBMJpXmtKSeeYSkeAHWfrPx5mn/RmzSAR8oJYqDZwV+YyIsVCU 1lZuz6GVl0mdRA7mWrZ+CClVwQarOQEdYRy+CwPrlgXT+rKpSTZRCl2protYb+PfJTom n+AY83NyNKveat+akrOkl818IYjt9EAD5XbsXt689R9unUhqijaKVN0WETYBsW8nfmQJ 8puugMr7qEpWaCkohr8MdzOQW9MuZCuk5Jx4CcC2rha7rQ1b+k4G09jGGAAbC8xanJNt oZYg== X-Forwarded-Encrypted: i=1; AJvYcCUU03WM0AYcjP84xYSsaYL4uLpe30ND9spVlZUF1KPpeBNaaZE4AupMyvY0Z/FIPjBk5ug8x3o9aMI=@lists.infradead.org X-Gm-Message-State: AOJu0YzTbZOa8UQjOwNXW1f/BW+MGyJUn9JPxzmUPc3WA7jn1yruY9es ohMGrsMRyhu1opitvKf24lLdEpBIxSYU+T1X9zRAt4pZWx/gnMO6049z7Tuot75HnmqIHeKl8CI 64A== X-Google-Smtp-Source: AGHT+IF7u1ROE1txYWgvgQtIPyo8p3omIkgPpGClJtR2AwQs8qcKywBRQB3ypqTRcMHct1VgXw598olvhbg= X-Received: from pjbsn16.prod.google.com ([2002:a17:90b:2e90:b0:2fc:2f33:e07d]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:da8e:b0:2ff:7b28:a51a with SMTP id 98e67ed59e1d1-30a34409defmr7144925a91.17.1746048666708; Wed, 30 Apr 2025 14:31:06 -0700 (PDT) Date: Wed, 30 Apr 2025 14:31:05 -0700 In-Reply-To: <20250222005943.3348627-3-vipinsh@google.com> Mime-Version: 1.0 References: <20250222005943.3348627-1-vipinsh@google.com> <20250222005943.3348627-3-vipinsh@google.com> Message-ID: Subject: Re: [PATCH 2/2] KVM: selftests: Create KVM selftest runner From: Sean Christopherson To: Vipin Sharma Cc: kvm@vger.kernel.org, kvmarm@lists.linux.dev, kvm-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, pbonzini@redhat.com, anup@brainfault.org, borntraeger@linux.ibm.com, frankja@linux.ibm.com, imbrenda@linux.ibm.com, maz@kernel.org, oliver.upton@linux.dev X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250430_143108_574289_78FEA250 X-CRM114-Status: GOOD ( 33.97 ) X-BeenThere: kvm-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org VGhpcyBpcyBhd2Vzb21lIQoKSSBoYXZlIGxvdHMgb2YgaWRlYSwgYnV0IG5vdCBhbGwgb2YgdGhl bSBuZWVkIHRvIGJlIGFkZHJlc3MgZm9yIHRoZSBpbml0aWFsCmNvbW1pdC4gIFNvbWUgb2YgdGhl bSBJIHdvdWxkIGNvbnNpZGVyIGJsb2NrZXJzLCBidXQgSSBhbHNvIGRvbid0IHdhbnQgdG8gZW5k IHVwCndpdGggbWFzc2l2ZSBzY29wZSBjcmVlcCB0aGF0IGNhdXNlcyB0aGlzIHRvIHN0YWxsIG91 dCBmb3IgKG1vcmUpIG1vbnRocyBvbiBlbmQuCgpPbiBGcmksIEZlYiAyMSwgMjAyNSwgVmlwaW4g U2hhcm1hIHdyb3RlOgo+IENyZWF0ZSBLVk0gc2VsZnRlc3QgcnVubmVyIHRvIHJ1biBzZWxmdGVz dHMgYW5kIHByb3ZpZGUgdmFyaW91cyBvcHRpb25zCj4gZm9yIGV4ZWN1dGlvbi4KPiAKPiBQcm92 aWRlIGZvbGxvd2luZyBmZWF0dXJlcyBpbiB0aGUgcnVubmVyOgo+IDEuIC0tdGltZW91dC8tdDog TWF4IHRpbWUgZWFjaCB0ZXN0IHNob3VsZCBmaW5pc2ggaW4gYmVmb3JlIGtpbGxpbmcgaXQuCgpU aGUgaGVscCBmb3IgdGhpcyBuZWVkcyB0byBzcGVjaWZ5IHRoZSB1bml0cy4gIEkgYXNzdW1lIGl0 J3Mgc2Vjb25kcz8KCj4gMi4gLS1qb2JzLy1qOiBSdW4gdGhlc2UgbWFueSB0ZXN0cyBpbiBwYXJh bGxlbC4KPiAzLiAtLXRlc3RzOiBQcm92aWRlIHNwYWNlIHNlcGFyYXRlZCBwYXRoIG9mIHRlc3Rz IHRvIGV4ZWN1dGUuCj4gNC4gLS10ZXN0X2RpcnM6IERpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3Ig dGVzdCBmaWxlcyBhbmQgcnVuIHRoZW0uCj4gNS4gLS1vdXRwdXQvLW86IENyZWF0ZSB0aGUgZm9s ZGVyIHdpdGggZ2l2ZW4gbmFtZSBhbmQgZHVtcCBvdXRwdXQgb2YKPiAgICBlYWNoIHRlc3QgaW4g YSBoaWVyYXJjaGljYWwgd2F5Lgo+IDYuIEFkZCBzdW1tYXJ5IGF0IHRoZSBlbmQuCj4gCj4gUnVu bmVyIG5lZWRzIHRlc3RjYXNlIGZpbGVzIHdoaWNoIGFyZSBwcm92aWRlZCBpbiB0aGUgcHJldmlv dXMgcGF0Y2guCj4gRm9sbG93aW5nIGFyZSB0aGUgZXhhbXBsZXMgdG8gc3RhcnQgdGhlIHJ1bm5l ciAoY3dkIGlzCj4gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtKQoKVGhlIHJ1bm5lciBkZWZp bml0ZWx5IG5lZWRzIGEgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBwYXRoIHRv IHRoZQp0ZXN0IGV4ZWN1dGFibGVzLiAgRGVmYXVsdGluZyB0byBpbi10cmVlIGJ1aWxkcyBpcyB0 b3RhbGx5IGZpbmUsIGJ1dCB3ZSBzaG91bGQKYWxzbyBzdXBwb3J0IG91dC1vZi10cmVlIGJ1aWxk cyAob3IgY29weWluZyB0byBhIHJlbW90ZSBob3N0LCBldGMuKS4KClRoZSBkZWZhdWx0IHRlc3Rj YXNlcyB3aWxsIGhhdmUgcmVsYXRpdmUgcGF0aHMsIGUuZy4gJGFyY2gvJHRlc3QsIHNvIHRoZSB1 c2VyCndpbGwgc3RpbGwgbmVlZCB0byBtYWludGFpbiB0aGUgc2FtZSBkaXJlY3Rvcnkgc3RydWN0 dXJlIGFzIGluLXRyZWUgYnVpbGRzLCBidXQKSU1PIHRoYXQncyB0b3RhbGx5IGZpbmUuCgo+IC0g QmFzaWMgcnVuOgo+ICAgcHl0aG9uMyBydW5uZXIgLS10ZXN0X2RpcnMgdGVzdGNhc2VzCj4gCj4g LSBSdW4gc3BlY2lmaWMgdGVzdAo+ICAgcHl0aG9uMyBydW5uZXIgLS10ZXN0cyAuL3Rlc3RjYXNl cy9kaXJ0eV9sb2dfcGVyZl90ZXN0L2RlZmF1bHQudGVzdAo+IAo+IC0gUnVuIHRlc3RzIHBhcmFs bGVsCj4gICBweXRob24zIHJ1bm5lciAtLXRlc3RfZGlycyB0ZXN0Y2FzZXMgLWogMTAKPiAKPiAt IFJ1biA1IHRlc3RzIHBhcmFsbGVseSBhdCBhIHRpbWUsIHdpdGggdGhlIHRpbWVvdXQgb2YgMTAg c2Vjb25kcyBhbmQKPiAgIGR1bXAgb3V0cHV0IGluICJyZXN1bHQiIGRpcmVjdG9yeQo+ICAgcHl0 aG9uMyBydW5uZXIgLS10ZXN0X2RpcnMgdGVzdGNhc2VzIC1qIDUgLXQgMTAgLS1vdXRwdXQgcmVz dWx0Cj4gCj4gU2FtcGxlIG91dHB1dCBmcm9tIHRoZSBhYm92ZSBjb21tYW5kOgo+IAo+IHB5dGhv bjNfYmluYXJ5IHJ1bm5lciAtLXRlc3RfZGlycyB0ZXN0Y2FzZXMgLWogNSAtdCAxMCAtLW91dHB1 dCByZXN1bHQKPiAKPiAyMDI1LTAyLTIxIDE2OjQ1OjQ2LDc3NCB8IDE2ODA5IHwgICAgIElORk8g fCBbUGFzc2VkXSB0ZXN0Y2FzZXMvZ3Vlc3RfcHJpbnRfdGVzdC9kZWZhdWx0LnRlc3QKPiAyMDI1 LTAyLTIxIDE2OjQ1OjQ3LDA0MCB8IDE2ODA5IHwgICAgIElORk8gfCBbUGFzc2VkXSB0ZXN0Y2Fz ZXMva3ZtX2NyZWF0ZV9tYXhfdmNwdXMvZGVmYXVsdC50ZXN0Cj4gMjAyNS0wMi0yMSAxNjo0NTo0 OSwyNDQgfCAxNjgwOSB8ICAgICBJTkZPIHwgW1Bhc3NlZF0gdGVzdGNhc2VzL2RpcnR5X2xvZ19w ZXJmX3Rlc3QvZGVmYXVsdC50ZXN0CgoKUHJpbnRpbmcgdGhlIHRpbWVzdGFtcHMgdG8gdGhlIGNv bnNvbGUgaXNuJ3QgdGVycmlibGUgaW50ZXJlc3RpbmcsIGFuZCBJTU8gaXNuJ3QKYXQgYWxsIHdv cnRoIHRoZSBub2lzZS4KClRoZSBQSUQgaXMgbmljZSwgYnV0IGl0IG5lZWRzIHRvIGJlIHByaW50 ZWQgX2JlZm9yZV8gdGhlIHRlc3QgZmluaXNoZXMsIGFuZCBpdApuZWVkcyB0byB0cmFjayB0aGUg UElEIG9mIHRoZSB0ZXN0LiAgSWYgZ2V0dGluZyB0aGF0IHdvcmtpbmcgaXMgbm9uLXRyaXZpYWws CmRlZmluaXRlbHkgcHVudCBpdCBmb3IgdGhlIGluaXRpYWwgY29tbWl0LgoKQW5kIHByZXN1bWFi bHkgSU5GTyBpcyB0aGUgbGV2ZWwgb2YgbG9nZ2luZy4gIFRoYXQgbmVlZHMgdG8gZ28uCgo+IC4u Lgo+IDIwMjUtMDItMjEgMTY6NDY6MDcsMjI1IHwgMTY4MDkgfCAgICAgSU5GTyB8IFtQYXNzZWRd IHRlc3RjYXNlcy94ODZfNjQvcG11X2V2ZW50X2ZpbHRlcl90ZXN0L2RlZmF1bHQudGVzdAo+IDIw MjUtMDItMjEgMTY6NDY6MDgsMDIwIHwgMTY4MDkgfCAgICAgSU5GTyB8IFtQYXNzZWRdIHRlc3Rj YXNlcy94ODZfNjQvdm14X3ByZWVtcHRpb25fdGltZXJfdGVzdC9kZWZhdWx0LnRlc3QKPiAyMDI1 LTAyLTIxIDE2OjQ2OjA5LDczNCB8IDE2ODA5IHwgICAgIElORk8gfCBbVGltZWQgb3V0XSB0ZXN0 Y2FzZXMveDg2XzY0L3BtdV9jb3VudGVyc190ZXN0L2RlZmF1bHQudGVzdAoKSSB3b3VsZCByZWFs bHkgbGlrZSB0byBoYXZlIHRlcm1pbmFsIGNvbG9yZWQrYm9sZGVkIG91dHB1dCBmb3IgdGVzdHMg dGhhdCBmYWlsCihvciB0aW1lb3V0KSBvciBhcmUgc2tpcHBlZC4KCkkgdGhpbmsgd2Ugc2hvdWxk IGFsc28gcHJvdmlkZSBjb250cm9scyBmb3IgdGhlIHZlcmJvc2l0eSBvZiB0aGUgb3V0cHV0LiAg RS5nLiB0bwpza2lwIHByaW50aW5nIHRlc3RzIHRoYXQgcGFzcyBlbnRpcmVseS4gIE15IHZvdGUg d291bGQgYmUgZm9yIGEgY29sbGVjdGlvbiBvZgpib29sZWFuIGtub2JzLCBpLmUuIG5vdCBhIGxv Z19sZXZlbCBvciB3aGF0ZXZlciwgYmVjYXVzZSBpbmV2aXRhYmx5IHdlJ2xsIGVuZCB1cAp3aXRo IG91dHB1dCB0aGF0IGlzbid0IHN0cmljdGx5ICJpbmNyZWFzaW5nIi4KCkFkZGluZyBhIHBhcmFt IHRvIGRpc2FibGUgcHJpbnRpbmcgb2YgcGFzc2VkIHRlc3RzIGlzIHByZXN1bWFibHkgdHJpdmlh bCwgc28gbWF5YmUKZG8gdGhhdCBmb3IgdGhlIGluaXRpYWwgY29tbWl0LCBhbmQgdGhlbiB3ZSBj YW4gd29yayBvbiB0aGUgZmFuY2llciBzdHVmZj8KCj4gMjAyNS0wMi0yMSAxNjo0NjoxMCwyMDIg fCAxNjgwOSB8ICAgICBJTkZPIHwgW1Bhc3NlZF0gdGVzdGNhc2VzL2hhcmR3YXJlX2Rpc2FibGVf dGVzdC9kZWZhdWx0LnRlc3QKPiAyMDI1LTAyLTIxIDE2OjQ2OjEwLDIwMyB8IDE2ODA5IHwgICAg IElORk8gfCBUZXN0cyByYW46IDg1IHRlc3RzCgpJdCB3b3VsZCBiZSB2ZXJ5IG5pY2UgdG8gaGF2 ZSBhIHN1bW1hcnkgb2YgdGhpbmdzIHByaW50ZWQgb3V0IHBlcmlvZGljYWxseS4gIEUuZy4KaWYg bXkgbm9ybWFsIHJ1biBoYXMgYSBmZXcgZmFpbHVyZXMsIGJ1dCB0aGUgY3VycmVudCBydW4gaGFz IGFscmVhZHkgZmFpbGVkIGEKZGVjZW50IG51bWJlciBvZiB0ZXN0cywgdGhlbiBJJ2QgcHJvYmFi bHkga2lsbCB0aGUgcnVuIGFuZCBzdGFydCBkZWJ1Z2dpbmcuCgpBbHRlcm5hdGl2ZWx5LCBhbmQg bWF5YmUgZXZlbiBiZXR0ZXIsIHdvdWxkIGJlIHRvIG1ha2UgdGhlIHJ1bm5lciBtaWxkbHkgaW50 ZXJhY3RpdmUsCmkuZS4gdG8gYWNjZXB0IHJ1ZGltZW50YXJ5IGNvbW1hbmRzIHdoaWxlIHRlc3Rz IGFyZSBydW5uaW5nLiAgVGhlbiB0aGUgdXNlciBjYW4KcXVlcnkgdGhlIHN0YXRlIG9mIHRoaW5n cyB3aGlsZSB0aGUgcnVubmVyIGlzIHN0aWxsIGRvaW5nIGl0cyB0aGluZy4gIEUuZy4gYmluZAph IGZldyBrZXlzIHRvIHByaW50IHRoZSB2YXJpb3VzIHN0YXR1c2VzLgoKPiAyMDI1LTAyLTIxIDE2 OjQ2OjEwLDIwNCB8IDE2ODA5IHwgICAgIElORk8gfCBQYXNzZWQ6IDYxCj4gMjAyNS0wMi0yMSAx Njo0NjoxMCwyMDQgfCAxNjgwOSB8ICAgICBJTkZPIHwgRmFpbGVkOiA0Cj4gMjAyNS0wMi0yMSAx Njo0NjoxMCwyMDQgfCAxNjgwOSB8ICAgICBJTkZPIHwgU2tpcHBlZDogMTcKPiAyMDI1LTAyLTIx IDE2OjQ2OjEwLDIwNCB8IDE2ODA5IHwgICAgIElORk8gfCBUaW1lZCBvdXQ6IDMKPiAyMDI1LTAy LTIxIDE2OjQ2OjEwLDIwNCB8IDE2ODA5IHwgICAgIElORk8gfCBObyBydW46IDAKCkEgbm90LXF1 aXRlLW1hbmRhdG9yeSwgYnV0IHZlcnktbmljZS10by1oYXZlIGZlYXR1cmUgd291bGQgYmUgdGhl IGFiaWxpdHkgdG8KZGlzcGxheSB3aGljaCB0ZXN0cyBQYXNzZWQvRmFpbGVkL1NraXBwZWQvVGlt ZWQgT3V0L0luY29tcGxldGUsIHdpdGggY29tbWFuZCBsaW5lCmtub2JzIGZvciBlYWNoLiAgTXkg dm90ZSBpcyBmb3IgZXZlcnl0aGluZyBidXQgUGFzc2VkIG9uLWJ5LWRlZmF1bHQsIHRob3VnaCBp dCdzCmVhc3kgZW5vdWdoIHRvIHB1dCBhIGxpZ2h0IHdyYXBwZXIgYXJvdW5kIHRoaXMgKHdoaWNo IEknbGwgZG8gbm8gbWF0dGVyIHdoYXQpLCBzbwpteSBwcmVmZXJlbmNlIGZvciB0aGUgZGVmYXVs dCBkb2Vzbid0IG1hdHRlciBhbGwgdGhhdCBtdWNoLgoKVGhhdCBjb3VsZCB0aWUgaW50byB0aGUg YWJvdmUgaWRlYSBvZiBncmFiYmluZyBrZXlzIHRvIHByaW50IHN1Y2ggaW5mb3JtYXRpb24gb24t ZGVtYW5kLgoKQWxzbyBDVFJMLUMgaGFuZGxpbmcgbmVlZHMgbXVjaCBtb3JlIGdyYWNlZnVsIG91 dHB1dC4gIElkZWFsbHksIG5vIHN0YWNrIHRyYWNlcwp3aGF0c292ZXIsIGFuZCBpbnN0ZWFkIGEg c3VtbWFyeSBsaWtlIHRoZSBhYm92ZSwgYnV0IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgd2hpY2gK dGVzdHMgZGlkbid0IGNvbXBsZXRlLgoKPiBPdXRwdXQgZHVtcGVkIGluIHJlc3VsdCBkaXJlY3Rv cnkKPiAKPiAkIHRyZWUgcmVzdWx0Lwo+IHJlc3VsdC8KClRoZSBydW5uZXIgc2hvdWxkIGhhdmUg YW4gKG9uLWJ5LWRlZmF1bHQ/KSBvcHRpb24gdG8gYWJvcnQgaWYgdGhlIG91dHB1dCBkaXJlY3Rv cnkKYWxyZWFkeSBleGlzdHMsIGUuZy4gc28gdGhhdCB1c2VycyBkb24ndCBjbG9iYmVyIHByZXZp b3VzIHJ1bnMuICBBbmQvb3IgYW4gb3B0aW9uCnRvIGFwcGVuZCBhIHRpbWVzdGFtcCwgZS5nLiAk cmVzdWx0Lnl5eXkubW0uZGQuTU0uU1MsIHNvIHRoYXQgYWxsIHVzZXJzIGRvbid0IGVuZAp1cCB3 cml0aW5nIHRoZSBzYW1lIHdyYXBwZXIgdG8gZ2VuZXJhdGUgYSB0aW1lc3RhbXAuCgpIYXZpbmcg YSBuby10aW1lc3RhbXAgKyBvdmVyd3JpdGUgbW9kZSBpcyBhbHNvIHVzZWZ1bCwgZS5nLiB3aGVu IEknbSBydW5uaW5nIGluCmEgbW9yZSAiaW50ZXJhY3RpdmUiIG1vZGUgd2hlcmUgSSdtIGRvaW5n IGluaXRpYWwgdGVzdGluZyBvZiBzb21ldGhpbmcsIGFuZCBJCmRvbid0IGNhcmUgYWJvdXQKCj4g 4pSc4pSA4pSAIGxvZwo+IOKUlOKUgOKUgCB0ZXN0Y2FzZXMKPiAgICAg4pSc4pSA4pSAIGFjY2Vz c190cmFja2luZ19wZXJmX3Rlc3QKPiAgICAg4pSCwqDCoCDilJTilIDilIAgZGVmYXVsdC50ZXN0 Cj4gICAgIOKUgsKgwqAgICAgIOKUnOKUgOKUgCBzdGRlcnIKPiAgICAg4pSCwqDCoCAgICAg4pSU 4pSA4pSAIHN0ZG91dAo+ICAgICDilJzilIDilIAgY29hbGVzY2VkX2lvX3Rlc3QKPiAgICAg4pSC wqDCoCDilJTilIDilIAgZGVmYXVsdC50ZXN0Cj4gICAgIOKUgsKgwqAgICAgIOKUnOKUgOKUgCBz dGRlcnIKPiAgICAg4pSCwqDCoCAgICAg4pSU4pSA4pSAIHN0ZG91dAo+IC4uLgo+IAo+IHJlc3Vs dHMvbG9nIGZpbGUgd2lsbCBoYXZlIHRoZSBzdGF0dXMgb2YgZWFjaCB0ZXN0IGxpa2UgdGhlIG9u ZSBwcmludGVkCj4gb24gY29uc29sZS4gRWFjaCBzdGRlcnIgYW5kIHN0ZG91dCB3aWxsIGhhdmUg ZGF0YSBiYXNlZCBvbiB0aGUKPiBleGVjdXRpb24uCj4gCj4gUnVubmVyIGlzIGltcGxlbWVudGVk IGluIHB5dGhvbiBhbmQgbmVlZHMgYXQgbGVhc3QgMy42IHZlcnNpb24uCj4gCj4gU2lnbmVkLW9m Zi1ieTogVmlwaW4gU2hhcm1hIDx2aXBpbnNoQGdvb2dsZS5jb20+Cj4gLS0tCgouLi4KCj4gZGlm ZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS8uZ2l0aWdub3JlIGIvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMva3ZtLy5naXRpZ25vcmUKPiBpbmRleCA1NTBiN2MyYjRhMGMuLmEy M2ZkNGIyY2I1ZiAxMDA2NDQKPiAtLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vLmdp dGlnbm9yZQo+ICsrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS8uZ2l0aWdub3JlCj4g QEAgLTExLDMgKzExLDQgQEAKPiAgIU1ha2VmaWxlCj4gICFNYWtlZmlsZS5rdm0KPiAgISoudGVz dAo+ICshKi5weQoKU29ydCB0aGlzIGFscGhhYmV0aWNhbGx5IGFzIHdlbGwuCgo+ICtkZWYgZmV0 Y2hfdGVzdF9maWxlcyhhcmdzKToKPiArICAgIGV4Y2x1ZGVfZGlycyA9IFsiYWFyY2g2NCIsICJ4 ODZfNjQiLCAicmlzY3YiLCAiczM5MHgiXQoKVGhlc2UgYXJlIG5vdzoKCmFybTY0LCB4ODYsIHJp c2N2LCBzMzkwCgo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aCwgb3V0cHV0X2Rp cj1Ob25lLCB0aW1lb3V0PU5vbmUsKToKPiArICAgICAgICB0ZXN0X2NvbW1hbmQgPSBwYXRobGli LlBhdGgodGVzdF9wYXRoKS5yZWFkX3RleHQoKS5zdHJpcCgpCj4gKyAgICAgICAgaWYgbm90IHRl c3RfY29tbWFuZDoKPiArICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRW1wdHkgdGVzdCBj b21tYW5kIGluICIgKyB0ZXN0X3BhdGgpCj4gKwo+ICsgICAgICAgIGlmIG91dHB1dF9kaXIgaXMg bm90IE5vbmU6Cj4gKyAgICAgICAgICAgIG91dHB1dF9kaXIgPSBvcy5wYXRoLmpvaW4ob3V0cHV0 X2RpciwgdGVzdF9wYXRoKQoKVGhpcyBkb2Vzbid0IGRvIHRoZSByaWdodCB0aGluZyBpZiB0ZXN0 X3BhdGggaXMgYWJzb2x1dGUgKG9yIG1heWJlIGl0J3MgaWYgdGhlCm91dHB1dF9kaXIgaXMgaW4g YSBjb21wbGV0ZWx5IGRpZmZlcmVudCBoaWVyYXJjaHk/KQoKSSB3YXMgYWJsZSB0byBmdWRnZSBh cm91bmQgdGhpcyB3aXRoIAoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2 bS9ydW5uZXIvc2VsZnRlc3QucHkgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vcnVubmVy L3NlbGZ0ZXN0LnB5CmluZGV4IGNkZjVkMTA4NWMwOC4uM2JjZTAyMzY5M2NiIDEwMDY0NAotLS0g YS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vcnVubmVyL3NlbGZ0ZXN0LnB5CisrKyBiL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9ydW5uZXIvc2VsZnRlc3QucHkKQEAgLTMwLDcgKzMw LDggQEAgY2xhc3MgU2VsZnRlc3Q6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFbXB0 eSB0ZXN0IGNvbW1hbmQgaW4gIiArIHRlc3RfcGF0aCkKIAogICAgICAgICBpZiBvdXRwdXRfZGly IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguam9pbihvdXRw dXRfZGlyLCB0ZXN0X3BhdGgpCisgICAgICAgICAgICBkaXJwYXRoLCBmaWxlbmFtZSA9IG9zLnBh dGguc3BsaXQodGVzdF9wYXRoKQorICAgICAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguam9p bihvdXRwdXRfZGlyLCBvcy5wYXRoLmJhc2VuYW1lKGRpcnBhdGgpLCBmaWxlbmFtZSkKICAgICAg ICAgc2VsZi50ZXN0X3BhdGggPSB0ZXN0X3BhdGgKICAgICAgICAgc2VsZi5jb21tYW5kID0gY29t bWFuZC5Db21tYW5kKHRlc3RfY29tbWFuZCwgdGltZW91dCwgb3V0cHV0X2RpcikKICAgICAgICAg c2VsZi5zdGF0dXMgPSBTZWxmdGVzdFN0YXR1cy5OT19SVU4KCkxhc3RseSwgcGxlYXNlIGRvbid0 IHdyYXAgYWdyZXNzaXZlbHkgKG9mZi1saXN0LCB5b3UgbWVudGlvbmVkIGl0IHdhcyBkdWUgdG8g YQpmb3JtYXR0ZXI/KS4gIEUuZy4KCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9rdm0vcnVubmVyL3Rlc3RfcnVubmVyLnB5IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3Zt L3J1bm5lci90ZXN0X3J1bm5lci5weQppbmRleCBiOWQzNGMyMGJmODguLjVhNTY4ZTE1NTQ3NyAx MDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3J1bm5lci90ZXN0X3J1bm5l ci5weQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vcnVubmVyL3Rlc3RfcnVubmVy LnB5CkBAIC0xMiw4ICsxMiw3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIHNlbGYudGVz dHMgPSBbXQogCiAgICAgICAgIGZvciB0ZXN0X2ZpbGUgaW4gdGVzdF9maWxlczoKLSAgICAgICAg ICAgIHNlbGYudGVzdHMuYXBwZW5kKHNlbGZ0ZXN0LlNlbGZ0ZXN0KAotICAgICAgICAgICAgICAg IHRlc3RfZmlsZSwgb3V0cHV0X2RpciwgdGltZW91dCkpCisgICAgICAgICAgICBzZWxmLnRlc3Rz LmFwcGVuZChzZWxmdGVzdC5TZWxmdGVzdCh0ZXN0X2ZpbGUsIG91dHB1dF9kaXIsIHRpbWVvdXQp KQogCiAgICAgZGVmIF9ydW4oc2VsZiwgdGVzdCk6CiAgICAgICAgIHRlc3QucnVuKCkKCi0tIApr dm0tcmlzY3YgbWFpbGluZyBsaXN0Cmt2bS1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va3ZtLXJpc2N2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54C222609D1 for ; Wed, 30 Apr 2025 21:31:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746048669; cv=none; b=bqNzf/H3vctw20iVssoj4oz72WRy3Jksybe717x45ucqkVWmqSs2DDiy6CWKoN/PlhLfVpiLqv704QbE6kRkJzBpUQx0sv4bFmbipi5bxzSqNOfwwDVv0ZsOX2QeC9REp6Dj3rFNljxNp7/PC9uDw6eDELhZaVQG8Hq34nHXfiA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746048669; c=relaxed/simple; bh=YfqyjeRvCT6Q9XBCN/pMSc9kNCURSqFYecy67yOB+M0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=shVL71Jh37Qfx6RzWYwKofaJDQ1KlMclXrrjC6J/VzAQoyigUkvSaqTtF+h11tKi94QUlbeHnd696R5S4aAV6vU1sTBzO7mHebHtH5xoi83kUxddH5yV0CA5klVKQQXQwOBdsMKhfXGGWL5Gy+LzLjOfXinJoHv7TCbWhry16ig= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=cSpb0khb; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="cSpb0khb" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-3087a703066so299626a91.0 for ; Wed, 30 Apr 2025 14:31:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746048666; x=1746653466; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=xuwtCmee8bUCMaCxATpebgMybOMoD89ZAK9YtlS2GJU=; b=cSpb0khbP9JcB9/ZK1x0rEr75Pb5GXTOy/CCbQk6jDRzmf7tEankyrD3ntfbN02/dt s0cEts4SkyTlPaIiOMOcXSzraU4GZ4LcwT61uFCxXtiIfHC0rBepf/Ie6rIlrpOe3UV8 zaYqoHW2R+V78XcCMRCyuYvb0Brkm4omaRD8AggCxmPwdQXFtI0YygAbfnQ58AOH/bPR 87Uxstafo3dtjOIyBqwYbIBuCurTR2zO6aCiTWS62TPUv7XfFXDplYIXyTS81d53n4La 1vj4BxUOVAiFvNRiLcl68oypbXy6sxLoHM8mjiG20D27LI4o7UIySt5Dh0kfk3LhjNgC FMdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746048666; x=1746653466; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=xuwtCmee8bUCMaCxATpebgMybOMoD89ZAK9YtlS2GJU=; b=TAVxOSYjmuNF2yXFHSqmU5fmpUa36c9bCkmOOD7zAJ0pLNQyhCOkvsGqfaMnDbGlVV fBNmgbUisRarhdRcvVKoD2zm56hkXiYuy7pZRZvCOQkme9u8bl8FuLZ+B4Z6mAeVhZIZ jaPa76UBdQ0sR378PWq3O2+u9Kpiy1x7E4kQKjWqO7tJQVEBb0e0YAd4SlIs7OKV6TZl 3fTJseyxluNis8ZdDmEIfcU+y3NHwxbA14fAGWRGQguB7uWC7aW9ma1FTJr36ZcBuZBf A4Zf6/mQ66zGENqWXjOAiHfsQEhRR0QENJlYU5kcMxgX2PkNQmIBMjpncFXKw9Y54uVq L/aQ== X-Gm-Message-State: AOJu0YxtdhH+azNlUlq0Ipg5tVXIYJIJ0FIU6c7q3l+sCpcMxKsrs6iB wsGaBLRYQ2DUMCGPvZMXcdUtaICQEZF39B8R+iYf/buBPz087z9ZA8R6QOSAaMkflnwkkErDKJX qEQ== X-Google-Smtp-Source: AGHT+IF7u1ROE1txYWgvgQtIPyo8p3omIkgPpGClJtR2AwQs8qcKywBRQB3ypqTRcMHct1VgXw598olvhbg= X-Received: from pjbsn16.prod.google.com ([2002:a17:90b:2e90:b0:2fc:2f33:e07d]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:da8e:b0:2ff:7b28:a51a with SMTP id 98e67ed59e1d1-30a34409defmr7144925a91.17.1746048666708; Wed, 30 Apr 2025 14:31:06 -0700 (PDT) Date: Wed, 30 Apr 2025 14:31:05 -0700 In-Reply-To: <20250222005943.3348627-3-vipinsh@google.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250222005943.3348627-1-vipinsh@google.com> <20250222005943.3348627-3-vipinsh@google.com> Message-ID: Subject: Re: [PATCH 2/2] KVM: selftests: Create KVM selftest runner From: Sean Christopherson To: Vipin Sharma Cc: kvm@vger.kernel.org, kvmarm@lists.linux.dev, kvm-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, pbonzini@redhat.com, anup@brainfault.org, borntraeger@linux.ibm.com, frankja@linux.ibm.com, imbrenda@linux.ibm.com, maz@kernel.org, oliver.upton@linux.dev Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This is awesome! I have lots of idea, but not all of them need to be address for the initial commit. Some of them I would consider blockers, but I also don't want to e= nd up with massive scope creep that causes this to stall out for (more) months on= end. On Fri, Feb 21, 2025, Vipin Sharma wrote: > Create KVM selftest runner to run selftests and provide various options > for execution. >=20 > Provide following features in the runner: > 1. --timeout/-t: Max time each test should finish in before killing it. The help for this needs to specify the units. I assume it's seconds? > 2. --jobs/-j: Run these many tests in parallel. > 3. --tests: Provide space separated path of tests to execute. > 4. --test_dirs: Directories to search for test files and run them. > 5. --output/-o: Create the folder with given name and dump output of > each test in a hierarchical way. > 6. Add summary at the end. >=20 > Runner needs testcase files which are provided in the previous patch. > Following are the examples to start the runner (cwd is > tools/testing/selftests/kvm) The runner definitely needs a command line option to specify the path to th= e test executables. Defaulting to in-tree builds is totally fine, but we sho= uld also support out-of-tree builds (or copying to a remote host, etc.). The default testcases will have relative paths, e.g. $arch/$test, so the us= er will still need to maintain the same directory structure as in-tree builds,= but IMO that's totally fine. > - Basic run: > python3 runner --test_dirs testcases >=20 > - Run specific test > python3 runner --tests ./testcases/dirty_log_perf_test/default.test >=20 > - Run tests parallel > python3 runner --test_dirs testcases -j 10 >=20 > - Run 5 tests parallely at a time, with the timeout of 10 seconds and > dump output in "result" directory > python3 runner --test_dirs testcases -j 5 -t 10 --output result >=20 > Sample output from the above command: >=20 > python3_binary runner --test_dirs testcases -j 5 -t 10 --output result >=20 > 2025-02-21 16:45:46,774 | 16809 | INFO | [Passed] testcases/guest_pri= nt_test/default.test > 2025-02-21 16:45:47,040 | 16809 | INFO | [Passed] testcases/kvm_creat= e_max_vcpus/default.test > 2025-02-21 16:45:49,244 | 16809 | INFO | [Passed] testcases/dirty_log= _perf_test/default.test Printing the timestamps to the console isn't terrible interesting, and IMO = isn't at all worth the noise. The PID is nice, but it needs to be printed _before_ the test finishes, and= it needs to track the PID of the test. If getting that working is non-trivial= , definitely punt it for the initial commit. And presumably INFO is the level of logging. That needs to go. > ... > 2025-02-21 16:46:07,225 | 16809 | INFO | [Passed] testcases/x86_64/pm= u_event_filter_test/default.test > 2025-02-21 16:46:08,020 | 16809 | INFO | [Passed] testcases/x86_64/vm= x_preemption_timer_test/default.test > 2025-02-21 16:46:09,734 | 16809 | INFO | [Timed out] testcases/x86_64= /pmu_counters_test/default.test I would really like to have terminal colored+bolded output for tests that f= ail (or timeout) or are skipped. I think we should also provide controls for the verbosity of the output. E= .g. to skip printing tests that pass entirely. My vote would be for a collection = of boolean knobs, i.e. not a log_level or whatever, because inevitably we'll e= nd up with output that isn't strictly "increasing". Adding a param to disable printing of passed tests is presumably trivial, s= o maybe do that for the initial commit, and then we can work on the fancier stuff? > 2025-02-21 16:46:10,202 | 16809 | INFO | [Passed] testcases/hardware_= disable_test/default.test > 2025-02-21 16:46:10,203 | 16809 | INFO | Tests ran: 85 tests It would be very nice to have a summary of things printed out periodically.= E.g. if my normal run has a few failures, but the current run has already failed= a decent number of tests, then I'd probably kill the run and start debugging. Alternatively, and maybe even better, would be to make the runner mildly in= teractive, i.e. to accept rudimentary commands while tests are running. Then the user= can query the state of things while the runner is still doing its thing. E.g. = bind a few keys to print the various statuses. > 2025-02-21 16:46:10,204 | 16809 | INFO | Passed: 61 > 2025-02-21 16:46:10,204 | 16809 | INFO | Failed: 4 > 2025-02-21 16:46:10,204 | 16809 | INFO | Skipped: 17 > 2025-02-21 16:46:10,204 | 16809 | INFO | Timed out: 3 > 2025-02-21 16:46:10,204 | 16809 | INFO | No run: 0 A not-quite-mandatory, but very-nice-to-have feature would be the ability t= o display which tests Passed/Failed/Skipped/Timed Out/Incomplete, with comman= d line knobs for each. My vote is for everything but Passed on-by-default, though= it's easy enough to put a light wrapper around this (which I'll do no matter wha= t), so my preference for the default doesn't matter all that much. That could tie into the above idea of grabbing keys to print such informati= on on-demand. Also CTRL-C handling needs much more graceful output. Ideally, no stack tr= aces whatsover, and instead a summary like the above, but with information about= which tests didn't complete. > Output dumped in result directory >=20 > $ tree result/ > result/ The runner should have an (on-by-default?) option to abort if the output di= rectory already exists, e.g. so that users don't clobber previous runs. And/or an = option to append a timestamp, e.g. $result.yyyy.mm.dd.MM.SS, so that all users don= 't end up writing the same wrapper to generate a timestamp. Having a no-timestamp + overwrite mode is also useful, e.g. when I'm runnin= g in a more "interactive" mode where I'm doing initial testing of something, and= I don't care about > =E2=94=9C=E2=94=80=E2=94=80 log > =E2=94=94=E2=94=80=E2=94=80 testcases > =E2=94=9C=E2=94=80=E2=94=80 access_tracking_perf_test > =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 default.test > =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 stderr > =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 stdout > =E2=94=9C=E2=94=80=E2=94=80 coalesced_io_test > =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 default.test > =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 stderr > =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 stdout > ... >=20 > results/log file will have the status of each test like the one printed > on console. Each stderr and stdout will have data based on the > execution. >=20 > Runner is implemented in python and needs at least 3.6 version. >=20 > Signed-off-by: Vipin Sharma > --- ... > diff --git a/tools/testing/selftests/kvm/.gitignore b/tools/testing/selft= ests/kvm/.gitignore > index 550b7c2b4a0c..a23fd4b2cb5f 100644 > --- a/tools/testing/selftests/kvm/.gitignore > +++ b/tools/testing/selftests/kvm/.gitignore > @@ -11,3 +11,4 @@ > !Makefile > !Makefile.kvm > !*.test > +!*.py Sort this alphabetically as well. > +def fetch_test_files(args): > + exclude_dirs =3D ["aarch64", "x86_64", "riscv", "s390x"] These are now: arm64, x86, riscv, s390 > + def __init__(self, test_path, output_dir=3DNone, timeout=3DNone,): > + test_command =3D pathlib.Path(test_path).read_text().strip() > + if not test_command: > + raise ValueError("Empty test command in " + test_path) > + > + if output_dir is not None: > + output_dir =3D os.path.join(output_dir, test_path) This doesn't do the right thing if test_path is absolute (or maybe it's if = the output_dir is in a completely different hierarchy?) I was able to fudge around this with=20 diff --git a/tools/testing/selftests/kvm/runner/selftest.py b/tools/testing= /selftests/kvm/runner/selftest.py index cdf5d1085c08..3bce023693cb 100644 --- a/tools/testing/selftests/kvm/runner/selftest.py +++ b/tools/testing/selftests/kvm/runner/selftest.py @@ -30,7 +30,8 @@ class Selftest: raise ValueError("Empty test command in " + test_path) =20 if output_dir is not None: - output_dir =3D os.path.join(output_dir, test_path) + dirpath, filename =3D os.path.split(test_path) + output_dir =3D os.path.join(output_dir, os.path.basename(dirpa= th), filename) self.test_path =3D test_path self.command =3D command.Command(test_command, timeout, output_dir= ) self.status =3D SelftestStatus.NO_RUN Lastly, please don't wrap agressively (off-list, you mentioned it was due t= o a formatter?). E.g. diff --git a/tools/testing/selftests/kvm/runner/test_runner.py b/tools/test= ing/selftests/kvm/runner/test_runner.py index b9d34c20bf88..5a568e155477 100644 --- a/tools/testing/selftests/kvm/runner/test_runner.py +++ b/tools/testing/selftests/kvm/runner/test_runner.py @@ -12,8 +12,7 @@ class TestRunner: self.tests =3D [] =20 for test_file in test_files: - self.tests.append(selftest.Selftest( - test_file, output_dir, timeout)) + self.tests.append(selftest.Selftest(test_file, output_dir, tim= eout)) =20 def _run(self, test): test.run()