#!/usr/bin/ruby # # $Id: vftest.rb,v 1.5 2004/05/02 23:42:09 jeffm Exp $ # require './Vflow' require 'socket' TESTFILE='testdata/ft-v05.2003-07-19.100001+1000' def dumpvflowrec(r) puts "==============" puts "have #{r.class}" puts "UUUU #{r.unix_secs}" puts "unix_secs #{Time.at(r.unix_secs)} unix_nsecs #{r.unix_nsecs}" puts "sysuptime #{r.sysuptime}" puts "exaddr #{IPSocket.getaddress(r.exaddr)}" print "srcaddr #{IPSocket.getaddress(r.srcaddr)} -> " puts "dstaddr #{IPSocket.getaddress(r.dstaddr)}" puts "nexthop #{IPSocket.getaddress(r.nexthop)}" puts "input #{r.input} output #{r.output}" puts "dflows #{r.dflows}" puts "dpkts #{r.dpkts} doctets #{r.doctets}" puts "first #{r.first} last #{r.last}" puts "srcport #{r.srcport} dstport #{r.dstport}" puts "prot #{r.prot} tos #{r.tos}" puts "engine_type #{r.engine_type} engine_id #{r.engine_id}" puts "src_mask #{r.src_mask} dst_mask #{r.dst_mask}" puts "src_as #{r.src_as} dst_as #{r.dst_as}" puts "in_encaps #{r.in_encaps}" puts "out_encaps #{r.out_encaps}" if r.peer_nexthop then puts "peer_nexthop #{IPSocket.getaddress(r.peer_nexthop)}" else puts "peer_nexthop nil" end puts "router_sc #{r.router_sc}" puts "src_tag #{r.src_tag} dst_tag #{r.dst_tag}" puts "extra_pkts #{r.extra_pkts} marked_tos #{r.marked_tos}" end puts "+++ get new()" x = Vflow.new() puts "+++ open a file" x.open(TESTFILE) puts "+++ currentfile" puts x.currentfile() puts "+++ next" dumpvflowrec(x.next) puts "+++ next (again)" dumpvflowrec(x.next) puts "+++ each" x.each() {|r| dumpvflowrec(r) } puts "+++ close a file" x.close() print "---- bad call to open " begin x.open(1) rescue TypeError => detail puts "received expected error(TypeError) good" end puts "=== End of Tests ===";