Add very basic ACI testing
These should be extended and expanded.
This commit is contained in:
parent
0d56130baa
commit
8619f47ee6
45
test/aeso_aci_tests.erl
Normal file
45
test/aeso_aci_tests.erl
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
-module(aeso_aci_tests).
|
||||||
|
|
||||||
|
-include_lib("eunit/include/eunit.hrl").
|
||||||
|
|
||||||
|
|
||||||
|
do_test() ->
|
||||||
|
test_contract(1),
|
||||||
|
test_contract(2).
|
||||||
|
|
||||||
|
test_contract(N) ->
|
||||||
|
{Contract,DecACI} = test_cases(N),
|
||||||
|
{ok,Enc} = aeso_aci:encode(Contract),
|
||||||
|
?assertEqual(DecACI, jsx:decode(Enc)).
|
||||||
|
|
||||||
|
test_cases(1) ->
|
||||||
|
Contract = <<"contract C =\n"
|
||||||
|
" function a(i : int) = i+1\n">>,
|
||||||
|
DecodedACI = [{<<"contract">>,
|
||||||
|
[{<<"name">>,<<"C">>},
|
||||||
|
{<<"type_defs">>,[]},
|
||||||
|
{<<"functions">>,
|
||||||
|
[[{<<"name">>,<<"a">>},
|
||||||
|
{<<"arguments">>,
|
||||||
|
[[{<<"name">>,<<"i">>},{<<"type">>,<<"int">>}]]},
|
||||||
|
{<<"type">>,<<"int">>},
|
||||||
|
{<<"stateful">>,false}]]}]}],
|
||||||
|
{Contract,DecodedACI};
|
||||||
|
|
||||||
|
test_cases(2) ->
|
||||||
|
Contract = <<"contract C =\n"
|
||||||
|
" type allan = int\n"
|
||||||
|
" function a(i : allan) = i+1\n">>,
|
||||||
|
DecodedACI = [{<<"contract">>,
|
||||||
|
[{<<"name">>,<<"C">>},
|
||||||
|
{<<"type_defs">>,
|
||||||
|
[[{<<"name">>,<<"allan">>},
|
||||||
|
{<<"vars">>,[]},
|
||||||
|
{<<"typedef">>,<<"int">>}]]},
|
||||||
|
{<<"functions">>,
|
||||||
|
[[{<<"name">>,<<"a">>},
|
||||||
|
{<<"arguments">>,
|
||||||
|
[[{<<"name">>,<<"i">>},{<<"type">>,<<"int">>}]]},
|
||||||
|
{<<"type">>,<<"int">>},
|
||||||
|
{<<"stateful">>,false}]]}]}],
|
||||||
|
{Contract,DecodedACI}.
|
@ -12,9 +12,11 @@ groups() ->
|
|||||||
, aeso_parser_tests
|
, aeso_parser_tests
|
||||||
, aeso_compiler_tests
|
, aeso_compiler_tests
|
||||||
, aeso_abi_tests
|
, aeso_abi_tests
|
||||||
|
, aeso_aci_tests
|
||||||
]}].
|
]}].
|
||||||
|
|
||||||
aeso_scan_tests(_Config) -> ok = eunit:test(aeso_scan_tests).
|
aeso_scan_tests(_Config) -> ok = eunit:test(aeso_scan_tests).
|
||||||
aeso_parser_tests(_Config) -> ok = eunit:test(aeso_parser_tests).
|
aeso_parser_tests(_Config) -> ok = eunit:test(aeso_parser_tests).
|
||||||
aeso_compiler_tests(_Config) -> ok = eunit:test(aeso_compiler_tests).
|
aeso_compiler_tests(_Config) -> ok = eunit:test(aeso_compiler_tests).
|
||||||
aeso_abi_tests(_Config) -> ok = eunit:test(aeso_abi_tests).
|
aeso_abi_tests(_Config) -> ok = eunit:test(aeso_abi_tests).
|
||||||
|
aeso_aci_tests(_Config) -> ok = eunit:test(aeso_aci_tests).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user