2020-07-24 06:10:54 +00:00
|
|
|
#!/usr/bin/env atf-sh
|
|
|
|
|
|
|
|
. $(atf_get_srcdir)/test_env.sh
|
|
|
|
|
|
|
|
tests_init \
|
|
|
|
noargs \
|
|
|
|
lo_always_auto \
|
|
|
|
dual_stack \
|
|
|
|
static_ipv4 \
|
2020-07-25 07:06:21 +00:00
|
|
|
static_ipv4_netmask \
|
2020-07-24 06:10:54 +00:00
|
|
|
static_ipv6 \
|
2020-07-25 07:06:21 +00:00
|
|
|
static_ipv6_netmask \
|
2020-07-24 06:10:54 +00:00
|
|
|
inet_dhcp \
|
2020-07-24 11:04:33 +00:00
|
|
|
use_dhcp \
|
2020-07-24 06:10:54 +00:00
|
|
|
alias_eth0_home \
|
2020-07-24 10:54:13 +00:00
|
|
|
alias_eth0_work \
|
2020-07-28 20:04:27 +00:00
|
|
|
bonded_bridge \
|
2020-07-29 08:33:00 +00:00
|
|
|
learned_dependency \
|
2020-07-29 08:37:14 +00:00
|
|
|
learned_dependency_2 \
|
2020-08-04 19:08:30 +00:00
|
|
|
learned_executor \
|
2020-08-24 08:19:01 +00:00
|
|
|
implicit_vlan \
|
2020-09-08 22:02:24 +00:00
|
|
|
deferred_teardown_1 \
|
|
|
|
deferred_teardown_2 \
|
|
|
|
deferred_teardown_3 \
|
2020-09-10 02:46:50 +00:00
|
|
|
teardown_dep_ordering \
|
2020-10-08 08:09:30 +00:00
|
|
|
regress_opt_f \
|
|
|
|
dependency_loop_breaking
|
2020-07-24 06:10:54 +00:00
|
|
|
|
|
|
|
noargs_body() {
|
|
|
|
atf_check -s exit:1 -e ignore ifdown -S/dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
lo_always_auto_body() {
|
2020-07-26 09:34:04 +00:00
|
|
|
atf_check -s exit:0 -e ignore -o match:'executors/link' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i/dev/null -n -a
|
2020-07-24 06:10:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
dual_stack_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/static' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i $FIXTURES/static-eth0.interfaces -n -a
|
2020-07-24 06:10:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static_ipv4_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/static' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i $FIXTURES/static-eth0-v4.interfaces -n -a
|
2020-07-24 06:10:54 +00:00
|
|
|
}
|
|
|
|
|
2020-07-25 07:06:21 +00:00
|
|
|
static_ipv4_netmask_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/static' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i $FIXTURES/static-eth0-v4-netmask.interfaces -n -a
|
2020-07-25 07:06:21 +00:00
|
|
|
}
|
|
|
|
|
2020-07-24 06:10:54 +00:00
|
|
|
static_ipv6_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/static' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i $FIXTURES/static-eth0-v6.interfaces -n -a
|
2020-07-24 06:10:54 +00:00
|
|
|
}
|
|
|
|
|
2020-07-25 07:06:21 +00:00
|
|
|
static_ipv6_netmask_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/static' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i $FIXTURES/static-eth0-v6-netmask.interfaces -n -a
|
2020-07-25 07:06:21 +00:00
|
|
|
}
|
|
|
|
|
2020-07-24 06:10:54 +00:00
|
|
|
inet_dhcp_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/dhcp' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i $FIXTURES/dhcp-eth0.interfaces -n -a
|
2020-07-24 06:10:54 +00:00
|
|
|
}
|
|
|
|
|
2020-07-24 11:04:33 +00:00
|
|
|
use_dhcp_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/dhcp' \
|
2020-09-09 01:25:50 +00:00
|
|
|
ifdown -f -S/dev/null -E $EXECUTORS -i $FIXTURES/use-dhcp-eth0.interfaces -n -a
|
2020-07-24 11:04:33 +00:00
|
|
|
}
|
|
|
|
|
2020-07-24 06:10:54 +00:00
|
|
|
alias_eth0_home_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/dhcp' \
|
2020-07-24 06:10:54 +00:00
|
|
|
ifdown -S $FIXTURES/alias-home.ifstate \
|
2020-07-25 08:50:24 +00:00
|
|
|
-E $EXECUTORS -i $FIXTURES/alias-home-work.interfaces -n wlan0
|
2020-07-24 06:10:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
alias_eth0_work_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/static' \
|
2020-07-24 06:10:54 +00:00
|
|
|
ifdown -S $FIXTURES/alias-work.ifstate \
|
2020-07-25 08:50:24 +00:00
|
|
|
-E $EXECUTORS -i $FIXTURES/alias-home-work.interfaces -n wlan0
|
2020-07-24 06:10:54 +00:00
|
|
|
}
|
2020-07-24 10:54:13 +00:00
|
|
|
|
|
|
|
bonded_bridge_body() {
|
|
|
|
atf_check -s exit:0 -e ignore \
|
2020-07-26 09:34:04 +00:00
|
|
|
-o match:'executors/link' \
|
2020-07-26 09:12:02 +00:00
|
|
|
-o match:'executors/bond' \
|
|
|
|
-o match:'executors/bridge' \
|
|
|
|
-o match:'executors/static' \
|
2020-07-24 10:54:13 +00:00
|
|
|
ifdown -S $FIXTURES/bonded-bridge.ifstate \
|
2020-07-25 08:50:24 +00:00
|
|
|
-E $EXECUTORS -i $FIXTURES/bonded-bridge.interfaces -n br0
|
2020-07-24 10:54:13 +00:00
|
|
|
}
|
2020-07-28 20:04:27 +00:00
|
|
|
|
|
|
|
learned_dependency_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"eth0" \
|
|
|
|
-e match:"eth1" \
|
|
|
|
-e match:"eth2" \
|
|
|
|
-e match:"eth3" \
|
|
|
|
-e match:"eth4" \
|
|
|
|
ifdown -n -S $FIXTURES/mock-dependency-generator.ifstate \
|
|
|
|
-E $EXECUTORS \
|
|
|
|
-i $FIXTURES/mock-dependency-generator.interfaces br0
|
|
|
|
}
|
2020-07-29 08:33:00 +00:00
|
|
|
|
|
|
|
learned_dependency_2_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"bond0" \
|
|
|
|
-e match:"eth0" \
|
|
|
|
-e match:"eth1" \
|
|
|
|
ifdown -n -S $FIXTURES/mock-dependency-generator-2.ifstate \
|
|
|
|
-E $EXECUTORS \
|
|
|
|
-i $FIXTURES/mock-dependency-generator-2.interfaces br0
|
|
|
|
}
|
2020-07-29 08:37:14 +00:00
|
|
|
|
|
|
|
learned_executor_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"attempting to run mock executor" \
|
|
|
|
ifdown -n -S $FIXTURES/mock-dependency-generator-2.ifstate \
|
|
|
|
-E $EXECUTORS \
|
|
|
|
-i $FIXTURES/mock-dependency-generator-2.interfaces br0
|
|
|
|
}
|
2020-08-04 19:08:30 +00:00
|
|
|
|
|
|
|
implicit_vlan_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"attempting to run vlan executor" \
|
|
|
|
-e match:"attempting to run link executor" \
|
|
|
|
ifdown -n -S $FIXTURES/vlan.ifstate -E $EXECUTORS -i $FIXTURES/vlan.interfaces eth0.8
|
|
|
|
}
|
2020-08-24 08:19:01 +00:00
|
|
|
|
2020-09-08 22:02:24 +00:00
|
|
|
deferred_teardown_1_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"skipping dependent interface eth0 \\(of bond0\\) -- transient dependencies still exist" \
|
|
|
|
-e match:"changing state of dependent interface eth1 \\(of bond0\\) to down" \
|
|
|
|
ifdown -n -S $FIXTURES/deferred-teardown-1.ifstate -E $EXECUTORS \
|
|
|
|
-i $FIXTURES/deferred-teardown-1.interfaces br0
|
|
|
|
}
|
|
|
|
|
|
|
|
deferred_teardown_2_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"skipping dependent interface eth0 \\(of tun0\\) -- transient dependencies still exist" \
|
|
|
|
-e match:"skipping dependent interface eth0 \\(of tun1\\) -- transient dependencies still exist" \
|
|
|
|
-e match:"skipping dependent interface eth0 \\(of tun2\\) -- transient dependencies still exist" \
|
|
|
|
ifdown -n -S $FIXTURES/deferred-teardown-2.ifstate -E $EXECUTORS \
|
|
|
|
-i $FIXTURES/deferred-teardown-2.interfaces tun0 tun1 tun2
|
|
|
|
}
|
|
|
|
|
|
|
|
deferred_teardown_3_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"skipping dependent interface eth0 \\(of tun0\\) -- transient dependencies still exist" \
|
|
|
|
-e match:"skipping dependent interface eth0 \\(of tun1\\) -- transient dependencies still exist" \
|
|
|
|
-e match:"skipping dependent interface eth0 \\(of tun2\\) -- transient dependencies still exist" \
|
|
|
|
-e match:"changing state of dependent interface eth0 \\(of tun3\\) to down" \
|
|
|
|
ifdown -n -S $FIXTURES/deferred-teardown-2.ifstate -E $EXECUTORS \
|
|
|
|
-i $FIXTURES/deferred-teardown-2.interfaces tun0 tun1 tun2 tun3
|
|
|
|
}
|
|
|
|
|
2020-09-10 02:46:50 +00:00
|
|
|
teardown_dep_ordering_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"skipping auto interface bat" \
|
|
|
|
-e match:"skipping auto interface dummy" \
|
|
|
|
ifdown -n -i $FIXTURES/teardown-dep-ordering.interfaces \
|
|
|
|
-S $FIXTURES/teardown-dep-ordering.ifstate -E $EXECUTORS -a
|
|
|
|
}
|
|
|
|
|
2020-08-24 08:19:01 +00:00
|
|
|
regress_opt_f_body() {
|
|
|
|
atf_check -s exit:0 -o ignore -e ignore \
|
|
|
|
ifdown -n -S $FIXTURES/vlan.ifstate -E $EXECUTORS -i $FIXTURES/vlan.interfaces -f eth0.8
|
|
|
|
}
|
2020-10-08 08:09:30 +00:00
|
|
|
|
|
|
|
dependency_loop_breaking_body() {
|
|
|
|
atf_check -s exit:0 -o ignore \
|
|
|
|
-e match:"ifdown: skipping auto interface a \\(already deconfigured\\), use --force to force deconfiguration" \
|
|
|
|
ifdown -n -i $FIXTURES/dependency-loop.interfaces -E $EXECUTORS -a
|
|
|
|
}
|