79 lines
2.6 KiB
Erlang
79 lines
2.6 KiB
Erlang
%% -------------------------------------------------------------------
|
|
%%
|
|
%% Copyright (c) 2007-2015 Basho Technologies, Inc. All Rights Reserved.
|
|
%%
|
|
%% This file is provided to you under the Apache License,
|
|
%% Version 2.0 (the "License"); you may not use this file
|
|
%% except in compliance with the License. You may obtain
|
|
%% a copy of the License at
|
|
%%
|
|
%% http://www.apache.org/licenses/LICENSE-2.0
|
|
%%
|
|
%% Unless required by applicable law or agreed to in writing,
|
|
%% software distributed under the License is distributed on an
|
|
%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
%% KIND, either express or implied. See the License for the
|
|
%% specific language governing permissions and limitations
|
|
%% under the License.
|
|
%%
|
|
%% -------------------------------------------------------------------
|
|
|
|
-module(machi_pb_cr_client_test).
|
|
-compile(export_all).
|
|
|
|
-ifdef(TEST).
|
|
-ifndef(PULSE).
|
|
|
|
-include("machi_pb.hrl").
|
|
-include("machi_projection.hrl").
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
-define(C, machi_pb_cr_client).
|
|
|
|
smoke_test_() ->
|
|
{timeout, 5*60, fun() -> smoke_test2() end}.
|
|
|
|
smoke_test2() ->
|
|
Port = 5720,
|
|
Ps = [{a,#p_srvr{name=a, address="localhost", port=Port, props="./data.a"}}
|
|
],
|
|
|
|
[os:cmd("rm -rf " ++ P#p_srvr.props) || {_,P} <- Ps],
|
|
{ok, SupPid} = machi_flu_sup:start_link(),
|
|
try
|
|
[begin
|
|
#p_srvr{name=Name, port=Port, props=Dir} = P,
|
|
{ok, _} = machi_flu_psup:start_flu_package(Name, Port, Dir, [])
|
|
end || {_,P} <- Ps],
|
|
[machi_chain_manager1:test_react_to_env(a_chmgr) || _ <-lists:seq(1,5)],
|
|
|
|
{_, P_a} = hd(Ps),
|
|
{ok, Sock} = gen_tcp:connect(P_a#p_srvr.address, P_a#p_srvr.port,
|
|
[{packet, line}, binary, {active, false}]),
|
|
try
|
|
Prefix = <<"pre">>,
|
|
Chunk1 = <<"yochunk">>,
|
|
ok = gen_tcp:send(Sock, <<"PROTOCOL-BUFFERS\n">>),
|
|
{ok, <<"OK\n">>} = gen_tcp:recv(Sock, 0),
|
|
ok = inet:setopts(Sock, [{packet,4}]),
|
|
R1a = #mpb_request{req_id= <<0>>,
|
|
echo=#mpb_echoreq{message = <<"Hello, world!">>}},
|
|
Bin1a = machi_pb:encode_mpb_request(R1a),
|
|
ok = gen_tcp:send(Sock, Bin1a),
|
|
{ok, Bin1B} = gen_tcp:recv(Sock, 0),
|
|
R1b = machi_pb:decode_mpb_response(Bin1B),
|
|
true = is_record(R1b, mpb_response),
|
|
|
|
ok
|
|
after
|
|
(catch gen_tcp:close(Sock))
|
|
end
|
|
after
|
|
exit(SupPid, normal),
|
|
[os:cmd("rm -rf " ++ P#p_srvr.props) || {_,P} <- Ps],
|
|
machi_util:wait_for_death(SupPid, 100),
|
|
ok
|
|
end.
|
|
|
|
-endif. % !PULSE
|
|
-endif. % TEST
|