Skip to content

Commit

Permalink
fix: sidecar fetching logs test
Browse files Browse the repository at this point in the history
  • Loading branch information
mojtaba-esk committed Sep 20, 2024
1 parent 1d76518 commit 994b731
Showing 1 changed file with 58 additions and 33 deletions.
91 changes: 58 additions & 33 deletions e2e/basic/logs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,25 @@ package basic

import (
"context"
"errors"
"fmt"
"io"
"time"
)

// func (s *Suite) XX_TestLogs() {
// const namePrefix = "logs"
// ctx := context.Background()

// target, err := s.Knuu.NewInstance(namePrefix + "-target")
// s.Require().NoError(err)
"github.com/celestiaorg/knuu/pkg/instance"
"github.com/celestiaorg/knuu/pkg/system"
)

// s.Require().NoError(target.Build().SetImage(ctx, alpineImage))
// s.Require().NoError(target.Build().SetStartCommand("sleep", "infinity"))
// s.Require().NoError(target.Build().Commit(ctx))
// s.Require().NoError(target.Execution().Start(ctx))
const expectedLogMsg = "Hello World"

// // Perform the test
// expectedOutput := "Hello World"
// output, err := target.Execution().ExecuteCommand(ctx, "echo", expectedOutput)
// s.Require().NoError(err)
type sidecarLogsTest struct {
instance *instance.Instance
}

// output = strings.TrimSpace(output)
// s.Assert().Equal(expectedOutput, output)
// }
var _ instance.SidecarManager = (*sidecarLogsTest)(nil)

func (s *Suite) TestLogs() {
const (
namePrefix = "logs"
expectedLogMsg = "Hello World"
)
const namePrefix = "logs"
ctx := context.Background()

// Create a new instance
Expand Down Expand Up @@ -60,32 +48,25 @@ func (s *Suite) TestLogs() {
}

func (s *Suite) TestLogsWithSidecar() {
const (
namePrefix = "logs-sidecar"
expectedLogMsg = "Hello World"
)
const namePrefix = "logs-sidecar"
ctx := context.Background()

// Create a new instance
target, err := s.Knuu.NewInstance(namePrefix + "-target")
s.Require().NoError(err)

sidecar, err := s.Knuu.NewInstance(namePrefix + "-sidecar")
s.Require().NoError(err)
s.Require().NoError(sidecar.Build().SetImage(ctx, alpineImage))
s.Require().NoError(sidecar.Build().SetStartCommand("sh", "-c", fmt.Sprintf("while true; do echo '%s'; sleep 1; done", expectedLogMsg)))
s.Require().NoError(sidecar.Build().Commit(ctx))
s.Require().NoError(sidecar.Execution().Start(ctx))
sidecar := &sidecarLogsTest{}

s.Require().NoError(target.Build().SetImage(ctx, alpineImage))
s.Require().NoError(target.Build().SetStartCommand("sh", "-c", "sleep infinity"))
s.Require().NoError(target.Build().Commit(ctx))
s.Require().NoError(target.Sidecars().Add(ctx, sidecar))
s.Require().NoError(target.Execution().Start(ctx))

// Wait for a short duration to allow log generation
time.Sleep(5 * time.Second)

logStream, err := sidecar.Monitoring().Logs(ctx)
logStream, err := sidecar.Instance().Monitoring().Logs(ctx)
s.Require().NoError(err)
defer logStream.Close()

Expand All @@ -95,3 +76,47 @@ func (s *Suite) TestLogsWithSidecar() {
logOutput := string(logs)
s.Contains(logOutput, expectedLogMsg)
}

func (sl *sidecarLogsTest) Initialize(ctx context.Context, namePrefix string, sysDeps *system.SystemDependencies) error {
var err error
sl.instance, err = instance.New(namePrefix+"-sidecar-logs", sysDeps)
if err != nil {
return err
}
sl.instance.Sidecars().SetIsSidecar(true)

if err := sl.instance.Build().SetImage(ctx, alpineImage); err != nil {
return err
}

err = sl.instance.Build().SetStartCommand("sh", "-c", fmt.Sprintf("while true; do echo '%s'; sleep 1; done", expectedLogMsg))
if err != nil {
return err
}

if err := sl.instance.Build().Commit(ctx); err != nil {
return err
}
return nil
}

func (sl *sidecarLogsTest) PreStart(ctx context.Context) error {
if sl.instance == nil {
return errors.New("instance not initialized")
}
return nil
}

func (sl *sidecarLogsTest) Instance() *instance.Instance {
return sl.instance
}

func (sl *sidecarLogsTest) Clone(namePrefix string) (instance.SidecarManager, error) {
clone, err := sl.instance.CloneWithName(namePrefix + "-" + sl.instance.Name())
if err != nil {
return nil, err
}
return &sidecarLogsTest{
instance: clone,
}, nil
}

0 comments on commit 994b731

Please sign in to comment.