Message ID | db256340b909f8b6f8bb7f9e42dbe71c228993b6.1716280848.git.tanggeliang@kylinos.cn |
---|---|
State | New |
Headers | show |
Series | [net] selftests: hsr: Fix "File exists" errors for hsr_ping | expand |
On Tue, May 21, 2024 at 04:49:44PM +0800, Geliang Tang wrote: > From: Geliang Tang <tanggeliang@kylinos.cn> > > The hsr_ping test reports the following errors: > > INFO: preparing interfaces for HSRv0. > INFO: Initial validation ping. > INFO: Longer ping test. > INFO: Cutting one link. > INFO: Delay the link and drop a few packages. > INFO: All good. > INFO: preparing interfaces for HSRv1. > RTNETLINK answers: File exists > RTNETLINK answers: File exists > RTNETLINK answers: File exists > RTNETLINK answers: File exists > RTNETLINK answers: File exists > RTNETLINK answers: File exists > Error: ipv4: Address already assigned. > Error: ipv6: address already assigned. > Error: ipv4: Address already assigned. > Error: ipv6: address already assigned. > Error: ipv4: Address already assigned. > Error: ipv6: address already assigned. > INFO: Initial validation ping. > > That is because the cleanup code for the 2nd round test before > "setup_hsr_interfaces 1" is removed incorrectly in commit 680fda4f6714 > ("test: hsr: Remove script code already implemented in lib.sh"). > > This patch fixes it by adding a new helper delete_hsr_interfaces() to > delete all interfaces before "setup_hsr_interfaces 1". > > Fixes: 680fda4f6714 ("test: hsr: Remove script code already implemented in lib.sh") > Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> > --- > tools/testing/selftests/net/hsr/hsr_ping.sh | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/tools/testing/selftests/net/hsr/hsr_ping.sh b/tools/testing/selftests/net/hsr/hsr_ping.sh > index 790294c8af83..0be1d5f78dab 100755 > --- a/tools/testing/selftests/net/hsr/hsr_ping.sh > +++ b/tools/testing/selftests/net/hsr/hsr_ping.sh > @@ -166,6 +166,14 @@ setup_hsr_interfaces() > ip -net "$ns3" link set hsr3 up > } > > +delete_hsr_interfaces() > +{ > + echo "INFO: delete interfaces." > + ip -net "$ns1" link del ns1eth1 > + ip -net "$ns1" link del ns1eth2 > + ip -net "$ns3" link del ns3eth2 > +} > + > check_prerequisites > setup_ns ns1 ns2 ns3 > > @@ -174,6 +182,8 @@ trap cleanup_all_ns EXIT > setup_hsr_interfaces 0 > do_complete_ping_test > > +delete_hsr_interfaces > + nit: you can also just re-setup the namespaces, which will delete previous ns and create new one. e.g. setup_ns ns1 ns2 ns3 > setup_hsr_interfaces 1 > do_complete_ping_test Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
On Wed, 2024-05-22 at 11:05 +0800, Hangbin Liu wrote: > On Tue, May 21, 2024 at 04:49:44PM +0800, Geliang Tang wrote: > > From: Geliang Tang <tanggeliang@kylinos.cn> > > > > The hsr_ping test reports the following errors: > > > > INFO: preparing interfaces for HSRv0. > > INFO: Initial validation ping. > > INFO: Longer ping test. > > INFO: Cutting one link. > > INFO: Delay the link and drop a few packages. > > INFO: All good. > > INFO: preparing interfaces for HSRv1. > > RTNETLINK answers: File exists > > RTNETLINK answers: File exists > > RTNETLINK answers: File exists > > RTNETLINK answers: File exists > > RTNETLINK answers: File exists > > RTNETLINK answers: File exists > > Error: ipv4: Address already assigned. > > Error: ipv6: address already assigned. > > Error: ipv4: Address already assigned. > > Error: ipv6: address already assigned. > > Error: ipv4: Address already assigned. > > Error: ipv6: address already assigned. > > INFO: Initial validation ping. > > > > That is because the cleanup code for the 2nd round test before > > "setup_hsr_interfaces 1" is removed incorrectly in commit > > 680fda4f6714 > > ("test: hsr: Remove script code already implemented in lib.sh"). > > > > This patch fixes it by adding a new helper delete_hsr_interfaces() > > to > > delete all interfaces before "setup_hsr_interfaces 1". > > > > Fixes: 680fda4f6714 ("test: hsr: Remove script code already > > implemented in lib.sh") > > Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> > > --- > > tools/testing/selftests/net/hsr/hsr_ping.sh | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/tools/testing/selftests/net/hsr/hsr_ping.sh > > b/tools/testing/selftests/net/hsr/hsr_ping.sh > > index 790294c8af83..0be1d5f78dab 100755 > > --- a/tools/testing/selftests/net/hsr/hsr_ping.sh > > +++ b/tools/testing/selftests/net/hsr/hsr_ping.sh > > @@ -166,6 +166,14 @@ setup_hsr_interfaces() > > ip -net "$ns3" link set hsr3 up > > } > > > > +delete_hsr_interfaces() > > +{ > > + echo "INFO: delete interfaces." > > + ip -net "$ns1" link del ns1eth1 > > + ip -net "$ns1" link del ns1eth2 > > + ip -net "$ns3" link del ns3eth2 > > +} > > + > > check_prerequisites > > setup_ns ns1 ns2 ns3 > > > > @@ -174,6 +182,8 @@ trap cleanup_all_ns EXIT > > setup_hsr_interfaces 0 > > do_complete_ping_test > > > > +delete_hsr_interfaces > > + > > nit: you can also just re-setup the namespaces, which will delete > previous ns > and create new one. e.g. > > setup_ns ns1 ns2 ns3 Thanks Hangbin, "re-setup" is much better. > > > setup_hsr_interfaces 1 > > do_complete_ping_test > > > Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> I'll send a v2, with your Reviewed-by tag. -Geliang
diff --git a/tools/testing/selftests/net/hsr/hsr_ping.sh b/tools/testing/selftests/net/hsr/hsr_ping.sh index 790294c8af83..0be1d5f78dab 100755 --- a/tools/testing/selftests/net/hsr/hsr_ping.sh +++ b/tools/testing/selftests/net/hsr/hsr_ping.sh @@ -166,6 +166,14 @@ setup_hsr_interfaces() ip -net "$ns3" link set hsr3 up } +delete_hsr_interfaces() +{ + echo "INFO: delete interfaces." + ip -net "$ns1" link del ns1eth1 + ip -net "$ns1" link del ns1eth2 + ip -net "$ns3" link del ns3eth2 +} + check_prerequisites setup_ns ns1 ns2 ns3 @@ -174,6 +182,8 @@ trap cleanup_all_ns EXIT setup_hsr_interfaces 0 do_complete_ping_test +delete_hsr_interfaces + setup_hsr_interfaces 1 do_complete_ping_test