mirror of
https://github.com/containers/buildah.git
synced 2025-04-18 07:04:05 +03:00
Add `t.Parallel()` to unit tests whereever its possible without race. Signed-off-by: flouthoc <flouthoc.git@gmail.com>
86 lines
2.1 KiB
Go
86 lines
2.1 KiB
Go
package buildah
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/opencontainers/runtime-tools/generate"
|
|
)
|
|
|
|
func TestAddRlimits(t *testing.T) {
|
|
t.Parallel()
|
|
tt := []struct {
|
|
name string
|
|
ulimit []string
|
|
test func(error, *generate.Generator) error
|
|
}{
|
|
{
|
|
name: "empty ulimit",
|
|
ulimit: []string{},
|
|
test: func(e error, _ *generate.Generator) error {
|
|
return e
|
|
},
|
|
},
|
|
{
|
|
name: "invalid ulimit argument",
|
|
ulimit: []string{"bla"},
|
|
test: func(e error, _ *generate.Generator) error {
|
|
if e == nil {
|
|
return errors.New("expected to receive an error but got nil")
|
|
}
|
|
errMsg := "invalid ulimit argument"
|
|
if !strings.Contains(e.Error(), errMsg) {
|
|
return fmt.Errorf("expected error message to include %#v in %#v", errMsg, e.Error())
|
|
}
|
|
return nil
|
|
},
|
|
},
|
|
{
|
|
name: "invalid ulimit type",
|
|
ulimit: []string{"bla=hard"},
|
|
test: func(e error, _ *generate.Generator) error {
|
|
if e == nil {
|
|
return errors.New("expected to receive an error but got nil")
|
|
}
|
|
errMsg := "invalid ulimit type"
|
|
if !strings.Contains(e.Error(), errMsg) {
|
|
return fmt.Errorf("expected error message to include %#v in %#v", errMsg, e.Error())
|
|
}
|
|
return nil
|
|
},
|
|
},
|
|
{
|
|
name: "valid ulimit",
|
|
ulimit: []string{"fsize=1024:4096"},
|
|
test: func(e error, g *generate.Generator) error {
|
|
if e != nil {
|
|
return e
|
|
}
|
|
rlimits := g.Config.Process.Rlimits
|
|
for _, rlimit := range rlimits {
|
|
if rlimit.Type == "RLIMIT_FSIZE" {
|
|
if rlimit.Hard != 4096 {
|
|
return fmt.Errorf("expected spec to have %#v hard limit set to %v but got %v", rlimit.Type, 4096, rlimit.Hard)
|
|
}
|
|
if rlimit.Soft != 1024 {
|
|
return fmt.Errorf("expected spec to have %#v hard limit set to %v but got %v", rlimit.Type, 1024, rlimit.Soft)
|
|
}
|
|
return nil
|
|
}
|
|
}
|
|
return errors.New("expected spec to have RLIMIT_FSIZE")
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tst := range tt {
|
|
g, _ := generate.New("linux")
|
|
err := addRlimits(tst.ulimit, &g, []string{})
|
|
if testErr := tst.test(err, &g); testErr != nil {
|
|
t.Errorf("test %#v failed: %v", tst.name, testErr)
|
|
}
|
|
}
|
|
}
|