blob: e8ea0f077f83125bea7099c20f053c22ddcad2e1 [file] [log] [blame]
// Copyright 2018 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package main
import (
"context"
"go.chromium.org/tast/core/cmd/tast/internal/run"
"go.chromium.org/tast/core/cmd/tast/internal/run/config"
"go.chromium.org/tast/core/internal/run/resultsjson"
)
// runWrapper is a wrapper that allows functions from the run package to be stubbed out for testing.
type runWrapper interface {
// run calls run.Run.
run(ctx context.Context, cfg *config.Config, state *config.DeprecatedState) ([]*resultsjson.Result, error)
}
type globalRuntimeVarsrunWrapper interface {
// run calls run.Run.
GlobalRuntimeVars(ctx context.Context, cfg *config.Config, state *config.DeprecatedState) ([]string, error)
}
// realRunWrapper is a runWrapper implementation that calls the real functions in the run package.
type realRunWrapper struct{}
func (w realRunWrapper) run(ctx context.Context, cfg *config.Config, state *config.DeprecatedState) ([]*resultsjson.Result, error) {
return run.Run(ctx, cfg, state)
}
func (w realRunWrapper) GlobalRuntimeVars(ctx context.Context, cfg *config.Config, state *config.DeprecatedState) ([]string, error) {
return run.GlobalRuntimeVars(ctx, cfg, state)
}