%%
%% %CopyrightBegin%
%%
%% Copyright Ericsson AB 1998-2010. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
%%
%% %CopyrightEnd%
%%
%%
%%%----------------------------------------------------------------------
%%% Purpose : This is the test module to be used in with the test cases
%%% in the debugger test document.
%%%----------------------------------------------------------------------
-module(debugger_test).
-export ([installation_ok/0,
list/0,
fac/1,
c_break/1]).
-define (INT_DIR, "misc"). % The directory of the Interpreter directory
-define (INT, "interpreter"). % The Interpreter directory name.
-define (DBG, "debugger"). % Debugger name
%%% installation_ok /0
%%%
installation_ok () ->
debugger_ok (),
interpreter_ok ().
%%% debugger_ok /0
%%%
debugger_ok () ->
L = code:get_path (),
case debugger_in_codepath (L) of
{true, Msg} ->
out_put (Msg);
Other ->
out_put (Other)
end.
%%% debugger_in_codepath /2
%%%
debugger_in_codepath ([]) ->
Msg = io_lib:format ("False: ~s not in code path", [?DBG]),
lists:flatten (Msg);
debugger_in_codepath ([Path | T]) ->
case string:str (Path, ?DBG) =/= 0 of
true ->
Msg = io_lib:format ("Ok: ~s in code path (~s)", [?DBG, Path]),
Msg1 = lists:flatten (Msg),
{true, Msg1};
_Other ->
debugger_in_codepath (T)
end.
%%% interpreter_ok /0
%%%
interpreter_ok () ->
Root_dir = code:root_dir (),
Misc_dir = filename:join (Root_dir, ?INT_DIR),
In_misc = case file:list_dir (Misc_dir) of
{ok, L} ->
lists:member (?INT, L);
Other ->
Other
end,
case In_misc of
true ->
Msg = io_lib:format ("Ok: ~s is in ~s", [?INT, ?INT_DIR]),
Msg1 = lists:flatten (Msg),
out_put (Msg1);
Other1 ->
Msg = io_lib:format ("Error: interpreter in misc - ~s", [Other1]),
Msg1 = lists:flatten (Msg),
out_put (Msg1)
end.
%%% list /0
%%%
list () ->
A = [1, 2, 3, 4, 5],
B = [a, b, c, d, e],
lists:append (A, B).
%%% fac /1
%%%
fac (0) ->
1;
fac (N) ->
N * fac (N - 1).
%%% c_break /1
%%%
c_break (Bindings) ->
case int:get_binding ('N', Bindings) of
{value, 3} ->
true;
_Other ->
false
end.
%%% out_put /1
%%%
out_put (X) ->
io:format ("~n~p~n", [X]).