From nobody Fri Jul 19 21:53:19 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WQk286wLlz5QRvN; Fri, 19 Jul 2024 21:53:20 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WQk285xxVz4VFH; Fri, 19 Jul 2024 21:53:20 +0000 (UTC) (envelope-from brooks@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1721426000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dKc4IE25oGlL74JXvXt2vNJUHlE199Sg0Ir0/nx0oNI=; b=SRMuXimj3HaEhS5Clcs9UBZa86JMMlmU1tC3cHEGmC1Jup9innCAfZPjCXWHm/fkQniuRC MmrL08r6uMn2fAQhRoSyadvhXhroC3JvQre/0lkRSaaNka2DfZbYr1UTpUDXts/62TxLaT oiTMeeZyXTzXKjUok/jq54J76Qba6N1ps3xFA+w6o4ZkXwBDfruqCaJD7m0xEvjmE1DgCC Tze0EGa83cpLUy25qfjLEfd4wQxAfhHlD9sRskIDMnbFIRAbSsjbQh2LoVSPHmJpqybOGc 6smTsnWVBDVcf9pWU4eR2UB2Gb9ug/zJpwrYAmoNdGmNgcXUyV3xjeXk/VlTSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1721426000; a=rsa-sha256; cv=none; b=nNRO4a5OsNbR6nxnY7JCckTani1EmiHbDxiTF6vp7mvavRH7yXIq9RF9ilhXNgeV3cgAvH wAnz2dHa+Hq26M78ZXq1MOJUNhihkc2Sb2msEhfYm9T2u0HMZmLRiJw2HO8aBeDO6TkHMq 9+z97HlvFctSsH/4HhG0yIittu+TlGmc9ZMmrmqKQGoW0CYkYHpPXMsFFrnicGu50DQaNe 7v85OpXgPrUph+VY4D/aIkm4vYq3UVbOjcitmQP+JcFzFHk6ohZaCq255r7udu9tjGllSl F6rTr5J5NLisg7Ioa4XFzP8APOiUgomzlixMnu9CCE9ERsLWXsVk86MVpwDfnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1721426000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dKc4IE25oGlL74JXvXt2vNJUHlE199Sg0Ir0/nx0oNI=; b=tTctNCW93NiSRQcR+gyyooL1viGPWZp0tnbmwEMrfRwaDam3pXuT5et8S34G6klXNKjYZ3 /LV0xu4KLd76MW4K2E+n3hgJp2T9sIrsgs66SdzIk8V2eaPewzG1LqARYYYXmiIbbWtawr Ck9yUrdGOkR1EryXQk7Ebhc1Wlv05lVAs8B9EcqXBLNIdf0j1OUozNbKmbEItZNrTlHxZa Y2tslC8oIG3xJM47Udxqw+pbEvmhTKtthuRBrm6aVUO6qDLZHjLZMZXESUOXmSPE9l+8/A 16AUOprIAy15gfs6ullXFfFrPM6LKtOqViL0EHUm7jjixTzH5E5c42eqzVwblw== Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net [199.48.129.229]) (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) (Client did not present a certificate) (Authenticated sender: brooks/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4WQk284zcTzGV4; Fri, 19 Jul 2024 21:53:20 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001) id C45763C019B; Fri, 19 Jul 2024 21:53:19 +0000 (UTC) Date: Fri, 19 Jul 2024 21:53:19 +0000 From: Brooks Davis To: Ryan Libby Cc: Mark Johnston , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 257e70f1d5ee - main - kyua: Add FreeBSD Jail execution environment support Message-ID: References: <202407181319.46IDJdBj055008@gitrepo.freebsd.org> List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Fri, Jul 19, 2024 at 02:50:04PM -0700, Ryan Libby wrote: > On Thu, Jul 18, 2024 at 6:19???AM Mark Johnston wrote: > > > > The branch main has been updated by markj: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=257e70f1d5ee61037c8c59b116538d3b6b1427a2 > > > > commit 257e70f1d5ee61037c8c59b116538d3b6b1427a2 > > Author: Igor Ostapenko > > AuthorDate: 2024-07-16 18:41:12 +0000 > > Commit: Mark Johnston > > CommitDate: 2024-07-18 13:18:28 +0000 > > > > kyua: Add FreeBSD Jail execution environment support > > > > A new Kyua concept is added -- "execution environment". A test can be > > configured to be run within a specific environment. The test case > > lifecycle is extended respectively: > > - execenv init (creates a jail or does nothing for default > > execenv="host") > > - test exec > > - cleanup exec (optional) > > - execenv cleanup (removes a jail or does nothing for default > > execenv="host") > > > > The following new functionality is provided, from bottom to top: > > > > 1 ATF based tests > > > > - The new "execenv" metadata property can be set to explicitly ask for > > an execution environment: "host" or "jail". If it's not defined, as > > all existing tests do, then it implicitly means "host". > > > > - The new "execenv.jail.params" metadata property can be optionally > > defined to ask Kyua to use specific jail(8) parameters during creation > > of a temporary jail. An example is "vnet allow.raw_sockets". > > > > Kyua implicitly adds "children.max" to "execenv_jail_params" > > parameters with the maximum possible value. A test case can override > > it. > > > > 2 Kyuafile > > > > - The same new metadata properties can be defined on Kyuafile level: > > "execenv" and "execenv_jail_params". > > > > - Note that historically ATF uses dotted style of metadata naming, while > > Kyua uses underscore style. Hence "execenv.jail.params" vs. > > "execenv_jail_params". > > > > 3 kyua.conf, kyua CLI > > > > - The new "execenvs" engine configuration variable can be set to a list > > of execution environments to run only tests designed for. Tests of not > > listed environments are skipped. > > > > - By default, this variable lists all execution environments supported > > by a Kyua binary, e.g. execenvs="host jail". > > > > - This variable can be changed via "kyua.conf" or via kyua CLI's "-v" > > parameter. For example, "kyua -v execenvs=host test" will run only > > host-based tests and skip jail-based ones. > > > > - Current value of this variable can be examined with "kyua config". > > > > [markj] This feature has not landed upstream yet. > > See the discussion in https://github.com/freebsd/kyua/pull/224 . > > Having the ability to automatically jail tests allows many network tests > > to run in parallel, giving a drastic speedup. So, let's import the > > feature and start using it in main. > > > > Signed-off-by: Igor Ostapenko > > Reviewed by: markj, kp > > Tested by: markj, kp > > MFC after: 3 months > > Differential Revision: https://reviews.freebsd.org/D45865 > > --- > > contrib/kyua/AUTHORS | 1 + > > contrib/kyua/cli/cmd_config_test.cpp | 12 +- > > contrib/kyua/doc/kyua.conf.5.in | 13 +- > > contrib/kyua/doc/kyuafile.5.in | 103 +++++++- > > contrib/kyua/drivers/report_junit_test.cpp | 8 + > > contrib/kyua/engine/atf.cpp | 11 +- > > contrib/kyua/engine/atf_list.cpp | 4 + > > contrib/kyua/engine/config.cpp | 18 ++ > > contrib/kyua/engine/execenv/execenv.cpp | 74 ++++++ > > contrib/kyua/engine/execenv/execenv.hpp | 149 +++++++++++ > > contrib/kyua/engine/execenv/execenv_host.cpp | 52 ++++ > > contrib/kyua/engine/execenv/execenv_host.hpp | 63 +++++ > > contrib/kyua/engine/plain.cpp | 7 +- > > contrib/kyua/engine/requirements.cpp | 33 +++ > > contrib/kyua/engine/scheduler.cpp | 274 ++++++++++++++++++- > > contrib/kyua/engine/scheduler.hpp | 1 + > > contrib/kyua/engine/tap.cpp | 7 +- > > contrib/kyua/examples/kyua.conf | 3 + > > contrib/kyua/integration/cmd_config_test.sh | 2 + > > contrib/kyua/integration/cmd_report_junit_test.sh | 8 + > > contrib/kyua/integration/cmd_report_test.sh | 2 + > > contrib/kyua/main.cpp | 3 + > > contrib/kyua/model/metadata.cpp | 76 ++++++ > > contrib/kyua/model/metadata.hpp | 5 + > > contrib/kyua/model/metadata_test.cpp | 8 +- > > contrib/kyua/model/test_case_test.cpp | 3 +- > > contrib/kyua/model/test_program_test.cpp | 13 +- > > contrib/kyua/os/freebsd/execenv_jail.cpp | 78 ++++++ > > contrib/kyua/os/freebsd/execenv_jail.hpp | 65 +++++ > > contrib/kyua/os/freebsd/execenv_jail_manager.cpp | 63 +++++ > > contrib/kyua/os/freebsd/execenv_jail_manager.hpp | 54 ++++ > > contrib/kyua/os/freebsd/execenv_jail_stub.cpp | 75 ++++++ > > contrib/kyua/os/freebsd/main.cpp | 54 ++++ > > contrib/kyua/os/freebsd/main.hpp | 41 +++ > > contrib/kyua/os/freebsd/utils/jail.cpp | 306 ++++++++++++++++++++++ > > contrib/kyua/os/freebsd/utils/jail.hpp | 64 +++++ > > contrib/kyua/utils/config/nodes.ipp | 9 +- > > contrib/kyua/utils/process/executor.cpp | 42 +++ > > contrib/kyua/utils/process/executor.hpp | 1 + > > usr.bin/kyua/Makefile | 15 +- > > 40 files changed, 1792 insertions(+), 28 deletions(-) > > > > This broke the gcc build: > https://ci.freebsd.org/job/FreeBSD-main-amd64-gcc13_build/1307/ See https://reviews.freebsd.org/D46041 for a workaround. -- Brooks