Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
20b1d5e3
Y
YTBP
项目概览
YottaChain
/
YTBP
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
YTBP
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
20b1d5e3
编写于
5月 02, 2018
作者:
K
Kevin Heifner
提交者:
GitHub
5月 02, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2705 from brianjohnson5972/currency_tests_slim
Currency tests
上级
c7f7e1d8
78eda398
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
33 addition
and
29 deletion
+33
-29
contracts/proxy/proxy.cpp
contracts/proxy/proxy.cpp
+4
-5
libraries/testing/tester.cpp
libraries/testing/tester.cpp
+2
-2
unittests/CMakeLists.txt
unittests/CMakeLists.txt
+2
-2
unittests/currency_tests.cpp
unittests/currency_tests.cpp
+25
-20
未找到文件。
contracts/proxy/proxy.cpp
浏览文件 @
20b1d5e3
...
...
@@ -91,15 +91,14 @@ extern "C" {
/// The apply method implements the dispatch of events to this contract
void
apply
(
uint64_t
receiver
,
uint64_t
code
,
uint64_t
action
)
{
if
(
code
==
N
(
eosio
))
{
if
(
action
==
N
(
onerror
))
{
apply_onerror
(
receiver
,
deferred_transaction
::
from_current_action
());
}
}
else
if
(
code
==
N
(
eosio
.
token
)
)
{
if
(
code
==
N
(
eosio
.
token
)
)
{
if
(
action
==
N
(
transfer
)
)
{
apply_transfer
(
receiver
,
code
,
unpack_action_data
<
eosio
::
token
::
transfer_args
>
());
}
}
else
if
(
code
==
receiver
)
{
if
(
action
==
N
(
onerror
))
{
apply_onerror
(
receiver
,
deferred_transaction
::
from_current_action
());
}
if
(
action
==
N
(
setowner
))
{
apply_setowner
(
receiver
,
unpack_action_data
<
set_owner
>
());
}
...
...
libraries/testing/tester.cpp
浏览文件 @
20b1d5e3
...
...
@@ -72,10 +72,10 @@ namespace eosio { namespace testing {
for
(
const
auto
&
receipt
:
block_state
->
block
->
transactions
)
{
if
(
receipt
.
trx
.
contains
<
packed_transaction
>
()
)
{
auto
&
pt
=
receipt
.
trx
.
get
<
packed_transaction
>
();
chain_transactions
.
emplace
(
pt
.
get_transaction
().
id
(),
receipt
)
;
chain_transactions
[
pt
.
get_transaction
().
id
()]
=
receipt
;
}
else
{
auto
&
id
=
receipt
.
trx
.
get
<
transaction_id_type
>
();
chain_transactions
.
emplace
(
id
,
receipt
)
;
chain_transactions
[
id
]
=
receipt
;
}
}
});
...
...
unittests/CMakeLists.txt
浏览文件 @
20b1d5e3
...
...
@@ -31,8 +31,8 @@ add_dependencies(unit_test asserter test_api test_api_mem test_api_db test_api_m
#Manually run unit_test for all supported runtimes
#To run unit_test with all log from blockchain displayed, put --verbose after --, i.e. unit_test -- --verbose
add_test
(
NAME unit_test_binaryen COMMAND unit_test -t \!eosio_system_tests/* -t \!delay_tests/* --report_level=detailed --color_output -- --binaryen
)
add_test
(
NAME unit_test_wavm COMMAND unit_test -t \!eosio_system_tests/* -t \!delay_tests/* --report_level=detailed --color_output --catch_system_errors=no -- --wavm
)
add_test
(
NAME unit_test_binaryen COMMAND unit_test -t \!eosio_system_tests/* -t \!delay_tests/* -
t \!currency_tests/test_deferred_failure -
-report_level=detailed --color_output -- --binaryen
)
add_test
(
NAME unit_test_wavm COMMAND unit_test -t \!eosio_system_tests/* -t \!delay_tests/* -
t \!currency_tests/test_deferred_failure -
-report_level=detailed --color_output --catch_system_errors=no -- --wavm
)
if
(
ENABLE_COVERAGE_TESTING
)
...
...
tests/wasm_
tests/currency_tests.cpp
→
unit
tests/currency_tests.cpp
浏览文件 @
20b1d5e3
...
...
@@ -5,6 +5,7 @@
#include <boost/algorithm/string/predicate.hpp>
#include <eosio/testing/tester.hpp>
#include <eosio/chain/abi_serializer.hpp>
#include <eosio/chain/generated_transaction_object.hpp>
#include <eosio.token/eosio.token.wast.hpp>
#include <eosio.token/eosio.token.abi.hpp>
...
...
@@ -25,7 +26,6 @@
using
namespace
eosio
;
using
namespace
eosio
::
chain
;
using
namespace
eosio
::
chain
::
contracts
;
using
namespace
eosio
::
testing
;
using
namespace
fc
;
...
...
@@ -106,7 +106,7 @@ BOOST_FIXTURE_TEST_CASE( test_transfer, currency_tester ) try {
produce_block
();
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
.
id
));
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
->
id
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"100.0000 CUR"
)
);
}
}
FC_LOG_AND_RETHROW
()
/// test_transfer
...
...
@@ -121,16 +121,16 @@ BOOST_FIXTURE_TEST_CASE( test_duplicate_transfer, currency_tester ) {
(
"memo"
,
"fund Alice"
)
);
BOOST_
CHECK
_THROW
(
push_action
(
N
(
eosio
.
token
),
N
(
transfer
),
mutable_variant_object
()
(
"from"
,
eosio_token
)
(
"to"
,
"alice"
)
(
"quantity"
,
"100.0000 CUR"
)
(
"memo"
,
"fund Alice"
)),
tx_duplicate
);
BOOST_
REQUIRE
_THROW
(
push_action
(
N
(
eosio
.
token
),
N
(
transfer
),
mutable_variant_object
()
(
"from"
,
eosio_token
)
(
"to"
,
"alice"
)
(
"quantity"
,
"100.0000 CUR"
)
(
"memo"
,
"fund Alice"
)),
tx_duplicate
);
produce_block
();
BOOST_CHECK_EQUAL
(
true
,
chain_has_transaction
(
trace
.
id
));
BOOST_CHECK_EQUAL
(
true
,
chain_has_transaction
(
trace
->
id
));
BOOST_CHECK_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"100.0000 CUR"
)
);
}
...
...
@@ -148,7 +148,7 @@ BOOST_FIXTURE_TEST_CASE( test_addtransfer, currency_tester ) try {
produce_block
();
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
.
id
));
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
->
id
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"100.0000 CUR"
));
}
...
...
@@ -163,7 +163,7 @@ BOOST_FIXTURE_TEST_CASE( test_addtransfer, currency_tester ) try {
produce_block
();
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
.
id
));
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
->
id
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"110.0000 CUR"
));
}
}
FC_LOG_AND_RETHROW
()
/// test_transfer
...
...
@@ -183,7 +183,7 @@ BOOST_FIXTURE_TEST_CASE( test_overspend, currency_tester ) try {
produce_block
();
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
.
id
));
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
->
id
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"100.0000 CUR"
));
}
...
...
@@ -195,7 +195,7 @@ BOOST_FIXTURE_TEST_CASE( test_overspend, currency_tester ) try {
(
"quantity"
,
"101.0000 CUR"
)
(
"memo"
,
"overspend! Alice"
);
BOOST_CHECK_EXCEPTION
(
push_action
(
N
(
alice
),
N
(
transfer
),
data
),
transaction_exception
,
assert_message_ends_with
(
"overdrawn balance"
));
BOOST_CHECK_EXCEPTION
(
push_action
(
N
(
alice
),
N
(
transfer
),
data
),
fc
::
exception
,
assert_message_contains
(
"overdrawn balance"
));
produce_block
();
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"100.0000 CUR"
));
...
...
@@ -217,7 +217,7 @@ BOOST_FIXTURE_TEST_CASE( test_fullspend, currency_tester ) try {
produce_block
();
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
.
id
));
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
->
id
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"100.0000 CUR"
));
}
...
...
@@ -232,7 +232,7 @@ BOOST_FIXTURE_TEST_CASE( test_fullspend, currency_tester ) try {
auto
trace
=
push_action
(
N
(
alice
),
N
(
transfer
),
data
);
produce_block
();
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
.
id
));
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trace
->
id
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"0.0000 CUR"
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
bob
)),
asset
::
from_string
(
"100.0000 CUR"
));
}
...
...
@@ -452,6 +452,8 @@ BOOST_FIXTURE_TEST_CASE( test_deferred_failure, currency_tester ) try {
produce_block
();
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
trx
.
id
()));
}
const
auto
&
index
=
control
->
db
().
get_index
<
generated_transaction_multi_index
,
by_trx_id
>
();
BOOST_REQUIRE_EQUAL
(
0
,
index
.
size
());
// for now wasm "time" is in seconds, so we have to truncate off any parts of a second that may have applied
fc
::
time_point
expected_delivery
(
fc
::
seconds
(
control
->
head_block_time
().
sec_since_epoch
())
+
fc
::
seconds
(
10
));
...
...
@@ -462,20 +464,23 @@ BOOST_FIXTURE_TEST_CASE( test_deferred_failure, currency_tester ) try {
(
"memo"
,
"fund Proxy"
)
);
BOOST_REQUIRE_EQUAL
(
trace
.
deferred_transaction_requests
.
size
(),
1
);
auto
deferred_id
=
trace
.
deferred_transaction_requests
.
back
().
get
<
deferred_transaction
>
().
id
();
BOOST_REQUIRE_EQUAL
(
1
,
index
.
size
());
auto
deferred_id
=
index
.
begin
()
->
trx_id
;
BOOST_REQUIRE_EQUAL
(
false
,
chain_has_transaction
(
deferred_id
));
while
(
control
->
head_block_time
()
<
expected_delivery
)
{
produce_block
();
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
proxy
)),
asset
::
from_string
(
"5.0000 CUR"
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
bob
)),
asset
::
from_string
(
"0.0000 CUR"
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
bob
)),
asset
::
from_string
(
"0.0000 CUR"
));
BOOST_REQUIRE_EQUAL
(
chain_has_transaction
(
deferred_id
),
false
);
BOOST_REQUIRE_EQUAL
(
1
,
index
.
size
());
BOOST_REQUIRE_EQUAL
(
true
,
chain_has_transaction
(
deferred_id
));
BOOST_REQUIRE_EQUAL
(
get_transaction_receipt
(
deferred_id
).
status
,
transaction_receipt
::
executed
);
}
fc
::
time_point
expected_redelivery
(
fc
::
seconds
(
control
->
head_block_time
().
sec_since_epoch
())
+
fc
::
seconds
(
10
));
produce_block
();
BOOST_REQUIRE_EQUAL
(
chain_has_transaction
(
deferred_id
),
true
);
BOOST_REQUIRE_EQUAL
(
0
,
index
.
size
()
);
BOOST_REQUIRE_EQUAL
(
get_transaction_receipt
(
deferred_id
).
status
,
transaction_receipt
::
soft_fail
);
// set up alice owner
...
...
@@ -501,7 +506,7 @@ BOOST_FIXTURE_TEST_CASE( test_deferred_failure, currency_tester ) try {
while
(
control
->
head_block_time
()
<
expected_redelivery
)
{
produce_block
();
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
proxy
)),
asset
::
from_string
(
"5.0000 CUR"
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
bob
)),
asset
::
from_string
(
"0.0000 CUR"
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
alice
)),
asset
::
from_string
(
"0.0000 CUR"
));
BOOST_REQUIRE_EQUAL
(
get_balance
(
N
(
bob
)),
asset
::
from_string
(
"0.0000 CUR"
));
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录