Skip to content

Instantly share code, notes, and snippets.

@kevsmith
Created June 19, 2009 15:48
Show Gist options
  • Select an option

  • Save kevsmith/132695 to your computer and use it in GitHub Desktop.

Select an option

Save kevsmith/132695 to your computer and use it in GitHub Desktop.
-module(test_datatypes).
-define(UNSUP_ERR, {error, unsupported_javascript_return_type}).
-include_lib("eunit/include/eunit.hrl").
string_test_() ->
[{setup, fun() -> ok = markatta_driver:start() end,
fun(_) -> markatta_driver:stop() end,
[fun() ->
P = markatta_driver:alloc_runtime(),
?assertMatch({ok, <<"foo">>}, markatta_driver:eval_js(P, "test.js", "\"foo\"")),
markatta_driver:free_runtime(P) end,
fun() ->
P = markatta_driver:alloc_runtime(),
?assertMatch(?UNSUP_ERR, markatta_driver:eval_js(P, "test.js", "function add_suffix(msg) { return msg + \"foo\";}")),
?assertMatch({ok, <<"barfoo">>}, markatta_driver:eval_js(P, "test.js", "add_suffix(\"bar\");")),
markatta_driver:free_runtime(P) end]}].
number_test_() ->
[{setup, fun() -> ok = markatta_driver:start() end,
fun(_) -> markatta_driver:stop() end,
[fun() ->
P = markatta_driver:alloc_runtime(),
?assertMatch({ok, 100}, markatta_driver:eval_js(P, "test.js", "100;")),
?assertMatch({ok, 123456789}, markatta_driver:eval_js(P, "test.js", "123456789;")),
?assertMatch({ok, -123456789}, markatta_driver:eval_js(P, "test.js", "-123456789;")),
?assertMatch(?UNSUP_ERR, markatta_driver:eval_js(P, "test.js", "123.456;")),
?assertMatch(?UNSUP_ERR, markatta_driver:eval_js(P, "test.js", "function add_two(x, y) { return x + y; }")),
?assertMatch({ok, 10}, markatta_driver:eval_js(P, "test.js", "add_two(5,5);")),
markatta_driver:free_runtime(P) end]}].
bool_test_() ->
[{setup, fun() -> ok = markatta_driver:start() end,
fun(_) -> markatta_driver:stop() end,
[fun() ->
P = markatta_driver:alloc_runtime(),
?assertMatch({ok, true}, markatta_driver:eval_js(P, "test.js", "true;")),
?assertMatch({ok, false}, markatta_driver:eval_js(P, "test.js", "false;")),
?assertMatch(?UNSUP_ERR, markatta_driver:eval_js(P, "test.js", "function is_foo(msg) { return msg === \"foo\";}")),
?assertMatch({ok, true}, markatta_driver:eval_js(P, "test.js", "is_foo(\"foo\");")),
markatta_driver:free_runtime(P) end]}].
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment