diff --git a/integration/network/bridge/bridge_linux_test.go b/integration/network/bridge/bridge_linux_test.go index 0c1c5eeb8f..85a89bac13 100644 --- a/integration/network/bridge/bridge_linux_test.go +++ b/integration/network/bridge/bridge_linux_test.go @@ -889,7 +889,9 @@ func TestFirewallBackendSwitch(t *testing.T) { dump = icmd.RunCommand("iptables-save").Combined() dump += icmd.RunCommand("ip6tables-save").Combined() }) - for line := range strings.Lines(dump) { + + // TODO: (When Go 1.24 is min version) Replace with `strings.Lines(dump)`. + for _, line := range strings.Split(dump, "\n") { line = strings.TrimSpace(line) if line == "" { continue diff --git a/integration/network/bridge/nftablesdoc/nftablesdoc_linux_test.go b/integration/network/bridge/nftablesdoc/nftablesdoc_linux_test.go index 3b9e6532ca..0a04d21b33 100644 --- a/integration/network/bridge/nftablesdoc/nftablesdoc_linux_test.go +++ b/integration/network/bridge/nftablesdoc/nftablesdoc_linux_test.go @@ -20,6 +20,7 @@ package nftablesdoc import ( "context" "fmt" + "iter" "net/netip" "os" "path/filepath" @@ -413,7 +414,7 @@ func runNftables(t *testing.T, host networking.Host) map[string]string { // {{index . "map filter-forward-out-jumps"}} var sb strings.Builder - for line := range strings.Lines(out) { + for line := range lines(out) { if line == "\n" || (line != "" && line[0] == '}') { block := sb.String() sb.Reset() @@ -428,6 +429,24 @@ func runNftables(t *testing.T, host networking.Host) map[string]string { return res } +// lines produces a line iterator +// TODO: (When Go 1.24 is min version) Replace with `strings.Lines(out)`. +func lines(s string) iter.Seq[string] { + return func(yield func(string) bool) { + for s != "" { + var line string + if i := strings.IndexByte(s, '\n'); i >= 0 { + line, s = s[:i+1], s[i+1:] + } else { + line, s = s, "" + } + if !yield(line) { + return + } + } + } +} + func generate(t *testing.T, name string, data map[string]string) string { t.Helper() templ, err := template.New(name).ParseFiles(filepath.Join("templates", name))