Add tests for spawning and killing processes
This commit is contained in:
parent
a5cd0814f1
commit
a9d87c0a9e
3 changed files with 53 additions and 14 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,3 +3,4 @@
|
||||||
*.sw?
|
*.sw?
|
||||||
deps/
|
deps/
|
||||||
ebin/
|
ebin/
|
||||||
|
.eunit/
|
||||||
|
|
3
Makefile
3
Makefile
|
@ -5,3 +5,6 @@ get-deps:
|
||||||
|
|
||||||
compile:
|
compile:
|
||||||
./rebar compile
|
./rebar compile
|
||||||
|
|
||||||
|
test: compile
|
||||||
|
./rebar skip_deps=true eunit
|
||||||
|
|
|
@ -214,47 +214,82 @@ tz_test_() ->
|
||||||
fun start_test/0,
|
fun start_test/0,
|
||||||
fun stop_test/1,
|
fun stop_test/1,
|
||||||
fun(SetupData) ->
|
fun(SetupData) ->
|
||||||
{spawn,[
|
{inorder,[
|
||||||
simple_test(),
|
simple_test(SetupData),
|
||||||
tz_tests(SetupData)
|
tz_tests(SetupData),
|
||||||
|
test_process_die(SetupData)
|
||||||
]}
|
]}
|
||||||
end
|
end
|
||||||
}.
|
}.
|
||||||
|
|
||||||
tz_tests(_) ->
|
tz_tests(_) ->
|
||||||
[
|
{inorder,[
|
||||||
?_assertEqual(?SELF_TZ,begin set_timezone(?SELF_TZ),get_timezone() end),
|
?_assertEqual(ok,set_timezone(?SELF_TZ)),
|
||||||
|
?_assertEqual(?SELF_TZ,get_timezone()),
|
||||||
?_assertEqual(?USER_TZ,get_timezone(?USER_KEY)),
|
?_assertEqual(?USER_TZ,get_timezone(?USER_KEY)),
|
||||||
?_assertEqual(?SITE_TZ,get_timezone(?SITE_KEY))
|
?_assertEqual(?SITE_TZ,get_timezone(?SITE_KEY)),
|
||||||
].
|
?_assertEqual({{2013,3,7},{0,0,0}}, to_date("3/7/2013 1:00am EST",?USER_KEY)),
|
||||||
|
?_assertEqual({{2013,3,7},{0,0,0}}, to_date("3/7/2013 3:00am EST",?SITE_KEY)),
|
||||||
|
?_assertEqual({{2013,3,7},{2,0,0}}, to_date("3/7/2013 1:00am CST")) %% will use the current pid's setting
|
||||||
|
]}.
|
||||||
|
|
||||||
simple_test() ->
|
simple_test(_) ->
|
||||||
[
|
{inorder,[
|
||||||
|
?_assertEqual(ok,clear_timezone()),
|
||||||
?_assertEqual(0,to_unixtime({0,0,0})),
|
?_assertEqual(0,to_unixtime({0,0,0})),
|
||||||
?_assertEqual({0,0,0},to_now(0)),
|
?_assertEqual({0,0,0},to_now(0)),
|
||||||
?_assertEqual(0,to_unixtime("1970-01-01 12:00am GMT")),
|
?_assertEqual(0,to_unixtime("1970-01-01 12:00am GMT")),
|
||||||
?_assertEqual(21600,to_unixtime("1970-01-01 12:00am CST")),
|
?_assertEqual(21600,to_unixtime("1970-01-01 12:00am CST")),
|
||||||
?_assertEqual(0,to_unixtime({{1970,1,1},{0,0,0}})),
|
?_assertEqual(0,to_unixtime({{1970,1,1},{0,0,0}})),
|
||||||
?_assertEqual({{1970,1,1},{0,0,0}},to_date(0)),
|
?_assertEqual({{1970,1,1},{0,0,0}},to_date(0)),
|
||||||
?_assertEqual({{2013,03,07},{0,0,0}},to_date(to_unixtime("2013-03-07 12am"))),
|
?_assertEqual({{2013,3,7},{0,0,0}},to_date(to_unixtime("2013-03-07 12am"))),
|
||||||
?_assertEqual("2012-12-01 1:00pm", to_string("Y-m-d g:ia","EST","2012-12-01 12:00pm CST")),
|
?_assertEqual("2012-12-01 1:00pm", to_string("Y-m-d g:ia","EST","2012-12-01 12:00pm CST")),
|
||||||
?_assertEqual(to_unixtime("2012-01-01 12:00pm CST"), to_unixtime("2012-01-01 10:00am PST")),
|
?_assertEqual(to_unixtime("2012-01-01 12:00pm CST"), to_unixtime("2012-01-01 10:00am PST")),
|
||||||
?_assertEqual({{2012,12,31},{18,15,15}},to_date("Dec 31, 2012 6:15:15pm")),
|
?_assertEqual({{2012,12,31},{18,15,15}},to_date("Dec 31, 2012 6:15:15pm")),
|
||||||
?_assertEqual({{2013,1,1},{0,15,15}},to_date("December 31, 2012 6:15:15pm CST","GMT"))
|
?_assertEqual({{2013,1,1},{0,15,15}},to_date("December 31, 2012 6:15:15pm CST","GMT"))
|
||||||
].
|
]}.
|
||||||
|
|
||||||
%%tz_char_tests(_) ->
|
%%tz_char_tests(_) ->
|
||||||
%% qdate:set_timezone(?SELF_TZ),
|
%% qdate:set_timezone(?SELF_TZ),
|
||||||
|
|
||||||
|
test_process_die(_) ->
|
||||||
|
TZ = "MST",
|
||||||
|
Caller = self(),
|
||||||
|
Pid = spawn(fun() ->
|
||||||
|
set_timezone(TZ),
|
||||||
|
Caller ! tz_set,
|
||||||
|
receive tz_set_ack -> ok end,
|
||||||
|
Caller ! get_timezone()
|
||||||
|
end),
|
||||||
|
|
||||||
|
PidTZFromOtherProc = receive
|
||||||
|
tz_set ->
|
||||||
|
T = get_timezone(Pid),
|
||||||
|
Pid ! tz_set_ack,
|
||||||
|
T
|
||||||
|
after 1000 -> fail
|
||||||
|
end,
|
||||||
|
ReceivedTZ = receive
|
||||||
|
TZ -> TZ
|
||||||
|
after 2000 ->
|
||||||
|
fail
|
||||||
|
end,
|
||||||
|
|
||||||
|
[
|
||||||
|
%% Verify we can read the spawned process's TZ from another proc
|
||||||
|
?_assertEqual(TZ,PidTZFromOtherProc),
|
||||||
|
%% Verify the spawned process properly set the TZ
|
||||||
|
?_assertEqual(TZ,ReceivedTZ),
|
||||||
|
%% Verify the now-dead spawned process's TZ is cleared
|
||||||
|
?_assertEqual(undefined,get_timezone(Pid))
|
||||||
|
].
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
start_test() ->
|
start_test() ->
|
||||||
application:start(qdate),
|
application:start(qdate),
|
||||||
qdate:set_timezone(?SITE_KEY,?SITE_TZ),
|
set_timezone(?SELF_TZ),
|
||||||
qdate:set_timezone(?USER_KEY,?USER_TZ).
|
set_timezone(?SITE_KEY,?SITE_TZ),
|
||||||
|
set_timezone(?USER_KEY,?USER_TZ).
|
||||||
|
|
||||||
stop_test(_) ->
|
stop_test(_) ->
|
||||||
ok.
|
ok.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue