summaryrefslogtreecommitdiff
path: root/src/couch/test/eunit/fixtures/os_daemon_configer.escript
blob: 16ec489e98fa09407844eeb733f09ae0434cbcae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#! /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.

-include("../../include/couch_eunit.hrl").

read() ->
    case io:get_line('') of
        eof ->
            stop;
        Data ->
            jiffy:decode(Data)
    end.

write(Mesg) ->
    Data = iolist_to_binary(jiffy:encode(Mesg)),
    io:format(binary_to_list(Data) ++ "\n", []).

get_cfg(Section) ->
    write([<<"get">>, Section]),
    read().

get_cfg(Section, Name) ->
    write([<<"get">>, Section, Name]),
    read().

log(Mesg) ->
    write([<<"log">>, Mesg]).

log(Mesg, Level) ->
    write([<<"log">>, Mesg, {[{<<"level">>, Level}]}]).

test_get_cfg1() ->
    Path = list_to_binary(?FILE),
    FileName = list_to_binary(filename:basename(?FILE)),
    {[{FileName, Path}]} = get_cfg(<<"os_daemons">>).

test_get_cfg2() ->
    Path = list_to_binary(?FILE),
    FileName = list_to_binary(filename:basename(?FILE)),
    Path = get_cfg(<<"os_daemons">>, FileName),
    <<"sequential">> = get_cfg(<<"uuids">>, <<"algorithm">>).


test_get_unknown_cfg() ->
    {[]} = get_cfg(<<"aal;3p4">>),
    null = get_cfg(<<"aal;3p4">>, <<"313234kjhsdfl">>).

test_log() ->
    log(<<"foobar!">>),
    log(<<"some stuff!">>, <<"debug">>),
    log(2),
    log(true),
    write([<<"log">>, <<"stuff">>, 2]),
    write([<<"log">>, 3, null]),
    write([<<"log">>, [1, 2], {[{<<"level">>, <<"debug">>}]}]),
    write([<<"log">>, <<"true">>, {[]}]).

do_tests() ->
    test_get_cfg1(),
    test_get_cfg2(),
    test_get_unknown_cfg(),
    test_log(),
    loop(io:read("")).

loop({ok, _}) ->
    loop(io:read(""));
loop(eof) ->
    init:stop();
loop({error, _Reason}) ->
    init:stop().

main([]) ->
    init_code_path(),
    do_tests().

init_code_path() ->
    Paths = [
        "couchdb",
        "jiffy",
        "ibrowse",
        "mochiweb"
    ],
    lists:foreach(fun(Name) ->
        code:add_patha(filename:join([?BUILDDIR(), "src", Name, "ebin"]))
    end, Paths).