diff options
Diffstat (limited to 'caddytest/caddytest.go')
-rw-r--r-- | caddytest/caddytest.go | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/caddytest/caddytest.go b/caddytest/caddytest.go index 89e457c..a020be9 100644 --- a/caddytest/caddytest.go +++ b/caddytest/caddytest.go @@ -18,6 +18,11 @@ import ( "strings" "testing" "time" + + caddycmd "github.com/caddyserver/caddy/v2/cmd" + + // plug in Caddy modules here + _ "github.com/caddyserver/caddy/v2/modules/standard" ) // Defaults store any configuration required to make the tests run @@ -145,6 +150,30 @@ func validateTestPrerequisites() error { } } + if isCaddyAdminRunning() != nil { + // start inprocess caddy server + os.Args = []string{"caddy", "run"} + go func() { + caddycmd.Main() + }() + + // wait for caddy to start + retries := 4 + for ; retries > 0 && isCaddyAdminRunning() != nil; retries-- { + time.Sleep(10 * time.Millisecond) + } + } + + // assert that caddy is running + if err := isCaddyAdminRunning(); err != nil { + return err + } + + arePrerequisitesValid = true + return nil +} + +func isCaddyAdminRunning() error { // assert that caddy is running client := &http.Client{ Timeout: time.Second * 2, @@ -154,7 +183,6 @@ func validateTestPrerequisites() error { return errors.New("caddy integration test caddy server not running. Expected to be listening on localhost:2019") } - arePrerequisitesValid = true return nil } |