<feed xmlns='http://www.w3.org/2005/Atom'>
<title>passt/test, branch 2022_08_04.b516d15</title>
<subtitle>Plug A Simple Socket Transport</subtitle>
<link rel='alternate' type='text/html' href='https://passt.top/passt/'/>
<entry>
<title>contrib, test: Rebase Podman patch, enable three-way merge on git am in demo</title>
<updated>2022-08-01T10:45:05+00:00</updated>
<author>
<name>Stefano Brivio</name>
<email>sbrivio@redhat.com</email>
</author>
<published>2022-08-01T10:45:05+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=b516d151b186835c554e7521b685b41971aabb0d'/>
<id>b516d151b186835c554e7521b685b41971aabb0d</id>
<content type='text'>
Given that a three-way git merge was enough to cope with context
changes in man pages, it's probably a good idea to enable that for
'git am' in the demo too.

Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Given that a three-way git merge was enough to cope with context
changes in man pages, it's probably a good idea to enable that for
'git am' in the demo too.

Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Separately locate external interfaces for IPv4 and IPv6</title>
<updated>2022-07-30T19:57:50+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-22T05:31:13+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=06abfcf6d95762976d37aa5721c16802c649efd4'/>
<id>06abfcf6d95762976d37aa5721c16802c649efd4</id>
<content type='text'>
Now that the back end allows passt/pasta to use different external
interfaces for IPv4 and IPv6, use that to do the right thing in the case
that the host has IPv4 and IPv6 connectivity via different interfaces.
If the user hasn't explicitly chosen an interface, separately search for
a suitable external interface for each protocol.

As a bonus, this substantially simplifies the external interface probe.  It
also eliminates a subtle confusing case where in some circumstances we
would pick the first interface in interface index order, and sometimes in
order of routes returned from netlink.  On some network configurations that
could cause tests to fail, because the logic in the tests was subtly
different (it always used route order).

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that the back end allows passt/pasta to use different external
interfaces for IPv4 and IPv6, use that to do the right thing in the case
that the host has IPv4 and IPv6 connectivity via different interfaces.
If the user hasn't explicitly chosen an interface, separately search for
a suitable external interface for each protocol.

As a bonus, this substantially simplifies the external interface probe.  It
also eliminates a subtle confusing case where in some circumstances we
would pick the first interface in interface index order, and sometimes in
order of routes returned from netlink.  On some network configurations that
could cause tests to fail, because the logic in the tests was subtly
different (it always used route order).

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Correct determination of host interface name in tests</title>
<updated>2022-07-30T19:57:14+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-15T05:21:40+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=3eaf9f532021326a47f70046b05854d8b1819825'/>
<id>3eaf9f532021326a47f70046b05854d8b1819825</id>
<content type='text'>
By default, passt itself attaches to the first host interface with a
default route.  However, when determining the host interface name the tests
implicitly select the *last* host interface: they use a jq expression which
will list all interfaces with default routes, but the way output detection
works in the scripts, it will only pick up the last line.

If there are multiple interfaces with default routes on the host, and they
each have a different address, this can cause spurious test failures.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By default, passt itself attaches to the first host interface with a
default route.  However, when determining the host interface name the tests
implicitly select the *last* host interface: they use a jq expression which
will list all interfaces with default routes, but the way output detection
works in the scripts, it will only pick up the last line.

If there are multiple interfaces with default routes on the host, and they
each have a different address, this can cause spurious test failures.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>test: Expand root partition of Debian sid amd64 and aarch64 images</title>
<updated>2022-07-29T21:27:55+00:00</updated>
<author>
<name>Stefano Brivio</name>
<email>sbrivio@redhat.com</email>
</author>
<published>2022-07-29T21:27:55+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=0aae39d73a09eb32adc621acbbc98ac6f86b4ad1'/>
<id>0aae39d73a09eb32adc621acbbc98ac6f86b4ad1</id>
<content type='text'>
A couple of days ago, we started running out of space there as we're
about to install gcc -- about 50 MiB are missing.

Given that virt-resize (which could be conveniently invoked by the
Makefile for tests) reorders partitions if we expand the first one,
resize the image using qemu-img from the test script itself, and then
take care of expanding root partition and filesystem online later.

This is probably a temporary hack, so I'm not looking for a more
generic or elegant solution at the moment.

Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A couple of days ago, we started running out of space there as we're
about to install gcc -- about 50 MiB are missing.

Given that virt-resize (which could be conveniently invoked by the
Makefile for tests) reorders partitions if we expand the first one,
resize the image using qemu-img from the test script itself, and then
take care of expanding root partition and filesystem online later.

