From 6ee945379f0c41e6f12bb26f9626165dbdbfdb6e Mon Sep 17 00:00:00 2001 From: Jeena Paradies Date: Tue, 22 Feb 2011 03:11:35 +0100 Subject: [PATCH] added makefile, fixed problems with tests --- Makefile | 28 ++++++++++++++++++++++++++++ src/ggs_coordinator.erl | 4 ++-- src/ggs_dispatcher.erl | 2 +- src/ggs_gamevm_e.erl | 2 +- src/ggs_player.erl | 2 +- src/ggs_table.erl | 14 ++++++++------ tests/ggs_player_test.erl | 9 ++++----- tests/ggs_table_test.erl | 33 +++++++++++++-------------------- 8 files changed, 58 insertions(+), 36 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5c0e61d --- /dev/null +++ b/Makefile @@ -0,0 +1,28 @@ +ERLC=erlc +ERLCFLAGS=-o +SRCDIR=src +TESTDIR=tests +BEAMDIR=./ebin + +all: compile erlang_js + +compile: + @ mkdir -p $(BEAMDIR) ; + @ $(ERLC) $(ERLCFLAGS) $(BEAMDIR) $(SRCDIR)/*.erl ; + +erlang_js: + $(MAKE) -C erlang_js/ + +test: compile erlang_js + @ mkdir -p $(BEAMDIR) ; + @ $(ERLC) $(ERLCFLAGS) $(BEAMDIR) $(TESTDIR)/*.erl ; + @ cd $(BEAMDIR) ; erl -noinput -eval 'eunit:test({dir, "."}, [verbose]), init:stop()' ; + +clean: + @ rm -rf $(BEAMDIR)/*.beam ; + @ rm -rf erl_crush.dump ; + @ echo "==> clean ggs" ; + @ $(MAKE) -C erlang_js/ clean + +run: + @ erl -sname ggs -mnesia -boot start_sasl -pa erlang_js/ebin/ -pa ebin -pa src -s start_ggs diff --git a/src/ggs_coordinator.erl b/src/ggs_coordinator.erl index 733ff8d..83f7e14 100644 --- a/src/ggs_coordinator.erl +++ b/src/ggs_coordinator.erl @@ -65,7 +65,7 @@ handle_call({join_table, Table}, From, State) -> {FromPlayer, _Ref} = From, Tables = State#co_state.tables, case lists:keyfind(Table, 1, Tables) of - {TableID, TablePID} -> + {_TableID, TablePID} -> ggs_table:add_player(TablePID, FromPlayer), {reply, {ok, TablePID}, State}; false -> @@ -84,7 +84,7 @@ handle_call({create_table, {force, TableID}}, From, State) -> handle_call(_Message, _From, State) -> {noreply, State}. -handle_cast({stop, Reason}, State) -> +handle_cast({stop, _Reason}, _State) -> {stop, normal, state}; handle_cast(_Message, State) -> diff --git a/src/ggs_dispatcher.erl b/src/ggs_dispatcher.erl index 49dcf4b..11dd729 100644 --- a/src/ggs_dispatcher.erl +++ b/src/ggs_dispatcher.erl @@ -45,7 +45,7 @@ handle_call(_Message, _From, State) -> handle_cast(_Message, State) -> {noreply, State}. -handle_info({tcp, _Socket, RawData}, State) -> +handle_info({tcp, _Socket, _RawData}, State) -> io:format("Got connect request!~n"), {noreply, State}; diff --git a/src/ggs_gamevm_e.erl b/src/ggs_gamevm_e.erl index 76b9350..6ca4e1b 100644 --- a/src/ggs_gamevm_e.erl +++ b/src/ggs_gamevm_e.erl @@ -32,7 +32,7 @@ user_command(GameVM, Player, Command, Args) -> loop(Table) -> receive - {define, SourceCode} -> + {define, _SourceCode} -> loop(Table); {user_command, _User, Command, _Args, _From, _Ref} -> io:format("GameVM received a message~n"), diff --git a/src/ggs_player.erl b/src/ggs_player.erl index af92ad9..27c73d0 100644 --- a/src/ggs_player.erl +++ b/src/ggs_player.erl @@ -60,7 +60,7 @@ loop(#pl_state{token = Token, socket = Socket, table = Table} = State) -> io:format("Notifying table..~n"), ggs_table:notify_game(Table, Token, Data), loop(State); - {notify, From, Message} -> + {notify, _From, Message} -> gen_tcp:send(Socket, Message), loop(State) end. diff --git a/src/ggs_table.erl b/src/ggs_table.erl index 4715e79..9ddc7d6 100644 --- a/src/ggs_table.erl +++ b/src/ggs_table.erl @@ -5,17 +5,18 @@ %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, - terminate/2, code_change/3, notify_all_players/2, notify_game/3, - add_player/2]). + terminate/2, code_change/3]). -record(state, { players, game_vm } ). %% API -export([start_link/0, - add_player/2, - remove_player/2, - stop/1, - notify/3]). + add_player/2, + remove_player/2, + stop/1, + notify/3, + notify_all_players/2, + notify_game/3]). %% ---------------------------------------------------------------------- @@ -24,6 +25,7 @@ % @doc returns a new table start_link() -> {ok, Pid} = gen_server:start_link(?MODULE, [], []), + Pid. %% @private call(Pid, Msg) -> diff --git a/tests/ggs_player_test.erl b/tests/ggs_player_test.erl index 66900d6..efe7530 100644 --- a/tests/ggs_player_test.erl +++ b/tests/ggs_player_test.erl @@ -1,6 +1,5 @@ -module(ggs_player_test). -include_lib("eunit/include/eunit.hrl"). --import(ggs_player). %% @doc start_link should always return ok for any valid socket. A valid socket %% should always return {ok, Pid} and {error, Reason} otherwise. @@ -10,9 +9,9 @@ start_link_test() -> %% @doc Given that start_link returned {ok, Player}. Notify shall always return ok and %% deliver a specified message through the socket. notify_test() -> - Player = start_link("bad arg"), + Player = ggs_player:start_link("bad arg"), Message = {"something", ""}, - Ret = ggs_player:notify(Player, self(), Message) + Ret = ggs_player:notify(Player, self(), Message), ?assertNot(ok =:= Ret). %% @doc Given that start_link returned {ok, Player}. get_token shall always return a valid @@ -23,6 +22,6 @@ get_token_test() -> %% @doc Given that start_link returned {ok, Pid}. There shouldn't be possible to %% execute this function with the same Player and Table arguments twice. stop_test() -> - Player = start_link(something), + Player = ggs_player:start_link(something), Table = test, - ok = stop(Player, Table). + ok = ggs_player:stop(Player, Table). diff --git a/tests/ggs_table_test.erl b/tests/ggs_table_test.erl index 7a270ed..c10effb 100644 --- a/tests/ggs_table_test.erl +++ b/tests/ggs_table_test.erl @@ -1,45 +1,38 @@ -module(ggs_table_test). -include_lib("eunit/include/eunit.hrl"). --import(ggs_table). - -% @private start_link_test() -> - Table = start_link(), + Table = ggs_table:start_link(), ?assertNot(Table =:= undefined). -% @private add_player_test() -> - Table = start_link(), + Table = ggs_table:start_link(), Player = test_player, - add_player(Table, Player), + ggs_table:add_player(Table, Player), {ok, [Player]} = gen_server:call(Table, get_player_list). -% @private remove_player_test() -> - Table = start_link(), + Table = ggs_table:start_link(), Player = test_player, Player2 = test_player2, - add_player(Table, Player), + ggs_table:add_player(Table, Player), {ok, [Player]} = gen_server:call(Table, get_player_list), - add_player(Table, Player2), + ggs_table:add_player(Table, Player2), {ok, [Player2, Player]} = gen_server:call(Table, get_player_list), - remove_player(Table, Player), + ggs_table:remove_player(Table, Player), {ok, [Player2]} = gen_server:call(Table, get_player_list), - remove_player(Table, Player2), + ggs_table:remove_player(Table, Player2), {ok, []} = gen_server:call(Table, get_player_list). -% @private stop_test() -> - Table = start_link(), - ok = stop(Table). + Table = ggs_table:start_link(), + ok = ggs_table:stop(Table). -% @private notify_test() -> - Table = start_link(), + Table = ggs_table:start_link(), Player = test_player, Message = {server, define, "function helloWorld(x) { }"}, - ok = notify(Table, Player, Message). + ok = ggs_table:notify(Table, Player, Message), Message2 = {game, "helloWorld", "test"}, - ok = notify(Table, Player, Message2). + ok = ggs_table:notify(Table, Player, Message2).