From 9691b067899a5577cfc09f705d5e41ffe335e9ea Mon Sep 17 00:00:00 2001 From: Maksim Fedotov Date: Tue, 21 Apr 2026 11:27:02 +0300 Subject: [PATCH 1/2] chore(e2e): fix long filenames Signed-off-by: Maksim Fedotov --- test/e2e/internal/framework/dump.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/test/e2e/internal/framework/dump.go b/test/e2e/internal/framework/dump.go index 2b7c6284cf..3a9ee3c448 100644 --- a/test/e2e/internal/framework/dump.go +++ b/test/e2e/internal/framework/dump.go @@ -31,7 +31,23 @@ import ( "github.com/deckhouse/virtualization/test/e2e/internal/kubectl" ) -const d8vContainerPrefix = "d8v" +const ( + d8vContainerPrefix = "d8v" + // maxTestNameLen is the maximum length of the test name portion in a dump filename. + // Linux filesystems (ext4/xfs) limit filenames to 255 bytes. We reserve ~70 bytes + // for the "e2e_failed__" prefix, "____events.yaml" suffix, and directory path. + maxTestNameLen = 180 +) + +// truncateTestName shortens s to at most maxLen bytes while keeping the text +// human-readable: it preserves a prefix and a suffix separated by "...". +func truncateTestName(s string, maxLen int) string { + if len(s) <= maxLen { + return s + } + half := (maxLen - 3) / 2 + return s[:half] + "..." + s[len(s)-(maxLen-3-half):] +} // SaveTestCaseDump dump some resources, logs and descriptions that may help in further diagnostic. // @@ -72,7 +88,8 @@ func GetFormattedTestCaseFullText() string { "`", "", "'", "", ) - return replacer.Replace(strings.ToLower(CurrentSpecReport().FullText())) + result := replacer.Replace(strings.ToLower(CurrentSpecReport().FullText())) + return truncateTestName(result, maxTestNameLen) } // GetTMPDir returns the temporary directory used for the test case resource dump. From 62970f25552bb53a2427d6bd11dfeb081338a8e2 Mon Sep 17 00:00:00 2001 From: Maksim Fedotov Date: Wed, 22 Apr 2026 11:57:12 +0300 Subject: [PATCH 2/2] remove magic number Signed-off-by: Maksim Fedotov --- test/e2e/internal/framework/dump.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/e2e/internal/framework/dump.go b/test/e2e/internal/framework/dump.go index 3a9ee3c448..5a7710f293 100644 --- a/test/e2e/internal/framework/dump.go +++ b/test/e2e/internal/framework/dump.go @@ -37,16 +37,18 @@ const ( // Linux filesystems (ext4/xfs) limit filenames to 255 bytes. We reserve ~70 bytes // for the "e2e_failed__" prefix, "____events.yaml" suffix, and directory path. maxTestNameLen = 180 + ellipsis = "..." ) // truncateTestName shortens s to at most maxLen bytes while keeping the text -// human-readable: it preserves a prefix and a suffix separated by "...". +// human-readable: it preserves a prefix and a suffix separated by ellipsis. func truncateTestName(s string, maxLen int) string { if len(s) <= maxLen { return s } - half := (maxLen - 3) / 2 - return s[:half] + "..." + s[len(s)-(maxLen-3-half):] + available := maxLen - len(ellipsis) + half := available / 2 + return s[:half] + ellipsis + s[len(s)-(available-half):] } // SaveTestCaseDump dump some resources, logs and descriptions that may help in further diagnostic.