summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xTestScripts/cryptest-coverage.sh12
-rw-r--r--datatest.cpp25
2 files changed, 15 insertions, 22 deletions
diff --git a/TestScripts/cryptest-coverage.sh b/TestScripts/cryptest-coverage.sh
index 92bc3fcf..1655afaa 100755
--- a/TestScripts/cryptest-coverage.sh
+++ b/TestScripts/cryptest-coverage.sh
@@ -18,9 +18,9 @@ then
fi
fi
-DEBUG_CXXFLAGS="-DDEBUG -DCRYPTOPP_COVERAGE -g3 -O1 -coverage"
-NOASM_CXXFLAGS="-DNDEBUG -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_COVERAGE -g3 -O1 -coverage"
-RELEASE_CXXFLAGS="-DNDEBUG -DCRYPTOPP_COVERAGE -g3 -O1 -coverage"
+DEBUG_CXXFLAGS="-DDEBUG -DCRYPTOPP_COVERAGE=1 -g3 -O1 -coverage"
+NOASM_CXXFLAGS="-DNDEBUG -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_COVERAGE=1 -g3 -O1 -coverage"
+RELEASE_CXXFLAGS="-DNDEBUG -DCRYPTOPP_COVERAGE=1 -g3 -O1 -coverage"
# Clean old artifacts
rm -rf TestCoverage/ >/dev/null
@@ -83,9 +83,9 @@ echo "**************************************************"
lcov --add-tracefile cryptest_debug.info --add-tracefile cryptest_noasm.info --add-tracefile cryptest_release.info -o cryptest.info
-lcov --remove cryptest.info "*/adhoc.*" -o cryptest.info
-lcov --remove cryptest.info "*/fips140.*" -o cryptest.info
-lcov --remove cryptest.info "*/*test.*" -o cryptest.info
+lcov --remove cryptest.info "*adhoc*.*" -o cryptest.info
+lcov --remove cryptest.info "*datatest*.*" -o cryptest.info
+lcov --remove cryptest.info "*fips140*.*" -o cryptest.info
lcov --remove cryptest.info "/usr/*" -o cryptest.info
genhtml -o TestCoverage/ -t "Crypto++ test coverage" --num-spaces 4 cryptest.info
diff --git a/datatest.cpp b/datatest.cpp
index f6543a32..fafa01e0 100644
--- a/datatest.cpp
+++ b/datatest.cpp
@@ -1132,10 +1132,8 @@ inline char LastChar(const std::string& str) {
return str[str.length()-1];
}
-// GetField parses the name/value pairs. The tricky part is the insertion operator
-// because Unix&Linux uses LF, OS X uses CR, and Windows uses CRLF. If this function
-// is modified, then run 'cryptest.exe tv rsa_pkcs1_1_5' as a test. Its the parser
-// file from hell. If it can be parsed without error, then things are likely OK.
+// GetField parses the name/value pairs. If this function is modified,
+// then run 'cryptest.exe tv all' to ensure parsing still works.
bool GetField(std::istream &is, std::string &name, std::string &value)
{
std::string line;
@@ -1144,7 +1142,7 @@ bool GetField(std::istream &is, std::string &name, std::string &value)
// ***** Name *****
while (Readline(is, line))
{
- // Eat whitespace and comments gracefully
+ // Eat empty lines and comments gracefully
if (line.empty() || line[0] == '#')
continue;
@@ -1153,7 +1151,7 @@ bool GetField(std::istream &is, std::string &name, std::string &value)
SignalTestError("Unable to parse name/value pair");
name = TrimSpace(line.substr(0, pos));
- line = TrimSpace(line.substr(pos + 1));
+ line = TrimSpace(line.substr(pos +1));
// Empty name is bad
if (name.empty())
@@ -1171,29 +1169,24 @@ bool GetField(std::istream &is, std::string &name, std::string &value)
do
{
- // Trim leading and trailing whitespace, including OS X and Windows
- // new lines. Don't parse comments here because there may be a line
- // continuation at the end.
+ continueLine = false;
+
+ // Trim leading and trailing whitespace. Don't parse comments
+ // here because there may be a line continuation at the end.
line = TrimSpace(line);
- continueLine = false;
if (line.empty())
continue;
- // Early out for immediate line continuation
- if (line[0] == '\\') {
- continueLine = true;
- continue;
- }
// Check end of line. It must be last character
if (LastChar(line) == '\\') {
continueLine = true;
line.erase(line.end()-1);
- line = TrimSpace(line);
}
// Re-trim after parsing
line = TrimComment(line);
+ line = TrimSpace(line);
if (line.empty())
continue;