Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
5654773d
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,发现更多精彩内容 >>
未验证
提交
5654773d
编写于
5月 03, 2018
作者:
D
Daniel Larimer
提交者:
GitHub
5月 03, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2736 from EOSIO/currency-test-fixes
Currency test fixes
上级
75eb015f
5e73b664
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
51 addition
and
25 deletion
+51
-25
libraries/chain/include/eosio/chain/symbol.hpp
libraries/chain/include/eosio/chain/symbol.hpp
+2
-2
unittests/currency_tests.cpp
unittests/currency_tests.cpp
+2
-4
unittests/eosio.token_tests.cpp
unittests/eosio.token_tests.cpp
+35
-19
unittests/misc_tests.cpp
unittests/misc_tests.cpp
+12
-0
未找到文件。
libraries/chain/include/eosio/chain/symbol.hpp
浏览文件 @
5654773d
...
@@ -63,10 +63,10 @@ namespace eosio {
...
@@ -63,10 +63,10 @@ namespace eosio {
static
constexpr
uint8_t
max_precision
=
18
;
static
constexpr
uint8_t
max_precision
=
18
;
explicit
symbol
(
uint8_t
p
,
const
char
*
s
)
:
m_value
(
string_to_symbol
(
p
,
s
))
{
explicit
symbol
(
uint8_t
p
,
const
char
*
s
)
:
m_value
(
string_to_symbol
(
p
,
s
))
{
FC_ASSERT
(
valid
(),
"invalid symbol"
);
FC_ASSERT
(
valid
(),
"invalid symbol"
,
(
"s"
,
s
)
);
}
}
explicit
symbol
(
uint64_t
v
=
SY
(
4
,
EOS
))
:
m_value
(
v
)
{
explicit
symbol
(
uint64_t
v
=
SY
(
4
,
EOS
))
:
m_value
(
v
)
{
FC_ASSERT
(
valid
(),
"invalid symbol"
);
FC_ASSERT
(
valid
(),
"invalid symbol"
,
(
"name"
,
name
())
);
}
}
static
symbol
from_string
(
const
string
&
from
)
static
symbol
from_string
(
const
string
&
from
)
{
{
...
...
unittests/currency_tests.cpp
浏览文件 @
5654773d
...
@@ -304,10 +304,8 @@ BOOST_FIXTURE_TEST_CASE(test_symbol, TESTER) try {
...
@@ -304,10 +304,8 @@ BOOST_FIXTURE_TEST_CASE(test_symbol, TESTER) try {
// invalid - contains lower case characters, no validation
// invalid - contains lower case characters, no validation
{
{
symbol
malformed
(
SY
(
6
,
EoS
));
BOOST_CHECK_EXCEPTION
(
symbol
malformed
(
SY
(
6
,
EoS
)),
BOOST_REQUIRE_EQUAL
(
false
,
malformed
.
valid
());
fc
::
assert_exception
,
assert_message_contains
(
"invalid symbol"
));
BOOST_REQUIRE_EQUAL
(
"EoS"
,
malformed
.
name
());
BOOST_REQUIRE_EQUAL
(
6
,
malformed
.
decimals
());
}
}
// invalid - contains lower case characters, exception thrown
// invalid - contains lower case characters, exception thrown
...
...
unittests/eosio.token_tests.cpp
浏览文件 @
5654773d
...
@@ -131,6 +131,28 @@ BOOST_FIXTURE_TEST_CASE( create_negative_max_supply, eosio_token_tester ) try {
...
@@ -131,6 +131,28 @@ BOOST_FIXTURE_TEST_CASE( create_negative_max_supply, eosio_token_tester ) try {
}
FC_LOG_AND_RETHROW
()
}
FC_LOG_AND_RETHROW
()
BOOST_FIXTURE_TEST_CASE
(
symbol_already_exists
,
eosio_token_tester
)
try
{
auto
token
=
create
(
N
(
alice
),
asset
::
from_string
(
"100 TKN"
),
true
,
false
,
false
);
auto
stats
=
get_stats
(
"0,TKN"
);
REQUIRE_MATCHING_OBJECT
(
stats
,
mvo
()
(
"supply"
,
"0 TKN"
)
(
"max_supply"
,
"100 TKN"
)
(
"issuer"
,
"alice"
)
(
"can_freeze"
,
1
)
(
"can_recall"
,
0
)
(
"can_whitelist"
,
0
)
(
"is_frozen"
,
false
)
(
"enforce_whitelist"
,
false
)
);
produce_blocks
(
1
);
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: token with symbol already exists"
),
create
(
N
(
alice
),
asset
::
from_string
(
"100 TKN"
),
true
,
false
,
false
)
);
}
FC_LOG_AND_RETHROW
()
BOOST_FIXTURE_TEST_CASE
(
create_max_supply
,
eosio_token_tester
)
try
{
BOOST_FIXTURE_TEST_CASE
(
create_max_supply
,
eosio_token_tester
)
try
{
auto
token
=
create
(
N
(
alice
),
asset
::
from_string
(
"4611686018427387903 TKN"
),
true
,
false
,
false
);
auto
token
=
create
(
N
(
alice
),
asset
::
from_string
(
"4611686018427387903 TKN"
),
true
,
false
,
false
);
...
@@ -147,9 +169,13 @@ BOOST_FIXTURE_TEST_CASE( create_max_supply, eosio_token_tester ) try {
...
@@ -147,9 +169,13 @@ BOOST_FIXTURE_TEST_CASE( create_max_supply, eosio_token_tester ) try {
);
);
produce_blocks
(
1
);
produce_blocks
(
1
);
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: invalid supply"
),
asset
max
(
10
,
symbol
(
SY
(
0
,
NKT
)));
create
(
N
(
alice
),
asset
::
from_string
(
"4611686018427387904 TKN"
),
true
,
false
,
false
)
max
.
amount
=
4611686018427387904
;
);
BOOST_CHECK_EXCEPTION
(
create
(
N
(
alice
),
max
,
true
,
false
,
false
)
,
asset_type_exception
,
[](
const
asset_type_exception
&
e
)
{
return
expect_assert_message
(
e
,
"magnitude of asset amount must be less than 2^62"
);
});
}
FC_LOG_AND_RETHROW
()
}
FC_LOG_AND_RETHROW
()
...
@@ -169,15 +195,13 @@ BOOST_FIXTURE_TEST_CASE( create_max_decimals, eosio_token_tester ) try {
...
@@ -169,15 +195,13 @@ BOOST_FIXTURE_TEST_CASE( create_max_decimals, eosio_token_tester ) try {
);
);
produce_blocks
(
1
);
produce_blocks
(
1
);
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: invalid supply"
),
asset
max
(
10
,
symbol
(
SY
(
0
,
NKT
)));
create
(
N
(
alice
),
asset
::
from_string
(
"4.611686018427387904 TKN"
),
true
,
false
,
false
)
);
//1.0000000000000000000 => 0x8ac7230489e80000L
//1.0000000000000000000 => 0x8ac7230489e80000L
//TODO: Better error message
max
.
amount
=
0x8ac7230489e80000L
;
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: max-supply must be positive"
),
create
(
N
(
alice
),
asset
::
from_string
(
"1.0000000000000000000 TKN"
),
true
,
false
,
false
)
BOOST_CHECK_EXCEPTION
(
create
(
N
(
alice
),
max
,
true
,
false
,
false
)
,
asset_type_exception
,
[](
const
asset_type_exception
&
e
)
{
);
return
expect_assert_message
(
e
,
"magnitude of asset amount must be less than 2^62"
);
});
}
FC_LOG_AND_RETHROW
()
}
FC_LOG_AND_RETHROW
()
...
@@ -211,10 +235,6 @@ BOOST_FIXTURE_TEST_CASE( issue_tests, eosio_token_tester ) try {
...
@@ -211,10 +235,6 @@ BOOST_FIXTURE_TEST_CASE( issue_tests, eosio_token_tester ) try {
issue
(
N
(
alice
),
N
(
alice
),
asset
::
from_string
(
"500.001 TKN"
),
"hola"
)
issue
(
N
(
alice
),
N
(
alice
),
asset
::
from_string
(
"500.001 TKN"
),
"hola"
)
);
);
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: invalid quantity"
),
issue
(
N
(
alice
),
N
(
alice
),
asset
::
from_string
(
"4611686018427387.904 TKN"
),
"hola"
)
);
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: must issue positive quantity"
),
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: must issue positive quantity"
),
issue
(
N
(
alice
),
N
(
alice
),
asset
::
from_string
(
"-1.000 TKN"
),
"hola"
)
issue
(
N
(
alice
),
N
(
alice
),
asset
::
from_string
(
"-1.000 TKN"
),
"hola"
)
);
);
...
@@ -275,10 +295,6 @@ BOOST_FIXTURE_TEST_CASE( transfer_tests, eosio_token_tester ) try {
...
@@ -275,10 +295,6 @@ BOOST_FIXTURE_TEST_CASE( transfer_tests, eosio_token_tester ) try {
transfer
(
N
(
alice
),
N
(
bob
),
asset
::
from_string
(
"701 CERO"
),
"hola"
)
transfer
(
N
(
alice
),
N
(
bob
),
asset
::
from_string
(
"701 CERO"
),
"hola"
)
);
);
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: invalid quantity"
),
transfer
(
N
(
alice
),
N
(
bob
),
asset
::
from_string
(
"4611686018427387904 CERO"
),
"hola"
)
);
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: must transfer positive quantity"
),
BOOST_REQUIRE_EQUAL
(
error
(
"condition: assertion failed: must transfer positive quantity"
),
transfer
(
N
(
alice
),
N
(
bob
),
asset
::
from_string
(
"-1000 CERO"
),
"hola"
)
transfer
(
N
(
alice
),
N
(
bob
),
asset
::
from_string
(
"-1000 CERO"
),
"hola"
)
);
);
...
...
unittests/misc_tests.cpp
浏览文件 @
5654773d
...
@@ -64,6 +64,12 @@ BOOST_AUTO_TEST_CASE(asset_from_string_overflow)
...
@@ -64,6 +64,12 @@ BOOST_AUTO_TEST_CASE(asset_from_string_overflow)
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"-0.1000000000000000000 CUR"
)
,
assert_exception
,
[](
const
assert_exception
&
e
)
{
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"-0.1000000000000000000 CUR"
)
,
assert_exception
,
[](
const
assert_exception
&
e
)
{
return
expect_assert_message
(
e
,
"precision should be <= 18"
);
return
expect_assert_message
(
e
,
"precision should be <= 18"
);
});
});
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"1.0000000000000000000 CUR"
)
,
assert_exception
,
[](
const
assert_exception
&
e
)
{
return
expect_assert_message
(
e
,
"precision should be <= 18"
);
});
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"-1.0000000000000000000 CUR"
)
,
assert_exception
,
[](
const
assert_exception
&
e
)
{
return
expect_assert_message
(
e
,
"precision should be <= 18"
);
});
// precision = 18, magnitude < 2^58
// precision = 18, magnitude < 2^58
a
=
asset
::
from_string
(
"0.100000000000000000 CUR"
);
a
=
asset
::
from_string
(
"0.100000000000000000 CUR"
);
...
@@ -78,6 +84,12 @@ BOOST_AUTO_TEST_CASE(asset_from_string_overflow)
...
@@ -78,6 +84,12 @@ BOOST_AUTO_TEST_CASE(asset_from_string_overflow)
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"-4.611686018427387904 CUR"
)
,
asset_type_exception
,
[](
const
asset_type_exception
&
e
)
{
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"-4.611686018427387904 CUR"
)
,
asset_type_exception
,
[](
const
asset_type_exception
&
e
)
{
return
expect_assert_message
(
e
,
"magnitude of asset amount must be less than 2^62"
);
return
expect_assert_message
(
e
,
"magnitude of asset amount must be less than 2^62"
);
});
});
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"4611686018427387.904 CUR"
)
,
asset_type_exception
,
[](
const
asset_type_exception
&
e
)
{
return
expect_assert_message
(
e
,
"magnitude of asset amount must be less than 2^62"
);
});
BOOST_CHECK_EXCEPTION
(
asset
::
from_string
(
"-4611686018427387.904 CUR"
)
,
asset_type_exception
,
[](
const
asset_type_exception
&
e
)
{
return
expect_assert_message
(
e
,
"magnitude of asset amount must be less than 2^62"
);
});
// precision = 18, magnitude = 2^62-1
// precision = 18, magnitude = 2^62-1
a
=
asset
::
from_string
(
"4.611686018427387903 CUR"
);
a
=
asset
::
from_string
(
"4.611686018427387903 CUR"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录