diff --git a/generate/generate.go b/generate/generate.go index 816305f0..a732dfa8 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -506,6 +506,12 @@ func (g *Generator) SetProcessArgs(args []string) { g.Config.Process.Args = args } +// SetProcessExecCPUAffinity sets g.Config.Process.ExecCPUAffinity. +func (g *Generator) SetProcessExecCPUAffinity(execCPUAffinity *rspec.CPUAffinity) { + g.initConfigProcess() + g.Config.Process.ExecCPUAffinity = execCPUAffinity +} + // ClearProcessEnv clears g.Config.Process.Env. func (g *Generator) ClearProcessEnv() { if g.Config == nil || g.Config.Process == nil { diff --git a/generate/generate_test.go b/generate/generate_test.go index b27dc3fc..5b88a5c7 100644 --- a/generate/generate_test.go +++ b/generate/generate_test.go @@ -10,6 +10,8 @@ import ( "github.com/opencontainers/runtime-tools/generate" "github.com/opencontainers/runtime-tools/specerror" "github.com/opencontainers/runtime-tools/validate" + + rspec "github.com/opencontainers/runtime-spec/specs-go" "github.com/stretchr/testify/assert" ) @@ -155,3 +157,14 @@ func TestMultipleEnvCaching(t *testing.T) { g.AddMultipleProcessEnv([]string{}) assert.Equal(t, []string(nil), g.Config.Process.Env) } + +func TestSetProcessExecCPUAffinity(t *testing.T) { + g, err := generate.New("linux") + if err != nil { + t.Fatal(err) + } + + g.SetProcessExecCPUAffinity(&rspec.CPUAffinity{Initial: "1", Final: "2"}) + assert.Equal(t, "1", g.Config.Process.ExecCPUAffinity.Initial) + assert.Equal(t, "2", g.Config.Process.ExecCPUAffinity.Final) +}