1/* Copyright (c) 2014, Google Inc. 2 * 3 * Permission to use, copy, modify, and/or distribute this software for any 4 * purpose with or without fee is hereby granted, provided that the above 5 * copyright notice and this permission notice appear in all copies. 6 * 7 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ 14 15#ifndef HEADER_TEST_CONFIG 16#define HEADER_TEST_CONFIG 17 18#include <string> 19 20 21struct TestConfig { 22 TestConfig(); 23 24 bool is_server; 25 bool is_dtls; 26 bool resume; 27 bool fallback_scsv; 28 std::string key_file; 29 std::string cert_file; 30 std::string expected_server_name; 31 std::string expected_certificate_types; 32 bool require_any_client_certificate; 33 std::string advertise_npn; 34 std::string expected_next_proto; 35 bool false_start; 36 std::string select_next_proto; 37 bool async; 38 bool write_different_record_sizes; 39 bool cbc_record_splitting; 40 bool partial_write; 41 bool no_tls12; 42 bool no_tls11; 43 bool no_tls1; 44 bool no_ssl3; 45 bool cookie_exchange; 46 std::string expected_channel_id; 47 std::string send_channel_id; 48 bool shim_writes_first; 49 bool tls_d5_bug; 50 std::string host_name; 51 std::string advertise_alpn; 52 std::string expected_alpn; 53 std::string expected_advertised_alpn; 54 std::string select_alpn; 55 bool expect_session_miss; 56}; 57 58bool ParseConfig(int argc, char **argv, TestConfig *out_config); 59 60 61#endif // HEADER_TEST_CONFIG 62