libct/int: switch from bytes.Buffer to strings.Builder

The latter is simpler and provides just enough functionality to be used
here.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
Kir Kolyshkin
2026-04-08 15:46:27 -07:00
parent 568a309225
commit 9970cbfdb6
6 changed files with 26 additions and 32 deletions
+2 -3
View File
@@ -1,7 +1,6 @@
package integration
import (
"bytes"
"math/rand"
"os"
"strings"
@@ -95,7 +94,7 @@ func BenchmarkExecInBigEnv(b *testing.B) {
const numEnv = 5000
env := append(standardEnvironment, genBigEnv(numEnv)...)
// Construct the expected output.
var wantOut bytes.Buffer
var wantOut strings.Builder
for _, e := range env {
wantOut.WriteString(e + "\n")
}
@@ -112,7 +111,7 @@ func BenchmarkExecInBigEnv(b *testing.B) {
err = container.Run(exec)
ok(b, err)
waitProcess(exec, b)
if !bytes.Equal(buffers.Stdout.Bytes(), wantOut.Bytes()) {
if buffers.Stdout.String() != wantOut.String() {
b.Fatalf("unexpected output: %s (stderr: %s)", buffers.Stdout, buffers.Stderr)
}
}
+2 -3
View File
@@ -1,7 +1,6 @@
package integration
import (
"bytes"
"os"
"os/exec"
"path/filepath"
@@ -54,7 +53,7 @@ func testCheckpoint(t *testing.T, userns bool) {
stdinR, stdinW, err := os.Pipe()
ok(t, err)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
@@ -131,7 +130,7 @@ func testCheckpoint(t *testing.T, userns bool) {
restoreStdinR, restoreStdinW, err := os.Pipe()
ok(t, err)
var restoreStdout bytes.Buffer
var restoreStdout strings.Builder
restoreProcessConfig := &libcontainer.Process{
Cwd: "/",
Stdin: restoreStdinR,
+14 -15
View File
@@ -1,7 +1,6 @@
package integration
import (
"bytes"
"encoding/json"
"errors"
"fmt"
@@ -163,7 +162,7 @@ func TestEnter(t *testing.T) {
stdinR, stdinW, err := os.Pipe()
ok(t, err)
var stdout, stdout2 bytes.Buffer
var stdout, stdout2 strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
@@ -242,7 +241,7 @@ func TestProcessEnv(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
Args: []string{"sh", "-c", "env"},
@@ -288,7 +287,7 @@ func TestProcessEmptyCaps(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
Args: []string{"sh", "-c", "cat /proc/self/status"},
@@ -332,7 +331,7 @@ func TestProcessCaps(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
Args: []string{"sh", "-c", "cat /proc/self/status"},
@@ -393,7 +392,7 @@ func TestAdditionalGroups(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
Args: []string{"sh", "-c", "id", "-Gn"},
@@ -772,7 +771,7 @@ func TestPassExtraFiles(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pipeout1, pipein1, err := os.Pipe()
ok(t, err)
pipeout2, pipein2, err := os.Pipe()
@@ -831,7 +830,7 @@ func TestSysctl(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/proc/sys/kernel",
Args: []string{"sh", "-c", cmd},
@@ -941,7 +940,7 @@ func TestOomScoreAdj(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
Args: []string{"sh", "-c", "cat /proc/self/oom_score_adj"},
@@ -1081,7 +1080,7 @@ func TestHook(t *testing.T) {
cmd.WriteString("/" + hook + " ")
}
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
Args: []string{"sh", "-c", cmd.String()},
@@ -1193,7 +1192,7 @@ func TestRootfsPropagationSlaveMount(t *testing.T) {
ok(t, err)
// Run "cat /proc/self/mountinfo" in container and look at mount points.
var stdout2 bytes.Buffer
var stdout2 strings.Builder
stdinR2, stdinW2, err := os.Pipe()
ok(t, err)
@@ -1305,7 +1304,7 @@ func TestRootfsPropagationSharedMount(t *testing.T) {
dir2cont = filepath.Join(dir1cont, filepath.Base(dir2host))
// Mount something in container and see if it is visible on host.
var stdout2 bytes.Buffer
var stdout2 strings.Builder
stdinR2, stdinW2, err := os.Pipe()
ok(t, err)
@@ -1340,7 +1339,7 @@ func TestRootfsPropagationSharedMount(t *testing.T) {
// Check if mount is visible on host or not.
out, err := exec.Command("findmnt", "-n", "-f", "-oTARGET", dir2host).CombinedOutput()
outtrim := string(bytes.TrimSpace(out))
outtrim := strings.TrimSpace(string(out))
if err != nil {
t.Logf("findmnt error %q: %q", err, outtrim)
}
@@ -1627,7 +1626,7 @@ func TestTmpfsCopyUp(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Args: []string{"ls", "/etc/passwd"},
Env: standardEnvironment,
@@ -1818,7 +1817,7 @@ func TestBindMountAndUser(t *testing.T) {
ok(t, err)
defer destroyContainer(container)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
+3 -4
View File
@@ -1,7 +1,6 @@
package integration
import (
"bytes"
"fmt"
"io"
"os"
@@ -151,7 +150,7 @@ func TestExecInAdditionalGroups(t *testing.T) {
defer stdinW.Close()
ok(t, err)
var stdout bytes.Buffer
var stdout strings.Builder
pconfig := libcontainer.Process{
Cwd: "/",
Args: []string{"sh", "-c", "id", "-Gn"},
@@ -264,7 +263,7 @@ func TestExecInTTY(t *testing.T) {
// Repeat to increase chances to catch a race; see
// https://github.com/opencontainers/runc/issues/2425.
for range 300 {
var stdout bytes.Buffer
var stdout strings.Builder
parent, child, err := utils.NewSockPair("console")
ok(t, err)
@@ -410,7 +409,7 @@ func TestExecinPassExtraFiles(t *testing.T) {
defer stdinW.Close()
ok(t, err)
var stdout bytes.Buffer
var stdout strings.Builder
pipeout1, pipein1, err := os.Pipe()
ok(t, err)
pipeout2, pipein2, err := os.Pipe()
+1 -2
View File
@@ -1,7 +1,6 @@
package integration
import (
"bytes"
"os"
"strings"
"testing"
@@ -40,7 +39,7 @@ func testUpdateDevices(t *testing.T, systemd bool) {
}()
ok(t, err)
var buf bytes.Buffer
var buf strings.Builder
devCheck := &libcontainer.Process{
Cwd: "/",
Args: []string{"/bin/sh", "-c", "echo > /dev/full; cat /dev/null; true"},
+4 -5
View File
@@ -1,7 +1,6 @@
package integration
import (
"bytes"
"errors"
"fmt"
"os"
@@ -55,14 +54,14 @@ func ptrInt(v int) *int {
func newStdBuffers() *stdBuffers {
return &stdBuffers{
Stdout: bytes.NewBuffer(nil),
Stderr: bytes.NewBuffer(nil),
Stdout: new(strings.Builder),
Stderr: new(strings.Builder),
}
}
type stdBuffers struct {
Stdout *bytes.Buffer
Stderr *bytes.Buffer
Stdout *strings.Builder
Stderr *strings.Builder
}
func (b *stdBuffers) String() string {