12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- -module(epgsql_perf_SUITE).
- -include_lib("common_test/include/ct.hrl").
- -include_lib("eunit/include/eunit.hrl").
- -export([
- init_per_suite/1,
- all/0,
- end_per_suite/1,
- prepare_data/0,
- prepare_data/1,
- get_data/0,
- get_data/1,
- drop_data/1
- ]).
- init_per_suite(Config) ->
- Config.
- end_per_suite(_Config) ->
- ok.
- all() ->
- [
- prepare_data,
- get_data,
- drop_data
- ].
- %% =============================================================================
- %% Test cases
- %% =============================================================================
- -define(noise_size, 10000000).
- prepare_data() -> [{timetrap, {seconds, 60}}].
- prepare_data(Config) ->
- with_connection(Config, fun (C) ->
- Noise = noise(?noise_size),
- {ok, [], []} = epgsql:squery(C, "create table test_big_blobs (id int4 primary key, noise bytea)"),
- {ok, 1} = epgsql:equery(C, "insert into test_big_blobs (id, noise) values (1, $1)", [Noise])
- end).
- get_data() -> [{timetrap, {seconds, 60}}].
- get_data(Config) ->
- with_connection(Config, fun (C) ->
- {ok, _, [{Noise}]} = epgsql:equery(C, "select noise from test_big_blobs"),
- ?assertEqual(?noise_size, byte_size(Noise))
- end).
- drop_data(Config) ->
- with_connection(Config, fun (C) ->
- {ok, [], []} = epgsql:squery(C, "drop table test_big_blobs")
- end).
- %% =============================================================================
- %% Internal functions
- %% =============================================================================
- noise(N) ->
- crypto:strong_rand_bytes(N).
- with_connection(Config, F) ->
- with_connection(Config, F, "epgsql_test", []).
- with_connection(Config, F, Username, Args) ->
- #{pg_host := Host, pg_port := Port} = ?config(pg_config, Config),
- Args2 = [{port, Port}, {database, "epgsql_test_db1"} | Args],
- fun () ->
- {ok, C} = epgsql:connect(Host, Username, Args2),
- try
- F(C)
- after
- epgsql:close(C)
- end
- end.
|