summaryrefslogtreecommitdiffhomepage
path: root/packet/rtr_test.go
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2016-03-31 13:19:17 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2016-03-31 13:19:17 +0900
commit311324fab8bf7d9e39365d53f7e810af90476d85 (patch)
tree6a32784d484f30bb0abebbc393c7f8b9f270da97 /packet/rtr_test.go
parent051621bf3aecbe0fd6292a3b4ee41ab42169eea1 (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.go122
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))
-}