Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/tests/sys/netinet6/addr6.sh
39478 views
1
#!/usr/bin/env atf-sh
2
#-
3
# SPDX-License-Identifier: ISC
4
#
5
# Copyright (c) 2025 Lexi Winter.
6
#
7
# Permission to use, copy, modify, and distribute this software for any
8
# purpose with or without fee is hereby granted, provided that the above
9
# copyright notice and this permission notice appear in all copies.
10
#
11
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
19
. $(atf_get_srcdir)/../common/vnet.subr
20
21
atf_test_case "addr6_invalid_addr" "cleanup"
22
addr6_invalid_addr_head()
23
{
24
atf_set descr "adding an invalid IPv6 address returns an error"
25
atf_set require.user root
26
}
27
28
addr6_invalid_addr_body()
29
{
30
vnet_init
31
32
ep=$(vnet_mkepair)
33
atf_check -s exit:0 ifconfig ${ep}a inet6 2001:db8::1/128
34
atf_check -s exit:1 -e ignore ifconfig ${ep}a inet6 2001:db8::1/127 alias
35
}
36
37
addr6_invalid_addr_cleanup()
38
{
39
vnet_cleanup
40
}
41
42
atf_test_case "anycast_raw_addr" "cleanup"
43
anycast_raw_addr_head()
44
{
45
atf_set descr "a raw socket can bind to an anycast address"
46
atf_set require.user root
47
}
48
49
anycast_raw_addr_body()
50
{
51
# lo0 needs to be up in the test jail for this test to work
52
ifconfig lo0 up
53
54
netif=$(ifconfig lo create)
55
echo $netif >netif
56
atf_check -s exit:0 ifconfig $netif inet6 2001:db8::1/128 up
57
atf_check -s exit:0 ifconfig $netif inet6 2001:db8::2/128 anycast
58
atf_check -s exit:0 -o ignore ping -c1 -S 2001:db8::2 2001:db8::1
59
}
60
61
anycast_raw_addr_cleanup()
62
{
63
ifconfig $(cat netif) destroy
64
}
65
66
atf_init_test_cases()
67
{
68
atf_add_test_case "addr6_invalid_addr"
69
atf_add_test_case "anycast_raw_addr"
70
}
71
72