(t *testing.T)
| 2461 | } |
| 2462 | |
| 2463 | func TestRouteUIDOption(t *testing.T) { |
| 2464 | tearDown := setUpNetlinkTest(t) |
| 2465 | defer tearDown() |
| 2466 | |
| 2467 | // setup eth0 so that network is reachable |
| 2468 | err := LinkAdd(&Dummy{LinkAttrs{Name: "eth0"}}) |
| 2469 | if err != nil { |
| 2470 | t.Fatal(err) |
| 2471 | } |
| 2472 | link, err := LinkByName("eth0") |
| 2473 | if err != nil { |
| 2474 | t.Fatal(err) |
| 2475 | } |
| 2476 | if err = LinkSetUp(link); err != nil { |
| 2477 | t.Fatal(err) |
| 2478 | } |
| 2479 | addr := &Addr{ |
| 2480 | IPNet: &net.IPNet{ |
| 2481 | IP: net.IPv4(192, 168, 1, 1), |
| 2482 | Mask: net.CIDRMask(16, 32), |
| 2483 | }, |
| 2484 | } |
| 2485 | if err = AddrAdd(link, addr); err != nil { |
| 2486 | t.Fatal(err) |
| 2487 | } |
| 2488 | |
| 2489 | // a table different than unix.RT_TABLE_MAIN |
| 2490 | testtable := 1000 |
| 2491 | |
| 2492 | gw1 := net.IPv4(192, 168, 1, 254) |
| 2493 | gw2 := net.IPv4(192, 168, 2, 254) |
| 2494 | |
| 2495 | // add default route via gw1 (in main route table by default) |
| 2496 | defaultRouteMain := Route{ |
| 2497 | Dst: nil, |
| 2498 | Gw: gw1, |
| 2499 | } |
| 2500 | if err := RouteAdd(&defaultRouteMain); err != nil { |
| 2501 | t.Fatal(err) |
| 2502 | } |
| 2503 | |
| 2504 | // add default route via gw2 in test route table |
| 2505 | defaultRouteTest := Route{ |
| 2506 | Dst: nil, |
| 2507 | Gw: gw2, |
| 2508 | Table: testtable, |
| 2509 | } |
| 2510 | if err := RouteAdd(&defaultRouteTest); err != nil { |
| 2511 | t.Fatal(err) |
| 2512 | } |
| 2513 | |
| 2514 | // check the routes are in different tables |
| 2515 | routes, err := RouteListFiltered(FAMILY_V4, &Route{ |
| 2516 | Dst: nil, |
| 2517 | Table: unix.RT_TABLE_UNSPEC, |
| 2518 | }, RT_FILTER_DST|RT_FILTER_TABLE) |
| 2519 | if err != nil { |
| 2520 | t.Fatal(err) |
nothing calls this directly
no test coverage detected
searching dependent graphs…