Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

interop: don't run interop measurements if the Transfer testcase failed #1025

Merged
merged 4 commits into from
Dec 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 0 additions & 60 deletions .github/interop/required.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,4 @@
{
"http3": {
"aioquic": [],
"kwik": [],
"lsquic": [],
"msquic": [],
"mvfst": [],
"neqo": [],
"ngtcp2": [],
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"ipv6": {
"aioquic": ["client"],
"kwik": [],
Expand All @@ -24,7 +10,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": ["client"]
},
"handshake": {
Expand All @@ -38,7 +23,6 @@
"picoquic": [],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": []
},
"transfer": {
Expand All @@ -52,7 +36,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": []
},
"longrtt": {
Expand All @@ -66,7 +49,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": []
},
"chacha20": {
Expand All @@ -80,7 +62,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": [],
"quicly": [],
"xquic": []
},
"multiplexing": {
Expand All @@ -94,7 +75,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": ["client"]
},
"retry": {
Expand All @@ -108,35 +88,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": []
},
"resumption": {
"aioquic": [],
"kwik": [],
"lsquic": [],
"msquic": [],
"mvfst": [],
"neqo": [],
"ngtcp2": [],
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"zerortt": {
"aioquic": [],
"kwik": [],
"lsquic": [],
"msquic": [],
"mvfst": [],
"neqo": [],
"ngtcp2": [],
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"blackhole": {
Expand All @@ -150,7 +101,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": ["client"]
},
"keyupdate": {
Expand All @@ -164,7 +114,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": [],
"quicly": [],
"xquic": []
},
"ecn": {
Expand All @@ -178,7 +127,6 @@
"picoquic": ["client"],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"amplificationlimit": {
Expand All @@ -192,7 +140,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": [],
"quicly": [],
"xquic": []
},
"handshakeloss": {
Expand All @@ -206,7 +153,6 @@
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"transferloss": {
Expand All @@ -220,7 +166,6 @@
"picoquic": [],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": ["client"]
},
"handshakecorruption": {
Expand All @@ -234,7 +179,6 @@
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"transfercorruption": {
Expand All @@ -248,7 +192,6 @@
"picoquic": ["client"],
"quic-go": ["client"],
"quiche": ["client"],
"quicly": [],
"xquic": ["client"]
},
"rebind-addr": {
Expand All @@ -262,7 +205,6 @@
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"rebind-port": {
Expand All @@ -276,7 +218,6 @@
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
},
"connectionmigration": {
Expand All @@ -290,7 +231,6 @@
"picoquic": [],
"quic-go": [],
"quiche": [],
"quicly": [],
"xquic": []
}
}
64 changes: 59 additions & 5 deletions .github/interop/runner.patch
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ index 7541cae..ba1b4da 100644
- VERSION=$VERSION
depends_on:
diff --git a/implementations.json b/implementations.json
index 1feee36..3b120ca 100644
index 3df16da..7ed4f6e 100644
--- a/implementations.json
+++ b/implementations.json
@@ -1,4 +1,9 @@
@@ -1,24 +1,19 @@
{
+ "s2n-quic": {
+ "image": "awslabs/s2n-quic-qns:latest",
Expand All @@ -51,8 +51,28 @@ index 1feee36..3b120ca 100644
"quic-go": {
"image": "martenseemann/quic-go-interop:latest",
"url": "https://github.com/lucas-clemente/quic-go",
"role": "both"
},
- "quicly": {
- "image": "h2oserver/quicly-interop-runner:latest",
- "url": "https://github.com/h2o/quicly",
- "role": "both"
- },
"ngtcp2": {
"image": "ghcr.io/ngtcp2/ngtcp2-interop:latest",
"url": "https://github.com/ngtcp2/ngtcp2",
"role": "both"
},
- "quant": {
- "image": "ntap/quant:interop",
- "url": "https://github.com/NTAP/quant",
- "role": "both"
- },
"mvfst": {
"image": "lnicco/mvfst-qns:latest",
"url": "https://github.com/facebookincubator/mvfst",
diff --git a/interop.py b/interop.py
index 4dea51d..4c0d784 100644
index 4dea51d..d84bdac 100644
--- a/interop.py
+++ b/interop.py
@@ -124,6 +124,7 @@ class InteropRunner:
Expand All @@ -79,7 +99,7 @@ index 4dea51d..4c0d784 100644
"WWW=" + testcase.www_dir() + " "
"DOWNLOADS=" + testcase.download_dir() + " "
"SERVER_LOGS=" + server_log_dir.name + " "
@@ -474,12 +477,6 @@ class InteropRunner:
@@ -474,23 +477,26 @@ class InteropRunner:
client,
self._implementations[client]["image"],
)
Expand All @@ -90,8 +110,29 @@ index 4dea51d..4c0d784 100644
- logging.info("Not compliant, skipping")
- continue

+ transfer_succeeded = True
# run the test cases
for testcase in self._tests:
status = self._run_testcase(server, client, testcase)
self.test_results[server][client][testcase] = status
if status == TestResult.FAILED:
nr_failed += 1
+ if testcase == testcases.TestCaseTransfer:
+ transfer_succeeded = False

# run the measurements
for measurement in self._measurements:
- res = self._run_measurement(server, client, measurement)
+ if transfer_succeeded:
+ res = self._run_measurement(server, client, measurement)
+ else:
+ logging.debug("Skipping measurements as Transfer testcase was unsuccessful")
+ res = MeasurementResult()
+ res.result = TestResult.UNSUPPORTED
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this be a failure instead of unsupported? Isn't the idea that if transfer failed these would also fail?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went with unsupported since if its Failure it would show up as a link to the logs in the report, but there would be no logs if it isn't run.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... I guess it's not a big deal either way. My concern is we just end up having a less accurate sense of what's passing.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be better to add Goodput and Crosstraffic to the required check then

+ res.details = "Skipping measurements as Transfer testcase was unsuccessful"
self.measurement_results[server][client][measurement] = res

self._print_results()
diff --git a/pull.py b/pull.py
index c2d6d1f..844bbd5 100644
--- a/pull.py
Expand All @@ -106,7 +147,7 @@ index c2d6d1f..844bbd5 100644
print("\nPulling the iperf endpoint...")
os.system("docker pull martenseemann/quic-interop-iperf-endpoint")
diff --git a/testcases.py b/testcases.py
index 1d81d25..0f8e3c5 100644
index 1d81d25..7260408 100644
--- a/testcases.py
+++ b/testcases.py
@@ -90,6 +90,10 @@ class TestCase(abc.ABC):
Expand Down Expand Up @@ -194,6 +235,19 @@ index 1d81d25..0f8e3c5 100644
@staticmethod
def abbreviation():
return "G"
@@ -1528,9 +1508,9 @@ TESTCASES = [
TestCaseChaCha20,
TestCaseMultiplexing,
TestCaseRetry,
- TestCaseResumption,
- TestCaseZeroRTT,
- TestCaseHTTP3,
+ # TestCaseResumption,
+ # TestCaseZeroRTT,
+ # TestCaseHTTP3,
TestCaseBlackhole,
TestCaseKeyUpdate,
TestCaseECN,
@@ -1540,11 +1520,9 @@ TESTCASES = [
TestCaseHandshakeCorruption,
TestCaseTransferCorruption,
Expand Down