mirror of
https://github.com/kubeshark/kubeshark.git
synced 2026-08-25 00:47:27 +00:00
* Rename `mizu` to `kubeshark` * Rename `up9inc` to `kubeshark` * Change the logo, title, motto and the main color * Replace the favicon * Update the docs link * Change the copyright text in C files * Remove a comment * Rewrite the `README.md` and update the logo and screenshots used in it * Add a `TODO` * Fix the grammar * Fix the bottom text in the filtering guide * Change the Docker Hub username of cross-compilation intermediate images * Add an install script * Fix `docker/login-action` in the CI * Delete `build-custom-branch.yml` GitHub workflow * Update `README.md` * Remove `install.sh` * Change the motto back to "Traffic viewer for Kubernetes"
85 lines
2.7 KiB
Go
85 lines
2.7 KiB
Go
package providers_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/kubeshark/kubeshark/agent/pkg/providers"
|
|
"github.com/kubeshark/kubeshark/tap/api"
|
|
)
|
|
|
|
func TestNoEntryAddedCount(t *testing.T) {
|
|
entriesStats := providers.GetGeneralStats()
|
|
|
|
if entriesStats.EntriesCount != 0 {
|
|
t.Errorf("unexpected result - expected: %v, actual: %v", 0, entriesStats.EntriesCount)
|
|
}
|
|
|
|
if entriesStats.EntriesVolumeInGB != 0 {
|
|
t.Errorf("unexpected result - expected: %v, actual: %v", 0, entriesStats.EntriesVolumeInGB)
|
|
}
|
|
}
|
|
|
|
func TestEntryAddedCount(t *testing.T) {
|
|
tests := []int{1, 5, 10, 100, 500, 1000}
|
|
|
|
entryBucketKey := time.Date(2021, 1, 1, 10, 0, 0, 0, time.UTC)
|
|
valueLessThanBucketThreshold := time.Second * 130
|
|
mockSummery := &api.BaseEntry{Protocol: api.Protocol{ProtocolSummary: api.ProtocolSummary{Name: "mock"}}, Method: "mock-method", Timestamp: entryBucketKey.Add(valueLessThanBucketThreshold).UnixNano()}
|
|
for _, entriesCount := range tests {
|
|
t.Run(fmt.Sprintf("%d", entriesCount), func(t *testing.T) {
|
|
for i := 0; i < entriesCount; i++ {
|
|
providers.EntryAdded(0, mockSummery)
|
|
}
|
|
|
|
entriesStats := providers.GetGeneralStats()
|
|
|
|
if entriesStats.EntriesCount != entriesCount {
|
|
t.Errorf("unexpected result - expected: %v, actual: %v", entriesCount, entriesStats.EntriesCount)
|
|
}
|
|
|
|
if entriesStats.EntriesVolumeInGB != 0 {
|
|
t.Errorf("unexpected result - expected: %v, actual: %v", 0, entriesStats.EntriesVolumeInGB)
|
|
}
|
|
|
|
t.Cleanup(func() {
|
|
providers.ResetGeneralStats()
|
|
generalStats := providers.GetGeneralStats()
|
|
if generalStats.EntriesCount != 0 {
|
|
t.Errorf("unexpected result - expected: %v, actual: %v", 0, generalStats.EntriesCount)
|
|
}
|
|
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestEntryAddedVolume(t *testing.T) {
|
|
// 6 bytes + 4 bytes
|
|
tests := [][]byte{[]byte("volume"), []byte("test")}
|
|
var expectedEntriesCount int
|
|
var expectedVolumeInGB float64
|
|
|
|
mockSummery := &api.BaseEntry{Protocol: api.Protocol{ProtocolSummary: api.ProtocolSummary{Name: "mock"}}, Method: "mock-method", Timestamp: time.Date(2021, 1, 1, 10, 0, 0, 0, time.UTC).UnixNano()}
|
|
|
|
for _, data := range tests {
|
|
t.Run(fmt.Sprintf("%d", len(data)), func(t *testing.T) {
|
|
expectedEntriesCount++
|
|
expectedVolumeInGB += float64(len(data)) / (1 << 30)
|
|
|
|
providers.EntryAdded(len(data), mockSummery)
|
|
|
|
entriesStats := providers.GetGeneralStats()
|
|
|
|
if entriesStats.EntriesCount != expectedEntriesCount {
|
|
t.Errorf("unexpected result - expected: %v, actual: %v", expectedEntriesCount, entriesStats.EntriesCount)
|
|
}
|
|
|
|
if entriesStats.EntriesVolumeInGB != expectedVolumeInGB {
|
|
t.Errorf("unexpected result - expected: %v, actual: %v", expectedVolumeInGB, entriesStats.EntriesVolumeInGB)
|
|
}
|
|
})
|
|
}
|
|
}
|