Files
fission-src/pkg/poolcache/poolcache_test.go
T
Rahul BhatiandGitHub 25acd7fd16 Feature request per pod (#1946)
This feature enables routing more than one request to a pod at the same time. This is the first draft of the work and might involve more optimizations later.
2021-03-31 12:35:30 +05:30

59 lines
1.2 KiB
Go

package poolcache
import (
"log"
"testing"
"k8s.io/apimachinery/pkg/api/resource"
)
func checkErr(err error) {
if err != nil {
log.Panicf("err: %v", err)
}
}
func TestPoolCache(t *testing.T) {
c := NewPoolCache()
c.SetValue("func", "ip", "value", resource.MustParse("45m"))
c.SetValue("func2", "ip2", "value2", resource.MustParse("50m"))
c.SetValue("func2", "ip22", "value22", resource.MustParse("33m"))
checkErr(c.DeleteValue("func2", "ip2"))
cc := c.ListAvailableValue()
if len(cc) != 0 {
log.Panicf("expected 0 available items")
}
c.MarkAvailable("func", "ip")
_, active, err := c.GetValue("func", 5)
if active != 1 {
log.Panicln("Expected 1 active, found", active)
}
checkErr(err)
checkErr(c.DeleteValue("func", "ip"))
_, active, err = c.GetValue("func", 5)
if err == nil {
log.Panicf("found deleted element")
}
c.SetValue("cpulimit", "100", "value", resource.MustParse("3m"))
c.SetCPUUtilization("cpulimit", "100", resource.MustParse("4m"))
_, _, err = c.GetValue("cpulimit", 5)
if err == nil {
log.Panicf("received pod address with higher CPU usage than limit")
}
c.SetCPUUtilization("cpulimit", "100", resource.MustParse("2m"))
_, _, err = c.GetValue("cpulimit", 5)
checkErr(err)
}