MCPcopy
hub / github.com/juanfont/headscale / TestSubnetRouterMultiNetwork

Function TestSubnetRouterMultiNetwork

integration/route_test.go:1842–1991  ·  view source on GitHub ↗

TestSubnetRouterMultiNetwork is an evolution of the subnet router test. This test will set up multiple docker networks and use two isolated tailscale clients and a service available in one of the networks to validate that a subnet router is working as expected.

(t *testing.T)

Source from the content-addressed store, hash-verified

1840// clients and a service available in one of the networks to validate that a
1841// subnet router is working as expected.
1842func TestSubnetRouterMultiNetwork(t *testing.T) {
1843 IntegrationSkip(t)
1844
1845 spec := ScenarioSpec{
1846 NodesPerUser: 1,
1847 Users: []string{"user1", "user2"},
1848 Networks: map[string]NetworkSpec{
1849 "usernet1": {Users: []string{"user1"}},
1850 "usernet2": {Users: []string{"user2"}},
1851 },
1852 ExtraService: map[string][]extraServiceFunc{
1853 "usernet1": {Webservice},
1854 },
1855 }
1856
1857 scenario, err := NewScenario(spec)
1858
1859 require.NoErrorf(t, err, "failed to create scenario: %s", err)
1860 defer scenario.ShutdownAssertNoPanics(t)
1861
1862 err = scenario.CreateHeadscaleEnv([]tsic.Option{tsic.WithAcceptRoutes()},
1863 hsic.WithTestName("rt-multinet"),
1864 )
1865 requireNoErrHeadscaleEnv(t, err)
1866
1867 allClients, err := scenario.ListTailscaleClients()
1868 requireNoErrListClients(t, err)
1869
1870 err = scenario.WaitForTailscaleSync()
1871 requireNoErrSync(t, err)
1872
1873 headscale, err := scenario.Headscale()
1874 requireNoErrGetHeadscale(t, err)
1875 assert.NotNil(t, headscale)
1876
1877 pref, err := scenario.SubnetOfNetwork("usernet1")
1878 require.NoError(t, err)
1879
1880 var user1c, user2c TailscaleClient
1881
1882 for _, c := range allClients {
1883 s := c.MustStatus()
1884 if s.User[s.Self.UserID].LoginName == "user1@test.no" {
1885 user1c = c
1886 }
1887
1888 if s.User[s.Self.UserID].LoginName == "user2@test.no" {
1889 user2c = c
1890 }
1891 }
1892
1893 require.NotNil(t, user1c)
1894 require.NotNil(t, user2c)
1895
1896 // Advertise the route for the dockersubnet of user1
1897 command := []string{
1898 "tailscale",
1899 "set",

Callers

nothing calls this directly

Calls 15

CreateHeadscaleEnvMethod · 0.95
ListTailscaleClientsMethod · 0.95
WaitForTailscaleSyncMethod · 0.95
HeadscaleMethod · 0.95
SubnetOfNetworkMethod · 0.95
ExecuteMethod · 0.95
StatusMethod · 0.95
NetworkMethod · 0.95
ServicesMethod · 0.95
HostnameMethod · 0.95
TracerouteMethod · 0.95

Tested by

no test coverage detected