tests: More robust parsing of resolv.conf for DHCP tests
To check publishing of DNS information via DHCP, we need to extract a list of nameservers and/or search domains from resolv.conf in the test script. The current version (usually) leaves the result with a trailing ','. That's usually ok because it happens on both guest and host sides. However it's kind of confusing, and might stop working if the host had a resolv.conf without a trailing \n on the last line. It also makes some later changes we'll need more difficult. So, normalize the output from resolv.conf a bit further, removing any trailing ','. It turns out we can do this with a slightly less complex sed expression than the one we already have. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
66ec441608
commit
92b341f8d2
1 changed files with 8 additions and 8 deletions
|
@ -35,15 +35,15 @@ gout MTU ip -j link show | jq -rM '.[] | select(.ifname == "__IFNAME__").mtu'
|
||||||
check [ __MTU__ = 65520 ]
|
check [ __MTU__ = 65520 ]
|
||||||
|
|
||||||
test DHCP: DNS
|
test DHCP: DNS
|
||||||
gout DNS sed -n 's/^nameserver \([0-9]*\.\)\(.*\)/\1\2/p' /etc/resolv.conf | tr '\n' ',' | sed 's/\(.*\)/\1\n/g'
|
gout DNS sed -n 's/^nameserver \([0-9]*\.\)\(.*\)/\1\2/p' /etc/resolv.conf | tr '\n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
hout HOST_DNS sed -n 's/^nameserver \([0-9]*\.\)\(.*\)/\1\2/p' /etc/resolv.conf | head -n3 | tr '\n' ',' | sed 's/\(.*\)/\1\n/g'
|
hout HOST_DNS sed -n 's/^nameserver \([0-9]*\.\)\(.*\)/\1\2/p' /etc/resolv.conf | head -n3 | tr '\n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
check [ "__DNS__" = "__HOST_DNS__" ]
|
check [ "__DNS__" = "__HOST_DNS__" ]
|
||||||
|
|
||||||
# FQDNs should be terminated by dots, but the guest DHCP client might omit them:
|
# FQDNs should be terminated by dots, but the guest DHCP client might omit them:
|
||||||
# strip them first
|
# strip them first
|
||||||
test DHCP: search list
|
test DHCP: search list
|
||||||
gout SEARCH sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/\(.*\)/\1\n/g'
|
gout SEARCH sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
hout HOST_SEARCH sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/\(.*\)/\1\n/g'
|
hout HOST_SEARCH sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
check [ "__SEARCH__" = "__HOST_SEARCH__" ]
|
check [ "__SEARCH__" = "__HOST_SEARCH__" ]
|
||||||
|
|
||||||
test DHCPv6: address
|
test DHCPv6: address
|
||||||
|
@ -59,11 +59,11 @@ check [ "__GW6__" = "__HOST_GW6__" ]
|
||||||
|
|
||||||
# Strip interface specifier: interface names might differ between host and guest
|
# Strip interface specifier: interface names might differ between host and guest
|
||||||
test DHCPv6: DNS
|
test DHCPv6: DNS
|
||||||
gout DNS6 sed -n 's/^nameserver \([^:]*:\)\([^%]*\).*/\1\2/p' /etc/resolv.conf | tr '\n' ',' | sed 's/\(.*\)/\1\n/g'
|
gout DNS6 sed -n 's/^nameserver \([^:]*:\)\([^%]*\).*/\1\2/p' /etc/resolv.conf | tr '\n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
hout HOST_DNS6 sed -n 's/^nameserver \([^:]*:\)\([^%]*\).*/\1\2/p' /etc/resolv.conf | tr '\n' ',' | sed 's/\(.*\)/\1\n/g'
|
hout HOST_DNS6 sed -n 's/^nameserver \([^:]*:\)\([^%]*\).*/\1\2/p' /etc/resolv.conf | tr '\n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
check [ "__DNS6__" = "__HOST_DNS6__" ]
|
check [ "__DNS6__" = "__HOST_DNS6__" ]
|
||||||
|
|
||||||
test DHCPv6: search list
|
test DHCPv6: search list
|
||||||
gout SEARCH6 sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/\(.*\)/\1\n/g'
|
gout SEARCH6 sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
hout HOST_SEARCH6 sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/\(.*\)/\1\n/g'
|
hout HOST_SEARCH6 sed 's/\. / /g' /etc/resolv.conf | sed 's/\.$//g' | sed -n 's/^search \(.*\)/\1/p' | tr ' \n' ',' | sed 's/,$//;s/$/\n/'
|
||||||
check [ "__SEARCH6__" = "__HOST_SEARCH6__" ]
|
check [ "__SEARCH6__" = "__HOST_SEARCH6__" ]
|
||||||
|
|
Loading…
Reference in a new issue