This is probably a temporary hack, so I'm not looking for a more
generic or elegant solution at the moment.

Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>demo: Use git protocol downloads</title>
<updated>2022-07-22T17:42:18+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-15T05:21:41+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=e07670c15b0e15d9fa8d1c23adf60a6ef66ea765'/>
<id>e07670c15b0e15d9fa8d1c23adf60a6ef66ea765</id>
<content type='text'>
For some reason using https to clone from the passt git repo is very slow,
at least from network-distant places.  Use git protocol in the demo instead
to avoid a tedious wait to get the source.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For some reason using https to clone from the passt git repo is very slow,
at least from network-distant places.  Use git protocol in the demo instead
to avoid a tedious wait to get the source.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: No need to retrieve host ifname in ndp/pasta</title>
<updated>2022-07-22T17:42:18+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-15T05:21:39+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=ee5685c772974ebf027e08cfc83f60c3018618af'/>
<id>ee5685c772974ebf027e08cfc83f60c3018618af</id>
<content type='text'>
With pasta, the namespace interface name is generally the same as the host
interface name.  We already rely on this in the dhcp/pasta tests, but for
no clear reason ndp/pasta separately determines the host interface name.
Remove this unnecessary step.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With pasta, the namespace interface name is generally the same as the host
interface name.  We already rely on this in the dhcp/pasta tests, but for
no clear reason ndp/pasta separately determines the host interface name.
Remove this unnecessary step.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Clean up better after iperf tests</title>
<updated>2022-07-22T17:42:18+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-15T05:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=4094cec7f7bdf068c04c6d33e87a1174e8fdbf4e'/>
<id>4094cec7f7bdf068c04c6d33e87a1174e8fdbf4e</id>
<content type='text'>
The iperf based test commands create a bunch of .bw and .pid files for
each iperf client and server.  The server side .bw files are cleaned
up afterwards, but the pid files are not, and none of the client side
files are cleaned up.  The latter doesn't really matter when the
client is run on ephemeral guests, but sometimes we run it in a
namespace that shares the filesystem with the host.

Clean up all of these files after the tests.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The iperf based test commands create a bunch of .bw and .pid files for
each iperf client and server.  The server side .bw files are cleaned
up afterwards, but the pid files are not, and none of the client side
files are cleaned up.  The latter doesn't really matter when the
client is run on ephemeral guests, but sometimes we run it in a
namespace that shares the filesystem with the host.

Clean up all of these files after the tests.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Use dhclient --no-pid for namespaces in two_guests tests</title>
<updated>2022-07-22T17:42:18+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-15T05:21:37+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=2d289ec7112afadb703eca90760463c3818ed4b5'/>
<id>2d289ec7112afadb703eca90760463c3818ed4b5</id>
<content type='text'>
Before starting the guests, these tests configure addresses in a pasta
namespace using dhclient.  However, because it's a user namespace, it's
not running as "real" root and can't write to the dhclient pid file.
This doesn't stop it working, but causes an ugly error message which we
can avoid by using the --no-pid option.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before starting the guests, these tests configure addresses in a pasta
namespace using dhclient.  However, because it's a user namespace, it's
not running as "real" root and can't write to the dhclient pid file.
This doesn't stop it working, but causes an ugly error message which we
can avoid by using the --no-pid option.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Remove unnecessary truncation of temporary files in udp tests</title>
<updated>2022-07-22T17:42:18+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-15T05:21:36+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=ada08d4735e78df2148097eff8460bb60623ce5f'/>
<id>ada08d4735e78df2148097eff8460bb60623ce5f</id>
<content type='text'>
All the UDP tests use :&gt; to truncate some temporary data files.  This
appears to be so that they're empty before writing data to them with tee.
However tee, by default, truncates its output file anyway (you need tee -a
to append).  So drop the unnecessary truncations.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All the UDP tests use :&gt; to truncate some temporary data files.  This
appears to be so that they're empty before writing data to them with tee.
However tee, by default, truncates its output file anyway (you need tee -a
to append).  So drop the unnecessary truncations.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Remove unnecessary ^D in passt_in_ns teardown</title>
<updated>2022-07-22T17:42:18+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2022-07-15T05:21:35+00:00</published>
<link rel='alternate' type='text/html' href='https://passt.top/passt/commit/?id=d078a1113febf93ec9124521c0d4d7ee8409b178'/>
<id>d078a1113febf93ec9124521c0d4d7ee8409b178</id>
<content type='text'>
teardown_passt_in_ns() sends a ^D to the NS pane, which appears to be
intended to terminate the nsenter running there, leaving the namespace.
However, we've also sent a ^D to the PASST pane which will exit the pasta
instance which created the namespace.  With the namespace destroyed the
nsenter in the NS pane will be killed, so it does not need to be exited
explicitly.

In fact sending the extra ^D can be harmful, since it will exit the shell
in which the nsenter was run, causing the whole pane to be closed.  That
can then mean that the "pane_wait NS" hangs indefinitely.  I believe this
will sometimes work, because there's a race between the various options
here, but it should be more reliable without the extra ^D.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
teardown_passt_in_ns() sends a ^D to the NS pane, which appears to be
intended to terminate the nsenter running there, leaving the namespace.
However, we've also sent a ^D to the PASST pane which will exit the pasta
instance which created the namespace.  With the namespace destroyed the
nsenter in the NS pane will be killed, so it does not need to be exited
explicitly.

In fact sending the extra ^D can be harmful, since it will exit the shell
in which the nsenter was run, causing the whole pane to be closed.  That
can then mean that the "pane_wait NS" hangs indefinitely.  I believe this
will sometimes work, because there's a race between the various options
here, but it should be more reliable without the extra ^D.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</pre>
</div>
</content>
</entry>
</feed>
