1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- -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) ->
- {Host, Port} = epgsql_ct:connection_data(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.
|