git: af238d55d313 - main - kyua: Fixes after vendor merge
Date: Sun, 18 Oct 2026 17:24:26 UTC
The branch main has been updated by igoro:
URL: https://cgit.FreeBSD.org/src/commit/?id=af238d55d313a4a99fe9a3492755eb152b17bca0
commit af238d55d313a4a99fe9a3492755eb152b17bca0
Author: Igor Ostapenko <igoro@FreeBSD.org>
AuthorDate: 2026-10-18 17:22:55 +0000
Commit: Igor Ostapenko <igoro@FreeBSD.org>
CommitDate: 2026-10-18 17:22:55 +0000
kyua: Fixes after vendor merge
Reviewed by: ngie
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D60446
---
contrib/kyua/cli/cmd_debug.cpp | 4 ++--
contrib/kyua/doc/kyuafile.5 | 1 +
contrib/kyua/doc/kyuafile.5.in | 1 +
contrib/kyua/engine/scheduler.cpp | 4 ++--
contrib/kyua/model/metadata.cpp | 47 ++++++++++++++++++++++++++-------------
contrib/kyua/os/freebsd/main.cpp | 16 ++++++++-----
6 files changed, 47 insertions(+), 26 deletions(-)
diff --git a/contrib/kyua/cli/cmd_debug.cpp b/contrib/kyua/cli/cmd_debug.cpp
index f5e48572407e..f43be8fe85f2 100644
--- a/contrib/kyua/cli/cmd_debug.cpp
+++ b/contrib/kyua/cli/cmd_debug.cpp
@@ -155,14 +155,14 @@ public:
_ui->out("The test failed and paused right before its cleanup "
"routine.");
_ui->out(F("Test work dir: %s") % eh.work_directory().str());
- _ui->out("Press any key to continue...");
+ _ui->out("Press <Enter> to continue...");
(void) std::cin.get();
}
} else if (_cmdline.has_option(pause_before_cleanup_option
.long_name())) {
_ui->out("The test paused right before its cleanup routine.");
_ui->out(F("Test work dir: %s") % eh.work_directory().str());
- _ui->out("Press any key to continue...");
+ _ui->out("Press <Enter> to continue...");
(void) std::cin.get();
}
};
diff --git a/contrib/kyua/doc/kyuafile.5 b/contrib/kyua/doc/kyuafile.5
index 1990e7bba3a3..d26312dd0d18 100644
--- a/contrib/kyua/doc/kyuafile.5
+++ b/contrib/kyua/doc/kyuafile.5
@@ -311,6 +311,7 @@ Supported platforms:
.Pp
ATF:
.Va require.kmods
+(appends to the list declared at the Kyuafile level instead of overwriting it)
.It Va required_memory
Amount of physical memory that the test needs to run successfully.
.Pp
diff --git a/contrib/kyua/doc/kyuafile.5.in b/contrib/kyua/doc/kyuafile.5.in
index ae4b8ebfa3fe..9485ed187814 100644
--- a/contrib/kyua/doc/kyuafile.5.in
+++ b/contrib/kyua/doc/kyuafile.5.in
@@ -311,6 +311,7 @@ Supported platforms:
.Pp
ATF:
.Va require.kmods
+(appends to the list declared at the Kyuafile level instead of overwriting it)
.It Va required_memory
Amount of physical memory that the test needs to run successfully.
.Pp
diff --git a/contrib/kyua/engine/scheduler.cpp b/contrib/kyua/engine/scheduler.cpp
index 6e19a1598f8c..d04fc1dfbd3d 100644
--- a/contrib/kyua/engine/scheduler.cpp
+++ b/contrib/kyua/engine/scheduler.cpp
@@ -1653,8 +1653,8 @@ scheduler::generate_config(const config::tree& user_config,
if (user_config.is_set("unprivileged_user")) {
const passwd::user& user =
user_config.lookup< engine::user_node >("unprivileged_user");
- // The property is duplicated using both ATF and Kyua naming styles
- // for better UX.
+ // The property is duplicated using both ATF and Kyua naming styles
+ // for better UX.
props["unprivileged-user"] = user.name;
props["unprivileged_user"] = user.name;
}
diff --git a/contrib/kyua/model/metadata.cpp b/contrib/kyua/model/metadata.cpp
index 8bb071163c10..51a7b03e4599 100644
--- a/contrib/kyua/model/metadata.cpp
+++ b/contrib/kyua/model/metadata.cpp
@@ -255,8 +255,8 @@ init_tree(config::tree& tree)
tree.define< config::strings_set_node >("required_configs");
tree.define< bytes_node >("required_disk_space");
tree.define< paths_set_node >("required_files");
- tree.define< bytes_node >("required_memory");
tree.define< config::strings_set_node >("required_kmods");
+ tree.define< bytes_node >("required_memory");
tree.define< paths_set_node >("required_programs");
tree.define< user_node >("required_user");
tree.define< delta_node >("timeout");
@@ -282,8 +282,8 @@ set_defaults(config::tree& tree)
model::strings_set());
tree.set< bytes_node >("required_disk_space", units::bytes(0));
tree.set< paths_set_node >("required_files", model::paths_set());
- tree.set< bytes_node >("required_memory", units::bytes(0));
tree.set< config::strings_set_node >("required_kmods", model::strings_set());
+ tree.set< bytes_node >("required_memory", units::bytes(0));
tree.set< paths_set_node >("required_programs", model::paths_set());
tree.set< user_node >("required_user", "");
// TODO(jmmv): We shouldn't be setting a default timeout like this. See
@@ -585,20 +585,6 @@ model::metadata::required_files(void) const
}
-/// Returns the amount of memory required by the test.
-///
-/// \return Number of bytes, or 0 if this does not apply.
-const units::bytes&
-model::metadata::required_memory(void) const
-{
- if (_pimpl->props.is_set("required_memory")) {
- return _pimpl->props.lookup< bytes_node >("required_memory");
- } else {
- return get_defaults().lookup< bytes_node >("required_memory");
- }
-}
-
-
/// Returns the list of kernel modules needed by the test.
///
/// \return Set of kernel module names.
@@ -615,6 +601,20 @@ model::metadata::required_kmods(void) const
}
+/// Returns the amount of memory required by the test.
+///
+/// \return Number of bytes, or 0 if this does not apply.
+const units::bytes&
+model::metadata::required_memory(void) const
+{
+ if (_pimpl->props.is_set("required_memory")) {
+ return _pimpl->props.lookup< bytes_node >("required_memory");
+ } else {
+ return get_defaults().lookup< bytes_node >("required_memory");
+ }
+}
+
+
/// Returns the list of programs needed by the test.
///
/// \return Set of paths.
@@ -1059,6 +1059,21 @@ model::metadata_builder::set_required_files(const model::paths_set& files)
}
+/// Sets the list of required kernel modules.
+///
+/// \param vars Set of kernel module names.
+///
+/// \return A reference to this builder.
+///
+/// \throw model::error If the value is invalid.
+model::metadata_builder&
+model::metadata_builder::set_required_kmods(const model::strings_set& kmods)
+{
+ set< config::strings_set_node >(_pimpl->props, "required_kmods", kmods);
+ return *this;
+}
+
+
/// Sets the amount of memory required by the test.
///
/// \param bytes Number of bytes.
diff --git a/contrib/kyua/os/freebsd/main.cpp b/contrib/kyua/os/freebsd/main.cpp
index 700284b64b78..1fe4fca8cae4 100644
--- a/contrib/kyua/os/freebsd/main.cpp
+++ b/contrib/kyua/os/freebsd/main.cpp
@@ -34,7 +34,12 @@
#include "engine/requirements.hpp"
#include "os/freebsd/reqs_checker_kmods.hpp"
+#include "engine/prepare/prepare.hpp"
+#include "os/freebsd/prepare_kmods.hpp"
+
namespace execenv = engine::execenv;
+namespace prepare = engine::prepare;
+
/// FreeBSD related features initialization.
///
@@ -50,15 +55,14 @@ int
freebsd::main(const int, const char* const* const)
{
execenv::register_execenv(
- std::shared_ptr< execenv::manager >(new freebsd::execenv_jail_manager())
- );
+ std::make_shared<freebsd::execenv_jail_manager>());
#ifdef __FreeBSD__
engine::register_reqs_checker(
- std::shared_ptr< engine::reqs_checker >(
- new freebsd::reqs_checker_kmods()
- )
- );
+ std::make_shared<freebsd::reqs_checker_kmods>());
+
+ prepare::register_handler(
+ std::make_shared<freebsd::prepare_kmods>());
#endif
return 0;