git: 9383629ffc92 - stable/14 - kyua: Support require.diskspace ATF metadata
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 04 Mar 2025 22:06:16 UTC
The branch stable/14 has been updated by igoro:
URL: https://cgit.FreeBSD.org/src/commit/?id=9383629ffc923fe12ae031820713f68b845af838
commit 9383629ffc923fe12ae031820713f68b845af838
Author: Igor Ostapenko <igoro@FreeBSD.org>
AuthorDate: 2025-02-02 19:14:55 +0000
Commit: Igor Ostapenko <igoro@FreeBSD.org>
CommitDate: 2025-03-04 21:09:11 +0000
kyua: Support require.diskspace ATF metadata
Reviewed by: ngie
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D48333
(cherry picked from commit 6befd3511105a17decdafbf9d3f55324c83aaea1)
---
contrib/kyua/doc/kyuafile.5.in | 3 ++-
contrib/kyua/engine/atf_list.cpp | 2 ++
contrib/kyua/engine/atf_list_test.cpp | 23 +++++++++++++++++++++++
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/contrib/kyua/doc/kyuafile.5.in b/contrib/kyua/doc/kyuafile.5.in
index 4fe5f12fd9b1..ae1e4fe40e32 100644
--- a/contrib/kyua/doc/kyuafile.5.in
+++ b/contrib/kyua/doc/kyuafile.5.in
@@ -282,7 +282,8 @@ ATF:
.It Va required_disk_space
Amount of available disk space that the test needs to run successfully.
.Pp
-ATF: not mapped
+ATF:
+.Va require.diskspace
.It Va required_files
Whitespace-separated list of paths that the test requires to exist before
it can run.
diff --git a/contrib/kyua/engine/atf_list.cpp b/contrib/kyua/engine/atf_list.cpp
index c4f348ada2f6..f6ec20d7709a 100644
--- a/contrib/kyua/engine/atf_list.cpp
+++ b/contrib/kyua/engine/atf_list.cpp
@@ -129,6 +129,8 @@ engine::parse_atf_metadata(const model::properties_map& props)
mdbuilder.set_string("is_exclusive", value);
} else if (name == "require.config") {
mdbuilder.set_string("required_configs", value);
+ } else if (name == "require.diskspace") {
+ mdbuilder.set_string("required_disk_space", value);
} else if (name == "require.files") {
mdbuilder.set_string("required_files", value);
} else if (name == "require.machine") {
diff --git a/contrib/kyua/engine/atf_list_test.cpp b/contrib/kyua/engine/atf_list_test.cpp
index 7648ee2c6a80..f3a36ab864f7 100644
--- a/contrib/kyua/engine/atf_list_test.cpp
+++ b/contrib/kyua/engine/atf_list_test.cpp
@@ -67,6 +67,7 @@ ATF_TEST_CASE_BODY(parse_atf_metadata__override_all)
properties["is.exclusive"] = "true";
properties["require.arch"] = "i386 x86_64";
properties["require.config"] = "var1 var2 var3";
+ properties["require.diskspace"] = "10g";
properties["require.files"] = "/file1 /dir/file2";
properties["require.machine"] = "amd64";
properties["require.memory"] = "1m";
@@ -95,6 +96,7 @@ ATF_TEST_CASE_BODY(parse_atf_metadata__override_all)
.set_description("Some text")
.set_has_cleanup(true)
.set_is_exclusive(true)
+ .set_required_disk_space(units::bytes::parse("10g"))
.set_required_memory(units::bytes::parse("1m"))
.set_required_user("root")
.set_timeout(datetime::delta(123, 0))
@@ -293,6 +295,26 @@ ATF_TEST_CASE_BODY(parse_atf_list__is_exclusive_support)
}
+ATF_TEST_CASE_WITHOUT_HEAD(parse_atf_list__disk_space_support);
+ATF_TEST_CASE_BODY(parse_atf_list__disk_space_support)
+{
+ const std::string text =
+ "Content-Type: application/X-atf-tp; version=\"1\"\n"
+ "\n"
+ "ident: first\n"
+ "require.diskspace: 123M\n";
+ std::istringstream input(text);
+ const model::test_cases_map tests = engine::parse_atf_list(input);
+
+ const model::test_cases_map exp_tests = model::test_cases_map_builder()
+ .add("first", model::metadata_builder()
+ .set_required_disk_space(units::bytes::parse("123M"))
+ .build())
+ .build();
+ ATF_REQUIRE_EQ(exp_tests, tests);
+}
+
+
ATF_INIT_TEST_CASES(tcs)
{
ATF_ADD_TEST_CASE(tcs, parse_atf_metadata__defaults);
@@ -308,4 +330,5 @@ ATF_INIT_TEST_CASES(tcs)
ATF_ADD_TEST_CASE(tcs, parse_atf_list__one_test_case_invalid_properties);
ATF_ADD_TEST_CASE(tcs, parse_atf_list__many_test_cases);
ATF_ADD_TEST_CASE(tcs, parse_atf_list__is_exclusive_support);
+ ATF_ADD_TEST_CASE(tcs, parse_atf_list__disk_space_support);
}