diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2016-03-31 13:19:17 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2016-03-31 13:19:17 +0900 |
commit | 311324fab8bf7d9e39365d53f7e810af90476d85 (patch) | |
tree | 6a32784d484f30bb0abebbc393c7f8b9f270da97 /packet/rtr_test.go | |
parent | 051621bf3aecbe0fd6292a3b4ee41ab42169eea1 (diff) |
move packet/*.go to packet/bgp/*.go for Go's convention
Later, we move non-bgp protocol stuff like mrt under their own
direcotries.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Diffstat (limited to 'packet/rtr_test.go')
-rw-r--r-- | packet/rtr_test.go | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/packet/rtr_test.go b/packet/rtr_test.go deleted file mode 100644 index 0f9b9527..00000000 --- a/packet/rtr_test.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (C) 2015 Nippon Telegraph and Telephone Corporation. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -// implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package bgp - -import ( - "encoding/hex" - "math/rand" - "net" - "reflect" - "testing" - "time" -) - -func verifyRTRMessage(t *testing.T, m1 RTRMessage) { - buf1, _ := m1.Serialize() - m2, err := ParseRTR(buf1) - if err != nil { - t.Error(err) - } - buf2, _ := m2.Serialize() - - if reflect.DeepEqual(buf1, buf2) == true { - t.Log("OK") - } else { - t.Errorf("Something wrong") - t.Error(len(buf1), m1, hex.EncodeToString(buf1)) - t.Error(len(buf2), m2, hex.EncodeToString(buf2)) - } -} - -func randUint32() uint32 { - rand.Seed(time.Now().UnixNano()) - return rand.Uint32() -} - -func Test_RTRSerialNotify(t *testing.T) { - id := uint16(time.Now().Unix()) - sn := randUint32() - verifyRTRMessage(t, NewRTRSerialNotify(id, sn)) -} - -func Test_RTRSerialQuery(t *testing.T) { - id := uint16(time.Now().Unix()) - sn := randUint32() - verifyRTRMessage(t, NewRTRSerialQuery(id, sn)) -} - -func Test_RTRResetQuery(t *testing.T) { - verifyRTRMessage(t, NewRTRResetQuery()) -} - -func Test_RTRCacheResponse(t *testing.T) { - id := uint16(time.Now().Unix()) - verifyRTRMessage(t, NewRTRCacheResponse(id)) -} - -type rtrIPPrefixTestCase struct { - pString string - pLen uint8 - mLen uint8 - asn uint32 - flags uint8 -} - -var rtrIPPrefixTestCases = []rtrIPPrefixTestCase{ - {"192.168.0.0", 16, 32, 65001, ANNOUNCEMENT}, - {"192.168.0.0", 16, 32, 65001, WITHDRAWAL}, - {"2001:db8::", 32, 128, 65001, ANNOUNCEMENT}, - {"2001:db8::", 32, 128, 65001, WITHDRAWAL}, - {"::ffff:0.0.0.0", 96, 128, 65001, ANNOUNCEMENT}, - {"::ffff:0.0.0.0", 96, 128, 65001, WITHDRAWAL}, -} - -func Test_RTRIPPrefix(t *testing.T) { - for i := range rtrIPPrefixTestCases { - test := &rtrIPPrefixTestCases[i] - addr := net.ParseIP(test.pString) - verifyRTRMessage(t, NewRTRIPPrefix(addr, test.pLen, test.mLen, test.asn, test.flags)) - } -} - -func Test_RTREndOfData(t *testing.T) { - id := uint16(time.Now().Unix()) - sn := randUint32() - verifyRTRMessage(t, NewRTREndOfData(id, sn)) -} - -func Test_RTRCacheReset(t *testing.T) { - verifyRTRMessage(t, NewRTRCacheReset()) -} - -func Test_RTRErrorReport(t *testing.T) { - errPDU, _ := NewRTRResetQuery().Serialize() - errText1 := []byte("Couldn't send CacheResponce PDU") - errText2 := []byte("Wrong Length of PDU: 10 bytes") - - // See 5.10 ErrorReport in RFC6810 - // when it doesn't have both "erroneous PDU" and "Arbitrary Text" - verifyRTRMessage(t, NewRTRErrorReport(NO_DATA_AVAILABLE, nil, nil)) - - // when it has "erroneous PDU" - verifyRTRMessage(t, NewRTRErrorReport(UNSUPPORTED_PROTOCOL_VERSION, errPDU, nil)) - - // when it has "ArbitaryText" - verifyRTRMessage(t, NewRTRErrorReport(INTERNAL_ERROR, nil, errText1)) - - // when it has both "erroneous PDU" and "Arbitrary Text" - verifyRTRMessage(t, NewRTRErrorReport(CORRUPT_DATA, errPDU, errText2)) -} |