filter pfifo qdiscs in tests

This commit is contained in:
Vishvananda Ishaya Abrams
2017-09-05 22:56:13 -07:00
parent f5a6f697a5
commit a98f31ffc7
3 changed files with 56 additions and 33 deletions

View File

@@ -6,6 +6,23 @@ import (
"testing"
)
func SafeQdiscList(link Link) ([]Qdisc, error) {
qdiscs, err := QdiscList(link)
if err != nil {
return nil, err
}
result := []Qdisc{}
for _, qdisc := range qdiscs {
// filter out pfifo_fast qdiscs because
// older kernels don't return them
_, pfifo := qdisc.(*PfifoFast)
if !pfifo {
result = append(result, qdisc)
}
}
return result, nil
}
func TestClassAddDel(t *testing.T) {
tearDown := setUpNetlinkTest(t)
defer tearDown()
@@ -31,7 +48,7 @@ func TestClassAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -103,7 +120,7 @@ func TestClassAddDel(t *testing.T) {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -153,7 +170,7 @@ func TestClassAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -194,7 +211,7 @@ func TestHtbClassAddHtbClassChangeDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -254,7 +271,7 @@ func TestHtbClassAddHtbClassChangeDel(t *testing.T) {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -306,7 +323,7 @@ func TestHtbClassAddHtbClassChangeDel(t *testing.T) {
}
// Check that we still have the netem child qdisc
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -398,7 +415,7 @@ func TestHtbClassAddHtbClassChangeDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}

View File

@@ -41,7 +41,7 @@ func TestFilterAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -93,7 +93,7 @@ func TestFilterAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -128,7 +128,7 @@ func TestAdvancedFilterAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -257,7 +257,7 @@ func TestAdvancedFilterAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -298,7 +298,7 @@ func TestFilterFwAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -412,7 +412,7 @@ func TestFilterFwAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -454,7 +454,7 @@ func TestFilterU32BpfAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -513,15 +513,21 @@ func TestFilterU32BpfAddDel(t *testing.T) {
if u32.ClassId != classId {
t.Fatalf("ClassId of the filter is the wrong value")
}
// actions can be returned in reverse order
bpfAction, ok := u32.Actions[0].(*BpfAction)
if !ok {
t.Fatal("Action[0] is the wrong type")
bpfAction, ok = u32.Actions[1].(*BpfAction)
if !ok {
t.Fatal("Action is the wrong type")
}
}
if bpfAction.Fd != fd {
t.Fatal("Action Fd does not match")
}
if _, ok := u32.Actions[1].(*MirredAction); !ok {
t.Fatal("Action[1] is the wrong type")
if _, ok := u32.Actions[0].(*MirredAction); !ok {
if _, ok := u32.Actions[1].(*MirredAction); !ok {
t.Fatal("Action is the wrong type")
}
}
if err := FilterDel(filter); err != nil {
@@ -538,7 +544,7 @@ func TestFilterU32BpfAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -573,12 +579,12 @@ func TestFilterClsActBpfAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Skipf("Failed adding clsact qdisc, unsupported kernel")
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
if len(qdiscs) != 1 {
t.Fatal("Failed to add qdisc")
t.Fatal("Failed to add qdisc", len(qdiscs))
}
if q, ok := qdiscs[0].(*GenericQdisc); !ok || q.Type() != "clsact" {
t.Fatal("qdisc is the wrong type")
@@ -642,7 +648,7 @@ func TestFilterClsActBpfAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}

View File

@@ -32,7 +32,7 @@ func TestTbfAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -55,7 +55,7 @@ func TestTbfAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -90,7 +90,7 @@ func TestHtbAddDel(t *testing.T) {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -113,7 +113,7 @@ func TestHtbAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -143,7 +143,7 @@ func TestPrioAddDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -157,7 +157,7 @@ func TestPrioAddDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -195,7 +195,7 @@ func TestTbfAddHtbReplaceDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -224,7 +224,7 @@ func TestTbfAddHtbReplaceDel(t *testing.T) {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -248,7 +248,7 @@ func TestTbfAddHtbReplaceDel(t *testing.T) {
if err := QdiscDel(qdisc2); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -286,7 +286,7 @@ func TestTbfAddTbfChangeDel(t *testing.T) {
if err := QdiscAdd(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err := QdiscList(link)
qdiscs, err := SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -313,7 +313,7 @@ func TestTbfAddTbfChangeDel(t *testing.T) {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}
@@ -337,7 +337,7 @@ func TestTbfAddTbfChangeDel(t *testing.T) {
if err := QdiscDel(qdisc); err != nil {
t.Fatal(err)
}
qdiscs, err = QdiscList(link)
qdiscs, err = SafeQdiscList(link)
if err != nil {
t.Fatal(err)
}