Add missing error checks in tests
... and remove one WriteFile that was always failing. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
parent
d60159bc30
commit
2d90000b09
|
|
@ -4,6 +4,9 @@ import (
|
|||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestValidateIPAddress(t *testing.T) {
|
||||
|
|
@ -32,12 +35,14 @@ func TestValidateIPAddress(t *testing.T) {
|
|||
func TestMapOpts(t *testing.T) {
|
||||
tmpMap := make(map[string]string)
|
||||
o := NewMapOpts(tmpMap, logOptsValidator)
|
||||
o.Set("max-size=1")
|
||||
err := o.Set("max-size=1")
|
||||
require.NoError(t, err)
|
||||
if o.String() != "map[max-size:1]" {
|
||||
t.Errorf("%s != [map[max-size:1]", o.String())
|
||||
}
|
||||
|
||||
o.Set("max-file=2")
|
||||
err = o.Set("max-file=2")
|
||||
require.NoError(t, err)
|
||||
if len(tmpMap) != 2 {
|
||||
t.Errorf("map length %d != 2", len(tmpMap))
|
||||
}
|
||||
|
|
@ -56,15 +61,18 @@ func TestMapOpts(t *testing.T) {
|
|||
|
||||
func TestListOptsWithoutValidator(t *testing.T) {
|
||||
o := NewListOpts(nil)
|
||||
o.Set("foo")
|
||||
err := o.Set("foo")
|
||||
require.NoError(t, err)
|
||||
if o.String() != "[foo]" {
|
||||
t.Errorf("%s != [foo]", o.String())
|
||||
}
|
||||
o.Set("bar")
|
||||
err = o.Set("bar")
|
||||
require.NoError(t, err)
|
||||
if o.Len() != 2 {
|
||||
t.Errorf("%d != 2", o.Len())
|
||||
}
|
||||
o.Set("bar")
|
||||
err = o.Set("bar")
|
||||
require.NoError(t, err)
|
||||
if o.Len() != 3 {
|
||||
t.Errorf("%d != 3", o.Len())
|
||||
}
|
||||
|
|
@ -92,15 +100,18 @@ func TestListOptsWithoutValidator(t *testing.T) {
|
|||
func TestListOptsWithValidator(t *testing.T) {
|
||||
// Re-using logOptsvalidator (used by MapOpts)
|
||||
o := NewListOpts(logOptsValidator)
|
||||
o.Set("foo")
|
||||
err := o.Set("foo")
|
||||
assert.EqualError(t, err, "invalid key foo")
|
||||
if o.String() != "[]" {
|
||||
t.Errorf("%s != []", o.String())
|
||||
}
|
||||
o.Set("foo=bar")
|
||||
err = o.Set("foo=bar")
|
||||
assert.EqualError(t, err, "invalid key foo")
|
||||
if o.String() != "[]" {
|
||||
t.Errorf("%s != []", o.String())
|
||||
}
|
||||
o.Set("max-file=2")
|
||||
err = o.Set("max-file=2")
|
||||
require.NoError(t, err)
|
||||
if o.Len() != 1 {
|
||||
t.Errorf("%d != 1", o.Len())
|
||||
}
|
||||
|
|
@ -203,7 +214,8 @@ func TestNamedListOpts(t *testing.T) {
|
|||
var v []string
|
||||
o := NewNamedListOptsRef("foo-name", &v, nil)
|
||||
|
||||
o.Set("foo")
|
||||
err := o.Set("foo")
|
||||
require.NoError(t, err)
|
||||
if o.String() != "[foo]" {
|
||||
t.Errorf("%s != [foo]", o.String())
|
||||
}
|
||||
|
|
@ -219,7 +231,8 @@ func TestNamedMapOpts(t *testing.T) {
|
|||
tmpMap := make(map[string]string)
|
||||
o := NewNamedMapOpts("max-name", tmpMap, nil)
|
||||
|
||||
o.Set("max-size=1")
|
||||
err := o.Set("max-size=1")
|
||||
require.NoError(t, err)
|
||||
if o.String() != "map[max-size:1]" {
|
||||
t.Errorf("%s != [map[max-size:1]", o.String())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -458,7 +458,8 @@ func TestCopyWithTarSrcFolder(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
os.WriteFile(filepath.Join(src, "file"), []byte("content"), 0777)
|
||||
err = os.WriteFile(filepath.Join(src, "file"), []byte("content"), 0777)
|
||||
require.NoError(t, err)
|
||||
err = defaultCopyWithTar(src, dest)
|
||||
if err != nil {
|
||||
t.Fatalf("archiver.CopyWithTar shouldn't throw an error, %s.", err)
|
||||
|
|
@ -531,7 +532,8 @@ func TestCopyFileWithTarSrcFile(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
os.WriteFile(src, []byte("content"), 0777)
|
||||
err = os.WriteFile(src, []byte("content"), 0777)
|
||||
require.NoError(t, err)
|
||||
err = defaultCopyWithTar(src, dest+"/")
|
||||
if err != nil {
|
||||
t.Fatalf("archiver.CopyFileWithTar shouldn't throw an error, %s.", err)
|
||||
|
|
@ -560,7 +562,6 @@ func TestCopySocket(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
os.WriteFile(src, []byte("content"), 0777)
|
||||
err = defaultCopyWithTar(src, dest+"/")
|
||||
if err != nil {
|
||||
t.Fatalf("archiver.CopyFileWithTar shouldn't throw an error, %s.", err)
|
||||
|
|
@ -1127,8 +1128,10 @@ func TestUntarInvalidSymlink(t *testing.T) {
|
|||
func TestTempArchiveCloseMultipleTimes(t *testing.T) {
|
||||
reader := io.NopCloser(strings.NewReader("hello"))
|
||||
tempArchive, err := NewTempArchive(reader, "")
|
||||
require.NoError(t, err)
|
||||
buf := make([]byte, 10)
|
||||
n, err := tempArchive.Read(buf)
|
||||
require.NoError(t, err)
|
||||
if n != 5 {
|
||||
t.Fatalf("Expected to read 5 bytes. Read %d instead", n)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,23 +141,29 @@ func TestChangesWithChanges(t *testing.T) {
|
|||
// Mock the readonly layer
|
||||
layer := t.TempDir()
|
||||
createSampleDir(t, layer)
|
||||
os.MkdirAll(path.Join(layer, "dir1/subfolder"), 0740)
|
||||
err := os.MkdirAll(path.Join(layer, "dir1/subfolder"), 0740)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Mock the RW layer
|
||||
rwLayer := t.TempDir()
|
||||
|
||||
// Create a folder in RW layer
|
||||
dir1 := path.Join(rwLayer, "dir1")
|
||||
os.MkdirAll(dir1, 0740)
|
||||
err = os.MkdirAll(dir1, 0740)
|
||||
require.NoError(t, err)
|
||||
deletedFile := path.Join(dir1, ".wh.file1-2")
|
||||
os.WriteFile(deletedFile, []byte{}, 0600)
|
||||
err = os.WriteFile(deletedFile, []byte{}, 0600)
|
||||
require.NoError(t, err)
|
||||
modifiedFile := path.Join(dir1, "file1-1")
|
||||
os.WriteFile(modifiedFile, []byte{0x00}, 01444)
|
||||
err = os.WriteFile(modifiedFile, []byte{0x00}, 01444)
|
||||
require.NoError(t, err)
|
||||
// Let's add a subfolder for a newFile
|
||||
subfolder := path.Join(dir1, "subfolder")
|
||||
os.MkdirAll(subfolder, 0740)
|
||||
err = os.MkdirAll(subfolder, 0740)
|
||||
require.NoError(t, err)
|
||||
newFile := path.Join(subfolder, "newFile")
|
||||
os.WriteFile(newFile, []byte{}, 0740)
|
||||
err = os.WriteFile(newFile, []byte{}, 0740)
|
||||
require.NoError(t, err)
|
||||
|
||||
changes, err := Changes([]string{layer}, rwLayer)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -182,10 +188,12 @@ func TestChangesWithChangesGH13590(t *testing.T) {
|
|||
baseLayer := t.TempDir()
|
||||
|
||||
dir3 := path.Join(baseLayer, "dir1/dir2/dir3")
|
||||
os.MkdirAll(dir3, 07400)
|
||||
err := os.MkdirAll(dir3, 07400)
|
||||
require.NoError(t, err)
|
||||
|
||||
file := path.Join(dir3, "file.txt")
|
||||
os.WriteFile(file, []byte("hello"), 0666)
|
||||
err = os.WriteFile(file, []byte("hello"), 0666)
|
||||
require.NoError(t, err)
|
||||
|
||||
layer := t.TempDir()
|
||||
|
||||
|
|
@ -196,7 +204,8 @@ func TestChangesWithChangesGH13590(t *testing.T) {
|
|||
|
||||
os.Remove(path.Join(layer, "dir1/dir2/dir3/file.txt"))
|
||||
file = path.Join(layer, "dir1/dir2/dir3/file1.txt")
|
||||
os.WriteFile(file, []byte("bye"), 0666)
|
||||
err = os.WriteFile(file, []byte("bye"), 0666)
|
||||
require.NoError(t, err)
|
||||
|
||||
changes, err := Changes([]string{baseLayer}, layer)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -217,7 +226,8 @@ func TestChangesWithChangesGH13590(t *testing.T) {
|
|||
}
|
||||
|
||||
file = path.Join(layer, "dir1/dir2/dir3/file.txt")
|
||||
os.WriteFile(file, []byte("bye"), 0666)
|
||||
err = os.WriteFile(file, []byte("bye"), 0666)
|
||||
require.NoError(t, err)
|
||||
|
||||
changes, err = Changes([]string{baseLayer}, layer)
|
||||
require.NoError(t, err)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import (
|
|||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var testUntarFns = map[string]func(string, io.Reader) error{
|
||||
|
|
@ -61,11 +63,12 @@ func testBreakout(t *testing.T, untarFn string, headers []*tar.Header) error {
|
|||
|
||||
reader, writer := io.Pipe()
|
||||
go func() {
|
||||
t := tar.NewWriter(writer)
|
||||
tw := tar.NewWriter(writer)
|
||||
for _, hdr := range headers {
|
||||
t.WriteHeader(hdr)
|
||||
err := tw.WriteHeader(hdr)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
t.Close()
|
||||
tw.Close()
|
||||
}()
|
||||
|
||||
untar := testUntarFns[untarFn]
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ func TestGenerateEmptyFile(t *testing.T) {
|
|||
}
|
||||
require.NoError(t, err)
|
||||
buf := new(bytes.Buffer)
|
||||
buf.ReadFrom(tr)
|
||||
_, err = buf.ReadFrom(tr)
|
||||
require.NoError(t, err)
|
||||
content := buf.String()
|
||||
actualFiles = append(actualFiles, []string{hdr.Name, content})
|
||||
i++
|
||||
|
|
@ -71,7 +72,8 @@ func TestGenerateWithContent(t *testing.T) {
|
|||
}
|
||||
require.NoError(t, err)
|
||||
buf := new(bytes.Buffer)
|
||||
buf.ReadFrom(tr)
|
||||
_, err = buf.ReadFrom(tr)
|
||||
require.NoError(t, err)
|
||||
content := buf.String()
|
||||
actualFiles = append(actualFiles, []string{hdr.Name, content})
|
||||
i++
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import (
|
|||
"github.com/containers/storage/pkg/archive"
|
||||
"github.com/containers/storage/pkg/idtools"
|
||||
"github.com/containers/storage/pkg/reexec"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -423,7 +424,8 @@ func TestChrootUntarPath(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
buf := new(bytes.Buffer)
|
||||
buf.ReadFrom(stream)
|
||||
_, err = buf.ReadFrom(stream)
|
||||
require.NoError(t, err)
|
||||
tarfile := filepath.Join(tmpdir, "src.tar")
|
||||
if err := os.WriteFile(tarfile, buf.Bytes(), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
|
|
@ -472,7 +474,8 @@ func TestChrootUntarPathAndChown(t *testing.T) {
|
|||
}
|
||||
|
||||
buf := new(bytes.Buffer)
|
||||
buf.ReadFrom(stream)
|
||||
_, err = buf.ReadFrom(stream)
|
||||
require.NoError(t, err)
|
||||
tarfile := filepath.Join(tmpdir, "src.tar")
|
||||
if err := os.WriteFile(tarfile, buf.Bytes(), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ import (
|
|||
"reflect"
|
||||
"sort"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
// Usage of an empty directory should be 0
|
||||
|
|
@ -45,7 +47,8 @@ func TestUsageNonemptyFile(t *testing.T) {
|
|||
}
|
||||
|
||||
d := []byte{97, 98, 99, 100, 101}
|
||||
file.Write(d)
|
||||
_, err = file.Write(d)
|
||||
require.NoError(t, err)
|
||||
|
||||
usage, _ := Usage(dir)
|
||||
expectSizeAndInodeCount(t, "directory with one 5-byte file", usage, &DiskUsage{
|
||||
|
|
@ -92,7 +95,8 @@ func TestUsageFileAndNestedDirectoryEmpty(t *testing.T) {
|
|||
}
|
||||
|
||||
d := []byte{100, 111, 99, 107, 101, 114}
|
||||
file.Write(d)
|
||||
_, err = file.Write(d)
|
||||
require.NoError(t, err)
|
||||
|
||||
usage, _ := Usage(dir)
|
||||
expectSizeAndInodeCount(t, "directory with 6-byte file and empty directory", usage, &DiskUsage{
|
||||
|
|
@ -117,7 +121,8 @@ func TestUsageFileAndNestedDirectoryNonempty(t *testing.T) {
|
|||
}
|
||||
|
||||
data := []byte{100, 111, 99, 107, 101, 114}
|
||||
file.Write(data)
|
||||
_, err = file.Write(data)
|
||||
require.NoError(t, err)
|
||||
|
||||
var nestedFile *os.File
|
||||
if nestedFile, err = os.CreateTemp(dirNested, "file"); err != nil {
|
||||
|
|
@ -125,7 +130,8 @@ func TestUsageFileAndNestedDirectoryNonempty(t *testing.T) {
|
|||
}
|
||||
|
||||
nestedData := []byte{100, 111, 99, 107, 101, 114}
|
||||
nestedFile.Write(nestedData)
|
||||
_, err = nestedFile.Write(nestedData)
|
||||
require.NoError(t, err)
|
||||
|
||||
usage, _ := Usage(dir)
|
||||
expectSizeAndInodeCount(t, "directory with 6-byte file and nested directory with 6-byte file", usage, &DiskUsage{
|
||||
|
|
@ -150,7 +156,8 @@ func TestMoveToSubdir(t *testing.T) {
|
|||
if file, err := os.Create(filepath.Join(outerDir, fName)); err != nil {
|
||||
t.Fatalf("couldn't create temp file %q: %v", fName, err)
|
||||
} else {
|
||||
file.WriteString(fName)
|
||||
_, err = file.WriteString(fName)
|
||||
require.NoError(t, err)
|
||||
file.Close()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package ioutils
|
|||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFixedBufferCap(t *testing.T) {
|
||||
|
|
@ -17,13 +19,15 @@ func TestFixedBufferCap(t *testing.T) {
|
|||
func TestFixedBufferLen(t *testing.T) {
|
||||
buf := &fixedBuffer{buf: make([]byte, 0, 10)}
|
||||
|
||||
buf.Write([]byte("hello"))
|
||||
_, err := buf.Write([]byte("hello"))
|
||||
require.NoError(t, err)
|
||||
l := buf.Len()
|
||||
if l != 5 {
|
||||
t.Fatalf("expected buffer length to be 5 bytes, got %d", l)
|
||||
}
|
||||
|
||||
buf.Write([]byte("world"))
|
||||
_, err = buf.Write([]byte("world"))
|
||||
require.NoError(t, err)
|
||||
l = buf.Len()
|
||||
if l != 10 {
|
||||
t.Fatalf("expected buffer length to be 10 bytes, got %d", l)
|
||||
|
|
@ -31,7 +35,8 @@ func TestFixedBufferLen(t *testing.T) {
|
|||
|
||||
// read 5 bytes
|
||||
b := make([]byte, 5)
|
||||
buf.Read(b)
|
||||
_, err = buf.Read(b)
|
||||
require.NoError(t, err)
|
||||
|
||||
l = buf.Len()
|
||||
if l != 5 {
|
||||
|
|
@ -61,8 +66,10 @@ func TestFixedBufferLen(t *testing.T) {
|
|||
func TestFixedBufferString(t *testing.T) {
|
||||
buf := &fixedBuffer{buf: make([]byte, 0, 10)}
|
||||
|
||||
buf.Write([]byte("hello"))
|
||||
buf.Write([]byte("world"))
|
||||
_, err := buf.Write([]byte("hello"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("world"))
|
||||
require.NoError(t, err)
|
||||
|
||||
out := buf.String()
|
||||
if out != "helloworld" {
|
||||
|
|
@ -71,7 +78,8 @@ func TestFixedBufferString(t *testing.T) {
|
|||
|
||||
// read 5 bytes
|
||||
b := make([]byte, 5)
|
||||
buf.Read(b)
|
||||
_, err = buf.Read(b)
|
||||
require.NoError(t, err)
|
||||
|
||||
// test that fixedBuffer.String() only returns the part that hasn't been read
|
||||
out = buf.String()
|
||||
|
|
|
|||
|
|
@ -6,15 +6,22 @@ import (
|
|||
"math/rand"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestBytesPipeRead(t *testing.T) {
|
||||
buf := NewBytesPipe()
|
||||
buf.Write([]byte("12"))
|
||||
buf.Write([]byte("34"))
|
||||
buf.Write([]byte("56"))
|
||||
buf.Write([]byte("78"))
|
||||
buf.Write([]byte("90"))
|
||||
_, err := buf.Write([]byte("12"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("34"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("56"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("78"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("90"))
|
||||
require.NoError(t, err)
|
||||
rd := make([]byte, 4)
|
||||
n, err := buf.Read(rd)
|
||||
if err != nil {
|
||||
|
|
@ -50,11 +57,16 @@ func TestBytesPipeRead(t *testing.T) {
|
|||
|
||||
func TestBytesPipeWrite(t *testing.T) {
|
||||
buf := NewBytesPipe()
|
||||
buf.Write([]byte("12"))
|
||||
buf.Write([]byte("34"))
|
||||
buf.Write([]byte("56"))
|
||||
buf.Write([]byte("78"))
|
||||
buf.Write([]byte("90"))
|
||||
_, err := buf.Write([]byte("12"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("34"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("56"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("78"))
|
||||
require.NoError(t, err)
|
||||
_, err = buf.Write([]byte("90"))
|
||||
require.NoError(t, err)
|
||||
if buf.buf[0].String() != "1234567890" {
|
||||
t.Fatalf("Buffer %q, must be %q", buf.buf[0].String(), "1234567890")
|
||||
}
|
||||
|
|
@ -108,7 +120,8 @@ func TestBytesPipeWriteRandomChunks(t *testing.T) {
|
|||
|
||||
for i := 0; i < c.iterations; i++ {
|
||||
for w := 0; w < c.writesPerLoop; w++ {
|
||||
buf.Write(testMessage[:writeChunks[(i*c.writesPerLoop+w)%len(writeChunks)]])
|
||||
_, err := buf.Write(testMessage[:writeChunks[(i*c.writesPerLoop+w)%len(writeChunks)]])
|
||||
require.NoError(t, err)
|
||||
}
|
||||
}
|
||||
buf.Close()
|
||||
|
|
@ -135,7 +148,8 @@ func BenchmarkBytesPipeWrite(b *testing.B) {
|
|||
}
|
||||
}()
|
||||
for j := 0; j < 1000; j++ {
|
||||
buf.Write(testData)
|
||||
_, err := buf.Write(testData)
|
||||
require.NoError(b, err)
|
||||
}
|
||||
buf.Close()
|
||||
}
|
||||
|
|
@ -147,7 +161,8 @@ func BenchmarkBytesPipeRead(b *testing.B) {
|
|||
b.StopTimer()
|
||||
buf := NewBytesPipe()
|
||||
for j := 0; j < 500; j++ {
|
||||
buf.Write(make([]byte, 1024))
|
||||
_, err := buf.Write(make([]byte, 1024))
|
||||
require.NoError(b, err)
|
||||
}
|
||||
b.StartTimer()
|
||||
for j := 0; j < 1000; j++ {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import (
|
|||
"bytes"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestWriteCloserWrapperClose(t *testing.T) {
|
||||
|
|
@ -52,8 +54,10 @@ func TestWriteCounter(t *testing.T) {
|
|||
var buffer bytes.Buffer
|
||||
wc := NewWriteCounter(&buffer)
|
||||
|
||||
reader1.WriteTo(wc)
|
||||
reader2.WriteTo(wc)
|
||||
_, err := reader1.WriteTo(wc)
|
||||
require.NoError(t, err)
|
||||
_, err = reader2.WriteTo(wc)
|
||||
require.NoError(t, err)
|
||||
|
||||
if wc.Count != totalLength {
|
||||
t.Errorf("Wrong count: %d vs. %d", wc.Count, totalLength)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import (
|
|||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestLockCounter(t *testing.T) {
|
||||
|
|
@ -76,7 +78,8 @@ func TestLockerUnlock(t *testing.T) {
|
|||
l := New()
|
||||
|
||||
l.Lock("test")
|
||||
l.Unlock("test")
|
||||
err := l.Unlock("test")
|
||||
require.NoError(t, err)
|
||||
|
||||
chDone := make(chan struct{})
|
||||
go func() {
|
||||
|
|
@ -100,7 +103,8 @@ func TestLockerConcurrency(t *testing.T) {
|
|||
go func() {
|
||||
l.Lock("test")
|
||||
// if there is a concurrency issue, will very likely panic here
|
||||
l.Unlock("test")
|
||||
err := l.Unlock("test")
|
||||
require.NoError(t, err)
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,8 +36,14 @@ func subTouchMain() {
|
|||
}
|
||||
tf.Lock()
|
||||
os.Stdout.Close()
|
||||
io.Copy(io.Discard, os.Stdin)
|
||||
tf.Touch()
|
||||
_, err = io.Copy(io.Discard, os.Stdin)
|
||||
if err != nil {
|
||||
logrus.Fatalf("error reading stdin: %v", err)
|
||||
}
|
||||
err = tf.Touch()
|
||||
if err != nil {
|
||||
logrus.Fatalf("error touching lock: %v", err)
|
||||
}
|
||||
tf.Unlock()
|
||||
}
|
||||
|
||||
|
|
@ -81,7 +87,10 @@ func subLockMain() {
|
|||
}
|
||||
tf.Lock()
|
||||
os.Stdout.Close()
|
||||
io.Copy(io.Discard, os.Stdin)
|
||||
_, err = io.Copy(io.Discard, os.Stdin)
|
||||
if err != nil {
|
||||
logrus.Fatalf("error reading stdin: %v", err)
|
||||
}
|
||||
tf.Unlock()
|
||||
}
|
||||
|
||||
|
|
@ -120,7 +129,10 @@ func subRLockMain() {
|
|||
}
|
||||
tf.RLock()
|
||||
os.Stdout.Close()
|
||||
io.Copy(io.Discard, os.Stdin)
|
||||
_, err = io.Copy(io.Discard, os.Stdin)
|
||||
if err != nil {
|
||||
logrus.Fatalf("error reading stdin: %v", err)
|
||||
}
|
||||
tf.Unlock()
|
||||
}
|
||||
|
||||
|
|
@ -274,9 +286,11 @@ func TestLockfileTouch(t *testing.T) {
|
|||
stdin, stdout, stderr, err := subTouch(l)
|
||||
require.Nil(t, err, "got an error starting a subprocess to touch the lockfile")
|
||||
l.Unlock()
|
||||
io.Copy(io.Discard, stdout)
|
||||
_, err = io.Copy(io.Discard, stdout)
|
||||
require.NoError(t, err)
|
||||
stdin.Close()
|
||||
io.Copy(io.Discard, stderr)
|
||||
_, err = io.Copy(io.Discard, stderr)
|
||||
require.NoError(t, err)
|
||||
l.Lock()
|
||||
m, err = l.Modified()
|
||||
l.Unlock()
|
||||
|
|
@ -425,7 +439,8 @@ func TestLockfileMultiprocessRead(t *testing.T) {
|
|||
for i := range subs {
|
||||
wg.Add(1)
|
||||
go func(i int) {
|
||||
io.Copy(io.Discard, subs[i].stdout)
|
||||
_, err := io.Copy(io.Discard, subs[i].stdout)
|
||||
require.NoError(t, err)
|
||||
if testing.Verbose() {
|
||||
t.Logf("\tchild %4d acquired the read lock\n", i+1)
|
||||
}
|
||||
|
|
@ -468,7 +483,8 @@ func TestLockfileMultiprocessWrite(t *testing.T) {
|
|||
for i := range subs {
|
||||
wg.Add(1)
|
||||
go func(i int) {
|
||||
io.Copy(io.Discard, subs[i].stdout)
|
||||
_, err := io.Copy(io.Discard, subs[i].stdout)
|
||||
require.NoError(t, err)
|
||||
if testing.Verbose() {
|
||||
t.Logf("\tchild %4d acquired the write lock\n", i+1)
|
||||
}
|
||||
|
|
@ -527,7 +543,8 @@ func TestLockfileMultiprocessMixed(t *testing.T) {
|
|||
wg.Add(1)
|
||||
go func(i int) {
|
||||
// wait for the child to acquire whatever lock it wants
|
||||
io.Copy(io.Discard, subs[i].stdout)
|
||||
_, err := io.Copy(io.Discard, subs[i].stdout)
|
||||
require.NoError(t, err)
|
||||
if writer(i) {
|
||||
// child acquired a write lock
|
||||
if testing.Verbose() {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ import (
|
|||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
// ResetForTesting clears all flag state and sets the usage function as directed.
|
||||
|
|
@ -76,14 +79,19 @@ func TestEverything(t *testing.T) {
|
|||
}
|
||||
}
|
||||
// Now set all flags
|
||||
Set("test_bool", "true")
|
||||
Set("test_int", "1")
|
||||
Set("test_int64", "1")
|
||||
Set("test_uint", "1")
|
||||
Set("test_uint64", "1")
|
||||
Set("test_string", "1")
|
||||
Set("test_float64", "1")
|
||||
Set("test_duration", "1s")
|
||||
for _, e := range []struct{ name, value string }{
|
||||
{"test_bool", "true"},
|
||||
{"test_int", "1"},
|
||||
{"test_int64", "1"},
|
||||
{"test_uint", "1"},
|
||||
{"test_uint64", "1"},
|
||||
{"test_string", "1"},
|
||||
{"test_float64", "1"},
|
||||
{"test_duration", "1s"},
|
||||
} {
|
||||
err := Set(e.name, e.value)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
desired = "1"
|
||||
Visit(visitor)
|
||||
if len(m) != 8 {
|
||||
|
|
@ -274,7 +282,7 @@ func testPanic(t *testing.T, f *FlagSet) {
|
|||
args := []string{
|
||||
"-int", "21",
|
||||
}
|
||||
f.Parse(args)
|
||||
_ = f.Parse(args)
|
||||
}
|
||||
|
||||
func TestParsePanic(t *testing.T) {
|
||||
|
|
@ -366,7 +374,8 @@ func TestSetOutput(t *testing.T) {
|
|||
var buf bytes.Buffer
|
||||
flags.SetOutput(&buf)
|
||||
flags.Init("test", ContinueOnError)
|
||||
flags.Parse([]string{"-unknown"})
|
||||
err := flags.Parse([]string{"-unknown"})
|
||||
assert.ErrorContains(t, err, "unknown")
|
||||
if out := buf.String(); !strings.Contains(out, "-unknown") {
|
||||
t.Logf("expected output mentioning unknown; got %q", out)
|
||||
}
|
||||
|
|
@ -518,7 +527,8 @@ func TestMergeFlags(t *testing.T) {
|
|||
base.String([]string{"f"}, "", "")
|
||||
|
||||
fs := NewFlagSet("test", ContinueOnError)
|
||||
Merge(fs, base)
|
||||
err := Merge(fs, base)
|
||||
require.NoError(t, err)
|
||||
if len(fs.formal) != 1 {
|
||||
t.Fatalf("FlagCount (%d) != number (1) of elements merged", len(fs.formal))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package kernel
|
||||
|
|
@ -41,7 +42,7 @@ func TestParseRelease(t *testing.T) {
|
|||
for _, invalid := range invalids {
|
||||
expectedMessage := fmt.Sprintf("Can't parse kernel version %v", invalid)
|
||||
if _, err := ParseRelease(invalid); err == nil || err.Error() != expectedMessage {
|
||||
|
||||
t.Fatalf("Parsing %q, got %#v", invalid, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/containers/storage/pkg/stringid"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
// Test the behavior of TruncIndex, an index for querying IDs from a non-conflicting prefix.
|
||||
|
|
@ -134,7 +135,8 @@ func assertIndexIterateDoNotPanic(t *testing.T) {
|
|||
|
||||
go func() {
|
||||
<-iterationStarted
|
||||
index.Delete("19b36c2c326ccc11e726eee6ee78a0baf166ef96")
|
||||
err := index.Delete("19b36c2c326ccc11e726eee6ee78a0baf166ef96")
|
||||
require.NoError(t, err)
|
||||
}()
|
||||
|
||||
index.Iterate(func(targetId string) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/stretchr/testify/require"
|
||||
"gotest.tools/assert"
|
||||
)
|
||||
|
||||
|
|
@ -115,7 +116,8 @@ func TestReloadConfigurationFile(t *testing.T) {
|
|||
content := bytes.NewBufferString("")
|
||||
logrus.SetOutput(content)
|
||||
var storageOpts StoreOptions
|
||||
ReloadConfigurationFile("./storage_broken.conf", &storageOpts)
|
||||
err := ReloadConfigurationFile("./storage_broken.conf", &storageOpts)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, storageOpts.RunRoot, "/run/containers/test")
|
||||
logrus.SetOutput(os.Stderr)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue