1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- %% MySQL/OTP – MySQL client library for Erlang/OTP
- %% Copyright (C) 2017 Piotr Nosek, Viktor Söderqvist
- %%
- %% This file is part of MySQL/OTP.
- %%
- %% MySQL/OTP is free software: you can redistribute it and/or modify it under
- %% the terms of the GNU Lesser General Public License as published by the Free
- %% Software Foundation, either version 3 of the License, or (at your option)
- %% any later version.
- %%
- %% This program is distributed in the hope that it will be useful, but WITHOUT
- %% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- %% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- %% more details.
- %%
- %% You should have received a copy of the GNU Lesser General Public License
- %% along with this program. If not, see <https://www.gnu.org/licenses/>.
- %% @doc This module tests to connect to a database over SSL.
- -module(ssl_tests).
- -include_lib("eunit/include/eunit.hrl").
- -define(ssl_user, "otptestssl").
- -define(ssl_password, "otptestssl").
- -define(cacertfile, "test/ssl/ca.pem").
- successful_ssl_connect_test() ->
- [ application:start(App) || App <- [crypto, asn1, public_key, ssl] ],
- common_basic_check([{ssl, [{cacertfile, ?cacertfile}]},
- {user, ?ssl_user}, {password, ?ssl_password}]),
- common_conn_close(),
- ok.
- common_basic_check(ExtraOpts) ->
- Options = [{name, {local, tardis}},
- {queries, ["SET @foo = 'bar'", "SELECT 1",
- "SELECT 1; SELECT 2"]},
- {prepare, [{foo, "SELECT @foo"}]} | ExtraOpts],
- {ok, Pid} = mysql:start_link(Options),
- %% Check that queries and prepare has been done.
- ?assertEqual({ok, [<<"@foo">>], [[<<"bar">>]]},
- mysql:execute(Pid, foo, [])),
- Pid.
- common_conn_close() ->
- Pid = whereis(tardis),
- process_flag(trap_exit, true),
- exit(Pid, normal),
- receive
- {'EXIT', Pid, normal} -> ok
- after
- 5000 -> error({cant_stop_connection, Pid})
- end,
- process_flag(trap_exit, false).
|