From patchwork Thu Jan 4 17:18:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabiano Rosas X-Patchwork-Id: 1882559 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=Jl6fd2LI; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=tyO/SmIu; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=Jl6fd2LI; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=tyO/SmIu; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4T5YHB2TqKz1yQ5 for ; Fri, 5 Jan 2024 04:19:34 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rLRN8-00043j-KU; Thu, 04 Jan 2024 12:19:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLRN6-00043M-11 for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:08 -0500 Received: from smtp-out1.suse.de ([2a07:de40:b251:101:10:150:64:1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rLRN4-0008LS-8C for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:07 -0500 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id AA9DA220C0; Thu, 4 Jan 2024 17:19:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388744; h=from:from:reply-to: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=+WC4Ns4HQqIlxPawMb+rykLZgS/0WbKgHMArUTZEX1s=; b=Jl6fd2LIsNrHBGDR6kL7cpHCEdLyAkw2ig2HaDLPQLCELM3hNP88Hc5jFXtAUrlI6+1ir3 UZedHzQuIr579g1VjYURVl25HoGq6QZATX8ffI6kco4ZWRL7NrXqwD6wcHlIyAWMJZagpd hgXWokHtH5UllUdf+wpb1vQFVubg7AE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388744; h=from:from:reply-to: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=+WC4Ns4HQqIlxPawMb+rykLZgS/0WbKgHMArUTZEX1s=; b=tyO/SmIuskJOhjuTa0sEWfAx41mfuzO6wmsr8z6mnienPeK2Cs958DaC/jCLMLG693a3/c e2zT0/LCHzENpFDg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388744; h=from:from:reply-to: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=+WC4Ns4HQqIlxPawMb+rykLZgS/0WbKgHMArUTZEX1s=; b=Jl6fd2LIsNrHBGDR6kL7cpHCEdLyAkw2ig2HaDLPQLCELM3hNP88Hc5jFXtAUrlI6+1ir3 UZedHzQuIr579g1VjYURVl25HoGq6QZATX8ffI6kco4ZWRL7NrXqwD6wcHlIyAWMJZagpd hgXWokHtH5UllUdf+wpb1vQFVubg7AE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388744; h=from:from:reply-to: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=+WC4Ns4HQqIlxPawMb+rykLZgS/0WbKgHMArUTZEX1s=; b=tyO/SmIuskJOhjuTa0sEWfAx41mfuzO6wmsr8z6mnienPeK2Cs958DaC/jCLMLG693a3/c e2zT0/LCHzENpFDg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 358CD13722; Thu, 4 Jan 2024 17:19:01 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap1.dmz-prg2.suse.org with ESMTPSA id sDYVO4XolmUNbAAAD6G6ig (envelope-from ); Thu, 04 Jan 2024 17:19:01 +0000 From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Peter Xu , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PATCH v2 1/4] tests/qtest: Add a helper to query the QEMU version Date: Thu, 4 Jan 2024 14:18:54 -0300 Message-Id: <20240104171857.20108-2-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240104171857.20108-1-farosas@suse.de> References: <20240104171857.20108-1-farosas@suse.de> MIME-Version: 1.0 X-Spam-Score: 0.40 X-Rspamd-Queue-Id: AA9DA220C0 Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Jl6fd2LI; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="tyO/SmIu" X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spamd-Bar: / X-Spamd-Result: default: False [0.40 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_MISSING_CHARSET(2.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; URIBL_BLOCKED(0.00)[suse.de:email,suse.de:dkim]; BROKEN_CONTENT_TYPE(1.50)[]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DKIM_TRACE(0.00)[suse.de:+]; MX_GOOD(-0.01)[]; RCPT_COUNT_SEVEN(0.00)[7]; MID_CONTAINS_FROM(1.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:dkim]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; NEURAL_HAM_SHORT(-0.20)[-1.000]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-2.09)[95.56%] Received-SPF: pass client-ip=2a07:de40:b251:101:10:150:64:1; envelope-from=farosas@suse.de; helo=smtp-out1.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Reviewed-by: Thomas Huth Signed-off-by: Fabiano Rosas --- tests/qtest/libqtest.c | 24 ++++++++++++++++++++++++ tests/qtest/libqtest.h | 10 ++++++++++ 2 files changed, 34 insertions(+) diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index f33a210861..af779a3248 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -337,6 +337,30 @@ void qtest_remove_abrt_handler(void *data) } } +void qtest_query_version(QTestState *qts, int *major, int *minor, int *micro) +{ + QDict *rsp, *version; + + rsp = qtest_qmp_assert_success_ref(qts, "{ 'execute': 'query-version' }"); + g_assert(rsp); + + version = qdict_get_qdict(rsp, "qemu"); + + if (major) { + *major = qdict_get_int(version, "major"); + } + + if (minor) { + *minor = qdict_get_int(version, "minor"); + } + + if (micro) { + *micro = qdict_get_int(version, "micro"); + } + + qobject_unref(rsp); +} + static const char *qtest_qemu_binary(const char *var) { const char *qemu_bin; diff --git a/tests/qtest/libqtest.h b/tests/qtest/libqtest.h index 6e3d3525bf..db7a780d26 100644 --- a/tests/qtest/libqtest.h +++ b/tests/qtest/libqtest.h @@ -1085,4 +1085,14 @@ bool have_qemu_img(void); */ bool mkimg(const char *file, const char *fmt, unsigned size_mb); +/** + * qtest_query_version: + * @who: QTestState instance to operate on + * @major: Pointer to where to store the major version number + * @minor: Pointer to where to store the minor version number + * @micro: Pointer to where to store the micro version number + * + */ +void qtest_query_version(QTestState *who, int *major, int *minor, int *micro); + #endif From patchwork Thu Jan 4 17:18:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabiano Rosas X-Patchwork-Id: 1882562 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=PgibKZ/x; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=107CWcSJ; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=PgibKZ/x; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=107CWcSJ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4T5YHn24wPz23dg for ; Fri, 5 Jan 2024 04:20:05 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rLRNM-0004AQ-1T; Thu, 04 Jan 2024 12:19:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLRNF-00046L-IL for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:18 -0500 Received: from smtp-out2.suse.de ([2a07:de40:b251:101:10:150:64:2]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rLRN7-0008Lx-CE for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:15 -0500 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id AB72A1F824; Thu, 4 Jan 2024 17:19:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388747; h=from:from:reply-to: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=ghz63JcePdB1PlsEvBduKH2zaggOWQB1kSiUuWNed6s=; b=PgibKZ/xhZ4MGgI3ScaQ59dblUN1gL9BzzKwg8k+x6gm+JYUbgSBPq4mzKwQ/MMIEHE9jN ZzheIThWba8Lvb73lrB2yxIibOC17h0Fb447smDg1AWwVDkSzzZ5txrtdG/+aXwltYtvJk PQFBw9NuL1WCmldmaau2BRNeWkQZOEk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388747; h=from:from:reply-to: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=ghz63JcePdB1PlsEvBduKH2zaggOWQB1kSiUuWNed6s=; b=107CWcSJZ2g6RMQDlF9nfIbDF6wJQ6L3tQIEHP1Ww/Gqz7Sk1PEKQ4Og/tDfgtDaQqrZoR 3h27l/Z/6pqOZRBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388747; h=from:from:reply-to: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=ghz63JcePdB1PlsEvBduKH2zaggOWQB1kSiUuWNed6s=; b=PgibKZ/xhZ4MGgI3ScaQ59dblUN1gL9BzzKwg8k+x6gm+JYUbgSBPq4mzKwQ/MMIEHE9jN ZzheIThWba8Lvb73lrB2yxIibOC17h0Fb447smDg1AWwVDkSzzZ5txrtdG/+aXwltYtvJk PQFBw9NuL1WCmldmaau2BRNeWkQZOEk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388747; h=from:from:reply-to: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=ghz63JcePdB1PlsEvBduKH2zaggOWQB1kSiUuWNed6s=; b=107CWcSJZ2g6RMQDlF9nfIbDF6wJQ6L3tQIEHP1Ww/Gqz7Sk1PEKQ4Og/tDfgtDaQqrZoR 3h27l/Z/6pqOZRBA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2C61013722; Thu, 4 Jan 2024 17:19:04 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap1.dmz-prg2.suse.org with ESMTPSA id IDu8OIjolmUNbAAAD6G6ig (envelope-from ); Thu, 04 Jan 2024 17:19:04 +0000 From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Peter Xu , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Thomas Huth , Laurent Vivier , Paolo Bonzini , Juan Quintela , Leonardo Bras Subject: [PATCH v2 2/4] tests/qtest/migration: Add infrastructure to skip tests on older QEMUs Date: Thu, 4 Jan 2024 14:18:55 -0300 Message-Id: <20240104171857.20108-3-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240104171857.20108-1-farosas@suse.de> References: <20240104171857.20108-1-farosas@suse.de> MIME-Version: 1.0 Authentication-Results: smtp-out2.suse.de; none X-Spam-Score: 0.70 X-Spamd-Result: default: False [0.70 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; URIBL_BLOCKED(0.00)[suse.de:email]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_MISSING_CHARSET(2.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; BROKEN_CONTENT_TYPE(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; RCPT_COUNT_SEVEN(0.00)[9]; MID_CONTAINS_FROM(1.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-3.00)[100.00%] Received-SPF: pass client-ip=2a07:de40:b251:101:10:150:64:2; envelope-from=farosas@suse.de; helo=smtp-out2.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_HELO_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org We can run the migration tests with two different QEMU binaries to test migration compatibility between QEMU versions. This means we'll be running the tests with an older QEMU in either source or destination. We need to avoid trying to test functionality that is unknown to the older QEMU. This could mean new features, bug fixes, error message changes, QEMU command line changes, migration API changes, etc. Add a 'since' argument to the tests that inform when the functionality that is being test has been added to QEMU so we can skip the test on older versions. Also add a version comparison function so we can adapt test code depending on the QEMU binary version being used. Signed-off-by: Fabiano Rosas --- tests/qtest/migration-helpers.c | 11 +++++++++++ tests/qtest/migration-helpers.h | 1 + tests/qtest/migration-test.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/tests/qtest/migration-helpers.c b/tests/qtest/migration-helpers.c index 24fb7b3525..20220bfda0 100644 --- a/tests/qtest/migration-helpers.c +++ b/tests/qtest/migration-helpers.c @@ -292,3 +292,14 @@ char *resolve_machine_version(const char *alias, const char *var1, return find_common_machine_version(machine_name, var1, var2); } + +int migration_vercmp(QTestState *who, const char *tgt_version) +{ + int major, minor, micro; + g_autofree char *version = NULL; + + qtest_query_version(who, &major, &minor, µ); + version = g_strdup_printf("%d.%d", major, minor + !!micro); + + return strcmp(version, tgt_version); +} diff --git a/tests/qtest/migration-helpers.h b/tests/qtest/migration-helpers.h index e31dc85cc7..7b4f8e851e 100644 --- a/tests/qtest/migration-helpers.h +++ b/tests/qtest/migration-helpers.h @@ -47,4 +47,5 @@ char *find_common_machine_version(const char *mtype, const char *var1, const char *var2); char *resolve_machine_version(const char *alias, const char *var1, const char *var2); +int migration_vercmp(QTestState *who, const char *tgt_version); #endif /* MIGRATION_HELPERS_H */ diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index d520c587f7..001470238b 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -637,6 +637,12 @@ typedef struct { bool use_dirty_ring; const char *opts_source; const char *opts_target; + /* + * If a test checks against new functionality that might not be + * present in older QEMUs this needs to be set so we can skip + * running it when doing compatibility testing. + */ + const char *since; } MigrateStart; /* @@ -850,6 +856,17 @@ static int test_migrate_start(QTestState **from, QTestState **to, qtest_qmp_set_event_callback(*from, migrate_watch_for_stop, &got_src_stop); + + if (args->since && migration_vercmp(*from, args->since) < 0) { + g_autofree char *msg = NULL; + + msg = g_strdup_printf("Test requires at least QEMU version %s", + args->since); + g_test_skip(msg); + qtest_quit(*from); + + return -1; + } } cmd_target = g_strdup_printf("-accel kvm%s -accel tcg " @@ -872,6 +889,18 @@ static int test_migrate_start(QTestState **from, QTestState **to, migrate_watch_for_resume, &got_dst_resume); + if (args->since && migration_vercmp(*to, args->since) < 0) { + g_autofree char *msg = NULL; + + msg = g_strdup_printf("Test requires at least QEMU version %s", + args->since); + g_test_skip(msg); + qtest_quit(*to); + qtest_quit(*from); + + return -1; + } + /* * Remove shmem file immediately to avoid memory leak in test failed case. * It's valid because QEMU has already opened this file From patchwork Thu Jan 4 17:18:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabiano Rosas X-Patchwork-Id: 1882561 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=IUk4eIi+; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=B97rGjAj; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=IUk4eIi+; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=B97rGjAj; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4T5YHh1FZSz1yQ5 for ; Fri, 5 Jan 2024 04:20:00 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rLRNJ-00049Z-3f; Thu, 04 Jan 2024 12:19:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLRNF-00046C-HN for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:18 -0500 Received: from smtp-out1.suse.de ([195.135.223.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rLRNA-0008M8-WA for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:15 -0500 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id B4DD8220C0; Thu, 4 Jan 2024 17:19:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388750; h=from:from:reply-to: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=x3vVGa2AZxjSaer2YaVgXXfdVtM95evtI47dKJOn8lw=; b=IUk4eIi+kSvoydDvbHpRbGkhLac28wxHfoG7WKYaGuORWqFvO5amzb704AySmhGrM72ka0 3LRLhxioD/7ZbpzJpGtlZboYtq9Seq6/l3FpDsS0dkuStJCvXRTaK5+4Gxmxk2qudD0z+v Ws4X8DLAmIOriA6JZZXEYRXKb4Fhdrg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388750; h=from:from:reply-to: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=x3vVGa2AZxjSaer2YaVgXXfdVtM95evtI47dKJOn8lw=; b=B97rGjAjYIUzuHva47mJElCyp0nkYlribb+/3oeqici2CgTMT2Pfz6z+FS1vp2inky9pMv 8wx/z9pts+ouRJDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388750; h=from:from:reply-to: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=x3vVGa2AZxjSaer2YaVgXXfdVtM95evtI47dKJOn8lw=; b=IUk4eIi+kSvoydDvbHpRbGkhLac28wxHfoG7WKYaGuORWqFvO5amzb704AySmhGrM72ka0 3LRLhxioD/7ZbpzJpGtlZboYtq9Seq6/l3FpDsS0dkuStJCvXRTaK5+4Gxmxk2qudD0z+v Ws4X8DLAmIOriA6JZZXEYRXKb4Fhdrg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388750; h=from:from:reply-to: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=x3vVGa2AZxjSaer2YaVgXXfdVtM95evtI47dKJOn8lw=; b=B97rGjAjYIUzuHva47mJElCyp0nkYlribb+/3oeqici2CgTMT2Pfz6z+FS1vp2inky9pMv 8wx/z9pts+ouRJDw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 27F2C13722; Thu, 4 Jan 2024 17:19:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap1.dmz-prg2.suse.org with ESMTPSA id oDi4N4volmUNbAAAD6G6ig (envelope-from ); Thu, 04 Jan 2024 17:19:07 +0000 From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Peter Xu , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Thomas Huth , Juan Quintela , Leonardo Bras , Laurent Vivier , Paolo Bonzini Subject: [PATCH v2 3/4] tests/qtest/migration: Adapt tests to use older QEMUs Date: Thu, 4 Jan 2024 14:18:56 -0300 Message-Id: <20240104171857.20108-4-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240104171857.20108-1-farosas@suse.de> References: <20240104171857.20108-1-farosas@suse.de> MIME-Version: 1.0 Authentication-Results: smtp-out1.suse.de; none X-Spam-Score: 2.39 X-Spamd-Result: default: False [2.39 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; URIBL_BLOCKED(0.00)[suse.de:email]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_MISSING_CHARSET(2.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; BROKEN_CONTENT_TYPE(1.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; RCPT_COUNT_SEVEN(0.00)[9]; MID_CONTAINS_FROM(1.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-2.31)[96.76%] Received-SPF: pass client-ip=195.135.223.130; envelope-from=farosas@suse.de; helo=smtp-out1.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Add the 'since' annotations to recently added tests and adapt the postcopy test to use the older "uri" API when needed. Signed-off-by: Fabiano Rosas --- tests/qtest/migration-test.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 001470238b..599f51f978 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -1338,14 +1338,21 @@ static int migrate_postcopy_prepare(QTestState **from_ptr, migrate_ensure_non_converge(from); migrate_prepare_for_dirty_mem(from); - qtest_qmp_assert_success(to, "{ 'execute': 'migrate-incoming'," - " 'arguments': { " - " 'channels': [ { 'channel-type': 'main'," - " 'addr': { 'transport': 'socket'," - " 'type': 'inet'," - " 'host': '127.0.0.1'," - " 'port': '0' } } ] } }"); + /* New syntax was introduced in 8.2 */ + if (migration_vercmp(to, "8.2") < 0) { + qtest_qmp_assert_success(to, "{ 'execute': 'migrate-incoming'," + " 'arguments': { " + " 'uri': 'tcp:127.0.0.1:0' } }"); + } else { + qtest_qmp_assert_success(to, "{ 'execute': 'migrate-incoming'," + " 'arguments': { " + " 'channels': [ { 'channel-type': 'main'," + " 'addr': { 'transport': 'socket'," + " 'type': 'inet'," + " 'host': '127.0.0.1'," + " 'port': '0' } } ] } }"); + } /* Wait for the first serial output from the source */ wait_for_serial("src_serial"); @@ -1603,6 +1610,9 @@ static void test_postcopy_recovery_double_fail(void) { MigrateCommon args = { .postcopy_recovery_test_fail = true, + .start = { + .since = "8.2", + }, }; test_postcopy_recovery_common(&args); @@ -1665,6 +1675,7 @@ static void test_analyze_script(void) { MigrateStart args = { .opts_source = "-uuid 11111111-1111-1111-1111-111111111111", + .since = "8.2", }; QTestState *from, *to; g_autofree char *uri = NULL; @@ -2090,6 +2101,9 @@ static void test_precopy_file(void) MigrateCommon args = { .connect_uri = uri, .listen_uri = "defer", + .start = { + .since = "8.2" + }, }; test_file_common(&args, true); @@ -2134,6 +2148,9 @@ static void test_precopy_file_offset(void) .connect_uri = uri, .listen_uri = "defer", .finish_hook = file_offset_finish_hook, + .start = { + .since = "8.2" + }, }; test_file_common(&args, false); @@ -2148,6 +2165,9 @@ static void test_precopy_file_offset_bad(void) .connect_uri = uri, .listen_uri = "defer", .result = MIG_TEST_QMP_ERROR, + .start = { + .since = "8.2" + }, }; test_file_common(&args, false); From patchwork Thu Jan 4 17:18:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabiano Rosas X-Patchwork-Id: 1882560 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=iG5buSwW; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=szCprh7C; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=iG5buSwW; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=szCprh7C; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4T5YHF65K9z1yQ5 for ; Fri, 5 Jan 2024 04:19:37 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rLRNJ-00049n-VM; Thu, 04 Jan 2024 12:19:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLRNH-00048U-LG for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:20 -0500 Received: from smtp-out1.suse.de ([195.135.223.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rLRNF-0008ME-8x for qemu-devel@nongnu.org; Thu, 04 Jan 2024 12:19:18 -0500 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 6E7DA220C4; Thu, 4 Jan 2024 17:19:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388753; h=from:from:reply-to: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=RXzhHM5Xsos+lZ8KeiisT11rEeM4li9bZ4VVFvCjCso=; b=iG5buSwWp6Fp7QGqkjidr8gHghu/KIBFpEeNSFoZpgg6dAC3cZCJhKAM63H2yas8yBaK/4 9u2eNiDZdaY8v+zjkNK/E/2kJmI4Hynz5J1w39U1KO+QDzubrwVdUQtBqmzTv8D4+l5Z1a P94vLtEcPlDYDiAXlKZmQ9s7pFHNiH8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388753; h=from:from:reply-to: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=RXzhHM5Xsos+lZ8KeiisT11rEeM4li9bZ4VVFvCjCso=; b=szCprh7CB7f2wYkpr7unAVN6NFTJaPKkJ1FccUAT9+a6zsedljv44LE4yG8Cp6MRv3nF3G LmUtsXusfH6MHDDg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704388753; h=from:from:reply-to: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=RXzhHM5Xsos+lZ8KeiisT11rEeM4li9bZ4VVFvCjCso=; b=iG5buSwWp6Fp7QGqkjidr8gHghu/KIBFpEeNSFoZpgg6dAC3cZCJhKAM63H2yas8yBaK/4 9u2eNiDZdaY8v+zjkNK/E/2kJmI4Hynz5J1w39U1KO+QDzubrwVdUQtBqmzTv8D4+l5Z1a P94vLtEcPlDYDiAXlKZmQ9s7pFHNiH8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704388753; h=from:from:reply-to: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=RXzhHM5Xsos+lZ8KeiisT11rEeM4li9bZ4VVFvCjCso=; b=szCprh7CB7f2wYkpr7unAVN6NFTJaPKkJ1FccUAT9+a6zsedljv44LE4yG8Cp6MRv3nF3G LmUtsXusfH6MHDDg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2666413722; Thu, 4 Jan 2024 17:19:10 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap1.dmz-prg2.suse.org with ESMTPSA id WB2AN47olmUNbAAAD6G6ig (envelope-from ); Thu, 04 Jan 2024 17:19:10 +0000 From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Peter Xu , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Thomas Huth , =?utf-8?q?Alex_Benn=C3=A9e?= , Wainer dos Santos Moschetta , Beraldo Leal Subject: [PATCH v2 4/4] ci: Add a migration compatibility test job Date: Thu, 4 Jan 2024 14:18:57 -0300 Message-Id: <20240104171857.20108-5-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240104171857.20108-1-farosas@suse.de> References: <20240104171857.20108-1-farosas@suse.de> MIME-Version: 1.0 X-Spam-Score: -0.51 X-Rspamd-Queue-Id: 6E7DA220C4 Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=iG5buSwW; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=szCprh7C X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spamd-Bar: / X-Spamd-Result: default: False [-0.51 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; URIBL_BLOCKED(0.00)[suse.de:email,suse.de:dkim]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_MISSING_CHARSET(2.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; BROKEN_CONTENT_TYPE(1.50)[]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DKIM_TRACE(0.00)[suse.de:+]; MX_GOOD(-0.01)[]; RCPT_COUNT_SEVEN(0.00)[8]; MID_CONTAINS_FROM(1.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:dkim]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; NEURAL_HAM_SHORT(-0.20)[-1.000]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-3.00)[100.00%] Received-SPF: pass client-ip=195.135.223.130; envelope-from=farosas@suse.de; helo=smtp-out1.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org The migration tests have support for being passed two QEMU binaries to test migration compatibility. Add a CI job that builds the lastest release of QEMU and another job that uses that version plus an already present build of the current version and run the migration tests with the two, both as source and destination. I.e.: old QEMU (n-1) -> current QEMU (development tree) current QEMU (development tree) -> old QEMU (n-1) The purpose of this CI job is to ensure the code we're about to merge will not cause a migration compatibility problem when migrating the next release (which will contain that code) to/from the previous release. I'm leaving the jobs as manual for now because using an older QEMU in tests could hit bugs that were already fixed in the current development tree and we need to handle those case-by-case. Note: for user forks, the version tags need to be pushed to gitlab otherwise it won't be able to checkout a different version. Signed-off-by: Fabiano Rosas --- .gitlab-ci.d/buildtest.yml | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index 91663946de..81163a3f6a 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -167,6 +167,59 @@ build-system-centos: x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu MAKE_CHECK_ARGS: check-build +build-previous-qemu: + extends: .native_build_job_template + artifacts: + when: on_success + expire_in: 2 days + paths: + - build-previous + exclude: + - build-previous/**/*.p + - build-previous/**/*.a.p + - build-previous/**/*.fa.p + - build-previous/**/*.c.o + - build-previous/**/*.c.o.d + - build-previous/**/*.fa + needs: + job: amd64-opensuse-leap-container + variables: + QEMU_JOB_OPTIONAL: 1 + IMAGE: opensuse-leap + TARGETS: x86_64-softmmu aarch64-softmmu + before_script: + - export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' VERSION)" + - git checkout $QEMU_PREV_VERSION + after_script: + - mv build build-previous + +.migration-compat-common: + extends: .common_test_job_template + needs: + - job: build-previous-qemu + - job: build-system-opensuse + allow_failure: true + variables: + QEMU_JOB_OPTIONAL: 1 + IMAGE: opensuse-leap + MAKE_CHECK_ARGS: check-build + script: + - cd build + - QTEST_QEMU_BINARY_SRC=../build-previous/qemu-system-${TARGET} + QTEST_QEMU_BINARY=./qemu-system-${TARGET} ./tests/qtest/migration-test + - QTEST_QEMU_BINARY_DST=../build-previous/qemu-system-${TARGET} + QTEST_QEMU_BINARY=./qemu-system-${TARGET} ./tests/qtest/migration-test + +migration-compat-aarch64: + extends: .migration-compat-common + variables: + TARGET: aarch64 + +migration-compat-x86_64: + extends: .migration-compat-common + variables: + TARGET: x86_64 + check-system-centos: extends: .native_test_job_template needs: