github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgSys/tun_test.go (about) 1 package kmgSys 2 3 import ( 4 "fmt" 5 "os" 6 "testing" 7 8 "github.com/bronze1man/kmg/kmgCmd" 9 "github.com/bronze1man/kmg/kmgTest" 10 ) 11 12 func TestTun(ot *testing.T) { 13 fmt.Println(1) 14 tun, err := NewTun("") 15 fmt.Println(2) 16 if os.IsPermission(err) { 17 ot.Skip("you need root permission to run this test.") 18 return 19 } 20 kmgTest.Equal(err, nil) 21 defer tun.Close() 22 kmgTest.Equal(tun.GetDeviceType(), DeviceTypeTun) 23 fmt.Println(3) 24 25 err = SetP2PIpAndUp(tun, "10.209.34.1", "10.209.34.2") 26 kmgTest.Equal(err, nil) 27 28 err = SetMtu(tun, 1420) 29 kmgTest.Equal(err, nil) 30 fmt.Println(4) 31 cmd := kmgCmd.CmdString("ping 10.209.34.2").GetExecCmd() 32 err = cmd.Start() 33 kmgTest.Equal(err, nil) 34 defer cmd.Process.Kill() 35 36 buf := make([]byte, 4096) 37 n, err := tun.Read(buf) 38 kmgTest.Equal(err, nil) 39 kmgTest.Ok(n > 0) 40 /* 41 tun2, err := NewTun("") 42 t.Equal(err, nil) 43 defer tun2.Close() 44 */ 45 } 46 47 func TestTap(ot *testing.T) { 48 tap, err := NewTap("") 49 if os.IsPermission(err) { 50 ot.Skip("you need root permission to run this test.") 51 return 52 } 53 kmgTest.Equal(err, nil) 54 defer tap.Close() 55 kmgTest.Equal(tap.GetDeviceType(), DeviceTypeTap) 56 57 err = kmgCmd.CmdString("ifconfig " + tap.Name() + " 10.209.34.1 up").GetExecCmd().Run() 58 kmgTest.Equal(err, nil) 59 /* 60 cmd := kmgCmd.NewOsStdioCmdString("ping 10.0.0.2") 61 err = cmd.Start() 62 t.Equal(err, nil) 63 defer cmd.Process.Kill() 64 65 buf := make([]byte, 4096) 66 n, err := tun.Read(buf) 67 t.Equal(err, nil) 68 t.Ok(n > 0) 69 70 tun2, err := NewTap("") 71 t.Equal(err, nil) 72 defer tun2.Close() 73 */ 74 }