summaryrefslogtreecommitdiff
path: root/validat1.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2018-01-12 19:20:32 -0500
committerJeffrey Walton <noloader@gmail.com>2018-01-12 19:20:32 -0500
commit29a15f6342fdcccd15b3c2ed3e1030a9423a4b3a (patch)
treebddfcee861d92bb553eba2fbcf1b25ad9ef16627 /validat1.cpp
parent746fd6a648baeeb5b32bc90d37d7dade63601445 (diff)
downloadcryptopp-git-29a15f6342fdcccd15b3c2ed3e1030a9423a4b3a.tar.gz
Add additional Encoder and Decoder alphabet test (GH #562)
Diffstat (limited to 'validat1.cpp')
-rw-r--r--validat1.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/validat1.cpp b/validat1.cpp
index 5022a3af..29525355 100644
--- a/validat1.cpp
+++ b/validat1.cpp
@@ -104,9 +104,11 @@ bool ValidateAll(bool thorough)
pass=TestHuffmanCodes() && pass;
// http://github.com/weidai11/cryptopp/issues/346
pass=TestASN1Parse() && pass;
- // Additional tests due to no coverage
+ // Always part of the self tests; call in Debug
pass=ValidateBaseCode() && pass;
+ // https://github.com/weidai11/cryptopp/issues/562
pass=ValidateEncoder() && pass;
+ // Additional tests due to no coverage
pass=TestCompressors() && pass;
pass=TestSharing() && pass;
pass=TestEncryptors() && pass;
@@ -3187,12 +3189,12 @@ void MyEncoder::IsolatedInitialize(const NameValuePairs &parameters)
const byte padding = '=';
const char *lineBreak = insertLineBreaks ? "\n" : "";
- char alphabet[64];
- memset(alphabet, '*', 64);
+ char stars[64];
+ memset(stars, '*', 64);
m_filter->Initialize(CombinedNameValuePairs(
parameters,
- MakeParameters(Name::EncodingLookupArray(), (const byte *)&alphabet[0], false)
+ MakeParameters(Name::EncodingLookupArray(), (const byte *)&stars[0], false)
(Name::PaddingByte(), padding)
(Name::GroupSize(), insertLineBreaks ? maxLineLength : 0)
(Name::Separator(), ConstByteArrayParameter(lineBreak))
@@ -3245,11 +3247,14 @@ bool ValidateEncoder()
int lookup[255];
const char alphabet[64+1] =
"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz01234576789*";
+ const char expected[] =
+ "ILcBMSgriDicmKmTi2oENCsuJTufN0yWjL1HnS8xKdaiOkeZK3gKock1ktmlo1q4LlsNPrAyGrG0gjO2gzQ5FQ==";
MyEncoder encoder;
std::string str1;
- AlgorithmParameters eparams = MakeParameters(Name::EncodingLookupArray(),(const byte*)alphabet);
+ AlgorithmParameters eparams = MakeParameters(Name::EncodingLookupArray(),(const byte*)alphabet)
+ (Name::InsertLineBreaks(), false);
encoder.IsolatedInitialize(eparams);
encoder.Detach(new StringSink(str1));
@@ -3267,7 +3272,7 @@ bool ValidateEncoder()
decoder.Put((const byte*) str1.data(), str1.size());
decoder.MessageEnd();
- bool pass = str2 == std::string(alphabet, 64);
+ bool pass = (str1 == std::string(expected)) && (str2 == std::string(alphabet, 64));
std::cout << (pass ? "passed:" : "FAILED:");
std::cout << " Encoder encode and Decoder decode\n";