diff options
author | Paul Joseph Davis <davisp@apache.org> | 2009-11-09 00:39:16 +0000 |
---|---|---|
committer | Paul Joseph Davis <davisp@apache.org> | 2009-11-09 00:39:16 +0000 |
commit | e29a1924afe9e6051369f7bcbf44ccdf53de536a (patch) | |
tree | e9511858c1ca8faf7b051c38b712982cb051caba /test/view_server/run_native_process.es | |
parent | c114565bff170785c1352142dc1a28557a91dd97 (diff) |
Fixes 'make distcheck' to run the test suite.
Quite a few changes to the build system to handle VPATH builds appropriately as well as make the test suite know about them.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@833951 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test/view_server/run_native_process.es')
-rwxr-xr-x | test/view_server/run_native_process.es | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/view_server/run_native_process.es b/test/view_server/run_native_process.es new file mode 100755 index 00000000..dfdc423e --- /dev/null +++ b/test/view_server/run_native_process.es @@ -0,0 +1,55 @@ +#! /usr/bin/env escript + +% Licensed 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. + +read() -> + case io:get_line('') of + eof -> stop; + Data -> mochijson2:decode(Data) + end. + +send(Data) when is_binary(Data) -> + send(binary_to_list(Data)); +send(Data) when is_list(Data) -> + io:format(Data ++ "\n", []). + +write(Data) -> + case (catch mochijson2:encode(Data)) of + {json_encode, Error} -> write({[{<<"error">>, Error}]}); + Json -> send(Json) + end. + +%log(Mesg) -> +% log(Mesg, []). +%log(Mesg, Params) -> +% io:format(standard_error, Mesg, Params). + +loop(Pid) -> + case read() of + stop -> ok; + Json -> + case (catch couch_native_process:prompt(Pid, Json)) of + {error, Reason} -> + ok = write({[{error, Reason}]}); + Resp -> + ok = write(Resp), + loop(Pid) + end + end. + +main([]) -> + code:add_pathz("src/couchdb"), + code:add_pathz("src/mochiweb"), + {ok, Pid} = couch_native_process:start_link(), + loop(Pid). + |