Skip to content

Commit

Permalink
Add basic startup integration test
Browse files Browse the repository at this point in the history
Signed-off-by: Brad Davidson <[email protected]>
  • Loading branch information
brandond committed Jan 16, 2025
1 parent 8c72669 commit 91ae9b0
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test-suite.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
strategy:
fail-fast: false
matrix:
itest: [etcdsnapshot]
itest: [startup, etcdsnapshot]
max-parallel: 3
env:
GOCOVERDIR: /tmp/rke2cov
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/etcdsnapshot/etcd_int_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tests
package etcdsnapshot

import (
"fmt"
Expand Down
87 changes: 87 additions & 0 deletions tests/integration/startup/startup_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package startup

import (
"os"
"testing"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
testutil "github.com/rancher/rke2/tests/integration"
"github.com/sirupsen/logrus"
utilnet "k8s.io/apimachinery/pkg/util/net"
)

var (
serverLog *os.File
serverArgs = []string{"--debug"}
testLock int
)

var _ = BeforeSuite(func() {
var err error
testLock, err = testutil.AcquireTestLock()
Expect(err).ToNot(HaveOccurred())
})

var _ = Describe("startup tests", Ordered, func() {
When("a default server is created", func() {
It("starts successfully", func() {
var err error
serverLog, err = testutil.StartServer(serverArgs...)
Expect(err).ToNot(HaveOccurred())
})
It("has the default components deployed", func() {
Eventually(func() error {
err := testutil.ServerReady()
if err != nil {
logrus.Info(err)
}
return err
}, "240s", "15s").Should(Succeed())
})
It("dies cleanly", func() {
Expect(testutil.KillServer(serverLog)).To(Succeed())
Expect(testutil.Cleanup(testLock)).To(Succeed())
})
})
When("a server is created with bind-address", func() {
It("starts successfully", func() {
hostIP, _ := utilnet.ChooseHostInterface()
var err error
serverLog, err = testutil.StartServer(append(serverArgs, "--bind-address", hostIP.String())...)
Expect(err).ToNot(HaveOccurred())
})
It("has the default components deployed", func() {
Eventually(func() error {
err := testutil.ServerReady()
if err != nil {
logrus.Info(err)
}
return err
}, "240s", "15s").Should(Succeed())
})
It("dies cleanly", func() {
Expect(testutil.KillServer(serverLog)).To(Succeed())
Expect(testutil.Cleanup(testLock)).To(Succeed())
})
})
})

var failed bool
var _ = AfterEach(func() {
failed = failed || CurrentSpecReport().Failed()
})

var _ = AfterSuite(func() {
if failed {
testutil.SaveLog(serverLog, false)
serverLog = nil
}
Expect(testutil.KillServer(serverLog)).To(Succeed())
Expect(testutil.Cleanup(testLock)).To(Succeed())
})

func Test_IntegrationStartup(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Startup Suite")
}

0 comments on commit 91ae9b0

Please sign in to comment.