Add a common TestEventListener for the error queue.

Replicate the logic in the AllTests targets to dump the error queue on
failure. GTest seems to print to stdout, so we do here too.

BUG=129

Change-Id: I623b695fb9a474945834c3653728f54e5b122187
Reviewed-on: https://boringssl-review.googlesource.com/13623
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
This commit is contained in:
David Benjamin 2017-02-04 11:12:51 -05:00 committed by CQ bot account: commit-bot@chromium.org
parent f0d8e22078
commit 6b0edfb9e6
4 changed files with 25 additions and 3 deletions

View File

@ -86,7 +86,6 @@ TEST(DHTest, AllTests) {
!TestBadY() ||
!TestASN1() ||
!TestRFC3526()) {
ERR_print_errors_fp(stderr);
ADD_FAILURE() << "Tests failed.";
}
}

View File

@ -312,7 +312,6 @@ TEST(DSATest, AllTests) {
!TestVerify(fips_sig_extra, sizeof(fips_sig_extra), -1) ||
!TestVerify(fips_sig_bad_length, sizeof(fips_sig_bad_length), -1) ||
!TestVerify(fips_sig_bad_r, sizeof(fips_sig_bad_r), 0)) {
ERR_print_errors_fp(stderr);
ADD_FAILURE() << "Tests failed";
}
}

View File

@ -14,10 +14,35 @@
#include <gtest/gtest.h>
#include <stdio.h>
#include <openssl/err.h>
#include <openssl/crypto.h>
namespace {
class ErrorTestEventListener : public testing::EmptyTestEventListener {
public:
ErrorTestEventListener() {}
~ErrorTestEventListener() override {}
void OnTestEnd(const testing::TestInfo &test_info) override {
// If the test failed, print any errors left in the error queue.
if (test_info.result()->Failed()) {
ERR_print_errors_fp(stdout);
}
// Clean up the error queue for the next run.
ERR_clear_error();
}
};
} // namespace
int main(int argc, char **argv) {
CRYPTO_library_init();
testing::InitGoogleTest(&argc, argv);
testing::UnitTest::GetInstance()->listeners().Append(
new ErrorTestEventListener);
return RUN_ALL_TESTS();
}

View File

@ -3101,7 +3101,6 @@ TEST(SSLTest, AllTests) {
!ForEachVersion(TestSSLClearSessionResumption) ||
!ForEachVersion(TestAutoChain) ||
!ForEachVersion(TestSSLWriteRetry)) {
ERR_print_errors_fp(stderr);
ADD_FAILURE() << "Tests failed";
}
}