123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package engine
- import (
- "io/ioutil"
- "os"
- "path"
- "testing"
- )
- func TestRegister(t *testing.T) {
- if err := Register("dummy1", nil); err != nil {
- t.Fatal(err)
- }
- if err := Register("dummy1", nil); err == nil {
- t.Fatalf("Expecting error, got none")
- }
- eng := newTestEngine(t)
- //Should fail because global handlers are copied
- //at the engine creation
- if err := eng.Register("dummy1", nil); err == nil {
- t.Fatalf("Expecting error, got none")
- }
- if err := eng.Register("dummy2", nil); err != nil {
- t.Fatal(err)
- }
- if err := eng.Register("dummy2", nil); err == nil {
- t.Fatalf("Expecting error, got none")
- }
- }
- func TestJob(t *testing.T) {
- eng := newTestEngine(t)
- job1 := eng.Job("dummy1", "--level=awesome")
- if job1.handler != nil {
- t.Fatalf("job1.handler should be empty")
- }
- h := func(j *Job) Status {
- j.Printf("%s\n", j.Name)
- return 42
- }
- eng.Register("dummy2", h)
- job2 := eng.Job("dummy2", "--level=awesome")
- if job2.handler == nil {
- t.Fatalf("job2.handler shouldn't be nil")
- }
- if job2.handler(job2) != 42 {
- t.Fatalf("handler dummy2 was not found in job2")
- }
- }
- func TestEngineRoot(t *testing.T) {
- tmp, err := ioutil.TempDir("", "docker-test-TestEngineCreateDir")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmp)
- dir := path.Join(tmp, "dir")
- eng, err := New(dir)
- if err != nil {
- t.Fatal(err)
- }
- if st, err := os.Stat(dir); err != nil {
- t.Fatal(err)
- } else if !st.IsDir() {
- t.Fatalf("engine.New() created something other than a directory at %s", dir)
- }
- if r := eng.Root(); r != dir {
- t.Fatalf("Expected: %v\nReceived: %v", dir, r)
- }
- }
- func TestEngineString(t *testing.T) {
- eng1 := newTestEngine(t)
- defer os.RemoveAll(eng1.Root())
- eng2 := newTestEngine(t)
- defer os.RemoveAll(eng2.Root())
- s1 := eng1.String()
- s2 := eng2.String()
- if eng1 == eng2 {
- t.Fatalf("Different engines should have different names (%v == %v)", s1, s2)
- }
- }
- func TestEngineLogf(t *testing.T) {
- eng := newTestEngine(t)
- defer os.RemoveAll(eng.Root())
- input := "Test log line"
- if n, err := eng.Logf("%s\n", input); err != nil {
- t.Fatal(err)
- } else if n < len(input) {
- t.Fatalf("Test: Logf() should print at least as much as the input\ninput=%d\nprinted=%d", len(input), n)
- }
- }
|