代码拉取完成,页面将自动刷新
package plugin
import (
"fmt"
"zstack-vyos/utils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = XDescribe("dnat_perf_test", func() {
var nicCmd configureNicCmd
It("[PERF]DNAT : prepare env", func() {
utils.InitLog(utils.GetVyosUtLogDir()+"dnat_perf_test.log", false)
SetKeepalivedStatusForUt(KeepAlivedStatus_Master)
utils.SetSkipVyosIptablesForUT(true)
nicCmd = configureNicCmd{}
nicCmd.Nics = append(nicCmd.Nics, utils.PubNicForUT)
nicCmd.Nics = append(nicCmd.Nics, utils.PrivateNicsForUT[0])
configureNic(&nicCmd)
})
Measure("[PERF]DNAT : test set dnat perf", func(b Benchmarker) {
runtime := b.Time("runtime", func() {
output := setDnatPerfTest(500)
Expect(output).To(BeNil())
})
Ω(runtime.Seconds()).Should(BeNumerically(">", 0), "setDnat() shouldn't take too short.")
}, 1)
Measure("[PERF]DNAT : test remove dnat perf ", func(b Benchmarker) {
runtime := b.Time("runtime", func() {
output := removeDnatPerfTest(500)
Expect(output).To(BeNil())
})
Ω(runtime.Seconds()).Should(BeNumerically(">", 0), "removeDnat() shouldn't take too short.")
}, 1)
It("[PERF]DNAT : destroy env", func() {
nicCmd = configureNicCmd{}
nicCmd.Nics = append(nicCmd.Nics, utils.PubNicForUT)
nicCmd.Nics = append(nicCmd.Nics, utils.PrivateNicsForUT[0])
removeNic(&nicCmd)
utils.SetSkipVyosIptablesForUT(false)
})
})
func setDnatPerfTest(number int) interface{} {
setCmd := &setDnatCmd{}
for i := 1; i <= number; i++ {
rule := dnatInfo{VipPortStart: 100, VipPortEnd: 65530,
PrivatePortStart: 101, PrivatePortEnd: 65531, ProtocolType: utils.IPTABLES_PROTO_TCP,
PublicMac: utils.PubNicForUT.Mac, PrivateMac: utils.PrivateNicsForUT[0].Mac,
SnatInboundTraffic: false,
}
rule.Uuid = fmt.Sprintf("uuid%d", i)
if i <= 255 {
rule.VipIp = fmt.Sprintf("10.10.1.%d", i)
rule.PrivateIp = fmt.Sprintf("192.168.1.%d", i)
rule.AllowedCidr = fmt.Sprintf("1.1.%d.0/24", i)
} else {
rule.VipIp = fmt.Sprintf("10.10.2.%d", i-255)
rule.PrivateIp = fmt.Sprintf("192.168.2.%d", i-255)
rule.AllowedCidr = fmt.Sprintf("1.2.%d.0/24", i-255)
}
setCmd.Rules = append(setCmd.Rules, rule)
}
if err := setDnat(setCmd); err != nil {
return err
}
return nil
}
func removeDnatPerfTest(number int) interface{} {
rmCmd := &removeDnatCmd{}
for i := 1; i <= number; i++ {
rule := dnatInfo{VipPortStart: 100, VipPortEnd: 65530,
PrivatePortStart: 101, PrivatePortEnd: 65531, ProtocolType: utils.IPTABLES_PROTO_TCP,
PublicMac: utils.PubNicForUT.Mac, PrivateMac: utils.PrivateNicsForUT[0].Mac,
SnatInboundTraffic: false,
}
rule.Uuid = fmt.Sprintf("uuid%d", i)
if i <= 255 {
rule.VipIp = fmt.Sprintf("10.10.1.%d", i)
rule.PrivateIp = fmt.Sprintf("192.168.1.%d", i)
rule.AllowedCidr = fmt.Sprintf("1.1.%d.0/24", i)
} else {
rule.VipIp = fmt.Sprintf("10.10.2.%d", i-255)
rule.PrivateIp = fmt.Sprintf("192.168.2.%d", i-255)
rule.AllowedCidr = fmt.Sprintf("1.2.%d.0/24", i-255)
}
rmCmd.Rules = append(rmCmd.Rules, rule)
}
if err := removeDnat(rmCmd); err != nil {
return err
}
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。