123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- %%%
- -module(epgsql_perf_tests).
- -include_lib("eunit/include/eunit.hrl").
- %%
- perf_test_() ->
- [
- {timeout, 60, prepare_data()},
- {timeout, 60, get_data()}
- ].
- drop_data_test_() ->
- drop_data().
- %%
- -define(noise_size, 10000000).
- prepare_data() ->
- {"insert blob", with_connection(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() ->
- {"get blob back", with_connection(fun (C) ->
- {ok, _, [{Noise}]} = epgsql:equery(C, "select noise from test_big_blobs"),
- ?assertEqual(?noise_size, byte_size(Noise))
- end)}.
- drop_data() ->
- {"cleanup", with_connection(fun (C) ->
- {ok, [], []} = epgsql:squery(C, "drop table test_big_blobs")
- end)}.
- noise(N) ->
- crypto:rand_bytes(N).
- %%
- -define(host, "localhost").
- -define(port, 10432).
- with_connection(F) ->
- with_connection(F, "epgsql_test", []).
- with_connection(F, Username, Args) ->
- 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.
|