示例#1
0
文件: testing.go 项目: soniah/gsnmpgo
func CompareVerax(t *testing.T, gresults, vresults *llrb.Tree) {
	ch := gresults.IterAscend()
	for {
		gr := <-ch
		if gr == nil {
			break
		}
		goresult := gr.(QueryResult)
		vstruct := QueryResult{Oid: goresult.Oid}
		vr := vresults.Get(vstruct)
		if vr == nil {
			continue
		}
		vresult := vr.(QueryResult)

		vstring := vresult.Value.String()
		gostring := goresult.Value.String()
		fmt.Printf("verax  : %s\ngsnmpgo: %s\n\n", vstring, gostring)
		if gostring != vstring {
			// fmt.Printf("OK oid: %s type: %T value: %s\n", goresult.Oid, goresult.Value, gostring)
			if len(gostring) > 4 && gostring[0:5] == "07 DA" {
				// skip - weird Verax stuff
			} else if len(vstring) > 4 && vstring[0:5] == "4E:85" {
				// skip - weird Verax stuff
			} else if len(vstring) > 17 && vstring[0:18] == "Cisco IOS Software" {
				// skip - \n's have been stripped - ignore
			} else {
				t.Errorf("compare fail: oid: %s type: %T\ngostring: |%s|\nvstring : |%s|",
					goresult.Oid, goresult.Value, gostring, vstring)
			}
		}
	}
}