|
1 | 1 | # Copyright 2016 Acquia, Inc. |
2 | | -# Copyright 2016 t.e.morgan. |
| 2 | +# Copyright 2016-2023 t.e.morgan. |
3 | 3 | # |
4 | 4 | # Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | # you may not use this file except in compliance with the License. |
|
20 | 20 | class SSLTransportTest < Test::Unit::TestCase |
21 | 21 | include SSLTestHelper |
22 | 22 |
|
23 | | - def test_ok_connection |
24 | | - server = ssl_server |
25 | | - st = Thread.new { |
26 | | - client = server.accept |
27 | | - assert_equal "TESTTEST2\n", client.gets |
28 | | - client.close |
29 | | - } |
30 | | - SyslogTls::SSLTransport.stub_any_instance(:get_ssl_connection, ssl_client) do |
31 | | - t = SyslogTls::SSLTransport.new("localhost", server.addr[1], max_retries: 3) |
32 | | - t.write("TEST") |
33 | | - t.write("TEST2\n") |
| 23 | + # srvr-min srvr-max clnt-min should-raise? |
| 24 | + [ [:TLS1_2, :TLS1_2, :TLS1_2], |
| 25 | + [:TLS1_2, :TLS1_3, :TLS1_2], |
| 26 | + [:TLS1_3, :TLS1_3, :TLS1_2], |
| 27 | + [:TLS1_2, :TLS1_2, :TLS1_3, true], |
| 28 | + [:TLS1_2, :TLS1_3, :TLS1_3], |
| 29 | + [:TLS1_3, :TLS1_3, :TLS1_3], |
| 30 | + ].each do |(server_min, server_max, client_min, should_raise)| |
| 31 | + define_method "test_#{server_min}-#{server_max}_server_#{client_min}_client" do |
| 32 | + Thread.report_on_exception = false |
| 33 | + blk = lambda do |
| 34 | + server = ssl_server(min_version: server_min, max_version: server_max) |
| 35 | + st = Thread.new { |
| 36 | + client = server.accept |
| 37 | + assert_equal "TESTTEST2\n", client.gets |
| 38 | + client.close |
| 39 | + } |
| 40 | + t = SyslogTls::SSLTransport.new("localhost", server.addr[1], ca_cert: false, ssl_version: client_min) |
| 41 | + t.write("TEST") |
| 42 | + t.write("TEST2\n") |
| 43 | + st.join |
| 44 | + end |
| 45 | + if should_raise |
| 46 | + assert_raises OpenSSL::SSL::SSLError, &blk |
| 47 | + else |
| 48 | + blk.call |
| 49 | + end |
| 50 | + ensure |
| 51 | + Thread.report_on_exception = true |
34 | 52 | end |
35 | | - st.join |
36 | 53 | end |
37 | 54 |
|
38 | 55 | def test_retry |
|
0 commit comments