summaryrefslogtreecommitdiff
path: root/internal/tests/integration/net_test.go
blob: a0ff4e6f444f0139e6d349c6b82747b3aaaf1512 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package integration

import (
	"testing"
)

func TestNet_LookupIP(t *testing.T) {
	inOutTest(t, `{{ net.LookupIP "localhost" }}`, "127.0.0.1")
}

func TestNet_CIDRHost(t *testing.T) {
	inOutTestExperimental(t, `{{ net.ParsePrefix "10.12.127.0/20" | net.CIDRHost 16 }}`, "10.12.112.16")
	inOutTestExperimental(t, `{{ "10.12.127.0/20" | net.CIDRHost 16 }}`, "10.12.112.16")
	inOutTestExperimental(t, `{{ net.CIDRHost 268 "10.12.127.0/20" }}`, "10.12.113.12")
	inOutTestExperimental(t, `{{ net.CIDRHost 34 "fd00:fd12:3456:7890:00a2::/72" }}`, "fd00:fd12:3456:7890::22")
}

func TestNet_CIDRNetmask(t *testing.T) {
	inOutTestExperimental(t, `{{ "10.12.127.0/20" | net.CIDRNetmask }}`, "255.255.240.0")
	inOutTestExperimental(t, `{{ net.CIDRNetmask "10.0.0.0/12" }}`, "255.240.0.0")
	inOutTestExperimental(t, `{{ net.CIDRNetmask "fd00:fd12:3456:7890:00a2::/72" }}`, "ffff:ffff:ffff:ffff:ff00::")
}

func TestNet_CIDRSubnets(t *testing.T) {
	inOutTestExperimental(t, `{{ index ("10.0.0.0/16" | net.CIDRSubnets 2) 1 }}`, "10.0.64.0/18")
	inOutTestExperimental(t, `{{ range net.CIDRSubnets 2 "10.0.0.0/16" }}
{{ . }}{{ end }}`, `
10.0.0.0/18
10.0.64.0/18
10.0.128.0/18
10.0.192.0/18`)
}

func TestNet_CIDRSubnetSizes(t *testing.T) {
	inOutTestExperimental(t, `{{ index ("10.0.0.0/16" | net.CIDRSubnetSizes 1) 0 }}`, "10.0.0.0/17")
	inOutTestExperimental(t, `{{ index ("10.1.0.0/16" | net.CIDRSubnetSizes 4 4 8 4) 1 }}`, "10.1.16.0/20")
	inOutTestExperimental(t, `{{ range net.CIDRSubnetSizes 16 16 16 32 "fd00:fd12:3456:7890::/56" }}
{{ . }}{{ end }}`, `
fd00:fd12:3456:7800::/72
fd00:fd12:3456:7800:100::/72
fd00:fd12:3456:7800:200::/72
fd00:fd12:3456:7800:300::/88`)
}