mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-16 06:54:37 +00:00
41625582a3
* tests/test-utils.h (emit_test_status_and_update_counters) (emit_test_summary): Declare ... * tests/test-utils.cc (emit_test_status_and_update_counters) (emit_test_summary): ... new functions. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
108 lines
2.6 KiB
C++
108 lines
2.6 KiB
C++
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
// -*- Mode: C++ -*-
|
|
//
|
|
// Copyright (C) 2013-2020 Red Hat, Inc.
|
|
|
|
#include <iostream>
|
|
#include "test-utils.h"
|
|
|
|
using std::string;
|
|
|
|
namespace abigail
|
|
{
|
|
namespace tests
|
|
{
|
|
|
|
/// Returns the absolute path to the source directory.
|
|
///
|
|
/// \return the absolute path tho the source directory.
|
|
const char*
|
|
get_src_dir()
|
|
{
|
|
#ifndef ABIGAIL_SRC_DIR
|
|
#error the macro ABIGAIL_SRC_DIR must be set at compile time
|
|
#endif
|
|
|
|
static __thread const char* s(ABIGAIL_SRC_DIR);
|
|
return s;
|
|
}
|
|
|
|
/// Returns the absolute path to the build directory.
|
|
///
|
|
/// \return the absolute path the build directory.
|
|
const char*
|
|
get_build_dir()
|
|
{
|
|
#ifndef ABIGAIL_BUILD_DIR
|
|
#error the macro ABIGAIL_BUILD_DIR must be set at compile time
|
|
#endif
|
|
|
|
static __thread const char* s(ABIGAIL_BUILD_DIR);
|
|
return s;
|
|
}
|
|
|
|
/// Emit test status on the standard output.
|
|
///
|
|
/// This function also increments passed, failed and total test
|
|
/// numbers accordingly.
|
|
///
|
|
/// @param test_passed indicated if the test succeeded or not.
|
|
///
|
|
/// @param test_cmd the test command that was executed. If the test
|
|
/// failed, the exact command is displayed.
|
|
///
|
|
/// @param passed_count the number of passed tests. This is going to
|
|
/// be incremented if the test passes.
|
|
///
|
|
/// @param failed_count the number of failed tests. This is going to
|
|
/// be incremented if the test fails.
|
|
///
|
|
/// @param total_count the total number of tests. This is going to be
|
|
/// incremented.
|
|
void
|
|
emit_test_status_and_update_counters(bool test_passed,
|
|
const std::string& test_cmd,
|
|
unsigned& passed_count,
|
|
unsigned& failed_count,
|
|
unsigned& total_count)
|
|
{
|
|
if (test_passed)
|
|
passed_count++;
|
|
else
|
|
{
|
|
std::cout << TEST_FAILURE_COLOR
|
|
<< "Test Failed: "
|
|
<< DEFAULT_TERMINAL_COLOR
|
|
<< test_cmd
|
|
<< std::endl;
|
|
failed_count++;
|
|
}
|
|
total_count++;
|
|
}
|
|
|
|
/// Emit the summary of the test.
|
|
///
|
|
/// @param total_count the total number of tests executed.
|
|
///
|
|
/// @param passed_count the number of tests that succeeded.
|
|
///
|
|
/// @param failed_count the number of tests that failed.
|
|
void
|
|
emit_test_summary(unsigned total_count,
|
|
unsigned passed_count,
|
|
unsigned failed_count)
|
|
{
|
|
if (failed_count)
|
|
std::cout << TEST_FAILURE_COLOR << "FAILURE!";
|
|
else
|
|
std::cout << TEST_SUCCESS_COLOR << "SUCCESS!";
|
|
std::cout << DEFAULT_TERMINAL_COLOR << "\n";
|
|
|
|
std::cout << "Total number of tests executed: " << total_count
|
|
<< " Number of tests PASSED: " << passed_count
|
|
<< ", Number of tests FAILED: " << failed_count
|
|
<< ".\n";
|
|
}
|
|
}//end namespace tests
|
|
}//end namespace abigail
|