From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B1EBA158099 for ; Tue, 28 Nov 2023 22:26:10 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id F10AD2BC01F; Tue, 28 Nov 2023 22:26:09 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (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 pigeon.gentoo.org (Postfix) with ESMTPS id C03822BC01F for ; Tue, 28 Nov 2023 22:26:09 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id CE93D335D17 for ; Tue, 28 Nov 2023 22:26:08 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3418BF1A for ; Tue, 28 Nov 2023 22:26:07 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1701209266.2b02d8f5495cd5004c294f87beb365fd490018bd.sam@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: lib/portage/tests/resolver/ X-VCS-Repository: proj/portage X-VCS-Files: lib/portage/tests/resolver/test_runtime_cycle_merge_order.py X-VCS-Directories: lib/portage/tests/resolver/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 2b02d8f5495cd5004c294f87beb365fd490018bd X-VCS-Branch: master Date: Tue, 28 Nov 2023 22:26:07 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: e23e2bac-3a77-40f2-b5ac-ebbf6eb74b88 X-Archives-Hash: c9ec6370992b4f5fe376fdc90b9ed801 commit: 2b02d8f5495cd5004c294f87beb365fd490018bd Author: Sam James gentoo org> AuthorDate: Tue Nov 28 05:33:56 2023 +0000 Commit: Sam James gentoo org> CommitDate: Tue Nov 28 22:07:46 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=2b02d8f5 tests: add runtime cycle test case with binpkgs In the reported bug, net-misc/curl gets merged (binary), then dev-util/cmake gets bulit (from source) which fails because one of the built curl's dependencies (net-libs/nghttp2) is missing: ``` [binary R ] net-misc/curl-8.4.0::test_repo USE="http2%*" 0 KiB [ebuild U ] dev-util/cmake-3.27.8::test_repo [3.26.5-r2::test_repo] 0 KiB [ebuild N ] net-libs/nghttp2-1.57.0::test_repo 0 KiB ``` We should consider the existing dev-util/cmake as sufficient for nghttp2 and instead do: 1. net-libs/nghttp2-1.57.0 2. net-misc/curl-8.4.0 (binary) 3. dev-util/cmake-3.27.8 (upgrade, we didn't need to do this first as we already had a CMake installed) Bug: https://bugs.gentoo.org/918683 Signed-off-by: Sam James gentoo.org> .../resolver/test_runtime_cycle_merge_order.py | 145 +++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/lib/portage/tests/resolver/test_runtime_cycle_merge_order.py b/lib/portage/tests/resolver/test_runtime_cycle_merge_order.py index a955ac3dc3..26850ccad2 100644 --- a/lib/portage/tests/resolver/test_runtime_cycle_merge_order.py +++ b/lib/portage/tests/resolver/test_runtime_cycle_merge_order.py @@ -7,6 +7,8 @@ from portage.tests.resolver.ResolverPlayground import ( ResolverPlaygroundTestCase, ) +import pytest + class RuntimeCycleMergeOrderTestCase(TestCase): def testRuntimeCycleMergeOrder(self): @@ -74,3 +76,146 @@ class RuntimeCycleMergeOrderTestCase(TestCase): self.assertEqual(test_case.test_success, True, test_case.fail_msg) finally: playground.cleanup() + + @pytest.mark.xfail() + def testBuildtimeRuntimeCycleMergeOrder(self): + installed = { + "dev-util/cmake-3.26.5-r2": { + "EAPI": "8", + "KEYWORDS": "x86", + "DEPEND": "net-misc/curl", + "RDEPEND": "net-misc/curl", + }, + "net-dns/c-ares-1.21.0": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + "RDEPEND": "net-dns/c-ares", + }, + "net-misc/curl-8.4.0": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + "DEPEND": """ + net-dns/c-ares + http2? ( net-libs/nghttp2:= ) + """, + "RDEPEND": """ + net-dns/c-ares + http2? ( net-libs/nghttp2:= ) + """, + }, + "net-dns/c-ares-1.21.0": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + }, + } + + binpkgs = { + "net-misc/curl-8.4.0": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + "IUSE": "http2", + "USE": "http2", + "DEPEND": """ + net-dns/c-ares + http2? ( net-libs/nghttp2:= ) + """, + "RDEPEND": """ + net-dns/c-ares + http2? ( net-libs/nghttp2:= ) + """, + }, + "dev-util/cmake-3.26.5-r2": { + "EAPI": "8", + "KEYWORDS": "x86", + "DEPEND": "net-misc/curl", + "RDEPEND": "net-misc/curl", + }, + } + + ebuilds = { + "dev-util/cmake-3.26.5-r2": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + "DEPEND": "net-misc/curl", + "RDEPEND": "net-misc/curl", + }, + "dev-util/cmake-3.27.8": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "~x86", + "DEPEND": "net-misc/curl", + "RDEPEND": "net-misc/curl", + }, + "net-dns/c-ares-1.21.0": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + }, + "net-libs/nghttp2-1.57.0": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + "BDEPEND": "dev-util/cmake", + "RDEPEND": "net-dns/c-ares", + }, + "net-misc/curl-8.4.0": { + "EAPI": "8", + "SLOT": "0", + "KEYWORDS": "x86", + "IUSE": "http2", + "DEPEND": """ + net-dns/c-ares + http2? ( net-libs/nghttp2:= ) + """, + "RDEPEND": """ + net-dns/c-ares + http2? ( net-libs/nghttp2:= ) + """, + }, + } + + world = ("dev-util/cmake",) + + test_cases = ( + ResolverPlaygroundTestCase( + ["@world"], + options={ + "--verbose": True, + "--update": True, + "--deep": True, + "--newuse": True, + "--usepkg": True, + }, + success=True, + mergelist=[ + "net-libs/nghttp2-1.57.0", + "[binary]net-misc/curl-8.4.0", + "dev-util/cmake-3.27.8", + ], + ), + ) + + playground = ResolverPlayground( + world=world, + installed=installed, + binpkgs=binpkgs, + ebuilds=ebuilds, + debug=False, + user_config={ + "make.conf": ( + f'ACCEPT_KEYWORDS="~x86"', + f'USE="http2"', + ), + }, + ) + try: + for test_case in test_cases: + playground.run_TestCase(test_case) + self.assertEqual(test_case.test_success, True, test_case.fail_msg) + finally: + playground.cleanup()