Improve runtime, reduce log output, and stabilize SSL failure assertions for SSLCertificateTest#1215
Improve runtime, reduce log output, and stabilize SSL failure assertions for SSLCertificateTest#1215
SSLCertificateTest#1215Conversation
…rallelize no-exception checks Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/f464dac4-ab03-4de1-a750-fbcb1d6bd19c Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
…rror messages Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/f464dac4-ab03-4de1-a750-fbcb1d6bd19c Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
…Caught handler Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/064bbb3a-a6bf-4600-bf29-db71d02c5845 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
SSLCertificateTest
SSLCertificateTestSSLCertificateTest
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/d64730b5-aa97-44bd-9061-f58167740bad Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/84ec41ca-7a14-49eb-ae78-d83bfe444cf6 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
Refactor createDefaults method to initialize defaults directly.
…lts() overload Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/51422522-fc50-446b-a611-8461f3651a3e Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
SSLCertificateTestSSLCertificateTest
Done in dd263e0:
|
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/259e69cc-5c31-44d1-b506-ba6599711d6a Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/31a93f02-e16d-44c6-a083-87625a05f967 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
|
@copilot Treat initiator failure as an outcome set, not a single event: SSL exception observed or connection closed/reset before logon, so please check if initiator could send a Logon. If no, fail the test. This makes the test stable across JSSE/provider/timing differences while still verifying the intended behavior. Only change for shouldFailWhenUsingEmptyServerKeyStore() for now Please update PR description to document this. |
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/7e6f22d7-9852-4fa4-97a1-a398d3d572a3 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/7e6f22d7-9852-4fa4-97a1-a398d3d572a3 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/7e6f22d7-9852-4fa4-97a1-a398d3d572a3 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/7e6f22d7-9852-4fa4-97a1-a398d3d572a3 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com>
... Implemented for Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
SSLCertificateTestSSLCertificateTest
SSLCertificateTestwas consuming ~20 of the CI job's ~45 minutes, logging ~45k of ~120k log lines. This PR now includes six targeted fixes:Timeout and heartbeat tuning
TIMEOUT_SECONDS: 15s → 7sHeartBtInt: 30s → 5s across all session settings builders — a heartbeat exchange within the window is sufficient to confirm a healthy sessionReconnect interval cleanup
Initiator.SETTING_RECONNECT_INTERVALoverrides in this test class so the default 30 second reconnect interval is usedReduce log noise for expected failures
volatile boolean exceptionExpectedflag onTestConnector, startsfalseexpectException()method toTestConnector— called on each connector immediately after construction and beforestart()in allshouldFailWhen*methodsprepareConnectorchecks the flag inexceptionCaught: logs message-only whentrue, full stack trace whenfalseinitiator/acceptorandconnectPort/acceptPort) so remaining SSL noise can be traced back to the exact connectorThis cuts the bulk of log output generated by
shouldFailWhen*tests while making the remaining output easier to attribute.Parallel no-exception checks
Added
assertNoSslExceptionsThrown(TestConnector... connectors)— runs each connector's latch-wait concurrently instead of sequentially. For a test with N connectors this replaces N×7s with a single 7s wait.Threads are named (
ssl-check<Type><index>) for debuggability. On failure, a composite error message summarises all failures upfront with individual errors as suppressed exceptions. Applied across 15 test methods.Test name logging
Added a class-level
LOGGERand a@Rule TestNamefield toSSLCertificateTest. The existing@Before setUp()now logs>>> Running test: <methodName>before every test, making it easy to correlate log output with the active test method in CI logs.Targeted flakiness stabilization for
shouldFailWhenUsingEmptyServerKeyStore()TestInitiatorviatoAdmin(...)(MsgType.LOGON) to support this check.This stabilizes the test across JSSE/provider/timing differences while preserving intended behavior.