mirror of https://github.com/knative/func.git
60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
//go:build !integration
|
|
// +build !integration
|
|
|
|
package docker_test
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
|
|
"knative.dev/func/pkg/docker"
|
|
fn "knative.dev/func/pkg/functions"
|
|
)
|
|
|
|
// Docker Run Integraiton Test
|
|
// This is an integraiton test meant to be manually run in order to confirm proper functioning of the docker runner.
|
|
// It requires that the function already be built.
|
|
|
|
var enableTestDocker = flag.Bool("enable-test-docker", false, "Enable tests requiring local docker.")
|
|
|
|
func TestDockerRun(t *testing.T) {
|
|
// Skip this test unless explicitly enabled, as it is more of
|
|
// an integration test.
|
|
if !*enableTestDocker {
|
|
fmt.Fprintln(os.Stdout, "Skipping docker integration test for 'run'. Enable with --enable-test-docker")
|
|
t.Skip()
|
|
}
|
|
|
|
f, err := fn.NewFunction("testdata/example.com/runnable")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// NOTE: test requires that the image be built already.
|
|
|
|
runner := docker.NewRunner(true, os.Stdout, os.Stdout)
|
|
if _, err = runner.Run(context.Background(), f, fn.DefaultStartTimeout); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
/* TODO
|
|
// submit cloud event
|
|
// send os.SIGUSR1 in leay of SIGTERM
|
|
*/
|
|
|
|
}
|
|
|
|
func TestDockerRunImagelessError(t *testing.T) {
|
|
runner := docker.NewRunner(true, os.Stdout, os.Stderr)
|
|
f := fn.NewFunctionWith(fn.Function{})
|
|
|
|
_, err := runner.Run(context.Background(), f, fn.DefaultStartTimeout)
|
|
// TODO: switch to typed error:
|
|
expectedErrorMessage := "Function has no associated image. Has it been built?"
|
|
if err == nil || err.Error() != expectedErrorMessage {
|
|
t.Fatalf("Expected error '%v', got '%v'", expectedErrorMessage, err)
|
|
}
|
|
}
|