Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14864302
base32_tests.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
base32_tests.cpp
View Options
// Copyright (c) 2012-2019 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include
<util/strencodings.h>
#include
<test/util/setup_common.h>
#include
<boost/test/unit_test.hpp>
#include
<string>
using
namespace
std
::
literals
;
BOOST_FIXTURE_TEST_SUITE
(
base32_tests
,
BasicTestingSetup
)
BOOST_AUTO_TEST_CASE
(
base32_testvectors
)
{
static
const
std
::
string
vstrIn
[]
=
{
""
,
"f"
,
"fo"
,
"foo"
,
"foob"
,
"fooba"
,
"foobar"
};
static
const
std
::
string
vstrOut
[]
=
{
""
,
"my======"
,
"mzxq===="
,
"mzxw6==="
,
"mzxw6yq="
,
"mzxw6ytb"
,
"mzxw6ytboi======"
};
static
const
std
::
string
vstrOutNoPadding
[]
=
{
""
,
"my"
,
"mzxq"
,
"mzxw6"
,
"mzxw6yq"
,
"mzxw6ytb"
,
"mzxw6ytboi"
};
for
(
unsigned
int
i
=
0
;
i
<
std
::
size
(
vstrIn
);
i
++
)
{
std
::
string
strEnc
=
EncodeBase32
(
vstrIn
[
i
]);
BOOST_CHECK_EQUAL
(
strEnc
,
vstrOut
[
i
]);
strEnc
=
EncodeBase32
(
vstrIn
[
i
],
false
);
BOOST_CHECK_EQUAL
(
strEnc
,
vstrOutNoPadding
[
i
]);
auto
dec
=
DecodeBase32
(
vstrOut
[
i
]);
BOOST_REQUIRE
(
dec
);
BOOST_CHECK_MESSAGE
(
MakeByteSpan
(
*
dec
)
==
MakeByteSpan
(
vstrIn
[
i
]),
vstrOut
[
i
]);
}
// Decoding strings with embedded NUL characters should fail
// correct size, invalid due to \0
BOOST_CHECK
(
!
DecodeBase32
(
"invalid
\0
"
s
));
// valid
BOOST_CHECK
(
DecodeBase32
(
"AWSX3VPP"
s
));
// correct size, invalid due to \0
BOOST_CHECK
(
!
DecodeBase32
(
"AWSX3VPP
\0
invalid"
s
));
// invalid size
BOOST_CHECK
(
!
DecodeBase32
(
"AWSX3VPPinvalid"
s
));
}
BOOST_AUTO_TEST_SUITE_END
()
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Wed, May 21, 18:38 (22 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5865709
Default Alt Text
base32_tests.cpp (1 KB)
Attached To
rSTAGING Bitcoin ABC staging
Event Timeline
Log In to Comment