mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-06-23 14:58:44 +00:00
207 lines
4.6 KiB
Go
207 lines
4.6 KiB
Go
package acceptanceTests
|
|
|
|
import (
|
|
"archive/zip"
|
|
"os/exec"
|
|
"testing"
|
|
)
|
|
|
|
func TestLogs(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip("ignored acceptance test")
|
|
}
|
|
|
|
cliPath, cliPathErr := GetCliPath()
|
|
if cliPathErr != nil {
|
|
t.Errorf("failed to get cli path, err: %v", cliPathErr)
|
|
return
|
|
}
|
|
|
|
tapCmdArgs := GetDefaultTapCommandArgs()
|
|
|
|
tapNamespace := GetDefaultTapNamespace()
|
|
tapCmdArgs = append(tapCmdArgs, tapNamespace...)
|
|
|
|
tapCmd := exec.Command(cliPath, tapCmdArgs...)
|
|
t.Logf("running command: %v", tapCmd.String())
|
|
|
|
t.Cleanup(func() {
|
|
if err := CleanupCommand(tapCmd); err != nil {
|
|
t.Logf("failed to cleanup tap command, err: %v", err)
|
|
}
|
|
})
|
|
|
|
if err := tapCmd.Start(); err != nil {
|
|
t.Errorf("failed to start tap command, err: %v", err)
|
|
return
|
|
}
|
|
|
|
apiServerUrl := GetApiServerUrl(DefaultApiServerPort)
|
|
|
|
if err := WaitTapPodsReady(apiServerUrl); err != nil {
|
|
t.Errorf("failed to start tap pods on time, err: %v", err)
|
|
return
|
|
}
|
|
|
|
logsCmdArgs := GetDefaultLogsCommandArgs()
|
|
|
|
logsCmd := exec.Command(cliPath, logsCmdArgs...)
|
|
t.Logf("running command: %v", logsCmd.String())
|
|
|
|
if err := logsCmd.Start(); err != nil {
|
|
t.Errorf("failed to start logs command, err: %v", err)
|
|
return
|
|
}
|
|
|
|
if err := logsCmd.Wait(); err != nil {
|
|
t.Errorf("failed to wait logs command, err: %v", err)
|
|
return
|
|
}
|
|
|
|
logsPath, logsPathErr := GetLogsPath()
|
|
if logsPathErr != nil {
|
|
t.Errorf("failed to get logs path, err: %v", logsPathErr)
|
|
return
|
|
}
|
|
|
|
zipReader, zipError := zip.OpenReader(logsPath)
|
|
if zipError != nil {
|
|
t.Errorf("failed to get zip reader, err: %v", zipError)
|
|
return
|
|
}
|
|
|
|
t.Cleanup(func() {
|
|
if err := zipReader.Close(); err != nil {
|
|
t.Logf("failed to close zip reader, err: %v", err)
|
|
}
|
|
})
|
|
|
|
var logsFileNames []string
|
|
for _, file := range zipReader.File {
|
|
logsFileNames = append(logsFileNames, file.Name)
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") {
|
|
t.Errorf("api server logs not found")
|
|
return
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") {
|
|
t.Errorf("basenine logs not found")
|
|
return
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu_cli.log") {
|
|
t.Errorf("cli logs not found")
|
|
return
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu_events.log") {
|
|
t.Errorf("events logs not found")
|
|
return
|
|
}
|
|
|
|
if !ContainsPartOfValue(logsFileNames, "mizu.mizu-tapper-daemon-set") {
|
|
t.Errorf("tapper logs not found")
|
|
return
|
|
}
|
|
}
|
|
|
|
func TestLogsPath(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip("ignored acceptance test")
|
|
}
|
|
|
|
cliPath, cliPathErr := GetCliPath()
|
|
if cliPathErr != nil {
|
|
t.Errorf("failed to get cli path, err: %v", cliPathErr)
|
|
return
|
|
}
|
|
|
|
tapCmdArgs := GetDefaultTapCommandArgs()
|
|
|
|
tapNamespace := GetDefaultTapNamespace()
|
|
tapCmdArgs = append(tapCmdArgs, tapNamespace...)
|
|
|
|
tapCmd := exec.Command(cliPath, tapCmdArgs...)
|
|
t.Logf("running command: %v", tapCmd.String())
|
|
|
|
t.Cleanup(func() {
|
|
if err := CleanupCommand(tapCmd); err != nil {
|
|
t.Logf("failed to cleanup tap command, err: %v", err)
|
|
}
|
|
})
|
|
|
|
if err := tapCmd.Start(); err != nil {
|
|
t.Errorf("failed to start tap command, err: %v", err)
|
|
return
|
|
}
|
|
|
|
apiServerUrl := GetApiServerUrl(DefaultApiServerPort)
|
|
|
|
if err := WaitTapPodsReady(apiServerUrl); err != nil {
|
|
t.Errorf("failed to start tap pods on time, err: %v", err)
|
|
return
|
|
}
|
|
|
|
logsCmdArgs := GetDefaultLogsCommandArgs()
|
|
|
|
logsPath := "../logs.zip"
|
|
logsCmdArgs = append(logsCmdArgs, "-f", logsPath)
|
|
|
|
logsCmd := exec.Command(cliPath, logsCmdArgs...)
|
|
t.Logf("running command: %v", logsCmd.String())
|
|
|
|
if err := logsCmd.Start(); err != nil {
|
|
t.Errorf("failed to start logs command, err: %v", err)
|
|
return
|
|
}
|
|
|
|
if err := logsCmd.Wait(); err != nil {
|
|
t.Errorf("failed to wait logs command, err: %v", err)
|
|
return
|
|
}
|
|
|
|
zipReader, zipError := zip.OpenReader(logsPath)
|
|
if zipError != nil {
|
|
t.Errorf("failed to get zip reader, err: %v", zipError)
|
|
return
|
|
}
|
|
|
|
t.Cleanup(func() {
|
|
if err := zipReader.Close(); err != nil {
|
|
t.Logf("failed to close zip reader, err: %v", err)
|
|
}
|
|
})
|
|
|
|
var logsFileNames []string
|
|
for _, file := range zipReader.File {
|
|
logsFileNames = append(logsFileNames, file.Name)
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") {
|
|
t.Errorf("api server logs not found")
|
|
return
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") {
|
|
t.Errorf("basenine logs not found")
|
|
return
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu_cli.log") {
|
|
t.Errorf("cli logs not found")
|
|
return
|
|
}
|
|
|
|
if !Contains(logsFileNames, "mizu_events.log") {
|
|
t.Errorf("events logs not found")
|
|
return
|
|
}
|
|
|
|
if !ContainsPartOfValue(logsFileNames, "mizu.mizu-tapper-daemon-set") {
|
|
t.Errorf("tapper logs not found")
|
|
return
|
|
}
|
|
}
|