Skip to content

Commit

Permalink
feat(decl/runners): add runner builder
Browse files Browse the repository at this point in the history
Signed-off-by: Leonardo Di Giovanna <[email protected]>
Co-authored-by: Aldo Lacuku <[email protected]>
  • Loading branch information
ekoops and alacuku committed Oct 30, 2024
1 parent b3f221a commit aba7ec3
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 0 deletions.
62 changes: 62 additions & 0 deletions pkg/test/runner/builder/builder.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// SPDX-License-Identifier: Apache-2.0
// Copyright (C) 2024 The Falco Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package builder

import (
"fmt"

"github.com/falcosecurity/event-generator/pkg/test"
"github.com/falcosecurity/event-generator/pkg/test/loader"
"github.com/falcosecurity/event-generator/pkg/test/runner"
"github.com/falcosecurity/event-generator/pkg/test/runner/host"
)

// builder is an implementation of runner.Builder.
type builder struct {
// testBuilder is the builder used to build a test.
testBuilder test.Builder
}

// Verify that builder implements runner.Builder interface.
var _ runner.Builder = (*builder)(nil)

// New creates a new builder.
func New(testBuilder test.Builder) (runner.Builder, error) {
if testBuilder == nil {
return nil, fmt.Errorf("test builder must not be nil")
}

b := &builder{testBuilder: testBuilder}
return b, nil
}

func (b *builder) Build(description *runner.Description) (runner.Runner, error) {
runnerType := description.Type
logger := description.Logger.WithValues("runnerType", runnerType)
switch runnerType {
case loader.TestRunnerTypeHost:
return host.New(
logger,
b.testBuilder,
description.Environ,
description.TestConfigEnvKey,
description.ProcIDEnvKey,
description.ProcID,
)
default:
return nil, fmt.Errorf("unknown test runner type %q", runnerType)
}
}
17 changes: 17 additions & 0 deletions pkg/test/runner/builder/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// SPDX-License-Identifier: Apache-2.0
// Copyright (C) 2024 The Falco Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Package builder provides an implementation of runner.Builder.
package builder

0 comments on commit aba7ec3

Please sign in to comment.