git: 076b718d9e25 - main - ping tests: Add tests for IP header options
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 19 Mar 2023 16:33:28 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=076b718d9e259a214abeb4b4f7289680b1a62ddf
commit 076b718d9e259a214abeb4b4f7289680b1a62ddf
Author: Jose Luis Duran <jlduran@gmail.com>
AuthorDate: 2023-02-09 16:41:02 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-03-19 16:23:44 +0000
ping tests: Add tests for IP header options
The function pr_pack() prints out a packet, if the IP packet contains
options, these are printed as well.
Test the functionality fixed in
70960bb86a3ba5b6f5c4652e613e6313a7ed1ac1.
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D38470
---
sbin/ping/tests/test_ping.py | 243 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 242 insertions(+), 1 deletion(-)
diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py
index 639973d093d4..7040faa71a5d 100644
--- a/sbin/ping/tests/test_ping.py
+++ b/sbin/ping/tests/test_ping.py
@@ -780,6 +780,248 @@ round-trip min/avg/max/stddev = /// ms
},
id="_0_0",
),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "EOL",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+wrong total length 88 instead of 84
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_EOL",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "LSRR",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+LSRR: 192.0.2.10
+ 192.0.2.20
+ 192.0.2.30
+ 192.0.2.40
+ 192.0.2.50
+ 192.0.2.60
+ 192.0.2.70
+ 192.0.2.80
+ 192.0.2.90
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_LSRR",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "LSRR-trunc",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+LSRR: (truncated route)
+
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_LSRR_trunc",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "SSRR",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+SSRR: 192.0.2.10
+ 192.0.2.20
+ 192.0.2.30
+ 192.0.2.40
+ 192.0.2.50
+ 192.0.2.60
+ 192.0.2.70
+ 192.0.2.80
+ 192.0.2.90
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_SSRR",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "SSRR-trunc",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+SSRR: (truncated route)
+
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_SSRR_trunc",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "RR",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+RR: 192.0.2.10
+ 192.0.2.20
+ 192.0.2.30
+ 192.0.2.40
+ 192.0.2.50
+ 192.0.2.60
+ 192.0.2.70
+ 192.0.2.80
+ 192.0.2.90
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_RR",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "RR-same",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms (same route)
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_RR_same",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "RR-trunc",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+RR: (truncated route)
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_RR_trunc",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 0,
+ "icmp_code": 0,
+ "opts": "NOP",
+ },
+ {
+ "returncode": 0,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+64 bytes from: icmp_seq=0 ttl= time= ms
+wrong total length 88 instead of 84
+NOP
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 1 packets received, 0.0% packet loss
+round-trip min/avg/max/stddev = /// ms
+""",
+ "stderr": "",
+ "redacted": True,
+ },
+ id="_0_0_opts_NOP",
+ ),
pytest.param(
{
"src": "192.0.2.1",
@@ -867,7 +1109,6 @@ round-trip min/avg/max/stddev = /// ms
"stderr": "",
"redacted": True,
},
- marks=pytest.mark.skip("XXX currently failing"),
id="_0_0_opts_unk",
),
pytest.param(