+ ssl_session_ticket_name(result->session_ticket));
+ return 0;
+ }
+ return 1;
+}
+
+#ifndef OPENSSL_NO_NEXTPROTONEG
+static int check_npn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ int ret = 1;
+ ret &= strings_equal("NPN Negotiated (client vs server)",
+ result->client_npn_negotiated,
+ result->server_npn_negotiated);
+ ret &= strings_equal("ExpectedNPNProtocol",
+ test_ctx->expected_npn_protocol,
+ result->client_npn_negotiated);
+ return ret;
+}
+#endif
+
+static int check_alpn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ int ret = 1;
+ ret &= strings_equal("ALPN Negotiated (client vs server)",
+ result->client_alpn_negotiated,
+ result->server_alpn_negotiated);
+ ret &= strings_equal("ExpectedALPNProtocol",
+ test_ctx->expected_alpn_protocol,
+ result->client_alpn_negotiated);
+ return ret;
+}
+
+static int check_resumption(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (result->client_resumed != result->server_resumed) {
+ fprintf(stderr, "Resumption mismatch (client vs server): %d vs %d\n",
+ result->client_resumed, result->server_resumed);
+ return 0;
+ }
+ if (result->client_resumed != test_ctx->resumption_expected) {
+ fprintf(stderr, "ResumptionExpected mismatch: %d vs %d\n",
+ test_ctx->resumption_expected, result->client_resumed);