From a3db589cb2f72e1a82d3a36b41cbab58368d1b30 Mon Sep 17 00:00:00 2001
From: Alex Duan <417921451@qq.com>
Date: Sun, 2 Feb 2025 18:05:27 +0800
Subject: [PATCH] fix: no use for CUnit
---
tools/taos-tools/deps/CUnit/CMakeLists.txt | 111 -
tools/taos-tools/deps/CUnit/CUnit.dsp | 160 -
tools/taos-tools/deps/CUnit/CUnit/.gitignore | 1 -
tools/taos-tools/deps/CUnit/CUnit/Automated.h | 102 -
.../deps/CUnit/CUnit/AutomatedJUnitXml.h | 27 -
tools/taos-tools/deps/CUnit/CUnit/Basic.h | 118 -
tools/taos-tools/deps/CUnit/CUnit/CUCurses.h | 62 -
tools/taos-tools/deps/CUnit/CUnit/CUError.h | 199 --
tools/taos-tools/deps/CUnit/CUnit/CUnit.h.in | 391 ---
tools/taos-tools/deps/CUnit/CUnit/CUnitCI.h | 138 -
.../deps/CUnit/CUnit/CUnitCITypes.h | 87 -
.../taos-tools/deps/CUnit/CUnit/CUnit_intl.h | 62 -
tools/taos-tools/deps/CUnit/CUnit/Console.h | 60 -
tools/taos-tools/deps/CUnit/CUnit/Jamfile | 42 -
tools/taos-tools/deps/CUnit/CUnit/Makefile.am | 33 -
.../deps/CUnit/CUnit/MessageHandlers.h | 93 -
tools/taos-tools/deps/CUnit/CUnit/MyMem.h | 106 -
tools/taos-tools/deps/CUnit/CUnit/Simple.h | 8 -
tools/taos-tools/deps/CUnit/CUnit/TestDB.h | 986 ------
tools/taos-tools/deps/CUnit/CUnit/TestRun.h | 535 ---
tools/taos-tools/deps/CUnit/CUnit/Util.h | 167 -
tools/taos-tools/deps/CUnit/CUnit/wxWidget.h | 50 -
tools/taos-tools/deps/CUnit/CUnitConfig.cmake | 4 -
tools/taos-tools/deps/CUnit/Jamfile | 159 -
tools/taos-tools/deps/CUnit/Makefile.am | 3 -
.../deps/CUnit/Sources/Automated/Automated.c | 766 ----
.../Sources/Automated/AutomatedJUnitXml.c | 344 --
.../deps/CUnit/Sources/Automated/Makefile.am | 6 -
.../deps/CUnit/Sources/Basic/Basic.c | 364 --
.../deps/CUnit/Sources/Basic/Makefile.am | 6 -
.../deps/CUnit/Sources/CI/CUnitCI.c | 180 -
.../deps/CUnit/Sources/Console/Console.c | 711 ----
.../deps/CUnit/Sources/Console/Makefile.am | 6 -
.../deps/CUnit/Sources/Curses/Curses.c | 1350 -------
.../deps/CUnit/Sources/Curses/Makefile.am | 6 -
.../deps/CUnit/Sources/Framework/CUError.c | 231 --
.../deps/CUnit/Sources/Framework/Makefile.am | 35 -
.../CUnit/Sources/Framework/MessageHandlers.c | 156 -
.../deps/CUnit/Sources/Framework/MyMem.c | 603 ----
.../deps/CUnit/Sources/Framework/TestDB.c | 2846 ---------------
.../deps/CUnit/Sources/Framework/TestRun.c | 3126 -----------------
.../deps/CUnit/Sources/Framework/Util.c | 646 ----
.../taos-tools/deps/CUnit/Sources/Makefile.am | 80 -
.../deps/CUnit/Sources/Test/Jamfile | 107 -
.../deps/CUnit/Sources/Test/Makefile.am | 13 -
.../deps/CUnit/Sources/Test/test_cunit.c | 155 -
.../deps/CUnit/Sources/Test/test_cunit.h | 103 -
tools/taos-tools/deps/CUnit/Sources/Win/Win.c | 55 -
tools/taos-tools/deps/CUnit/Sources/Win/Win.h | 50 -
.../deps/CUnit/Sources/Win/resource.h | 16 -
.../deps/CUnit/Sources/wxWidget/Makefile.am | 6 -
.../Sources/wxWidget/icon_suite_active.xpm | 76 -
.../wxWidget/icon_suite_active_open.xpm | 76 -
.../Sources/wxWidget/icon_suite_inactive.xpm | 40 -
.../wxWidget/icon_suite_inactive_open.xpm | 39 -
.../Sources/wxWidget/icon_test_active.xpm | 76 -
.../icon_test_active_suite_inactive.xpm | 75 -
.../Sources/wxWidget/icon_test_inactive.xpm | 50 -
.../icon_test_inactive_suite_inactive.xpm | 48 -
.../deps/CUnit/Sources/wxWidget/wxWidget.cpp | 1604 ---------
60 files changed, 17755 deletions(-)
delete mode 100644 tools/taos-tools/deps/CUnit/CMakeLists.txt
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit.dsp
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/.gitignore
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/Automated.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/AutomatedJUnitXml.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/Basic.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/CUCurses.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/CUError.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/CUnit.h.in
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/CUnitCI.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/CUnitCITypes.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/CUnit_intl.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/Console.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/Jamfile
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/MessageHandlers.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/MyMem.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/Simple.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/TestDB.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/TestRun.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/Util.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnit/wxWidget.h
delete mode 100644 tools/taos-tools/deps/CUnit/CUnitConfig.cmake
delete mode 100644 tools/taos-tools/deps/CUnit/Jamfile
delete mode 100644 tools/taos-tools/deps/CUnit/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Automated/Automated.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Automated/AutomatedJUnitXml.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Automated/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Basic/Basic.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Basic/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/CI/CUnitCI.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Console/Console.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Console/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Curses/Curses.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Curses/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Framework/CUError.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Framework/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Framework/MessageHandlers.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Framework/MyMem.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Framework/TestDB.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Framework/TestRun.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Framework/Util.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Test/Jamfile
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Test/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.h
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Win/Win.c
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Win/Win.h
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/Win/resource.h
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/Makefile.am
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active_open.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive_open.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active_suite_inactive.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive_suite_inactive.xpm
delete mode 100644 tools/taos-tools/deps/CUnit/Sources/wxWidget/wxWidget.cpp
diff --git a/tools/taos-tools/deps/CUnit/CMakeLists.txt b/tools/taos-tools/deps/CUnit/CMakeLists.txt
deleted file mode 100644
index e7b0f980ee..0000000000
--- a/tools/taos-tools/deps/CUnit/CMakeLists.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-project(CUnit C)
-
-set(CUNIT_VERSION_MAJOR 3)
-set(CUNIT_VERSION_MINOR 2)
-set(CUNIT_VERSION_PATCH 7)
-set(CUNIT_VERSION "${CUNIT_VERSION_MAJOR}.${CUNIT_VERSION_MINOR}.${CUNIT_VERSION_PATCH}")
-set(CUNIT_RELEASE cunity)
-
-if(NOT DEFINED CUNIT_DISABLE_TESTS)
- set(CUNIT_DISABLE_TESTS FALSE)
-endif()
-if(NOT DEFINED CUNIT_DISABLE_EXAMPLES)
- set(CUNIT_DISABLE_EXAMPLES FALSE)
-endif()
-
-
-
-cmake_minimum_required (VERSION 3.2)
-
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
- # repeat here so consumers get more warnings
- set(CMAKE_C_FLAGS " -Wall -Werror -Werror=strict-prototypes")
-endif()
-
-
-if (MSVC)
- # force assert() to work on release mode windows
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /UNDEBUG")
- message(STATUS "CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}")
-endif()
-
-FILE(GLOB headerfiles *.h)
-
-configure_file(CUnit/CUnit.h.in ${CMAKE_CURRENT_LIST_DIR}/CUnit/CUnit.h @ONLY)
-
-
-# Package Generator #######################################################
-set(CPACK_GENERATOR TGZ DEB)
-set(CPACK_PACKAGE_NAME "cunit")
-set(CPACK_PACKAGE_DESCRIPTION "CUnit")
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The CUnity fork of the CUnit unit test framework")
-set(CPACK_PACKAGE_VERSION_MAJOR "${CUNIT_VERSION_MAJOR}")
-set(CPACK_PACKAGE_VERSION_MINOR "${CUNIT_VERSION_MINOR}")
-set(CPACK_PACKAGE_VERSION_PATCH "${CUNIT_VERSION_PATCH}")
-set(CPACK_PACKAGE_VENDOR "CUnity")
-set(CPACK_PACKAGE_CONTACT "inorton@gmail.com")
-set(CPACK_PACKAGE_FILE_NAME "cunit-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
-include (CPack)
-
-FILE(GLOB Basic Sources/Basic/*.c)
-FILE(GLOB Automated Sources/Automated/*.c)
-FILE(GLOB Framework Sources/Framework/*.c)
-FILE(GLOB Console Sources/Console/*.c)
-FILE(GLOB Test Sources/Test/*.c)
-FILE(GLOB CI Sources/CI/*.c)
-
-set(cunit_srcs
- ${Basic}
- ${Automated}
- ${CI}
- ${Framework}
- ${Console}
- )
-
-set(cunit_libs "")
-
-if(UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES "Linux")
- list(APPEND cunit_libs m)
-endif()
-
-
-add_library(cunit STATIC ${cunit_srcs})
-target_link_libraries(cunit
- PUBLIC
- ${cunit_libs})
-target_include_directories(cunit
- PUBLIC
- $
- $)
-
-if(NOT CUNIT_DISABLE_TESTS)
- # for internal test program
- add_executable(cunit_test
- ${cunit_srcs}
- ${Test}
- )
-
- add_test(NAME
- cunit_test COMMAND $)
-
- target_include_directories(cunit_test
- PRIVATE
- Sources/Framework
- Sources/Test
- .
- )
- target_link_libraries(cunit_test
- ${cunit_libs})
- target_compile_definitions(cunit_test
- PRIVATE
- CUNIT_BUILD_TESTS
- MEMTRACE
- CUNIT_DO_NOT_DEFINE_UNLESS_BUILDING_TESTS)
-endif()
-
-if(CUNIT_CMAKE_INSTALL STREQUAL yes)
- install(DIRECTORY CUnit DESTINATION include/CUnit)
- install(TARGETS cunit DESTINATION lib EXPORT cunit-targets)
- install(EXPORT cunit-targets DESTINATION CUnit/share/cmake FILE CUnitTargets.cmake)
- install(FILES CUnitConfig.cmake DESTINATION CUnit/share/cmake)
-endif()
diff --git a/tools/taos-tools/deps/CUnit/CUnit.dsp b/tools/taos-tools/deps/CUnit/CUnit.dsp
deleted file mode 100644
index af980dfe21..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit.dsp
+++ /dev/null
@@ -1,160 +0,0 @@
-# Microsoft Developer Studio Project File - Name="CUnit" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=CUnit - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "CUnit.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "CUnit.mak" CFG="CUnit - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "CUnit - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "CUnit - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "CUnit - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Temp"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "./Headers" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_DELAYTEST" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "CUnit - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Temp"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "./Headers" /D "_LIB" /D VERSION=1.0.6B /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_DELAYTEST" /D "MEMTRACE" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "CUnit - Win32 Release"
-# Name "CUnit - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Sources\Automated\Automated.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sources\Basic\Basic.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sources\Console\Console.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sources\Framework\CUError.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sources\Framework\MyMem.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sources\Framework\TestDB.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sources\Framework\TestRun.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Sources\Framework\Util.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Headers\Automated.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\Basic.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\Console.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\CUError.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\CUnit.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\MyMem.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\TestDB.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\TestRun.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers\Util.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/tools/taos-tools/deps/CUnit/CUnit/.gitignore b/tools/taos-tools/deps/CUnit/CUnit/.gitignore
deleted file mode 100644
index 44c0e2f0e9..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-CUnit.h
\ No newline at end of file
diff --git a/tools/taos-tools/deps/CUnit/CUnit/Automated.h b/tools/taos-tools/deps/CUnit/CUnit/Automated.h
deleted file mode 100644
index 38615b052b..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/Automated.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Automated Interface (generates HTML Report Files).
- *
- * Feb 2002 Initial implementation (AK)
- *
- * 13-Feb-2002 Single interface to automated_run_tests. (AK)
- *
- * 20-Jul-2004 New interface, doxygen comments. (JDS)
- */
-
-/** @file
- * Automated testing interface with xml output (user interface).
- */
-/** @addtogroup Automated
- * @{
- */
-
-#ifndef CUNIT_AUTOMATED_H_SEEN
-#define CUNIT_AUTOMATED_H_SEEN
-
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/AutomatedJUnitXml.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CU_EXPORT void CU_automated_run_tests(void);
-/**<
- * Runs CUnit tests using the automated interface.
- * This function sets appropriate callback functions, initializes the
- * test output files, and calls the appropriate functions to list the
- * tests and run them. If an output file name root has not been
- * specified using CU_set_output_filename(), a generic root will be
- * applied. It is an error to call this function before the CUnit
- * test registry has been initialized (check by assertion).
- */
-
-CU_EXPORT CU_ErrorCode CU_list_tests_to_file(void);
-/**<
- * Generates an xml file containing a list of all tests in all suites
- * in the active registry. The output file will be named according to
- * the most recent call to CU_set_output_filename(), or a default if
- * not previously set.
- *
- * @return An error code indicating the error status.
- */
-
-CU_EXPORT void CU_set_output_filename(const char* szFilenameRoot);
-/**<
- * Sets the root file name for automated test output files.
- * The strings "-Listing.xml" and "-Results.xml" are appended to the
- * specified root to generate the filenames. If szFilenameRoot is
- * empty, the default root ("CUnitAutomated") is used.
- *
- * @param szFilenameRoot String containing root to use for file names.
- */
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-/** Deprecated (version 1). @deprecated Use CU_automated_run_tests(). */
-#define automated_run_tests() CU_automated_run_tests()
-/** Deprecated (version 1). @deprecated Use CU_set_output_filename(). */
-#define set_output_filename(x) CU_set_output_filename((x))
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-
-void CU_automated_package_name_set(const char *pName);
-
-const char *CU_automated_package_name_get(void);
-
-/**
- * Append the automated (xml) test event handlers
- */
-CU_EXPORT void CCU_automated_add_handlers(void);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_AUTOMATED_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/AutomatedJUnitXml.h b/tools/taos-tools/deps/CUnit/CUnit/AutomatedJUnitXml.h
deleted file mode 100644
index 193b1580c8..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/AutomatedJUnitXml.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * JUnit XML Output events
- */
-
-#ifndef CU_AUTOMATEDJUNITXML_H
-#define CU_AUTOMATEDJUNITXML_H
-
-#include "CUnit/CUnit.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CU_EXPORT void CU_automated_enable_junit_xml(CU_BOOL bFlag);
-
-CU_EXPORT CU_ErrorCode CU_initialize_junit_result_file(void);
-
-CU_EXPORT const char *CU_automated_get_junit_filename(void);
-
-CU_EXPORT void CU_automated_render_junit(char** outstr, const char* filename);
-
-CU_EXPORT void CU_automated_finish_junit(const char* filename);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif //CU_AUTOMATEDJUNITXML_H
diff --git a/tools/taos-tools/deps/CUnit/CUnit/Basic.h b/tools/taos-tools/deps/CUnit/CUnit/Basic.h
deleted file mode 100644
index 63b2a04fb7..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/Basic.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2004-2006 Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Interface for simple test runner.
- *
- * 11-Aug-2004 Initial implementation of basic test runner interface. (JDS)
- */
-
-/** @file
- * Basic interface with output to stdout.
- */
-/** @addtogroup Basic
- * @{
- */
-
-#ifndef CUNIT_BASIC_H_SEEN
-#define CUNIT_BASIC_H_SEEN
-
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Run modes for the basic interface. */
-typedef enum {
- CU_BRM_NORMAL = 0, /**< Normal mode - failures and run summary are printed [default]. */
- CU_BRM_SILENT, /**< Silent mode - no output is printed except framework error messages. */
- CU_BRM_VERBOSE /**< Verbose mode - maximum output of run details. */
-} CU_BasicRunMode;
-
-CU_EXPORT CU_ErrorCode CU_basic_run_tests(void);
-/**<
- * Runs all registered CUnit tests using the basic interface.
- * The default CU_BasicRunMode is used unless it has been
- * previously changed using CU_basic_set_mode(). The CUnit test
- * registry must have been initialized before calling this function.
- *
- * @return A CU_ErrorCode indicating the framework error condition, including
- * CUE_NOREGISTRY - Registry has not been initialized.
- */
-
-CU_EXPORT CU_ErrorCode CU_basic_run_suite(CU_pSuite pSuite);
-/**<
- * Runs all tests for a specific suite in the basic interface.
- * If pSuite is NULL, the function returns without taking any
- * action. The default CU_BasicRunMode is used unless it has
- * been changed using CU_basic_set_mode().
- *
- * @param pSuite The CU_Suite to run.
- * @return A CU_ErrorCode indicating the framework error condition, including
- * CUE_NOSUITE - pSuite was NULL.
- */
-
-CU_EXPORT CU_ErrorCode CU_basic_run_test(CU_pSuite pSuite, CU_pTest pTest);
-/**<
- * Runs a single test in a specific suite in the basic interface.
- * If pSuite or pTest is NULL, the function returns without
- * taking any action. The default CU_BasicRunMode is used unless
- * it has been changed using CU_basic_set_mode.
- *
- * @param pSuite The CU_Suite holding the CU_Test to run.
- * @param pTest The CU_Test to run.
- * @return A CU_ErrorCode indicating the framework error condition, including
- * CUE_NOSUITE - pSuite was NULL.
- * CUE_NOTEST - pTest was NULL.
- */
-
-CU_EXPORT void CU_basic_set_mode(CU_BasicRunMode mode);
-/**< Sets the run mode for the basic interface.
- * @param mode The new CU_BasicRunMode for subsequent test
- * runs using the basic interface.
- */
-
-CU_EXPORT CU_BasicRunMode CU_basic_get_mode(void);
-/**< Retrieves the current run mode for the basic interface.
- * @return The current CU_BasicRunMode setting for test
- * runs using the basic interface.
- */
-
-CU_EXPORT void CU_basic_show_failures(CU_pFailureRecord pFailure);
-/**<
- * Prints a summary of run failures to stdout.
- * This is provided for user convenience upon request, and does
- * not take into account the current run mode. The failures are
- * printed to stdout independent of the most recent run mode.
- *
- * @param pFailure List of CU_pFailureRecord's to output.
- */
-
-/**
- * Append the basic (stdout) test event handlers
- */
-CU_EXPORT void CCU_basic_add_handlers(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_BASIC_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/CUCurses.h b/tools/taos-tools/deps/CUnit/CUnit/CUCurses.h
deleted file mode 100644
index 3294f8b078..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/CUCurses.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Contains Interface for curses Run tests.
- *
- * Aug 2001 Initial implementation. (AK)
- *
- * 09/Aug/2001 Single interface to Console_run_tests. (AK)
- *
- * 18-Jul-2004 New interface. (JDS)
- *
- * 21-Apr-2005 Changed header name to avoid clash with system curses.h. (JDS)
- */
-
-/** @file
- * Curses testing interface with interactive output (user interface).
- */
-/** @addtogroup Curses
- * @{
- */
-
-#ifndef CUNIT_CURSES_H_SEEN
-#define CUNIT_CURSES_H_SEEN
-
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CU_EXPORT void CU_curses_run_tests(void);
-/**< Run registered CUnit tests using the curses interface. */
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-/** Deprecated (version 1). @deprecated Use CU_curses_run_tests(). */
-#define curses_run_tests() CU_curses_run_tests()
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_CURSES_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/CUError.h b/tools/taos-tools/deps/CUnit/CUnit/CUError.h
deleted file mode 100644
index 14f9db7baf..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/CUError.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Contains CUnit error codes which can be used externally.
- *
- * Aug 2001 Initial implementation. (AK)
- *
- * 02/Oct/2001 Added proper Eror Codes. (AK)
- *
- * 13-Oct-2001 Added Error Codes for Duplicate TestGroup and Test. (AK)
- *
- * 03-Aug-2004 Converted error code macros to an enum, doxygen comments, moved
- * error handing code here, changed file name from Errno.h, added
- * error codes for file open errors, added error action selection. (JDS)
- *
- * 05-Sep-2004 Added internal test interface. (JDS)
- */
-
-/** @file
- * Error handling functions (user interface).
- * CUnit uses a simple (and conventional) error handling strategy.
- * Functions that can generate errors set (and usually return) an
- * error code to indicate the run status. The error code can be
- * inspected using the CU_get_error() function. A descriptive
- * error message can be retrieved using CU_get_error_msg().
- */
-/** @addtogroup Framework
- * @{
- */
-
-#ifndef CUNIT_CUERROR_H_SEEN
-#define CUNIT_CUERROR_H_SEEN
-
-#include
-
-/*------------------------------------------------------------------------*/
-/** CUnit error codes.
- * If codes are added or removed, be sure to make a change to the
- * error messages in CUError.c/get_error_desc().
- * @see CU_set_error()
- * @see CU_get_error()
- * @see CU_get_error_msg()
- */
-typedef enum {
- /* basic errors */
- CUE_SUCCESS = 0, /**< No error condition. */
- CUE_NOMEMORY = 1, /**< Memory allocation failed. */
-
- /* Test Registry Level Errors */
- CUE_NOREGISTRY = 10, /**< Test registry not initialized. */
- CUE_REGISTRY_EXISTS = 11, /**< Attempt to CU_set_registry() without CU_cleanup_registry(). */
-
- /* Test Suite Level Errors */
- CUE_NOSUITE = 20, /**< A required CU_pSuite pointer was NULL. */
- CUE_NO_SUITENAME = 21, /**< Required CU_Suite name not provided. */
- CUE_SINIT_FAILED = 22, /**< Suite initialization failed. */
- CUE_SCLEAN_FAILED = 23, /**< Suite cleanup failed. */
- CUE_DUP_SUITE = 24, /**< Duplicate suite name not allowed. */
- CUE_SUITE_INACTIVE = 25, /**< Test run initiated for an inactive suite. */
-
- /* Test Case Level Errors */
- CUE_NOTEST = 30, /**< A required CU_pTest or CU_TestFunc pointer was NULL. */
- CUE_NO_TESTNAME = 31, /**< Required CU_Test name not provided. */
- CUE_DUP_TEST = 32, /**< Duplicate test case name not allowed. */
- CUE_TEST_NOT_IN_SUITE = 33, /**< Test not registered in specified suite. */
- CUE_TEST_INACTIVE = 34, /**< Test run initiated for an inactive test. */
-
- /* File handling errors */
- CUE_FOPEN_FAILED = 40, /**< An error occurred opening a file. */
- CUE_FCLOSE_FAILED = 41, /**< An error occurred closing a file. */
- CUE_BAD_FILENAME = 42, /**< A bad filename was requested (NULL, empty, nonexistent, etc.). */
- CUE_WRITE_ERROR = 43 /**< An error occurred during a write to a file. */
-} CU_ErrorCode;
-
-/*------------------------------------------------------------------------*/
-/** CUnit error action codes.
- * These are used to set the action desired when an error
- * condition is detected in the CUnit framework.
- * @see CU_set_error_action()
- * @see CU_get_error_action()
- */
-typedef enum CU_ErrorAction {
- CUEA_IGNORE, /**< Runs should be continued when an error condition occurs (if possible). */
- CUEA_FAIL, /**< Runs should be stopped when an error condition occurs. */
- CUEA_ABORT /**< The application should exit() when an error conditions occurs. */
-} CU_ErrorAction;
-
-/* Error handling & reporting functions. */
-
-#include "CUnit/CUnit.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CU_EXPORT CU_ErrorCode CU_get_error(void);
-/**<
- * Retrieves the current CUnit framework error code.
- * CUnit implementation functions set the error code to indicate the
- * status of the most recent operation. In general, the CUnit functions
- * will clear the code to CUE_SUCCESS, then reset it to a specific error
- * code if an exception condition is encountered. Some functions
- * return the code, others leave it to the user to inspect if desired.
- *
- * @return The current error condition code.
- * @see CU_get_error_msg()
- * @see CU_ErrorCode
- */
-
-CU_EXPORT const char* CU_get_error_msg(void);
-/**<
- * Retrieves a message corresponding to the current framework error code.
- * CUnit implementation functions set the error code to indicate the
- * of the most recent operation. In general, the CUnit functions will
- * clear the code to CUE_SUCCESS, then reset it to a specific error
- * code if an exception condition is encountered. This function allows
- * the user to retrieve a descriptive error message corresponding to the
- * error code set by the last operation.
- *
- * @return A message corresponding to the current error condition.
- * @see CU_get_error()
- * @see CU_ErrorCode
- */
-
-CU_EXPORT void CU_set_error_action(CU_ErrorAction action);
-/**<
- * Sets the action to take when a framework error condition occurs.
- * This function should be used to specify the action to take
- * when an error condition is encountered. The default action is
- * CUEA_IGNORE, which results in errors being ignored and test runs
- * being continued (if possible). A value of CUEA_FAIL causes test
- * runs to stop as soon as an error condition occurs, while
- * CU_ABORT causes the application to exit on any error.
- *
- * @param action CU_ErrorAction indicating the new error action.
- * @see CU_get_error_action()
- * @see CU_set_error()
- * @see CU_ErrorAction
- */
-
-CU_EXPORT CU_ErrorAction CU_get_error_action(void);
-/**<
- * Retrieves the current framework error action code.
- *
- * @return The current error action code.
- * @see CU_set_error_action()
- * @see CU_set_error()
- * @see CU_ErrorAction
- */
-
-#ifdef CUNIT_BUILD_TESTS
-void test_cunit_CUError(void);
-#endif
-
-/* Internal function - users should not generally call this function */
-CU_EXPORT void CU_set_error(CU_ErrorCode error);
-/**<
- * Sets the CUnit framework error code.
- * This function is used internally by CUnit implementation functions
- * when an error condition occurs within the framework. It should
- * not generally be called by user code. NOTE that if the current
- * error action is CUEA_ABORT, then calling this function will
- * result in exit() being called for the current application.
- *
- * @param error CU_ErrorCode indicating the current error condition.
- * @see CU_get_error()
- * @see CU_get_error_msg()
- * @see CU_ErrorCode
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-/** Deprecated (version 1). @deprecated Use CU_get_error_msg(). */
-#define get_error() CU_get_error_msg()
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-#endif /* CUNIT_CUERROR_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/CUnit.h.in b/tools/taos-tools/deps/CUnit/CUnit/CUnit.h.in
deleted file mode 100644
index e1c10beae9..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/CUnit.h.in
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * ASSERT Macro definitions and general CUnit configuration definitions.
- *
- * 09/Aug/2001 ASSERT definitions. (AK)
- *
- * 12/Mar/2003 New Assert definitions. (AK)
- *
- * 27/Jul/2003 Modified ASSERT_XXX Macro definitions. (AK)
- *
- * 15-Jul-2004 New interface, changed action on assert failure to not
- * return, provided _FATAL versions of assertions to return
- * from test function on failure. (JDS)
- *
- * 01-Sep-2004 Modified assertions for setjmp/longjmp mechanism of
- * aborting test runs, added CU_FAIL and CU_PASS macros. (JDS)
- *
- * 07-May-2005 Added CU_ prefix to remaining CUnit defines (BOOL, TRUE,
- * FALSE, MAX_...). Added CU_UNREFERENCED_PARAMETER() define. (JDS)
- */
-
-/** @file
- * Basic CUnit include file for user and system code.
- * Defines macros for assertions for use in user test cases.
- * Basic system macro definitions also appear here.
- */
-/** @addtogroup Framework
- * @{
- */
-
-#ifndef CUNIT_CUNIT_H_SEEN
-#define CUNIT_CUNIT_H_SEEN
-
-#include
-#include
-
-/** CUnit version number. */
-#define CU_VERSION "@CUNIT_VERSION@-@CUNIT_RELEASE@"
-
-/* Max string lengths for names (includes terminating NULL. */
-/** Maximum length of a test name string. */
-#define CU_MAX_TEST_NAME_LENGTH 256
-/** Maximim length of a suite name string. */
-#define CU_MAX_SUITE_NAME_LENGTH 256
-
-/* Global type Definitions to be used for boolean operators. */
-#ifndef CU_BOOL
- /** Boolean type for CUnit use. */
- #define CU_BOOL int
-#endif
-
-#ifndef CU_TRUE
- /** Boolean TRUE for CUnit use. */
- #define CU_TRUE 1
-#endif
-
-#ifndef CU_FALSE
- /** Boolean FALSE for CUnit use. */
- #define CU_FALSE 0
-#endif
-
-#ifndef CU_UNREFERENCED_PARAMETER
- /** Consistent approach to referencing unused parameters. */
- #define CU_UNREFERENCED_PARAMETER(x) (void)x
-#endif
-
-#ifndef CU_MAX
-# define CU_MAX(a,b) (((a) >= (b)) ? (a) : (b))
-#endif
-
-#ifndef CU_MIN
-# define CU_MIN(a,b) (((a) >= (b)) ? (b) : (a))
-#endif
-
-#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) || defined(__WIN32__)
-# ifdef CU_DLL
-# ifdef CU_BUILD_DLL
-# define CU_EXPORT __declspec(dllexport)
-# else
-# define CU_EXPORT __declspec(dllimport)
-# endif
-# else
-# define CU_EXPORT
-# endif
-# if _MSC_VER < 1900
-# define snprintf _snprintf
-# endif
-#else
-# define CU_EXPORT
-#endif /* WIN32 */
-
-#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-# define CU_FUNC __func__
-#elif defined(__cplusplus) && (__cplusplus >= 201103)
-# define CU_FUNC __func__
-#else
-# define CU_FUNC ""
-#endif
-
-#include "CUnit/CUError.h"
-#include "CUnit/TestDB.h" /* not needed here - included for user convenience */
-#include "CUnit/TestRun.h" /* not needed here - include (after BOOL define) for user convenience */
-
-/** Record a pass condition without performing a logical test. */
-#define CU_PASS(msg) \
- { CU_assertImplementation(CU_TRUE, __LINE__, ("CU_PASS(" #msg ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Simple assertion.
- * Reports failure with no other action.
- */
-#define CU_ASSERT(value) \
- { CU_assertImplementation((value), __LINE__, #value, __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Simple assertion.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_FATAL(value) \
- { CU_assertImplementation((value), __LINE__, #value, __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Simple assertion.
- * Reports failure with no other action.
- */
-#define CU_TEST(value) \
- { CU_assertImplementation((value), __LINE__, #value, __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Simple assertion.
- * Reports failure and causes test to abort.
- */
-#define CU_TEST_FATAL(value) \
- { CU_assertImplementation((value), __LINE__, #value, __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Record a failure without performing a logical test. */
-#define CU_FAIL(msg) \
- { CU_assertImplementation(CU_FALSE, __LINE__, ("CU_FAIL(" #msg ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Record a failure without performing a logical test, and abort test. */
-#define CU_FAIL_FATAL(msg) \
- { CU_assertImplementation(CU_FALSE, __LINE__, ("CU_FAIL_FATAL(" #msg ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that value is CU_TRUE.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_TRUE(value) \
- { CU_assertImplementation((value), __LINE__, ("CU_ASSERT_TRUE(" #value ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that value is CU_TRUE.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_TRUE_FATAL(value) \
- { CU_assertImplementation((value), __LINE__, ("CU_ASSERT_TRUE_FATAL(" #value ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that value is CU_FALSE.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_FALSE(value) \
- { CU_assertImplementation(!(value), __LINE__, ("CU_ASSERT_FALSE(" #value ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that value is CU_FALSE.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_FALSE_FATAL(value) \
- { CU_assertImplementation(!(value), __LINE__, ("CU_ASSERT_FALSE_FATAL(" #value ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that actual == expected.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_EQUAL(actual, expected) \
- { CU_assertImplementation(((actual) == (expected)), __LINE__, ("CU_ASSERT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that actual == expected.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_EQUAL_FATAL(actual, expected) \
- { CU_assertImplementation(((actual) == (expected)), __LINE__, ("CU_ASSERT_EQUAL_FATAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that actual != expected.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_NOT_EQUAL(actual, expected) \
- { CU_assertImplementation(((actual) != (expected)), __LINE__, ("CU_ASSERT_NOT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that actual != expected.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_NOT_EQUAL_FATAL(actual, expected) \
- { CU_assertImplementation(((actual) != (expected)), __LINE__, ("CU_ASSERT_NOT_EQUAL_FATAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that pointers actual == expected.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_PTR_EQUAL(actual, expected) \
- { CU_assertImplementation(((const void*)(actual) == (const void*)(expected)), __LINE__, ("CU_ASSERT_PTR_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that pointers actual == expected.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_PTR_EQUAL_FATAL(actual, expected) \
- { CU_assertImplementation(((const void*)(actual) == (const void*)(expected)), __LINE__, ("CU_ASSERT_PTR_EQUAL_FATAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that pointers actual != expected.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_PTR_NOT_EQUAL(actual, expected) \
- { CU_assertImplementation(((const void*)(actual) != (const void*)(expected)), __LINE__, ("CU_ASSERT_PTR_NOT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that pointers actual != expected.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_PTR_NOT_EQUAL_FATAL(actual, expected) \
- { CU_assertImplementation(((const void*)(actual) != (const void*)(expected)), __LINE__, ("CU_ASSERT_PTR_NOT_EQUAL_FATAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that pointer value is NULL.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_PTR_NULL(value) \
- { CU_assertImplementation((NULL == (const void*)(value)), __LINE__, ("CU_ASSERT_PTR_NULL(" #value")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that pointer value is NULL.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_PTR_NULL_FATAL(value) \
- { CU_assertImplementation((NULL == (const void*)(value)), __LINE__, ("CU_ASSERT_PTR_NULL_FATAL(" #value")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that pointer value is not NULL.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_PTR_NOT_NULL(value) \
- { CU_assertImplementation((NULL != (const void*)(value)), __LINE__, ("CU_ASSERT_PTR_NOT_NULL(" #value")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that pointer value is not NULL.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_PTR_NOT_NULL_FATAL(value) \
- { CU_assertImplementation((NULL != (const void*)(value)), __LINE__, ("CU_ASSERT_PTR_NOT_NULL_FATAL(" #value")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that string actual == expected.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_STRING_EQUAL(actual, expected) \
- { CU_assertImplementation(!(strcmp((const char*)(actual), (const char*)(expected))), __LINE__, ("CU_ASSERT_STRING_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that string actual == expected.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_STRING_EQUAL_FATAL(actual, expected) \
- { CU_assertImplementation(!(strcmp((const char*)(actual), (const char*)(expected))), __LINE__, ("CU_ASSERT_STRING_EQUAL_FATAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that string actual != expected.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_STRING_NOT_EQUAL(actual, expected) \
- { CU_assertImplementation((strcmp((const char*)(actual), (const char*)(expected))), __LINE__, ("CU_ASSERT_STRING_NOT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that string actual != expected.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_STRING_NOT_EQUAL_FATAL(actual, expected) \
- { CU_assertImplementation((strcmp((const char*)(actual), (const char*)(expected))), __LINE__, ("CU_ASSERT_STRING_NOT_EQUAL_FATAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that string actual == expected with length specified.
- * The comparison is limited to count characters.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_NSTRING_EQUAL(actual, expected, count) \
- { CU_assertImplementation(!(strncmp((const char*)(actual), (const char*)(expected), (size_t)(count))), __LINE__, ("CU_ASSERT_NSTRING_EQUAL(" #actual "," #expected "," #count ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that string actual == expected with length specified.
- * The comparison is limited to count characters.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_NSTRING_EQUAL_FATAL(actual, expected, count) \
- { CU_assertImplementation(!(strncmp((const char*)(actual), (const char*)(expected), (size_t)(count))), __LINE__, ("CU_ASSERT_NSTRING_EQUAL_FATAL(" #actual "," #expected "," #count ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that string actual != expected with length specified.
- * The comparison is limited to count characters.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_NSTRING_NOT_EQUAL(actual, expected, count) \
- { CU_assertImplementation((strncmp((const char*)(actual), (const char*)(expected), (size_t)(count))), __LINE__, ("CU_ASSERT_NSTRING_NOT_EQUAL(" #actual "," #expected "," #count ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that string actual != expected with length specified.
- * The comparison is limited to count characters.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_NSTRING_NOT_EQUAL_FATAL(actual, expected, count) \
- { CU_assertImplementation((strncmp((const char*)(actual), (const char*)(expected), (size_t)(count))), __LINE__, ("CU_ASSERT_NSTRING_NOT_EQUAL_FATAL(" #actual "," #expected "," #count ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that double actual == expected within the specified tolerance.
- * If actual is within granularity of expected, the assertion passes.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_DOUBLE_EQUAL(actual, expected, granularity) \
- { CU_assertImplementation(((fabs((double)(actual) - (expected)) <= fabs((double)(granularity)))), __LINE__, ("CU_ASSERT_DOUBLE_EQUAL(" #actual "," #expected "," #granularity ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that double actual == expected within the specified tolerance.
- * If actual is within granularity of expected, the assertion passes.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_DOUBLE_EQUAL_FATAL(actual, expected, granularity) \
- { CU_assertImplementation(((fabs((double)(actual) - (expected)) <= fabs((double)(granularity)))), __LINE__, ("CU_ASSERT_DOUBLE_EQUAL_FATAL(" #actual "," #expected "," #granularity ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-/** Asserts that double actual != expected within the specified tolerance.
- * If actual is within granularity of expected, the assertion fails.
- * Reports failure with no other action.
- */
-#define CU_ASSERT_DOUBLE_NOT_EQUAL(actual, expected, granularity) \
- { CU_assertImplementation(((fabs((double)(actual) - (expected)) > fabs((double)(granularity)))), __LINE__, ("CU_ASSERT_DOUBLE_NOT_EQUAL(" #actual "," #expected "," #granularity ")"), __FILE__, CU_FUNC, CU_FALSE); }
-
-/** Asserts that double actual != expected within the specified tolerance.
- * If actual is within granularity of expected, the assertion fails.
- * Reports failure and causes test to abort.
- */
-#define CU_ASSERT_DOUBLE_NOT_EQUAL_FATAL(actual, expected, granularity) \
- { CU_assertImplementation(((fabs((double)(actual) - (expected)) > fabs((double)(granularity)))), __LINE__, ("CU_ASSERT_DOUBLE_NOT_EQUAL_FATAL(" #actual "," #expected "," #granularity ")"), __FILE__, CU_FUNC, CU_TRUE); }
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-
-#ifndef BOOL
- /** Deprecated (version 2.0-2). @deprecated Use CU_BOOL. */
- #define BOOL int
-#endif
-
-#ifndef TRUE
- /** Deprecated (version 2.0-2). @deprecated Use CU_TRUE. */
- #define TRUE 1
-#endif
-
-#ifndef FALSE
- /** Deprecated (version 2.0-2). @deprecated Use CU_FALSE. */
- #define FALSE 0
-#endif
-
-/** Deprecated (version 2.0-2). @deprecated Use CU_MAX_TEST_NAME_LENGTH. */
-#define MAX_TEST_NAME_LENGTH 256
-/** Deprecated (version 2.0-2). @deprecated Use CU_MAX_SUITE_NAME_LENGTH. */
-#define MAX_SUITE_NAME_LENGTH 256
-
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_FATAL. */
-#define ASSERT(value) { if (FALSE == (int)(value)) { CU_assertImplementation((BOOL)value, __LINE__, #value, __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_TRUE_FATAL. */
-#define ASSERT_TRUE(value) { if (FALSE == (value)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_TRUE(" #value ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_FALSE_FATAL. */
-#define ASSERT_FALSE(value) { if (FALSE != (value)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_FALSE(" #value ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_EQUAL_FATAL. */
-#define ASSERT_EQUAL(actual, expected) { if ((actual) != (expected)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_NOT_EQUAL_FATAL. */
-#define ASSERT_NOT_EQUAL(actual, expected) { if ((void*)(actual) == (void*)(expected)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_NOT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_PTR_EQUAL_FATAL. */
-#define ASSERT_PTR_EQUAL(actual, expected) { if ((void*)(actual) != (void*)(expected)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_PTR_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_PTR_NOT_EQUAL_FATAL. */
-#define ASSERT_PTR_NOT_EQUAL(actual, expected) { if ((void*)(actual) == (void*)(expected)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_PTR_NOT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_PTR_NULL_FATAL. */
-#define ASSERT_PTR_NULL(value) { if (NULL != (void*)(value)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_PTR_NULL(" #value")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_PTR_NOT_NULL_FATAL. */
-#define ASSERT_PTR_NOT_NULL(value) { if (NULL == (void*)(value)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_PTR_NOT_NULL(" #value")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_STRING_EQUAL_FATAL. */
-#define ASSERT_STRING_EQUAL(actual, expected) { if (strcmp((const char*)actual, (const char*)expected)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_STRING_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_STRING_NOT_EQUAL_FATAL. */
-#define ASSERT_STRING_NOT_EQUAL(actual, expected) { if (!strcmp((const char*)actual, (const char*)expected)) { CU_assertImplementation(TRUE, __LINE__, ("ASSERT_STRING_NOT_EQUAL(" #actual "," #expected ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_NSTRING_EQUAL_FATAL. */
-#define ASSERT_NSTRING_EQUAL(actual, expected, count) { if (strncmp((const char*)actual, (const char*)expected, (size_t)count)) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_NSTRING_EQUAL(" #actual "," #expected "," #count ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_NSTRING_NOT_EQUAL_FATAL. */
-#define ASSERT_NSTRING_NOT_EQUAL(actual, expected, count) { if (!strncmp((const char*)actual, (const char*)expected, (size_t)count)) { CU_assertImplementation(TRUE, __LINE__, ("ASSERT_NSTRING_NOT_EQUAL(" #actual "," #expected "," #count ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_DOUBLE_EQUAL_FATAL. */
-#define ASSERT_DOUBLE_EQUAL(actual, expected, granularity) { if ((fabs((double)actual - expected) > fabs((double)granularity))) { CU_assertImplementation(FALSE, __LINE__, ("ASSERT_DOUBLE_EQUAL(" #actual "," #expected "," #granularity ")"), __FILE__, CU_FUNC, FALSE); return; }}
-/** Deprecated (version 1). @deprecated Use CU_ASSERT_DOUBLE_NOT_EQUAL_FATAL. */
-#define ASSERT_DOUBLE_NOT_EQUAL(actual, expected, granularity) { if ((fabs((double)actual - expected) <= fabs((double)granularity))) { CU_assertImplementation(TRUE, __LINE__, ("ASSERT_DOUBLE_NOT_EQUAL(" #actual "," #expected "," #granularity ")"), __FILE__, CU_FUNC, FALSE); return; }}
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-#endif /* CUNIT_CUNIT_H_SEEN */
-
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/CUnitCI.h b/tools/taos-tools/deps/CUnit/CUnit/CUnitCI.h
deleted file mode 100644
index cd1c09a84d..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/CUnitCI.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * Easy setup of CUnit tests
- */
-
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- * Copyright (C) 2018 Ian Norton
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/** @file
- * Automated testing interface with JUnit XML and console output
- *
- */
-/** @addtogroup CI
- * @{
- */
-
-#ifndef CCU_CUNITCI_H
-#define CCU_CUNITCI_H
-
-#include "CUnit/CUnitCITypes.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Run all registered tests and save a junit xml report in the current working directory
- */
-#define CU_CI_RUN_SUITES() \
- CU_CI_main(argc, argv)
-
-/**
- * Set the current suite including any setup/teardown functions
- *
- * @param name the suite name
- * @param init suite setup function
- * @param clean suite teardown function
- * @param setup test setup function
- * @param teardown test teardown function
- */
-#define CU_CI_DEFINE_SUITE(name, init, clean, setup, teardown) \
- CU_CI_add_suite(name, init, clean, setup, teardown)
-
-/**
- * Add a new test to the current suite.
- *
- * @param test the test function to call.
- */
-#define CUNIT_CI_TEST(test) \
- CU_CI_add_test(#test, test)
-
-#define CU_SUITE_SETUP_FUNCNAME __CUnit_suite_setup
-#define CU_SUITE_TEARDOWN_FUNCNAME __CUnit_suite_teardown
-#define CU_TEST_SETUP_FUNCNAME __CUnit_test_setup
-#define CU_TEST_TEARDOWN_FUNCNAME __CUnit_test_teardown
-
-static CU_InitializeFunc __cu_suite_setup;
-static CU_CleanupFunc __cu_suite_teardown;
-static CU_SetUpFunc __cu_test_setup;
-static CU_TearDownFunc __cu_test_teardown;
-
-/**
- * Define a suite setup routine
- */
-#define CU_SUITE_SETUP() static int CU_SUITE_SETUP_FUNCNAME(void); \
- static CU_InitializeFunc __cu_suite_setup = &CU_SUITE_SETUP_FUNCNAME; \
- static int CU_SUITE_SETUP_FUNCNAME(void)
-
-/**
- * Define a suite cleanup routine
- */
-#define CU_SUITE_TEARDOWN() static int CU_SUITE_TEARDOWN_FUNCNAME(void); \
- static CU_CleanupFunc __cu_suite_teardown= &CU_SUITE_TEARDOWN_FUNCNAME; \
- static int CU_SUITE_TEARDOWN_FUNCNAME(void)
-
-/**
- * Define a pre test setup routine
- */
-#define CU_TEST_SETUP() static void CU_TEST_SETUP_FUNCNAME(void); \
- static CU_SetUpFunc __cu_test_setup= &CU_TEST_SETUP_FUNCNAME; \
- static void CU_TEST_SETUP_FUNCNAME(void)
-
-/**
- * Define a post test cleanup routine
- */
-#define CU_TEST_TEARDOWN() static void CU_TEST_TEARDOWN_FUNCNAME(void); \
- static CU_TearDownFunc __cu_test_teardown= &CU_TEST_TEARDOWN_FUNCNAME; \
- static void CU_TEST_TEARDOWN_FUNCNAME(void)
-
-/**
- * Run the given tests as part of a single exe suite.
- */
-#define CUNIT_CI_RUN(_suitename, ...) \
-int main(int argc, char** argv) { \
- CU_CI_add_suite(_suitename, \
- __cu_suite_setup, \
- __cu_suite_teardown, \
- __cu_test_setup, \
- __cu_test_teardown); \
- __VA_ARGS__ ; \
- return CU_CI_main(argc, argv); }
-
-
-/**
- * Disable CUCI setup/teardown and silence compiler warnings about unused variables.
- */
-#define CUNIT_CI_CLEAR_SETUPS() \
-do { \
- __cu_suite_setup = NULL; \
- __cu_suite_teardown = NULL; \
- __cu_test_setup = NULL; \
- __cu_test_teardown = NULL; \
- (void)(__cu_suite_setup || __cu_suite_teardown || __cu_test_setup || __cu_test_teardown );\
-} while (0)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // CCU_CUNITCI_H
-/** @} */
\ No newline at end of file
diff --git a/tools/taos-tools/deps/CUnit/CUnit/CUnitCITypes.h b/tools/taos-tools/deps/CUnit/CUnit/CUnitCITypes.h
deleted file mode 100644
index 460c4f9b42..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/CUnitCITypes.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Easy setup of CUnit tests
- */
-
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- * Copyright (C) 2018 Ian Norton
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/** @file
- * Automated testing interface with JUnit XML and console output
- *
- */
-/** @addtogroup CI
- * @{
- */
-
-#ifndef CCU_CUNITCI_TYPES_H
-#define CCU_CUNITCI_TYPES_H
-
-#include "CUnit/CUnit.h"
-#include "CUnit/Util.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Obtain the command line arguments and count that was passed to CU_CI_main()
- * @param argc
- * @param argv
- */
-CU_EXPORT void CU_CI_args(int *argc, char*** argv);
-
-/**
- * Main Entry point to CI mode of CUnit
- * @param argc command line args count
- * @param argv vector of command line args
- * @return non-zero on test failure
- */
-CU_EXPORT int CU_CI_main(int argc, char** argv);
-
-/**
- * Add a suite to CUnit CI
- * @param name suite name
- * @param init optional suite setup function
- * @param clean optional suite cleanup function
- * @param setup optional per test setup function
- * @param teardown optional per test cleanup function
- */
-CU_EXPORT void CU_CI_add_suite(
- const char* name,
- CU_InitializeFunc init,
- CU_CleanupFunc clean,
- CU_SetUpFunc setup,
- CU_TearDownFunc teardown
-);
-
-/**
- * Add a test to the current CUnit CI suite
- * @param name test name
- * @param test test function
- */
-CU_EXPORT void CU_CI_add_test(const char* name, CU_TestFunc test);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // CCU_CUNITCI_TYPES_H
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/CUnit_intl.h b/tools/taos-tools/deps/CUnit/CUnit/CUnit_intl.h
deleted file mode 100644
index 813917b25c..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/CUnit_intl.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2006 Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Internationalization support
- *
- * 05-May-2006 Initial implementation. (JDS)
- */
-
-/** @file
- * Internal CUnit header supporting internationalization of
- * CUnit framework & interfaces.
- */
-/** @addtogroup Framework
- * @{
- */
-
-#ifndef CUNIT_CUNIT_INTL_H_SEEN
-#define CUNIT_CUNIT_INTL_H_SEEN
-
-/* activate these when source preparation is complete
-#include
-#ifndef _
-# define _(String) gettext (String)
-#endif
-#ifndef gettext_noop
-# define gettext_noop(String) String
-#endif
-#ifndef N_
-# define N_(String) gettext_noop (String)
-#endif
-*/
-
-/* deactivate these when source preparation is complete */
-#undef _
-#define _(String) (String)
-#undef N_
-#define N_(String) String
-#undef textdomain
-#define textdomain(Domain)
-#undef bindtextdomain
-#define bindtextdomain(Package, Directory)
-
-#endif /* CUNIT_CUNIT_INTL_H_SEEN */
-
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/Console.h b/tools/taos-tools/deps/CUnit/CUnit/Console.h
deleted file mode 100644
index 263d349759..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/Console.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Contains Interface for console Run tests.
- *
- * Aug 2001 Initial implementation. (AK)
- *
- * 09/Aug/2001 Single interface to Console_run_tests. (AK)
- *
- * 20-Jul-2004 New interface, doxygen comments. (JDS)
- */
-
-/** @file
- * Console interface with interactive output (user interface).
- */
-/** @addtogroup Console
- * @{
- */
-
-#ifndef CUNIT_CONSOLE_H_SEEN
-#define CUNIT_CONSOLE_H_SEEN
-
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CU_EXPORT void CU_console_run_tests(void);
-/**< Run registered CUnit tests using the console interface. */
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-/** Deprecated (version 1). @deprecated Use CU_console_run_tests(). */
-#define console_run_tests() CU_console_run_tests()
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_CONSOLE_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/Jamfile b/tools/taos-tools/deps/CUnit/CUnit/Jamfile
deleted file mode 100644
index d7db4486e2..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/Jamfile
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# Jamfile to build CUnit - Source Headers Directory
-# (see http://www.freetype.org/jam/index.html)
-#
-# Copyright (C) 2004-2006 Jerry St.Clair
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#---------------------------------------------------------------------------
-
-SubDir TOP CUnit Headers ;
-
-CU_HEADERS =
- Automated.h
- Basic.h
- Console.h
- CUError.h
- CUnit.h
- CUCurses.h
- MyMem.h
- TestDB.h
- TestRun.h
- Util.h
- Win.h
- ;
-
-if $(INSTALL_DOC_DIR)
-{
- InstallCUnitFile $(INSTALL_INC_DIR) : $(CU_HEADERS) ;
-}
-
diff --git a/tools/taos-tools/deps/CUnit/CUnit/Makefile.am b/tools/taos-tools/deps/CUnit/CUnit/Makefile.am
deleted file mode 100644
index 656288516b..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-CUnitIncludedir=${includedir}/CUnit
-
-AUTOMATED_INCLUDES = Automated.h
-BASIC_INCLUDES = Basic.h
-CONSOLE_INCLUDES = Console.h
-CURSES_INCLUDES = CUCurses.h
-FRAMEWORK_INCLUDES = CUError.h CUnit.h CUnit_intl.h MyMem.h TestDB.h TestRun.h Util.h
-
-# Default configuration without enabling anything
-INCLUDE_FILES = ${FRAMEWORK_INCLUDES}
-
-if ENABLE_BASIC
-BASIC_INCLUDE_FILES = $(BASIC_INCLUDES)
-endif
-
-if ENABLE_CONSOLE
-CONSOLE_INCLUDE_FILES = $(CONSOLE_INCLUDES)
-endif
-
-if ENABLE_AUTOMATED
-AUTOMATED_INCLUDE_FILES = $(AUTOMATED_INCLUDES)
-endif
-
-if ENABLE_CURSES
-CURSES_INCLUDE_FILES = $(CURSES_INCLUDES)
-endif
-
-INCLUDE_FILES += $(BASIC_INCLUDE_FILES) $(CONSOLE_INCLUDE_FILES) $(AUTOMATED_INCLUDE_FILES) $(CURSES_INCLUDE_FILES)
-
-CUnitInclude_HEADERS = ${INCLUDE_FILES}
-
diff --git a/tools/taos-tools/deps/CUnit/CUnit/MessageHandlers.h b/tools/taos-tools/deps/CUnit/CUnit/MessageHandlers.h
deleted file mode 100644
index ccd8e73557..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/MessageHandlers.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Headers for CUnit message/event handling types and functions
- *
- */
-
-#ifndef CU_MESSAGEHANDLERS_H
-#define CU_MESSAGEHANDLERS_H
-
-#include "CUnit/TestRun.h"
-
-/**
- * Types of MessageHandlers.
- */
-typedef enum CU_MessageType
-{
- CUMSG_SUITE_STARTED = 0, /**< suite has started */
- CUMSG_SUITE_COMPLETED, /**< suite has finished */
- CUMSG_SUITE_SETUP_FAILED, /**< suite init func failed */
- CUMSG_SUITE_TEARDOWN_FAILED, /**< suite cleanup failed */
- CUMSG_TEST_STARTED, /**< test has started */
- CUMSG_TEST_COMPLETED, /**< test has finished */
- CUMSG_TEST_SKIPPED, /**< test was skipped */
- CUMSG_TEST_SETUP_FAILED, /**< test setup has failed */
- CUMSG_TEST_TEARDOWN_FAILED, /**< test teardown has failed */
- CUMSG_ALL_COMPLETED, /**< all suites finished */
- CUMSG_SUITE_SKIPPED, /**< test suite was skipped during suite setup */
- CUMSG_MAX
-} CCU_MessageType;
-
-
-typedef union CU_MessageHandlerFunction {
- CU_SuiteStartMessageHandler suite_start;
- CU_SuiteCompleteMessageHandler suite_completed;
- CU_SuiteInitFailureMessageHandler suite_setup_failed;
- CU_SuiteCleanupFailureMessageHandler suite_teardown_failed;
- CU_TestStartMessageHandler test_started;
- CU_TestCompleteMessageHandler test_completed;
- CU_TestSkippedMessageHandler test_skipped;
- CU_AllTestsCompleteMessageHandler all_completed;
- CU_SuiteSkippedMessageHandler suite_skipped;
-} CCU_MessageHandlerFunction;
-
-/**
- * The handler for a CUnit Event.
- */
-typedef struct CCU_MessageHandler {
- CCU_MessageHandlerFunction func;
- struct CCU_MessageHandler *prev;
- struct CCU_MessageHandler *next;
-} CCU_MessageHandler;
-
-
-/**
- * Add a message handler to the test runner.
- * @param type
- * @param handler
- */
-void CCU_MessageHandler_Add(CCU_MessageType type, CCU_MessageHandlerFunction func);
-
-/**
- * Clear all the message handlers for the given event type.
- * @param type
- */
-void CCU_MessageHandler_Clear(CCU_MessageType type);
-
-/**
- * Remove all pre-existing message handlers and set one.
- * @param type
- * @param handler
- */
-void CCU_MessageHandler_Set(CCU_MessageType type, CCU_MessageHandlerFunction func);
-
-/**
- * Run a message handler
- * @param type
- * @param pSuite
- * @param pTest
- * @param pFailure
- */
-void CCU_MessageHandler_Run(CCU_MessageType type,
- CU_pSuite pSuite,
- CU_pTest pTest,
- CU_pFailureRecord pFailure);
-
-/**
- * Get the message handler list for the given message type
- * @param type
- * @return
- */
-CCU_MessageHandler* CCU_MessageHandler_Get(CCU_MessageType type);
-
-
-#endif //CU_MESSAGEHANDLERS_H
diff --git a/tools/taos-tools/deps/CUnit/CUnit/MyMem.h b/tools/taos-tools/deps/CUnit/CUnit/MyMem.h
deleted file mode 100644
index 8b649c816e..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/MyMem.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Contains Memory Related Defines to use internal routines to detect Memory Leak
- * in Debug Versions
- *
- * 18/Jun/2002 Memory Debug Functions. (AK)
- *
- * 17-Jul-2004 New interface for global function names. (JDS)
- *
- * 05-Sep-2004 Added internal test interface. (JDS)
- */
-
-/** @file
- * Memory management functions (user interface).
- * Two versions of memory allocation/deallocation are available.
- * If compiled with MEMTRACE defined, CUnit keeps track of all
- * system allocations & deallocations. The memory record can
- * then be reported using CU_CREATE_MEMORY_REPORT. Otherwise,
- * standard system memory allocation is used without tracing.
- */
-/** @addtogroup Framework
- * @{
- */
-
-#ifndef CUNIT_MYMEM_H_SEEN
-#define CUNIT_MYMEM_H_SEEN
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef MEMTRACE
- void* CU_calloc(size_t nmemb, size_t size, unsigned int uiLine, const char* szFileName, const char *szFunction);
- void* CU_malloc(size_t size, unsigned int uiLine, const char* szFileName, const char *szFunction);
- void CU_free(void *ptr, unsigned int uiLine, const char* szFileName, const char *szFunction);
- void* CU_realloc(void *ptr, size_t size, unsigned int uiLine, const char* szFileName, const char *szFunction);
- CU_EXPORT void CU_dump_memory_usage(const char*);
-
- /** c-allocate with memory tracking. */
- #define CU_CALLOC(x, y) CU_calloc((x), (y), __LINE__, __FILE__, CU_FUNC)
- /** m-allocate with memory tracking. */
- #define CU_MALLOC(x) CU_malloc((x), __LINE__, __FILE__, CU_FUNC)
- /** Free with memory tracking. */
- #define CU_FREE(x) CU_free((x), __LINE__, __FILE__, CU_FUNC)
- /** Reallocate with memory tracking. */
- #define CU_REALLOC(x, y) CU_realloc((x), (y), __LINE__, __FILE__, CU_FUNC)
- /** Generate report on tracked memory. */
- #define CU_CREATE_MEMORY_REPORT(x) CU_dump_memory_usage((x))
- /** Generate report on tracked memory (old macro). */
- #define CU_DUMP_MEMORY_USAGE(x) CU_dump_memory_usage((x))
-#else /* MEMTRACE */
- /** Standard calloc() if MEMTRACE not defined. */
- #define CU_CALLOC(x, y) calloc((x), (y))
- /** Standard malloc() if MEMTRACE not defined. */
- #define CU_MALLOC(x) malloc((x))
- /** Standard free() if MEMTRACE not defined. */
- #define CU_FREE(x) free((x))
- /** Standard realloc() if MEMTRACE not defined. */
- #define CU_REALLOC(x, y) realloc((x), (y))
- /** No-op if MEMTRACE not defined. */
- #define CU_CREATE_MEMORY_REPORT(x)
- /** No-op if MEMTRACE not defined. */
- #define CU_DUMP_MEMORY_USAGE(x)
-#endif /* MEMTRACE */
-
-/** Free then set x to NULL */
-#define CU_FREE_ZERO(x) do { CU_FREE(x); x = NULL; } while(0)
-#ifdef CUNIT_BUILD_TESTS
-/** Disable memory allocation for testing purposes. */
-void test_cunit_deactivate_malloc(void);
-/** Enable memory allocation for testing purposes. */
-void test_cunit_activate_malloc(void);
-/** Retrieve number of memory events for a given pointer */
-unsigned int test_cunit_get_n_memevents(void* pLocation);
-/** Retrieve number of allocations for a given pointer */
-unsigned int test_cunit_get_n_allocations(void* pLocation);
-/** Retrieve number of deallocations for a given pointer */
-unsigned int test_cunit_get_n_deallocations(void* pLocation);
-
-void test_cunit_MyMem(void);
-#endif /* CUNIT_BUILD_TESTS */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_MYMEM_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/Simple.h b/tools/taos-tools/deps/CUnit/CUnit/Simple.h
deleted file mode 100644
index 487fe05356..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/Simple.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Simple Informative/Automated Test interface
- */
-
-#ifndef CU_SIMPLE_H
-#define CU_SIMPLE_H
-
-#endif //CU_SIMPLE_H
diff --git a/tools/taos-tools/deps/CUnit/CUnit/TestDB.h b/tools/taos-tools/deps/CUnit/CUnit/TestDB.h
deleted file mode 100644
index 01c91faaa6..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/TestDB.h
+++ /dev/null
@@ -1,986 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Contains all the Type Definitions and functions declarations
- * for the CUnit test database maintenance.
- *
- * Aug 2001 Initial implementation. (AK)
- *
- * 09/Aug/2001 Added Preprocessor conditionals for the file. (AK)
- *
- * 24/aug/2001 Made the linked list from SLL to DLL(doubly linked list). (AK)
- *
- * 31-Aug-2004 Restructured to eliminate global variables error_number,
- * g_pTestRegistry; new interface, support for deprecated
- * version 1 interface, moved error handling code to
- * CUError.[ch], moved test run counts and _TestResult out
- * of TestRegistry to TestRun.h. (JDS)
- *
- * 01-Sep-2004 Added jmp_buf to CU_Test. (JDS)
- *
- * 05-Sep-2004 Added internal test interface. (JDS)
- *
- * 15-Apr-2006 Removed constraint that suites/tests be uniquely named.
- * Added ability to turn individual tests/suites on or off.
- * Moved doxygen comments for public API here to header. (JDS)
- *
- * 16-Avr-2007 Added setup and teardown functions. (CJN)
- *
- */
-
-/** @file
- * Management functions for tests, suites, and the test registry.
- * Unit testing in CUnit follows the common structure of unit
- * tests aggregated in suites, which are themselves aggregated
- * in a test registry. This module provides functions and
- * typedef's to support the creation, registration, and manipulation
- * of test cases, suites, and the registry.
- */
-/** @addtogroup Framework
- * @{
- */
-
-#ifndef CUNIT_TESTDB_H_SEEN
-#define CUNIT_TESTDB_H_SEEN
-
-#include /* jmp_buf */
-
-#include "CUnit/CUnit.h"
-#include "CUnit/CUError.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*=================================================================
- * Typedefs and Data Structures
- *=================================================================*/
-
-typedef int (*CU_InitializeFunc)(void); /**< Signature for suite initialization function. */
-typedef int (*CU_CleanupFunc)(void); /**< Signature for suite cleanup function. */
-typedef void (*CU_TestFunc)(void); /**< Signature for a testing function in a test case. */
-typedef void (*CU_SetUpFunc)(void); /**< Signature for a test SetUp function. */
-typedef void (*CU_TearDownFunc)(void); /**< Signature for a test TearDown function. */
-
-/*-----------------------------------------------------------------
- * CU_Test, CU_pTest
- *-----------------------------------------------------------------*/
-/** CUnit test case data type.
- * CU_Test is a double linked list of unit tests. Each test has
- * a name, a callable test function, and a flag for whether the
- * test is active and thus executed during a test run. A test
- * also holds links to the next and previous tests in the list,
- * as well as a jmp_buf reference for use in implementing fatal
- * assertions.
- *
- * Generally, the linked list includes tests which are associated
- * with each other in a CU_Suite. As a result, tests are run in
- * the order in which they are added to a suite (see CU_add_test()).
- *
- *
- * It is recommended that the name of each CU_Test in a suite have
- * a unique name. Otherwise, only the first-registered test having
- * a given name will be accessible by that name. There are no
- * restrictions on the test function. This means that the same
- * function could, in principle, be called more than once from
- * different tests.
- *
- * @see CU_Suite
- * @see CU_TestRegistry
- */
-typedef struct CU_Test
-{
- char* pName; /**< Test name. */
- CU_BOOL fActive; /**< Flag for whether test is executed during a run. */
- CU_TestFunc pTestFunc; /**< Pointer to the test function. */
- jmp_buf* pJumpBuf; /**< Jump buffer for setjmp/longjmp test abort mechanism. */
-
- struct CU_Test* pNext; /**< Pointer to the next test in linked list. */
- struct CU_Test* pPrev; /**< Pointer to the previous test in linked list. */
-
- CU_BOOL fSkipped; /**< Flag for whether the test was skipped during a run */
- unsigned uFailedRuns; /**< Number of times this test has failed */
-
- double dStarted; /** clock time test started */
- double dEnded; /** clock time test ended */
-
- const char* pSkipReason;
- const char* pSkipFunction;
- const char* pSkipFile;
- unsigned int uiSkipLine;
-
- CU_BOOL fSuiteSetup; /**< Flag set if this is a suite setup entry (not an actual test) */
- CU_BOOL fSuiteCleanup; /**< Flag set if this is a suite cleanup entry (not an actual test) */
-} CU_Test;
-typedef CU_Test* CU_pTest; /**< Pointer to a CUnit test case. */
-
-/*-----------------------------------------------------------------
- * CU_Suite, CU_pSuite
- *-----------------------------------------------------------------*/
-/** CUnit suite data type.
- * CU_Suite is a linked list of CU_Test containers. Each suite has
- * a name, a count of registered unit tests, and a flag for whether
- * the suite is active during test runs. It also holds pointers to
- * optional initialization and cleanup functions. If non-NULL, these
- * are called before and after running the suite's tests, respectively.
- * In addition, the suite holds a pointer to the head of the linked
- * list of associated CU_Test objects. Finally, pointers to the next
- * and previous suites in the linked list are maintained.
- *
- * Generally, the linked list includes suites which are associated with
- * each other in a CU_TestRegistry. As a result, suites are run in the
- * order in which they are registered (see CU_add_suite()).
- *
- * It is recommended that name of each CU_Suite in a test registry have
- * a unique name. Otherwise, only the first-registered suite having a
- * given name will be accessible by name. There are no restrictions on
- * the contained tests. This means that the same CU_Test could, in
- * principle, be run more than once fron different suites.
- *
- * @see CU_Test
- * @see CU_TestRegistry
- */
-typedef struct CU_Suite
-{
- char* pName; /**< Suite name. */
- CU_BOOL fActive; /**< Flag for whether suite is executed during a run. */
- CU_pTest pTest; /**< Pointer to the 1st test in the suite. */
- CU_InitializeFunc pInitializeFunc; /**< Pointer to the suite initialization function. */
- CU_CleanupFunc pCleanupFunc; /**< Pointer to the suite cleanup function. */
- CU_SetUpFunc pSetUpFunc; /**< Pointer to the test SetUp function. */
- CU_TearDownFunc pTearDownFunc; /**< Pointer to the test TearDown function. */
-
- CU_pTest pInitializeFuncTest; /**< Pointer to the "test" entry representing suite setup */
- CU_pTest pCleanupFuncTest; /**< Pointer to the "test" entry representing suite cleanup */
-
- unsigned int uiNumberOfTests; /**< Number of tests in the suite. */
- struct CU_Suite* pNext; /**< Pointer to the next suite in linked list. */
- struct CU_Suite* pPrev; /**< Pointer to the previous suite in linked list. */
-
- unsigned int uiNumberOfTestsFailed; /**< Number of failed tests in the suite. */
- unsigned int uiNumberOfTestsSuccess; /**< Number of success tests in the suite. */
-
- CU_BOOL fSetUpError; /**< Flag set if the suite setup function failed a CU_ASSERT */
- CU_BOOL fCleanupError; /**< Flag set if the suite cleanup function failed a CU_ASSERT*/
- CU_BOOL fInSetUp; /**< Flag set if we are running the suite setup function */
- CU_BOOL fInClean; /**< Flag set if we are running the suite cleanup function */
- CU_BOOL fSkipped; /**< Flag for whether the suite was skipped during a run */
- CU_BOOL fInTestSetup; /**< Flag set if we are running a test setup function */
- CU_BOOL fInTestClean; /**< Flag set if we are running a test teardown function */
-
- const char* pSkipReason;
- const char* pSkipFunction;
- const char* pSkipFile;
- unsigned int uiSkipLine;
-
- double dStarted; /** clock time suite started */
- double dEnded; /** clock time suite ended */
-} CU_Suite;
-typedef CU_Suite* CU_pSuite; /**< Pointer to a CUnit suite. */
-
-/*-----------------------------------------------------------------
- * CU_TestRegistry, CU_pTestRegistry
- *-----------------------------------------------------------------*/
-/** CUnit test registry data type.
- * CU_TestRegisty is the repository for suites containing unit tests.
- * The test registry maintains a count of the number of CU_Suite
- * objects contained in the registry, as well as a count of the total
- * number of CU_Test objects associated with those suites. It also
- * holds a pointer to the head of the linked list of CU_Suite objects.
- *
- *
- * With this structure, the user will normally add suites implictly to
- * the internal test registry using CU_add_suite(), and then add tests
- * to each suite using CU_add_test(). Test runs are then initiated
- * using one of the appropriate functions in TestRun.c via one of the
- * user interfaces.
- *
- * Automatic creation and destruction of the internal registry and its
- * objects is available using CU_initialize_registry() and
- * CU_cleanup_registry(), respectively. For internal and testing
- * purposes, the internal registry can be retrieved and assigned.
- * Functions are also provided for creating and destroying independent
- * registries.
- *
- * Note that earlier versions of CUnit also contained a pointer to a
- * linked list of CU_FailureRecord objects (termed _TestResults).
- * This has been removed from theregistry and relocated to TestRun.c.
- *
- * @see CU_Test
- * @see CU_Suite
- * @see CU_initialize_registry()
- * @see CU_cleanup_registry()
- * @see CU_get_registry()
- * @see CU_set_registry()
- * @see CU_create_new_registry()
- * @see CU_destroy_existing_registry()
- */
-typedef struct CU_TestRegistry
-{
-#ifdef USE_DEPRECATED_CUNIT_NAMES
- /** Union to support v1.1-1 member name. */
- union {
- unsigned int uiNumberOfSuites; /**< Number of suites in the test registry. */
- unsigned int uiNumberOfGroups; /**< Deprecated (version 1). @deprecated Use uiNumberOfSuites. */
- };
- unsigned int uiNumberOfTests; /**< Number of tests in the test registry. */
- /** Union to support v1.1-1 member name. */
- union {
- CU_pSuite pSuite; /**< Pointer to the 1st suite in the test registry. */
- CU_pSuite pGroup; /**< Deprecated (version 1). @deprecated Use pSuite. */
- };
-#else
- unsigned int uiNumberOfSuites; /**< Number of registered suites in the registry. */
- unsigned int uiNumberOfTests; /**< Total number of registered tests in the registry. */
- CU_pSuite pSuite; /**< Pointer to the 1st suite in the test registry. */
-#endif
-} CU_TestRegistry;
-typedef CU_TestRegistry* CU_pTestRegistry; /**< Pointer to a CUnit test registry. */
-
-/*=================================================================
- * Public interface functions
- *=================================================================*/
-
-CU_EXPORT
-CU_ErrorCode CU_initialize_registry(void);
-/**<
- * Initializes the framework test registry.
- * Any existing registry is freed, including all stored suites
- * and associated tests. It is not necessary to explicitly call
- * CU_cleanup_registry() before reinitializing the framework.
- * The most recent stored test results are also cleared.
- *
- * This function must not be called during a test run (checked
- * by assertion)
- *
- * @return CUE_NOMEMORY if memory for the new registry cannot
- * be allocated, CUE_SUCCESS otherwise.
- * @see CU_cleanup_registry
- * @see CU_get_registry
- * @see CU_set_registry
- * @see CU_registry_initialized
- */
-
-CU_EXPORT
-void CU_cleanup_registry(void);
-/**<
- * Clears the test registry.
- * The active test registry is freed, including all stored suites
- * and associated tests. The most recent stored test results are
- * also cleared. After calling this function, CUnit suites cannot
- * be added until CU_initialize_registry() or CU_set_registry() is
- * called. Further, any pointers to suites or test cases held by
- * the user will be invalidated by calling this function.
- *
- * This function may be called multiple times without generating
- * an error condition. However, this function must not be
- * called during a test run (checked by assertion)
.
- *
- * @see CU_initialize_registry
- * @see CU_get_registry
- * @see CU_set_registry
- */
-
-CU_EXPORT CU_BOOL CU_registry_initialized(void);
-/**<
- * Checks whether the test registry has been initialized.
- *
- * @return CU_TRUE if the registry has been initialized,
- * CU_FALSE otherwise.
- * @see CU_initialize_registry
- * @see CU_cleanup_registry
- */
-
-CU_EXPORT
-CU_pSuite CU_add_suite(const char *strName,
- CU_InitializeFunc pInit,
- CU_CleanupFunc pClean);
-/**<
- * Creates a new test suite and adds it to the test registry.
- * This function creates a new test suite having the specified
- * name and initialization/cleanup functions and adds it to the
- * test registry. The new suite will be active and able to be
- * executed during a test run. The test registry must be
- * initialized before calling this function (checked by assertion).
- * pInit and pClean may be NULL, in which case no corresponding
- * initialization of cleanup function will be called when the suite
- * is run. strName may be empty ("") but may not be NULL.
- *
- * The return value is a pointer to the newly-created suite, or
- * NULL if there was a problem with the suite creation or addition.
- * An error code is also set for the framework. Note that if the
- * name specified for the new suite is a duplicate, the suite will
- * be created and added but the error code will be set to CUE_DUP_SUITE.
- * The duplicate suite will not be accessible by name.
- *
- * NOTE - the CU_pSuite pointer returned should NOT BE FREED BY
- * THE USER. The suite is freed by the CUnit system when
- * CU_cleanup_registry() is called. This function must not
- * be called during a test run (checked by assertion).
- *
- * CU_add_suite() sets the following error codes:
- * - CUE_SUCCESS if no errors occurred.
- * - CUE_NOREGISTRY if the registry has not been initialized.
- * - CUE_NO_SUITENAME if strName is NULL.
- * - CUE_DUP_SUITE if a suite having strName is already registered.
- * - CUE_NOMEMORY if a memory allocation failed.
- *
- * @param strName Name for the new test suite (non-NULL).
- * @param pInit Initialization function to call before running suite.
- * @param pClean Cleanup function to call after running suite.
- * @return A pointer to the newly-created suite (NULL if creation failed)
- */
-
-CU_EXPORT
-CU_pSuite CU_add_suite_with_setup_and_teardown(const char *strName,
- CU_InitializeFunc pInit,
- CU_CleanupFunc pClean,
- CU_SetUpFunc pSetup,
- CU_TearDownFunc pTear);
-/**<
- * The same as CU_add_suite but also adds setup and tear down callbacks for
- * each test in this suite.
- *
- * @param pSetup SetUp function to call before running each test.
- * @param pTear TearDown function to call after running each test.
- */
-
-CU_EXPORT
-CU_ErrorCode CU_set_suite_active(CU_pSuite pSuite, CU_BOOL fNewActive);
-/**<
- * Activates or deactivates a suite.
- * Only activated suites can be executed during a test run.
- * By default a suite is active upon creation, but can be deactivated
- * by passing it along with CU_FALSE to this function. The suite
- * can be reactivated by passing it along with CU_TRUE. The current
- * value of the active flag is available as pSuite->fActive. If pSuite
- * is NULL then error code CUE_NOSUITE is returned.
- *
- * @param pSuite Pointer to the suite to modify (non-NULL).
- * @param fNewActive If CU_TRUE then the suite will be activated;
- * if CU_FALSE it will be deactivated.
- * @return Returns CUE_NOSUITE if pSuite is NULL, CUE_SUCCESS if all is well.
- */
-
-CU_EXPORT
-CU_ErrorCode CU_set_suite_name(CU_pSuite pSuite, const char *strNewName);
-/**<
- * Modifies the name of a suite.
- * This function allows the name associated with a suite to
- * be changed. It is not recommended that a suite name be changed,
- * nor should it be necessary under most circumstances. However,
- * this function is provided for those clients who need to change
- * a suite's name. The current value of the suite's name
- * is available as pSuite->pName. CUE_SUCCESS is returned if the
- * function succeeds in changing the name. CUE_NOSUITE is returned if
- * pSuite is NULL, and CUE_NO_SUITENAME if strNewName is NULL.
- *
- * @param pSuite Pointer to the suite to modify (non-NULL).
- * @param strNewName Pointer to string containing new suite name (non-NULL).
- * @return Returns CUE_NOSUITE if pSuite is NULL, CUE_NO_SUITENAME if
- * strNewName is NULL, and CUE_SUCCESS if all is well.
- */
-
-CU_EXPORT
-CU_ErrorCode CU_set_suite_initfunc(CU_pSuite pSuite, CU_InitializeFunc pNewInit);
-/**<
- * Modifies the initialization function of a suite.
- * This function allows the initialization function associated with
- * a suite to be changed. This is neither recommended nor should it
- * be necessary under most circumstances. However, this function is
- * provided for those clients who need to change the function. The
- * current value of the function is available as pSuite->pInitializeFunc.
- * CUE_SUCCESS is returned if the function succeeds, or CUE_NOSUITE if
- * pSuite is NULL. pNewInit may be NULL, which indicates the suite has
- * no initialization function.
- *
- * @param pSuite Pointer to the suite to modify (non-NULL).
- * @param pNewInit Pointer to function to use to initialize suite.
- * @return Returns CUE_NOSUITE if pSuite is NULL, and CUE_SUCCESS if
- * all is well.
- */
-
-CU_EXPORT
-CU_ErrorCode CU_set_suite_cleanupfunc(CU_pSuite pSuite, CU_CleanupFunc pNewClean);
-/**<
- * Modifies the cleanup function of a suite.
- * This function allows the cleanup function associated with a suite to
- * be changed. This is neither recommended nor should it be necessary
- * under most circumstances. However, this function is provided for those
- * clients who need to change the function. The current value of the
- * function is available as pSuite->pCleanupFunc. CUE_SUCCESS is returned
- * if the function succeeds, or CUE_NOSUITE if pSuite is NULL. pNewClean
- * may be NULL, which indicates the suite has no cleanup function.
- *
- * @param pSuite Pointer to the suite to modify (non-NULL).
- * @param pNewClean Pointer to function to use to clean up suite.
- * @return Returns CUE_NOSUITE if pSuite is NULL, and CUE_SUCCESS if
- * all is well.
- */
-
-CU_EXPORT
-CU_pSuite CU_get_suite(const char* strName);
-/**<
- * Retrieves the suite having the specified name.
- * Searches the active test registry and returns a pointer to the 1st
- * suite found. NULL is returned if no suite having the specified name
- * is found. In addition, the framework error state is set to CUE_NOREGISTRY
- * if the registry is not initialized or to CUE_NO_SUITENAME if strName is NULL.
- * If the return value is NULL and framework error state is CUE_SUCCESS, then
- * the search simply failed to find the specified name.
- * Use CU_get_suite_at_pos() to retrieve a suite by position rather than name.
- *
- * @param strName The name of the suite to search for (non-NULL).
- * @return Returns a pointer to the suite, or NULL if not found or an error occurred.
- * @see CU_get_suite_at_pos()
- */
-
-CU_EXPORT
-CU_pSuite CU_get_suite_at_pos(unsigned int pos);
-/**<
- * Retrieves the suite at the specified position.
- * Iterates the active test registry and returns a pointer to the suite at
- * position pos. pos is a 1-based index having valid values
- * [1 .. CU_get_registry()->uiNumberOfSuites] and corresponds to the order in
- * which suites were registered. If pos is invalid or an error occurs, 0 is
- * returned. In addition, the framework error state is set to CUE_NOREGISTRY if
- * the registry is not initialized, or CUE_SUCCESS if pos was invalid. Use
- * CU_get_suite() to retrieve a suite by name rather than position.
- *
- * @param pos The 1-based position of the suite to fetch.
- * @return Returns a pointer to the suite, or 0 if not found or an error occurred.
- * @see CU_get_suite()
- */
-
-CU_EXPORT
-unsigned int CU_get_suite_pos(CU_pSuite pSuite);
-/**<
- * Looks up the position of the specified suite.
- * The position is a 1-based index of suites in the active test registry which
- * corresponds to the order in which suites were registered. If pSuite is not
- * found or an error occurs, 0 is returned. In addition, the framework error
- * state is set to CUE_NOREGISTRY if the registry is not initialized, or
- * CUE_NOSUITE if pSuite is NULL. The returned position may be used to retrieve
- * the suite using CU_get_suite_by_pos().
- *
- * @param pSuite Pointer to the suite to find (non-NULL).
- * @return Returns the 1-based position of pSuite in the registry, or NULL if
- * not found or an error occurred.
- * @see CU_get_suite_by_pos()
- * @see CU_get_suite_pos_by_name()
- */
-
-CU_EXPORT
-unsigned int CU_get_suite_pos_by_name(const char* strName);
-/**<
- * Looks up the position of the suite having the specified name.
- * The position is a 1-based index of suites in the active test registry which
- * corresponds to the order in which suites were registered. If no suite has the
- * specified name or an error occurs, 0 is returned. In addition, the framework error
- * state is set to CUE_NOREGISTRY if the registry is not initialized, or
- * CUE_NO_SUITENAME if strName is NULL. The search ends at the 1st suite found having
- * name strName. The returned position may be used to retrieve the suite using
- * CU_get_suite_by_pos().
- *
- * @param strName Name of the suite to find (non-NULL).
- * @return Returns the 1-based position of pSuite in the registry, or NULL if
- * not found or an error occurred.
- * @see CU_get_suite_by_pos()
- * @see CU_get_suite_pos_by_name()
- */
-
-CU_EXPORT
-CU_pTest CU_add_test(CU_pSuite pSuite, const char* strName, CU_TestFunc pTestFunc);
-/**<
- * This function creates a new test having the specified name
- * and function, and adds it to the specified suite. The new test
- * is active and able to be executed during a test run. At present,
- * there is no mechanism for creating a test case independent of a
- * suite. Neither pSuite, strName, nor pTestFunc may be NULL.
- *
- * The return value is a pointer to the newly-created test, or
- * NULL if there was a problem with the test creation or addition.
- * An error code is also set for the framework. Note that if the
- * name specified for the new test is a duplicate within pSuite,
- * the test will be created and added but the error code will be
- * set to CUE_DUP_TEST. The duplicate test will not be accessible
- * by name.
- *
- * NOTE - the CU_pTest pointer returned should NOT BE FREED BY
- * THE USER. The test is freed by the CUnit system when
- * CU_cleanup_registry() is called. This function must not
- * be called during a test run (checked by assertion).
-
- * CU_add_test() sets the following error codes:
- * - CUE_SUCCESS if no errors occurred.
- * - CUE_NOREGISTRY if the registry has not been initialized.
- * - CUE_NOSUITE if pSuite is NULL.
- * - CUE_NO_TESTNAME if strName is NULL.
- * - CUE_NOTEST if pTestFunc is NULL.
- * - CUE_DUP_TEST if a test having strName is already registered to pSuite.
- * - CUE_NOMEMORY if a memory allocation failed.
- *
- * @param pSuite Test suite to which to add new test (non-NULL).
- * @param strName Name for the new test case (non-NULL).
- * @param pTest Function to call when running the test (non-NULL).
- * @return A pointer to the newly-created test (NULL if creation failed)
- */
-
-CU_EXPORT
-CU_ErrorCode CU_set_test_active(CU_pTest pTest, CU_BOOL fNewActive);
-/**<
- * Activates or deactivates a specific test.
- * Only activated tests can be executed during a test run.
- * By default a test is active upon creation, but can be deactvated
- * by passing it along with CU_FALSE to this function. The test
- * can be reactivated by passing it along with CU_TRUE.
- * The current value of the active flag is available as pTest->fActive.
- * If pTest is NULL then error code CUE_NOTEST is returned. Otherwise
- * CUE_SUCCESS is returned.
- *
- * @param pTest Pointer to the test to modify (non-NULL).
- * @param fNewActive If CU_TRUE then test will be activated;
- * if CU_FALSE it will be deactivated.
- * @return Returns CUE_NOTEST if pTest is NULL, CUE_SUCCESS if all is well.
-*/
-
-CU_EXPORT
-CU_ErrorCode CU_set_test_name(CU_pTest pTest, const char *strNewName);
-/**<
- * Modifies the name of a test.
- * This function allows the name associated with a test to
- * be changed. It is not recommended that a test name be changed,
- * nor should it be necessary under most circumstances. However,
- * this function is provided for those clients who need to change
- * a test's name. The current value of the test's name is
- * available as pTest->pName. CUE_SUCCESS is returned if the
- * function succeeds in changing the name. CUE_NOTEST is returned if
- * pTest is NULL, and CUE_NO_TESTNAME if strNewName is NULL.
- *
- * @param pTest Pointer to the test to modify (non-NULL).
- * @param strNewName Pointer to string containing new test name (non-NULL).
- * @return Returns CUE_NOTEST if pTest is NULL, CUE_NO_TESTNAME if
- * strNewName is NULL, and CUE_SUCCESS if all is well.
- */
-
-CU_EXPORT
-CU_ErrorCode CU_set_test_func(CU_pTest pTest, CU_TestFunc pNewFunc);
-/**<
- * Modifies the test function of a test.
- * This function allows the test function associated with a test to be
- * changed. This is neither recommended nor should it be necessary under
- * most circumstances. However, this function is provided for those
- * clients who need to change the test function. The current value of
- * the test function is available as pTest->pTestFunc. CUE_SUCCESS is
- * returned if the function succeeds, or CUE_NOTEST if either pTest or
- * pNewFunc is NULL.
- *
- * @param pTest Pointer to the test to modify (non-NULL).
- * @param pNewFunc Pointer to function to use for test function (non-NULL).
- * @return Returns CUE_NOTEST if pTest or pNewFunc is NULL, and CUE_SUCCESS
- * if all is well.
- */
-
-CU_EXPORT
-CU_pTest CU_get_test(CU_pSuite pSuite, const char *strName);
-/**<
- * Retrieves the test having the specified name.
- * Searches pSuite and returns a pointer to the 1st test found named strName.
- * NULL is returned if no test having the specified name is found in pSuite.
- * In addition, the framework error state is set as follows:
- * - CUE_NOREGISTRY if the registry is not initialized
- * - CUE_NOSUITE if pSuite is NULL
- * - CUE_NO_TESTNAME if strName is NULL.
- *
- * If the return value is NULL and framework error state is CUE_SUCCESS, then
- * the search simply failed to find the specified name. Use CU_get_test_at_pos()
- * to retrieve a test by position rather than name.
- *
- * @param pSuite Pointer to the suite to search (non-NULL).
- * @param strName The name of the test to search for (non-NULL).
- * @return Returns a pointer to the test, or NULL if not found or an error occurred.
- * @see CU_get_test_at_pos()
- */
-
-CU_EXPORT
-CU_pTest CU_get_test_at_pos(CU_pSuite pSuite, unsigned int pos);
-/**<
- * Retrieves the test at the specified position in pSuite.
- * Iterates the tests registered in pSuite and returns a pointer to the
- * test at position pos. pos is a 1-based index having valid values
- * [1 .. pSuite->uiNumberOfTests] and corresponds to the order in
- * which tests were added to pSuite. If pos is invalid or an error occurs, 0 is
- * returned. In addition, the framework error state is set as follows:
- * - CUE_NOREGISTRY if the registry is not initialized
- * - CUE_NOSUITE if pSuite is NULL
- * Use CU_get_test() to retrieve a test by name rather than position.
- *
- * @param pSuite Pointer to the suite to search (non-NULL).
- * @param pos The 1-based position of the test to fetch.
- * @return Returns a pointer to the test, or 0 if not found or an error occurred.
- * @see CU_get_test()
- */
-
-CU_EXPORT
-unsigned int CU_get_test_pos(CU_pSuite pSuite, CU_pTest pTest);
-/**<
- * Looks up the position of the specified test in pSuite.
- * The position is a 1-based index of tests in pSuite which corresponds to the
- * order in which tests were added. If pTest is not found or an error occurs,
- * 0 is returned. In addition, the framework error state is set as follows:
- * - CUE_NOREGISTRY if the registry is not initialized
- * - CUE_NOSUITE if pSuite is NULL
- * - CUE_NOTEST if pTest is NULL
- *
- * The returned position may be used to retrieve the test using CU_get_test_by_pos().
- *
- * @param pSuite Pointer to the suite to search (non-NULL).
- * @param pTest Pointer to the test to find (non-NULL).
- * @return Returns the 1-based position of pTest in pSuite, or NULL if
- * not found or an error occurred.
- * @see CU_get_test_by_pos()
- * @see CU_get_test_pos_by_name()
- */
-
-CU_EXPORT
-unsigned int CU_get_test_pos_by_name(CU_pSuite pSuite, const char *strName);
-/**<
- * Looks up the position of the test having the specified name in pSuite.
- * The position is a 1-based index of tests in pSuite which corresponds to the order
- * in which tests were added. If no test has the specified name or an error occurs,
- * 0 is returned. In addition, the framework error state is set as follows:
- * - CUE_NOREGISTRY if the registry is not initialized
- * - CUE_NOSUITE if pSuite is NULL
- * - CUE_NO_TESTNAME if strName is NULL
- * The search ends at the 1st test found having name strName. The returned position
- * may be used to retrieve the suite using CU_get_test_by_pos().
- *
- * @param pSuite Pointer to the suite to search (non-NULL).
- * @param strName Name of the test to find (non-NULL).
- * @return Returns the 1-based position of pTest in pSuite, or NULL if
- * not found or an error occurred.
- * @see CU_get_test_by_pos()
- * @see CU_get_test_pos_by_name()
- */
-
-#define CU_ADD_TEST(suite, test) (CU_add_test(suite, #test, (CU_TestFunc)test))
-/**< Shortcut macro for adding a test to a suite. */
-
-CU_EXPORT
-CU_ErrorCode CU_set_all_active(CU_BOOL fNewActive);
-/**<
- * Activates or deactivates all tests.
- * Only activated tests can be executed during a test run.
- * By default a test is active upon creation, but can be deactvated
- * all by passing it along with CU_FALSE to this function. All test
- * can be reactivated by passing it along with CU_TRUE.
- *
- * @param fNewActive If CU_TRUE then all tests will be activated;
- * if CU_FALSE all tests will be deactivated.
- * @return Returns CUE_NOREGISTRY if CU_initialize_registry
- * isn't called, CUE_SUCCESS if all is well.
-*/
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-/* This section is based conceptually on code
- * Copyright (C) 2004 Aurema Pty Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Derived from code contributed by K. Cheung and Aurema Pty Ltd. (thanks!)
- * test_case_t, test_group_t, test_suite_t
- */
-
-/**
- * Test case parameters structure.
- * This data type is provided to assist CUnit users manage collections of
- * tests and suites. It is intended to be used to build arrays of test case
- * parameters that can be then be referred to in a CU_suite_info_t variable.
- */
-typedef struct CU_TestInfo {
- const char *pName; /**< Test name. */
- CU_TestFunc pTestFunc; /**< Test function. */
-} CU_TestInfo;
-typedef CU_TestInfo* CU_pTestInfo; /**< Pointer to CU_TestInfo type. */
-
-/**
- * Suite parameters.
- * This data type is provided to assist CUnit users manage collections of
- * tests and suites. It is intended to be used to build arrays of suite
- * parameters that can be passed to a bulk registration function such as
- * CU_register_suite() or CU_register_suites().
- */
-typedef struct CU_SuiteInfo {
- const char *pName; /**< Suite name. */
- CU_InitializeFunc pInitFunc; /**< Suite initialization function. */
- CU_CleanupFunc pCleanupFunc; /**< Suite cleanup function */
- CU_SetUpFunc pSetUpFunc; /**< Pointer to the test SetUp function. */
- CU_TearDownFunc pTearDownFunc; /**< Pointer to the test TearDown function. */
- CU_TestInfo *pTests; /**< Test case array - must be NULL terminated. */
-} CU_SuiteInfo;
-typedef CU_SuiteInfo* CU_pSuiteInfo; /**< Pointer to CU_SuiteInfo type. */
-
-#define CU_TEST_INFO_NULL { NULL, NULL }
-/**< NULL CU_test_info_t to terminate arrays of tests. */
-#define CU_SUITE_INFO_NULL { NULL, NULL, NULL, NULL, NULL, NULL }
-/**< NULL CU_suite_info_t to terminate arrays of suites. */
-
-
-CU_EXPORT CU_ErrorCode CU_register_suites(CU_SuiteInfo suite_info[]);
-/**<
- * Registers the suites in a single CU_SuiteInfo array.
- * Multiple arrays can be registered using CU_register_nsuites().
- *
- * @param suite_info NULL-terminated array of CU_SuiteInfo items to register.
- * @return A CU_ErrorCode indicating the error status.
- * @see CU_register_suites()
- */
-CU_EXPORT CU_ErrorCode CU_register_nsuites(int suite_count, ...);
-/**<
- * Registers multiple suite arrays in CU_SuiteInfo format.
- * The function accepts a variable number of suite arrays to be registered.
- * The number of arrays is indicated by the value of the 1st argument,
- * suite_count. Each suite in each array is registered with the CUnit test
- * registry, along with all of the associated tests.
- *
- * @param suite_count The number of CU_SuiteInfo* arguments to follow.
- * @param ... suite_count number of CU_SuiteInfo* arguments. NULLs are ignored.
- * @return A CU_ErrorCode indicating the error status.
- * @see CU_register_suites()
- */
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-typedef CU_TestInfo test_case_t; /**< Deprecated (version 1). @deprecated Use CU_TestInfo. */
-typedef CU_SuiteInfo test_group_t; /**< Deprecated (version 1). @deprecated Use CU_SuiteInfo. */
-
-/** Deprecated (version 1). @deprecated Use CU_SuiteInfo and CU_TestInfo. */
-typedef struct test_suite {
- char *name; /**< Suite name. Currently not used. */
- test_group_t *groups; /**< Test groups. This must be a NULL terminated array. */
-} test_suite_t;
-
-/** Deprecated (version 1). @deprecated Use CU_TEST_INFO_NULL. */
-#define TEST_CASE_NULL { NULL, NULL }
-/** Deprecated (version 1). @deprecated Use CU_TEST_GROUP_NULL. */
-#define TEST_GROUP_NULL { NULL, NULL, NULL, NULL }
-
-/** Deprecated (version 1). @deprecated Use CU_register_suites(). */
-#define test_group_register(tg) CU_register_suites(tg)
-
-/** Deprecated (version 1). @deprecated Use CU_SuiteInfo and CU_register_suites(). */
-CU_EXPORT int test_suite_register(test_suite_t *ts)
-{
- test_group_t *tg;
- int error;
-
- for (tg = ts->groups; tg->pName; tg++)
- if ((error = CU_register_suites(tg)) != CUE_SUCCESS)
- return error;
-
- return CUE_SUCCESS;
-}
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-typedef CU_InitializeFunc InitializeFunc; /**< Deprecated (version 1). @deprecated Use CU_InitializeFunc. */
-typedef CU_CleanupFunc CleanupFunc; /**< Deprecated (version 1). @deprecated Use CU_CleanupFunc. */
-typedef CU_TestFunc TestFunc; /**< Deprecated (version 1). @deprecated Use CU_TestFunc. */
-
-typedef CU_Test _TestCase; /**< Deprecated (version 1). @deprecated Use CU_Test. */
-typedef CU_pTest PTestCase; /**< Deprecated (version 1). @deprecated Use CU_pTest. */
-
-typedef CU_Suite _TestGroup; /**< Deprecated (version 1). @deprecated Use CU_Suite. */
-typedef CU_pSuite PTestGroup; /**< Deprecated (version 1). @deprecated Use CU_pSuite. */
-
-typedef CU_TestRegistry _TestRegistry; /**< Deprecated (version 1). @deprecated Use CU_TestRegistry. */
-typedef CU_pTestRegistry PTestRegistry; /**< Deprecated (version 1). @deprecated Use CU_pTestRegistry. */
-
-/* Public interface functions */
-/** Deprecated (version 1). @deprecated Use CU_initialize_registry(). */
-#define initialize_registry() CU_initialize_registry()
-/** Deprecated (version 1). @deprecated Use CU_cleanup_registry(). */
-#define cleanup_registry() CU_cleanup_registry()
-/** Deprecated (version 1). @deprecated Use CU_add_suite(). */
-#define add_test_group(name, init, clean) CU_add_suite(name, init, clean)
-/** Deprecated (version 1). @deprecated Use CU_add_test(). */
-#define add_test_case(group, name, test) CU_add_test(group, name, test)
-
-/* private internal CUnit testing functions */
-/** Deprecated (version 1). @deprecated Use CU_get_registry(). */
-#define get_registry() CU_get_registry()
-/** Deprecated (version 1). @deprecated Use CU_set_registry(). */
-#define set_registry(reg) CU_set_registry((reg))
-
-/** Deprecated (version 1). @deprecated Use CU_get_suite_by_name(). */
-#define get_group_by_name(group, reg) CU_get_suite_by_name(group, reg)
-/** Deprecated (version 1). @deprecated Use CU_get_test_by_name(). */
-#define get_test_by_name(test, group) CU_get_test_by_name(test, group)
-
-/** Deprecated (version 1). @deprecated Use ADD_TEST_TO_SUITE. */
-#define ADD_TEST_TO_GROUP(group, test) (CU_add_test(group, #test, (CU_TestFunc)test))
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-/*=================================================================
- * Internal CUnit system functions.
- * Should not be routinely called by users.
- *=================================================================*/
-
-CU_EXPORT CU_pTestRegistry CU_get_registry(void);
-/**<
- * Retrieves a pointer to the current test registry.
- * Returns NULL if the registry has not been initialized using
- * CU_initialize_registry(). Directly accessing the registry
- * should not be necessary for most users. This function is
- * provided primarily for internal and testing purposes.
- *
- * @return A pointer to the current registry (NULL if uninitialized).
- * @see CU_initialize_registry
- * @see CU_set_registry
- */
-
-CU_EXPORT CU_pTestRegistry CU_set_registry(CU_pTestRegistry pTestRegistry);
-/**<
- * Sets the registry to an existing CU_pTestRegistry instance.
- * A pointer to the original registry is returned. Note that the
- * original registry is not freed, and it becomes the caller's
- * responsibility to do so. Directly accessing the registry
- * should not be necessary for most users. This function is
- * provided primarily for internal and testing purposes.
- *
- * This function must not be called during a test run (checked
- * by assertion).
- *
- * @return A pointer to the original registry that was replaced.
- * @see CU_initialize_registry
- * @see CU_cleanup_registry
- * @see CU_get_registry
- */
-
-CU_EXPORT CU_pTestRegistry CU_create_new_registry(void);
-/**<
- * Creates and initializes a new test registry.
- * Returns a pointer to a new, initialized registry (NULL if memory could
- * not be allocated). It is the caller's responsibility to destroy and free
- * the new registry (unless it is made the active test registry using
- * CU_set_registry()).
- */
-
-CU_EXPORT
-void CU_destroy_existing_registry(CU_pTestRegistry* ppRegistry);
-/**<
- * Destroys and frees all memory for an existing test registry.
- * The active test registry is destroyed by the CUnit system in
- * CU_cleanup_registry(), so only call this function on registries created
- * or held independently of the internal CUnit system.
- *
- * Once a registry is made the active test registry using CU_set_registry(),
- * its destruction will be handled by the framework. ppRegistry may not be
- * NULL (checked by assertion), but *ppRegistry can be NULL (in which case the
- * function has no effect). Note that *ppRegistry will be set to NULL on return.
- *
- * @param ppRegistry Address of a pointer to the registry to destroy (non-NULL).
- */
-
-CU_EXPORT
-CU_pSuite CU_get_suite_by_name(const char *szSuiteName, CU_pTestRegistry pRegistry);
-/**<
- * Retrieves a pointer to the suite having the specified name.
- * Scans the pRegistry and returns a pointer to the first suite located
- * having the specified name. Neither szSuiteName nor pRegistry may be
- * NULL (checked by assertion). Clients should normally use CU_get_suite()
- * instead, which automatically searches the active test registry.
- *
- * @param szSuiteName The name of the suite to locate (non-NULL).
- * @param pRegistry The registry to scan (non-NULL).
- * @return Pointer to the first suite having the specified name,
- * NULL if not found.
- * @see CU_get_suite()
- */
-
-CU_EXPORT
-CU_pSuite CU_get_suite_by_index(unsigned int index, CU_pTestRegistry pRegistry);
-/**<
- * Retrieves a pointer to the suite at the specified (1-based) index.
- * Iterates pRegistry and returns a pointer to the suite located at the
- * specified index. pRegistry may not be NULL (checked by assertion).
- * Clients should normally use CU_get_suite_at_pos() instead, which
- * automatically searches the active test registry.
- *
- * @param index The 1-based index of the suite to find.
- * @param pRegistry The registry to scan (non-NULL).
- * @return Pointer to the suite at the specified index, or
- * NULL if index is invalid.
- * @see CU_get_suite_at_pos()
- */
-
-CU_EXPORT
-CU_pTest CU_get_test_by_name(const char* szTestName, CU_pSuite pSuite);
-/**<
- * Retrieves a pointer to the test case in pSuite having the specified name.
- * The first test case in pSuite having the specified name is returned, or
- * NULL if not found. Neither szSuiteName nor pSuite may be NULL (checked
- * by assertion). Clients should normally use CU_get_test() instead.
- *
- * @param szTestName The name of the test case to locate (non-NULL).
- * @param pSuite The suite to scan (non-NULL).
- * @return Pointer to the first test case having the specified name,
- * NULL if not found.
- * @see CU_get_test()
- */
-
-CU_EXPORT
-CU_pTest CU_get_test_by_index(unsigned int index, CU_pSuite pSuite);
-/**<
- * Retrieves a pointer to the test at the specified (1-based) index.
- * Iterates pSuite and returns a pointer to the test located at the
- * specified index. pSuite may not be NULL (checked by assertion).
- * Clients should normally use CU_get_test_at_pos() instead, which
- * automatically searches the active test registry.
- *
- * @param index The 1-based index of the test to find.
- * @param pRegistry The registry to scan (non-NULL).
- * @return Pointer to the test at the specified index, or
- * NULL if index is invalid.
- * @see CU_get_test_at_pos()
- */
-
-#ifdef CUNIT_BUILD_TESTS
-void test_cunit_TestDB(void);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_TESTDB_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/TestRun.h b/tools/taos-tools/deps/CUnit/CUnit/TestRun.h
deleted file mode 100644
index 6fb27059f7..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/TestRun.h
+++ /dev/null
@@ -1,535 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Contains Interface to Run tests.
- *
- * Aug 2001 Initial implementation. (AK)
- *
- * 09/Aug/2001 Contains generic run tests interface which can be used
- * for any type of frontend interface framework. (AK)
- *
- * 24/Nov/2001 Added Handler for Group Initialization failure condition. (AK)
- *
- * 05-Aug-2004 New interface. Since these should be internal functions,
- * no support for deprecated version 1 names provided now,
- * eliminated global variables for current test & suite,
- * moved (renamed) _TestResult here from TestDB.h. (JDS)
- *
- * 05-Sep-2004 Added internal test interface. (JDS)
- *
- * 23-Apr-2006 Moved doxygen comments into header.
- * Added type marker to CU_FailureRecord.
- * Added support for tracking inactive suites/tests. (JDS)
- *
- * 08-May-2006 Moved CU_print_run_results() functionality from
- * console/basic test complete handler. (JDS)
- *
- * 24-May-2006 Added callbacks for suite start and complete events.
- * Added tracking/reported of elapsed time. (JDS)
- */
-
-/** @file
- * Test run management functions (user interface).
- * The TestRun module implements functions supporting the running
- * of tests elements (suites and tests). This includes functions for
- * running suites and tests, retrieving the number of tests/suites run,
- * and managing callbacks during the run process.
- *
- * The callback mechanism works as follows. The CUnit runtime system
- * supports the registering and calling of functions at the start and end
- * of each test, when all tests are complete, and when a suite
- * initialialization function returns an error. This allows clients to
- * perform actions associated with these events such as output formatting
- * and reporting.
- */
-/** @addtogroup Framework
- * @{
- */
-
-#ifndef CUNIT_TESTRUN_H_SEEN
-#define CUNIT_TESTRUN_H_SEEN
-
-#include "CUnit/CUnit.h"
-#include "CUnit/CUError.h"
-#include "CUnit/TestDB.h"
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Types of failures occurring during test runs. */
-typedef enum CU_FailureTypes
-{
- CUF_SuiteInactive = 1, /**< Inactive suite was run. */
- CUF_SuiteInitFailed, /**< Suite initialization function failed. */
- CUF_SuiteCleanupFailed, /**< Suite cleanup function failed. */
- CUF_TestInactive, /**< Inactive test was run. */
- CUF_AssertFailed /**< CUnit assertion failed during test run. */
-} CU_FailureType; /**< Failure type. */
-
-/* CU_FailureRecord type definition. */
-/** Data type for holding assertion failure information (linked list). */
-typedef struct CU_FailureRecord
-{
- CU_FailureType type; /**< Failure type. */
- unsigned int uiLineNumber; /**< Line number of failure. */
- char* strFileName; /**< Name of file where failure occurred. */
- char* strFunction; /**< Function of failure. */
- char* strCondition; /**< Test condition which failed. */
- CU_pTest pTest; /**< Test containing failure. */
- CU_pSuite pSuite; /**< Suite containing test having failure. */
-
- struct CU_FailureRecord* pNext; /**< Pointer to next record in linked list. */
- struct CU_FailureRecord* pPrev; /**< Pointer to previous record in linked list. */
-
-} CU_FailureRecord;
-typedef CU_FailureRecord* CU_pFailureRecord; /**< Pointer to CU_FailureRecord. */
-
-/* CU_RunSummary type definition. */
-/** Data type for holding statistics and assertion failures for a test run. */
-typedef struct CU_RunSummary
-{
- char PackageName[50];
- unsigned int nSuitesRun; /**< Number of suites completed during run. */
- unsigned int nSuitesFailed; /**< Number of suites for which initialization failed. */
- unsigned int nSuitesInactive; /**< Number of suites which were inactive. */
- unsigned int nTestsRun; /**< Number of tests completed during run. */
- unsigned int nTestsFailed; /**< Number of tests containing failed assertions. */
- unsigned int nTestsInactive; /**< Number of tests which were inactive (in active suites). */
- unsigned int nAsserts; /**< Number of assertions tested during run. */
- unsigned int nAssertsFailed; /**< Number of failed assertions. */
- unsigned int nFailureRecords; /**< Number of failure records generated. */
- double ElapsedTime; /**< Elapsed time for run in seconds. */
- unsigned int nTestsSkipped; /**< Number of tests skipped during execution */
- unsigned int nSuitesSkipped; /**< Number of suites skipped during execution */
-} CU_RunSummary;
-typedef CU_RunSummary* CU_pRunSummary; /**< Pointer to CU_RunSummary. */
-
-/*--------------------------------------------------------------------
- * Type Definitions for Message Handlers.
- *--------------------------------------------------------------------*/
-typedef void (*CU_SuiteStartMessageHandler)(const CU_pSuite pSuite);
-/**< Message handler called at the start of a suite. pSuite will not be null. */
-
-typedef void (*CU_TestStartMessageHandler)(const CU_pTest pTest, const CU_pSuite pSuite);
-/**< Message handler called at the start of a test.
- * The parameters are the test and suite being run. The test run is
- * considered in progress when the message handler is called.
- * Neither pTest nor pSuite may be null.
- */
-
-typedef void (*CU_TestCompleteMessageHandler)(const CU_pTest pTest, const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure);
-/**< Message handler called at the completion of a test.
- * The parameters are the test and suite being run, plus a pointer to
- * the first failure record applicable to this test. If the test did
- * not have any assertion failures, pFailure will be NULL. The test run
- * is considered in progress when the message handler is called.
- */
-
-typedef void (*CU_TestSkippedMessageHandler)(const CU_pTest pTest, const CU_pSuite pSuite);
-/**< Message handler called when a test is skipped.
- * The parameters are the test and suite being skipped. The message
- * handler will be called when the test is marked as inactive inside
- * an active suite or when the whole suite is marked as inactive.
- * Neither pTest nor pSuite may be null.
- */
-
-typedef void (*CU_SuiteCompleteMessageHandler)(const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure);
-/**< Message handler called at the completion of a suite.
- * The parameters are suite being run, plus a pointer to the first failure
- * record applicable to this suite. If the suite and it's tests did not
- * have any failures, pFailure will be NULL. The test run is considered
- * in progress when the message handler is called.
- */
-
-typedef void (*CU_AllTestsCompleteMessageHandler)(const CU_pFailureRecord pFailure);
-/**< Message handler called at the completion of a test run.
- * The parameter is a pointer to the linked list holding the failure
- * records for the test run. The test run is considered completed
- * when the message handler is called.
- */
-
-typedef void (*CU_SuiteInitFailureMessageHandler)(const CU_pSuite pSuite);
-/**< Message handler called when a suite initializer fails.
- * The test run is considered in progress when the message handler is called.
- */
-
-typedef void (*CU_SuiteCleanupFailureMessageHandler)(const CU_pSuite pSuite);
-/**< Message handler called when a suite cleanup function fails.
- * The test run is considered in progress when the message handler is called.
- */
-
-typedef void (*CU_SuiteSkippedMessageHandler)(const CU_pSuite pSuite);
-/**< Message handler called when a suite is skipped during setup.
- */
-
-/*--------------------------------------------------------------------
- * Get/Set functions for Message Handlers
- *--------------------------------------------------------------------*/
-CU_EXPORT void CU_set_suite_start_handler(CU_SuiteStartMessageHandler pSuiteStartMessage);
-/**< Sets the message handler to call before each suite is run. */
-CU_EXPORT void CU_set_test_start_handler(CU_TestStartMessageHandler pTestStartMessage);
-/**< Sets the message handler to call before each test is run. */
-CU_EXPORT void CU_set_test_complete_handler(CU_TestCompleteMessageHandler pTestCompleteMessage);
-/**< Sets the message handler to call after each test is run. */
-CU_EXPORT void CU_set_test_skipped_handler(CU_TestSkippedMessageHandler pTestSkippedMessage);
-/**< Sets the message handler to call when a test is skipped. */
-CU_EXPORT void CU_set_suite_complete_handler(CU_SuiteCompleteMessageHandler pSuiteCompleteMessage);
-/**< Sets the message handler to call after each suite is run. */
-CU_EXPORT void CU_set_all_test_complete_handler(CU_AllTestsCompleteMessageHandler pAllTestsCompleteMessage);
-/**< Sets the message handler to call after all tests have been run. */
-CU_EXPORT void CU_set_suite_init_failure_handler(CU_SuiteInitFailureMessageHandler pSuiteInitFailureMessage);
-/**< Sets the message handler to call when a suite initialization function returns an error. */
-CU_EXPORT void CU_set_suite_cleanup_failure_handler(CU_SuiteCleanupFailureMessageHandler pSuiteCleanupFailureMessage);
-/**< Sets the message handler to call when a suite cleanup function returns an error. */
-
-CU_EXPORT void CU_set_suite_skipped_handler(CU_SuiteSkippedMessageHandler pSuiteSkipped);
-/**< Sets the message handler to call when a suite is skipped */
-
-CU_EXPORT CU_SuiteStartMessageHandler CU_get_suite_start_handler(void);
-/**< Retrieves the message handler called before each suite is run. */
-CU_EXPORT CU_TestStartMessageHandler CU_get_test_start_handler(void);
-/**< Retrieves the message handler called before each test is run. */
-CU_EXPORT CU_TestCompleteMessageHandler CU_get_test_complete_handler(void);
-/**< Retrieves the message handler called after each test is run. */
-CU_EXPORT CU_TestSkippedMessageHandler CU_get_test_skipped_handler(void);
-/**< Retrieves the message handler called when a test is skipped. */
-CU_EXPORT CU_SuiteCompleteMessageHandler CU_get_suite_complete_handler(void);
-/**< Retrieves the message handler called after each suite is run. */
-CU_EXPORT CU_AllTestsCompleteMessageHandler CU_get_all_test_complete_handler(void);
-/**< Retrieves the message handler called after all tests are run. */
-CU_EXPORT CU_SuiteInitFailureMessageHandler CU_get_suite_init_failure_handler(void);
-/**< Retrieves the message handler called when a suite initialization error occurs. */
-CU_EXPORT CU_SuiteCleanupFailureMessageHandler CU_get_suite_cleanup_failure_handler(void);
-/**< Retrieves the message handler called when a suite cleanup error occurs. */
-
-/*--------------------------------------------------------------------
- * Functions for running registered tests and suites.
- *--------------------------------------------------------------------*/
-CU_EXPORT CU_ErrorCode CU_run_all_tests(void);
-/**<
- * Runs all tests in all suites registered in the test registry.
- * The suites are run in the order registered in the test registry.
- * For each suite, it is first checked to make sure it is active.
- * Any initialization function is then called, the suite is run
- * using run_single_suite(), and finally any suite cleanup function
- * is called. If an error condition (other than CUE_NOREGISTRY)
- * occurs during the run, the action depends on the current error
- * action (see CU_set_error_action()). An inactive suite is not
- * considered an error for this function. Note that the run
- * statistics (counts of tests, successes, failures) are cleared
- * each time this function is run, even if it is unsuccessful.
- *
- * @return A CU_ErrorCode indicating the first error condition
- * encountered while running the tests.
- * @see CU_run_suite() to run the tests in a specific suite.
- * @see CU_run_test() for run a specific test only.
- */
-
-CU_EXPORT CU_ErrorCode CU_run_suite(CU_pSuite pSuite);
-/**<
- * Runs all tests in a specified suite.
- * The suite need not be registered in the test registry to be
- * run. It does, however, need to have its fActive flag set to
- * CU_TRUE.
- *
- * Any initialization function for the suite is first called,
- * then the suite is run using run_single_suite(), and any suite
- * cleanup function is called. Note that the run statistics
- * (counts of tests, successes, failures) are initialized each
- * time this function is called even if it is unsuccessful. If
- * an error condition occurs during the run, the action depends
- * on the current error action (see CU_set_error_action()).
- *
- * @param pSuite The suite containing the test (non-NULL)
- * @return A CU_ErrorCode indicating the first error condition
- * encountered while running the suite. CU_run_suite()
- * sets and returns CUE_NOSUITE if pSuite is NULL, or
- * CUE_SUITE_INACTIVE if the requested suite is not
- * activated. Other error codes can be set during suite
- * initialization or cleanup or during test runs.
- * @see CU_run_all_tests() to run all suites.
- * @see CU_run_test() to run a single test in a specific suite.
- */
-
-CU_EXPORT CU_ErrorCode CU_run_test(CU_pSuite pSuite, CU_pTest pTest);
-/**<
- * Runs a specific test in a specified suite.
- * The suite need not be registered in the test registry to be run,
- * although the test must be registered in the specified suite.
- * Any initialization function for the suite is first
- * called, then the test is run using run_single_test(), and
- * any suite cleanup function is called. Note that the
- * run statistics (counts of tests, successes, failures)
- * will be initialized each time this function is called even
- * if it is not successful. Both the suite and test specified
- * must be active for the test to be run. The suite is not
- * considered to be run, although it may be counted as a failed
- * suite if the intialization or cleanup functions fail.
- *
- * @param pSuite The suite containing the test (non-NULL)
- * @param pTest The test to run (non-NULL)
- * @return A CU_ErrorCode indicating the first error condition
- * encountered while running the suite. CU_run_test()
- * sets and returns CUE_NOSUITE if pSuite is NULL,
- * CUE_NOTEST if pTest is NULL, CUE_SUITE_INACTIVE if
- * pSuite is not active, CUE_TEST_NOT_IN_SUITE
- * if pTest is not registered in pSuite, and CU_TEST_INACTIVE
- * if pTest is not active. Other error codes can be set during
- * suite initialization or cleanup or during the test run.
- * @see CU_run_all_tests() to run all tests/suites.
- * @see CU_run_suite() to run all tests in a specific suite.
- */
-
-/*--------------------------------------------------------------------
- * Functions for setting runtime behavior.
- *--------------------------------------------------------------------*/
-CU_EXPORT void CU_set_fail_on_inactive(CU_BOOL new_inactive);
-/**<
- * Sets whether an inactive suite or test is treated as a failure.
- * If CU_TRUE, then failure records will be generated for inactive
- * suites or tests encountered during a test run. The default is
- * CU_TRUE so that the client is reminded that the framewrork
- * contains inactive suites/tests. Set to CU_FALSE to turn off
- * this behavior.
- *
- * @param new_inactive New setting for whether to treat inactive
- * suites and tests as failures during a test
- * run (CU_TRUE) or not (CU_FALSE).
- * @see CU_get_fail_on_failure()
- */
-
-CU_EXPORT CU_BOOL CU_get_fail_on_inactive(void);
-/**<
- * Retrieves the current setting for whether inactive suites/tests
- * are treated as failures. If CU_TRUE then failure records will
- * be generated for inactive suites encountered during a test run.
- *
- * @return CU_TRUE if inactive suites/tests are failures, CU_FALSE if not.
- * @see CU_set_fail_on_inactive()
- */
-
-/*--------------------------------------------------------------------
- * Functions for getting information about the previous test run.
- *--------------------------------------------------------------------*/
-CU_EXPORT unsigned int CU_get_number_of_suites_run(void);
-/**< Retrieves the number of suites completed during the previous run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_suites_failed(void);
-/**< Retrieves the number of suites which failed to initialize during the previous run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_suites_inactive(void);
-/**< Retrieves the number of inactive suites found during the previous run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_tests_run(void);
-/**< Retrieves the number of tests completed during the previous run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_tests_failed(void);
-/**< Retrieves the number of tests containing failed assertions during the previous run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_tests_inactive(void);
-/**< Retrieves the number of inactive tests found during the previous run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_asserts(void);
-/**< Retrieves the number of assertions processed during the last run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_successes(void);
-/**< Retrieves the number of successful assertions during the last run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_failures(void);
-/**< Retrieves the number of failed assertions during the last run (reset each run). */
-CU_EXPORT unsigned int CU_get_number_of_failure_records(void);
-/**<
- * Retrieves the number failure records created during the previous run (reset each run).
- * Note that this may be more than the number of failed assertions, since failure
- * records may also be created for failed suite initialization and cleanup.
- */
-CU_EXPORT double CU_get_elapsed_time(void);
-/**<
- * Retrieves the elapsed time for the last run in seconds (reset each run).
- * This function will calculate the current elapsed time if the test run has not
- * yet completed. This is in contrast to the run summary returned by
- * CU_get_run_summary(), for which the elapsed time is not updated until the
- * end of the run.
- */
-CU_EXPORT CU_pFailureRecord CU_get_failure_list(void);
-/**<
- * Retrieves the head of the linked list of failures which occurred during the
- * last run (reset each run). Note that the pointer returned is invalidated
- * when the client initiates a run using CU_run_all_tests(), CU_run_suite(),
- * or CU_run_test().
- */
-
-CU_EXPORT CU_pFailureRecord CU_iterate_test_failures(CU_pTest test, CU_pFailureRecord previous);
-/**<
- * Iterate over the recorded failure records of a given test
- * @return
- */
-
-CU_EXPORT int CU_count_test_failures(CU_pTest pTest);
-/**<
- * Count the number of failures from the given test
- * @return
- */
-
-CU_EXPORT int CU_count_suite_failures(CU_pSuite pSuite);
-/**<
- * Count the number of failed tests in a suite.
- * @return
- */
-
-CU_EXPORT int CU_count_all_failures(CU_pTestRegistry pRegistry);
-/**<
- * Count the number of failed tests overall.
- * @return
- */
-
-CU_EXPORT int CU_count_suite_tests(CU_pSuite pSuite);
-/**
- * Count the number of tests in a suite.
- * @return
- */
-
-CU_EXPORT int CU_count_all_tests(CU_pTestRegistry pRegistry);
-/**
- * Count the number of tests in all suites.
- * @return
- */
-
-CU_EXPORT CU_pRunSummary CU_get_run_summary(void);
-/**<
- * Retrieves the entire run summary for the last test run (reset each run).
- * The run counts and stats contained in the run summary are updated
- * throughout a test run. Note, however, that the elapsed time is not
- * updated until after all suites/tests are run but before the "all tests
- * complete" message handler is called (if any). To get the elapsed
- * time during a test run, use CU_get_elapsed_time() instead.
- */
-
-CU_EXPORT char * CU_get_run_results_string(void);
-/**<
- * Creates a string and fills it with a summary of the current run results.
- * The run summary presents data for the suites, tests, and assertions
- * encountered during the run, as well as the elapsed time. The data
- * presented include the number of registered, run, passed, failed, and
- * inactive entities for each, as well as the elapsed time. This function
- * can be called at any time, although the test registry must have been
- * initialized (checked by assertion). The returned string is owned by
- * the caller and should be deallocated using CU_FREE(). NULL is returned
- * if there is an error allocating the new string.
- *
- * @return A new string containing the run summary (owned by caller).
- */
-
-CU_EXPORT void CU_print_run_results(FILE *file);
-/**<
- * Prints a summary of the current run results to file.
- * The run summary is the same as returned by CU_get_run_results_string().
- * Note that no newlines are printed before or after the report, so any
- * positioning must be performed before/after calling this function. The
- * report itself extends over several lines broken by '\n' characters.
- * file may not be NULL (checked by assertion).
- *
- * @param file Pointer to stream to receive the printed summary (non-NULL).
- */
-
-CU_EXPORT double CU_get_test_duration(CU_pTest pTest);
-/**<
- * @return Get the number of seconds this test took to execute.
- */
-
-CU_EXPORT double CU_get_suite_duration(CU_pSuite pSuite);
-/**<
- * @return Get the number of seconds this test took to execute.
- */
-
-/*--------------------------------------------------------------------
- * Functions for internal & testing use.
- *--------------------------------------------------------------------*/
-CU_EXPORT CU_pSuite CU_get_current_suite(void);
-/**< Retrieves a pointer to the currently-running suite (NULL if none). */
-CU_EXPORT CU_pTest CU_get_current_test(void);
-/**< Retrievea a pointer to the currently-running test (NULL if none). */
-CU_EXPORT CU_BOOL CU_is_test_running(void);
-/**< Returns CU_TRUE
if a test run is in progress,
- * CU_TRUE
otherwise.
- */
-
-CU_EXPORT void CU_clear_previous_results(void);
-/**<
- * Initializes the run summary information stored from the previous test run.
- * Resets the run counts to zero, and frees any memory associated with
- * failure records. Calling this function multiple times, while inefficient,
- * will not cause an error condition.
- * @see clear_previous_results()
- */
-
-CU_EXPORT CU_BOOL CU_assertImplementation(CU_BOOL bValue,
- unsigned int uiLine,
- const char *strCondition,
- const char *strFile,
- const char *strFunction,
- CU_BOOL bFatal);
-/**<
- * Assertion implementation function.
- * All CUnit assertions reduce to a call to this function. It should only be
- * called during an active test run (checked by assertion). This means that CUnit
- * assertions should only be used in registered test functions during a test run.
- *
- * @param bValue Value of the assertion (CU_TRUE or CU_FALSE).
- * @param uiLine Line number of failed test statement.
- * @param strCondition String containing logical test that failed.
- * @param strFile Source file where test statement failed.
- * @param strFunction Function where test statement failed.
- * @param bFatal CU_TRUE to abort test (via longjmp()), CU_FALSE to continue test.
- * @return As a convenience, returns the value of the assertion (i.e. bValue).
- */
-
-CU_EXPORT void CU_SkipImplementation(CU_BOOL bValue,
- unsigned int uiLine,
- const char *strCondition,
- const char *strFile,
- const char *strFunction);
-/**<
- * Skip Implementation
- * Called to skip execution of current test or current suite.
- * @param bValue CU_TRUE to skip
- * @param uiLine Line number of skip statement.
- * @param strCondition String containing logical test that was failed.
- * @param strFile Source file where skip happened.
- * @param strFunction Function where test skip happened.
- */
-
-/** Skip the current suite or test if true. */
-#define CU_SKIP_IF(value) \
- { CU_SkipImplementation((value), __LINE__, ("CU_SKIP_IF(" #value ")"), __FILE__, CU_FUNC); }
-
-
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-typedef CU_FailureRecord _TestResult; /**< @deprecated Use CU_FailureRecord. */
-typedef CU_pFailureRecord PTestResult; /**< @deprecated Use CU_pFailureRecord. */
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-#ifdef CUNIT_BUILD_TESTS
-void test_cunit_TestRun(void);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_TESTRUN_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/Util.h b/tools/taos-tools/deps/CUnit/CUnit/Util.h
deleted file mode 100644
index 70dd42ea3a..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/Util.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Contains Type Definitions for some generic functions used across
- * CUnit project files.
- *
- * 13/Oct/2001 Moved some of the generic functions declarations from
- * other files to this one so as to use the functions
- * consitently. This file is not included in the distribution
- * headers because it is used internally by CUnit. (AK)
- *
- * 20-Jul-2004 New interface, support for deprecated version 1 names. (JDS)
- *
- * 5-Sep-2004 Added internal test interface. (JDS)
- *
- * 17-Apr-2006 Added CU_translated_strlen() and CU_number_width().
- * Removed CUNIT_MAX_STRING_LENGTH - dangerous since not enforced.
- * Fixed off-by-1 error in CU_translate_special_characters(),
- * modifying implementation & results in some cases. User can
- * now tell if conversion failed. (JDS)
- */
-
-/** @file
- * Utility functions (user interface).
- */
-/** @addtogroup Framework
- * @{
- */
-
-#ifndef CUNIT_UTIL_H_SEEN
-#define CUNIT_UTIL_H_SEEN
-
-#include
-#include "CUnit/CUnit.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define CUNIT_MAX_ENTITY_LEN 5
-/**< Maximum number of characters in a translated xml entity. */
-
-CU_EXPORT size_t CU_translate_special_characters(const char *szSrc, char *szDest, size_t maxlen);
-/**<
- * Converts special characters in szSrc to xml entity codes and stores
- * result in szDest. Currently conversion of '&', '<', and '>' is supported.
- * Note that conversion to entities increases the length of the converted
- * string. The greatest conversion size increase would be a string
- * consisting entirely of entity characters of converted length
- * CUNIT_MAX_ENTITY_LEN. Neither szSrc nor szDest may be NULL
- * (checked by assertion).
- *
- * maxlen gives the maximum number of characters in the translated string.
- * If szDest does not have enough room to hold the converted string, the
- * return value will be zero and szDest will contain an empty string.
- * If this occurs, the remaining characters in szDest may be overwritten
- * in an unspecified manner. It is the caller's responsibility to make
- * sure there is sufficient room in szDest to hold the converted string.
- * CU_translated_strlen() may be used to calculate the length of buffer
- * required (remember to add 1 for the terminating \0).
- *
- * @param szSrc Source string to convert (non-NULL).
- * @param szDest Location to hold the converted string (non-NULL).
- * @param maxlen Maximum number of characters szDest can hold.
- * @return The number of special characters converted (always 0 if
- * szDest did not have enough room to hold converted string).
- */
-
-CU_EXPORT size_t CU_translated_strlen(const char *szSrc);
-/**<
- * Calculates the length of a translated string.
- * This function calculates the buffer length required to hold a string
- * after processing with CU_translate_special_characters(). The returned
- * length does not include space for the terminating '\0' character.
- * szSrc may not be NULL (checked by assertion).
- *
- * @param szSrc Source string to analyze (non-NULL).
- * @return The number of characters szSrc will expand to when converted.
- */
-
-CU_EXPORT int CU_compare_strings(const char *szSrc, const char *szDest);
-/**<
- * Case-insensitive string comparison. Neither string pointer
- * can be NULL (checked by assertion).
- *
- * @param szSrc 1st string to compare (non-NULL).
- * @param szDest 2nd string to compare (non-NULL).
- * @return 0 if the strings are equal, non-zero otherwise.
- */
-
-CU_EXPORT void CU_trim_left(char *szString);
-/**<
- * Trims leading whitespace from the specified string.
- * @param szString The string to trim.
- */
-
-CU_EXPORT void CU_trim_right(char *szString);
-/**<
- * Trims trailing whitespace from the specified string.
- * @param szString The string to trim.
- */
-
-CU_EXPORT void CU_trim(char *szString);
-/**<
- * Trims leading and trailing whitespace from the specified string.
- * @param szString The string to trim.
- */
-
-CU_EXPORT size_t CU_number_width(int number);
-/**<
- * Calulates the number of places required to display
- * number in decimal.
- */
-
-CU_EXPORT const char* CU_get_basename(const char* path);
-/**<
- * Given a file path, return a pointer to the last component (the basename).
- * If on windows, the result will not contain ".exe"
- */
-
-#define CU_MAIN_EXE_NAME CU_get_basename(argv[0])
-
-#ifdef CUNIT_BUILD_TESTS
-void test_cunit_Util(void);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-#define CUNIT_MAX_STRING_LENGTH 1024
-/**< Maximum string length. */
-#define translate_special_characters(src, dest, len) CU_translate_special_characters(src, dest, len)
-/**< Deprecated (version 1). @deprecated Use CU_translate_special_characters(). */
-#define compare_strings(src, dest) CU_compare_strings(src, dest)
-/**< Deprecated (version 1). @deprecated Use CU_compare_strings(). */
-
-#define trim_left(str) CU_trim_left(str)
-/**< Deprecated (version 1). @deprecated Use CU_trim_left(). */
-#define trim_right(str) CU_trim_right(str)
-/**< Deprecated (version 1). @deprecated Use CU_trim_right(). */
-#define trim(str) CU_trim(str)
-/**< Deprecated (version 1). @deprecated Use CU_trim(). */
-
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-#endif /* CUNIT_UTIL_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnit/wxWidget.h b/tools/taos-tools/deps/CUnit/CUnit/wxWidget.h
deleted file mode 100644
index b943b6c5ba..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnit/wxWidget.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2006 Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * wxWidgets gui Interface.
- *
- * May 2006 Initial implementation. (JDS)
- */
-
-/** @file
- * wxWidgets-based gui (user interface).
- */
-/** @addtogroup wxWidgets
- * @{
- */
-
-#ifndef CUNIT_WXWIDGET_H_SEEN
-#define CUNIT_WXWIDGET_H_SEEN
-
-#include "CUnit.h"
-#include "TestDB.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CU_BOOL create_tests(void);
-CU_BOOL destroy_tests(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_WXWIDGET_H_SEEN */
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/CUnitConfig.cmake b/tools/taos-tools/deps/CUnit/CUnitConfig.cmake
deleted file mode 100644
index a8b6f009ad..0000000000
--- a/tools/taos-tools/deps/CUnit/CUnitConfig.cmake
+++ /dev/null
@@ -1,4 +0,0 @@
-set (CUNIT_LIBRARIES cunit)
-set (CUNIT_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/../../../include)
-
-include(${CMAKE_CURRENT_LIST_DIR}/CUnitTargets.cmake)
\ No newline at end of file
diff --git a/tools/taos-tools/deps/CUnit/Jamfile b/tools/taos-tools/deps/CUnit/Jamfile
deleted file mode 100644
index 78409a3ee2..0000000000
--- a/tools/taos-tools/deps/CUnit/Jamfile
+++ /dev/null
@@ -1,159 +0,0 @@
-#
-# Jamfile to build CUnit - Source root Directory
-# (see http://www.freetype.org/jam/index.html)
-#
-# Copyright (C) 2004-2006 Jerry St.Clair
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#---------------------------------------------------------------------------
-
-SubDir TOP CUnit ;
-
-SubDirHdrs $(CUNIT_HDR_DIR) $(CUNIT_WIN_DIR) ;
-
-# set location for target, source, and temporary files
-LOCATE_TARGET = $(BUILD_DIR)$(SLASH)CUnit ;
-
-SEARCH_SOURCE +=
- $(TOP)$(SLASH)CUnit
- $(TOP)$(SLASH)CUnit$(SLASH)Headers
- $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Framework
- ;
-
-SOURCES =
- InternalPoolMalloc.c
- MessageHandlers.c
- CUError.c
- MyMem.c
- TestDB.c
- TestRun.c
- Util.c
- ;
-
-if $(BUILD_AUTOMATED)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Automated ;
- SOURCES += Automated.c ;
-}
-if $(BUILD_BASIC)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Basic ;
- SOURCES += Basic.c ;
-}
-if $(BUILD_CONSOLE)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Console ;
- SOURCES += Console.c ;
-}
-if $(BUILD_CURSES)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Curses ;
- SOURCES += Curses.c ;
-}
-if $(BUILD_WINDOWS)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Win ;
- SOURCES += Win.c ;
-}
-
-if $(BUILD_SHARED_LIB)
-{
- if $(NT)
- {
- # extra symbolic targets for building CUnit library
- DEPENDS cunit CUnit libcunit : $(CUNIT_LIB_NAME)$(SUFSHR) ;
-
- SubDirCcFlags -DCU_DLL -DCU_BUILD_DLL ;
-
- Main $(CUNIT_LIB_NAME)$(SUFSHR) : $(SOURCES) ;
- MakeLocate $(CUNIT_LIB_NAME)$(SUFSHR) : $(BUILD_DIR) ;
-
- if $(BCCROOT) || ( $(TOOLSET) = BORLANDC )
- {
- LINKFLAGS on $(CUNIT_LIB_NAME)$(SUFSHR) += -WD -lGi ;
- }
- else if $(MSVCNT) || ( $(TOOLSET) = VISUALC )
- {
- LINKFLAGS on $(CUNIT_LIB_NAME)$(SUFSHR) = $(LINKFLAGS) /DLL /IMPLIB:$(BUILD_DIR)$(SLASH)$(CUNIT_LIB_NAME)_dll$(SUFLIB) ;
- }
- else if $(MINGW) || ( $(TOOLSET) = MINGW )
- {
- SubDirCcFlags -fPIC ;
- LINKFLAGS on $(CUNIT_LIB_NAME)$(SUFSHR) +=
- -shared
- libcunit_dll.def
- -Wl,--out-implib,$(BUILD_DIR)$(SLASH)$(CUNIT_LIB_NAME)_dll$(SUFLIB)
- ;
- }
- else
- {
- EXIT Building of CUnit shared library is not supported for this compiler on Windows. ;
- }
-
- MakeImportLibrary $(CUNIT_LIB_NAME)$(SUFSHR) : $(CUNIT_LIB_NAME)_dll$(SUFLIB) ;
-
- # install import library
- if $(INSTALL_LIB_DIR)
- {
- InstallLib $(INSTALL_LIB_DIR) : $(CUNIT_LIB_NAME)_dll$(SUFLIB) ;
- }
-
- # install shared library
- if $(INSTALL_BIN_DIR)
- {
- InstallBin $(INSTALL_BIN_DIR) : $(CUNIT_LIB_NAME)$(SUFSHR) ;
- }
-
- }
-
- else if $(UNIX) || ( $(OS) = LINUX )
- {
- # extra symbolic targets for building CUnit library
- DEPENDS cunit CUnit libcunit : $(CUNIT_LIB_NAME)$(SUFSHR).$(VERSION).$(RELEASE) ;
-
- Main $(CUNIT_LIB_NAME)$(SUFSHR).$(VERSION).$(RELEASE) : $(SOURCES) ;
- MakeLocate $(CUNIT_LIB_NAME)$(SUFSHR).$(VERSION).$(RELEASE) : $(BUILD_DIR) ;
-
- CCFLAGS on $(SOURCES) += -fPIC ;
- LINKFLAGS on $(CUNIT_LIB_NAME)$(SUFSHR).$(VERSION).$(RELEASE) +=
- -shared
- -Wl,-soname,$(CUNIT_LIB_NAME)$(SUFSHR).$(VERSION_MAJOR)
- ;
-
- # install shared library
- if $(INSTALL_LIB_DIR)
- {
- InstallLib $(INSTALL_BIN_DIR) : $(CUNIT_LIB_NAME)$(SUFSHR).$(VERSION).$(RELEASE) ;
- }
- }
-}
-
-if $(BUILD_STATIC_LIB)
-{
- Library $(CUNIT_LIB_NAME) : $(SOURCES) ;
- MakeLocate $(CUNIT_LIB_NAME)$(SUFLIB) : $(BUILD_DIR) ;
-
- # install static library
- if $(INSTALL_LIB_DIR)
- {
- InstallLib $(INSTALL_LIB_DIR) : $(CUNIT_LIB_NAME)$(SUFLIB) ;
- }
-
-}
-
-SubInclude TOP CUnit Headers ;
-SubInclude TOP CUnit Sources Test ;
-
-
diff --git a/tools/taos-tools/deps/CUnit/Makefile.am b/tools/taos-tools/deps/CUnit/Makefile.am
deleted file mode 100644
index 1b269e7f96..0000000000
--- a/tools/taos-tools/deps/CUnit/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-SUBDIRS = Sources Headers
diff --git a/tools/taos-tools/deps/CUnit/Sources/Automated/Automated.c b/tools/taos-tools/deps/CUnit/Sources/Automated/Automated.c
deleted file mode 100644
index b75ae8a3dc..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Automated/Automated.c
+++ /dev/null
@@ -1,766 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Implementation of the Automated Test Interface.
- *
- * Feb 2002 Initial implementation. (AK)
- *
- * 13/Feb/2002 Added initial automated interface functions to generate
- * HTML based Run report. (AK)
- *
- * 23/Jul/2002 Changed HTML to XML Format file generation for Automated Tests. (AK)
- *
- * 27/Jul/2003 Fixed a bug which hinders the listing of all failures. (AK)
- *
- * 17-Jul-2004 New interface, doxygen comments, eliminate compiler warnings,
- * automated_run_tests now assigns a generic file name if
- * none has been supplied. (JDS)
- *
- * 30-Apr-2005 Added notification of failed suite cleanup function. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- *
- * 07-May-2011 Added patch to fix broken xml tags dur to spacial characters in the test name. (AK)
- */
-
-/** @file
- * Automated test interface with xml result output (implementation).
- */
-/** @addtogroup Automated
- @{
-*/
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include
-#include
-#include
-#include
-
-#include "CUnit/MessageHandlers.h"
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/MyMem.h"
-#include "CUnit/Util.h"
-#include "CUnit/TestRun.h"
-#include "CUnit/Automated.h"
-#include "CUnit/CUnit_intl.h"
-
-#define MAX_FILENAME_LENGTH 1025
-
-/*=================================================================
- * Global / Static data definitions
- *=================================================================*/
-static CU_pSuite f_pRunningSuite = NULL; /**< The running test suite. */
-static char f_szDefaultFileRoot[] = "CUnitAutomated"; /**< Default filename root for automated output files. */
-static char f_szTestListFileName[MAX_FILENAME_LENGTH] = ""; /**< Current output file name for the test listing file. */
-static char f_szTestResultFileName[MAX_FILENAME_LENGTH] = ""; /**< Current output file name for the test results file. */
-static FILE* f_pTestResultFile = NULL; /**< FILE pointer the test results file. */
-
-static CU_BOOL f_bWriting_CUNIT_RUN_SUITE = CU_FALSE; /**< Flag for keeping track of when a closing xml tag is required. */
-
-static CU_BOOL bJUnitXmlOutput = CU_FALSE; /**< Flag for toggling the xml junit output or keeping the original. Off is the default */
-static char _gPackageName[50] = "";
-
-/*=================================================================
- * Static function forward declarations
- *=================================================================*/
-static CU_ErrorCode automated_list_all_tests(CU_pTestRegistry pRegistry, const char* szFilename);
-
-static CU_ErrorCode initialize_result_file(const char* szFilename);
-static CU_ErrorCode uninitialize_result_file(void);
-
-static void automated_run_all_tests(CU_pTestRegistry pRegistry);
-
-static void automated_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite);
-static void automated_test_complete_message_handler(const CU_pTest pTest, const CU_pSuite pSuite, const CU_pFailureRecord pFailure);
-static void automated_test_skipped_message_handler(const CU_pTest pTest, const CU_pSuite pSuite);
-static void automated_all_tests_complete_message_handler(const CU_pFailureRecord pFailure);
-static void automated_suite_init_failure_message_handler(const CU_pSuite pSuite);
-static void automated_suite_cleanup_failure_message_handler(const CU_pSuite pSuite);
-static void automated_suite_skipped_message_handler(const CU_pSuite pSuite);
-
-
-void CCU_automated_add_handlers(void)
-{
- CCU_MessageHandlerFunction func;
-
- func.test_started = automated_test_start_message_handler;
- CCU_MessageHandler_Add(CUMSG_TEST_STARTED, func);
-
- func.test_completed = automated_test_complete_message_handler;
- CCU_MessageHandler_Add(CUMSG_TEST_COMPLETED, func);
-
- func.test_skipped = automated_test_skipped_message_handler;
- CCU_MessageHandler_Add(CUMSG_TEST_SKIPPED, func);
-
- func.all_completed = automated_all_tests_complete_message_handler;
- CCU_MessageHandler_Add(CUMSG_ALL_COMPLETED, func);
-
- func.suite_setup_failed = automated_suite_init_failure_message_handler;
- CCU_MessageHandler_Add(CUMSG_SUITE_SETUP_FAILED, func);
-
- func.suite_teardown_failed = automated_suite_cleanup_failure_message_handler;
- CCU_MessageHandler_Add(CUMSG_SUITE_TEARDOWN_FAILED, func);
-
- func.suite_skipped = automated_suite_skipped_message_handler;
- CCU_MessageHandler_Add(CUMSG_SUITE_SKIPPED, func);
-}
-
-/*=================================================================
- * Public Interface functions
- *=================================================================*/
-void CU_automated_run_tests(void)
-{
- assert(NULL != CU_get_registry());
-
- /* Ensure output makes it to screen at the moment of a SIGSEGV. */
- setvbuf(stdout, NULL, _IONBF, 0);
- setvbuf(stderr, NULL, _IONBF, 0);
-
- /* if a filename root hasn't been set, use the default one */
- if (0 == strlen(f_szTestResultFileName)) {
- CU_set_output_filename(f_szDefaultFileRoot);
- }
-
- if (CUE_SUCCESS != initialize_result_file(f_szTestResultFileName)) {
- fprintf(stderr, "\n%s", _("ERROR - Failed to create/initialize the result file."));
- }
- else {
- /* set up the message handlers for writing xml output */
- CCU_automated_add_handlers();
-
- f_bWriting_CUNIT_RUN_SUITE = CU_FALSE;
-
- automated_run_all_tests(NULL);
- }
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_output_filename(const char* szFilenameRoot)
-{
- const char* szListEnding = "-Listing.xml";
- const char* szResultEnding = "-Results.xml";
-
- /* Construct the name for the listing file */
- if (NULL != szFilenameRoot) {
- strncpy(f_szTestListFileName, szFilenameRoot, MAX_FILENAME_LENGTH - strlen(szListEnding) - 1);
- }
- else {
- strncpy(f_szTestListFileName, f_szDefaultFileRoot, MAX_FILENAME_LENGTH - strlen(szListEnding) - 1);
- }
-
- f_szTestListFileName[MAX_FILENAME_LENGTH - strlen(szListEnding) - 1] = '\0';
- strcat(f_szTestListFileName, szListEnding);
-
- /* Construct the name for the result file */
- if (NULL != szFilenameRoot) {
- strncpy(f_szTestResultFileName, szFilenameRoot, MAX_FILENAME_LENGTH - strlen(szResultEnding) - 1);
- }
- else {
- strncpy(f_szTestResultFileName, f_szDefaultFileRoot, MAX_FILENAME_LENGTH - strlen(szResultEnding) - 1);
- }
-
- f_szTestResultFileName[MAX_FILENAME_LENGTH - strlen(szResultEnding) - 1] = '\0';
- strcat(f_szTestResultFileName, szResultEnding);
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_list_tests_to_file()
-{
- /* if a filename root hasn't been set, use the default one */
- if (0 == strlen(f_szTestListFileName)) {
- CU_set_output_filename(f_szDefaultFileRoot);
- }
-
- return automated_list_all_tests(CU_get_registry(), f_szTestListFileName);
-}
-
-/*=================================================================
- * Static function implementation
- *=================================================================*/
-/** Runs the registered tests using the automated interface.
- * If non-NULL. the specified registry is set as the active
- * registry for running the tests. If NULL, then the default
- * CUnit test registry is used. The actual test running is
- * performed by CU_run_all_tests().
- * @param pRegistry The test registry to run.
- */
-static void automated_run_all_tests(CU_pTestRegistry pRegistry)
-{
- CU_pTestRegistry pOldRegistry = NULL;
-
- if (!bJUnitXmlOutput) assert(NULL != f_pTestResultFile);
-
- f_pRunningSuite = NULL;
-
- if (NULL != pRegistry) {
- pOldRegistry = CU_set_registry(pRegistry);
- }
- if (bJUnitXmlOutput == CU_FALSE) {
- fprintf(f_pTestResultFile, " \n");
- }
- CU_run_all_tests();
- if (NULL != pRegistry) {
- CU_set_registry(pOldRegistry);
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Initializes the test results file generated by the automated interface.
- * A file stream is opened and header information is written.
- */
-static CU_ErrorCode initialize_result_file(const char* szFilename)
-{
- CU_set_error(CUE_SUCCESS);
-
- if ((NULL == szFilename) || (strlen(szFilename) == 0)) {
- CU_set_error(CUE_BAD_FILENAME);
- }
-
- if (bJUnitXmlOutput) {
- /* make a zero byte file right now so we don't seem like we have passed */
- FILE *outfile = fopen(szFilename, "w");
- if (!outfile) {
- CU_set_error(CUE_FOPEN_FAILED);
- }
- if (fclose(outfile)){
- CU_set_error(CUE_FCLOSE_FAILED);
- }
- return CU_get_error();
- }
-
- if (NULL == (f_pTestResultFile = fopen(szFilename, "w"))) {
- CU_set_error(CUE_FOPEN_FAILED);
- }
- else {
- setvbuf(f_pTestResultFile, NULL, _IONBF, 0);
- fprintf(f_pTestResultFile,
- " \n"
- " \n"
- " \n"
- " \n"
- " \n");
- }
- return CU_get_error();
-}
-
-
-CU_EXPORT CU_ErrorCode CU_initialize_junit_result_file(void)
-{
- return initialize_result_file(f_szTestResultFileName);
-}
-
-CU_EXPORT const char* CU_automated_get_junit_filename(void) {
- return f_szTestResultFileName;
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at start of each test.
- * The test result file must have been opened before this
- * function is called (i.e. f_pTestResultFile non-NULL).
- * @param pTest The test being run (non-NULL).
- * @param pSuite The suite containing the test (non-NULL).
- */
-static void automated_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- char *szTempName = NULL;
- size_t szTempName_len = 0;
-
- assert(NULL != pTest);
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (bJUnitXmlOutput)
- return;
-
- assert(NULL != f_pTestResultFile);
-
- /* write suite close/open tags if this is the 1st test for this szSuite */
- if ((NULL == f_pRunningSuite) || (f_pRunningSuite != pSuite)) {
- if (CU_TRUE == f_bWriting_CUNIT_RUN_SUITE) {
- fprintf(f_pTestResultFile,
- " \n"
- " \n");
- }
-
- /* translate suite name that may contain XML control characters */
- szTempName = (char *)CU_MALLOC((szTempName_len = CU_translated_strlen(pSuite->pName) + 1));
- CU_translate_special_characters(pSuite->pName, szTempName, szTempName_len);
- fprintf(f_pTestResultFile,
- " \n"
- " \n"
- " %s \n",
- (NULL != szTempName ? szTempName : ""));
- f_bWriting_CUNIT_RUN_SUITE = CU_TRUE;
- f_pRunningSuite = pSuite;
- }
-
- if (NULL != szTempName) {
- CU_FREE(szTempName);
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of each test.
- * @param pTest The test being run (non-NULL).
- * @param pSuite The suite containing the test (non-NULL).
- * @param pFailure Pointer to the 1st failure record for this test.
- */
-static void automated_test_complete_message_handler(const CU_pTest pTest,
- const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- char *szTemp = NULL;
- size_t szTemp_len = 0;
- size_t cur_len = 0;
- CU_pFailureRecord pTempFailure = pFailure;
-
- assert(NULL != pTest);
- assert(NULL != pTest->pName);
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (bJUnitXmlOutput)
- return;
-
- assert(NULL != f_pTestResultFile);
-
- if (NULL != pTempFailure) {
- while (NULL != pTempFailure) {
-
- assert((NULL != pTempFailure->pSuite) && (pTempFailure->pSuite == pSuite));
- assert((NULL != pTempFailure->pTest) && (pTempFailure->pTest == pTest));
-
- /* expand temporary char buffer if need more room */
- if (NULL != pTempFailure->strCondition) {
- cur_len = CU_translated_strlen(pTempFailure->strCondition) + 1;
- }
- else {
- cur_len = 1;
- }
- if (cur_len > szTemp_len) {
- szTemp_len = cur_len;
- if (NULL != szTemp) {
- CU_FREE(szTemp);
- }
- szTemp = (char *)CU_MALLOC(szTemp_len);
- }
-
- /* convert xml entities in strCondition (if present) */
- if (NULL != pTempFailure->strCondition) {
- CU_translate_special_characters(pTempFailure->strCondition, szTemp, szTemp_len);
- }
- else {
- szTemp[0] = '\0';
- }
-
- fprintf(f_pTestResultFile,
- " \n"
- " \n"
- " %s \n"
- " %s \n"
- " %s \n"
- " %u \n"
- " %s \n"
- " \n"
- " \n",
- pTest->pName,
- (NULL != pTempFailure->strFunction) ? pTempFailure->strFunction : "",
- (NULL != pTempFailure->strFileName) ? pTempFailure->strFileName : "",
- pTempFailure->uiLineNumber,
- szTemp);
- pTempFailure = pTempFailure->pNext;
- } /* while */
- }
- else {
- fprintf(f_pTestResultFile,
- " \n"
- " \n"
- " %s \n"
- " \n"
- " \n",
- pTest->pName);
- }
-
- if (NULL != szTemp) {
- CU_FREE(szTemp);
- }
-}
-
-static void automated_suite_skipped_message_handler(const CU_pSuite pSuite) {
- assert(pSuite);
- if (bJUnitXmlOutput) return;
-}
-
-/** Handler function called when a test is being skipped.
- * @param pTest The test being skipped (non-NULL).
- * @param pSuite The suite containing the test (non-NULL).
- */
-static void automated_test_skipped_message_handler(const CU_pTest pTest,
- const CU_pSuite pSuite)
-{
- assert(NULL != pTest);
- assert(NULL != pTest->pName);
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
- if (bJUnitXmlOutput) {
- return;
- }
-
- assert(NULL != f_pTestResultFile);
-
- fprintf(f_pTestResultFile,
- " \n"
- " \n"
- " %s \n"
- " \n"
- " \n",
- pTest->pName);
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of all tests in a suite.
- * @param pFailure Pointer to the test failure record list.
- */
-static void automated_all_tests_complete_message_handler(const CU_pFailureRecord pFailure)
-{
- CU_pTestRegistry pRegistry = CU_get_registry();
- CU_pRunSummary pRunSummary = CU_get_run_summary();
-
- CU_UNREFERENCED_PARAMETER(pFailure); /* not used */
-
- assert(NULL != pRegistry);
- assert(NULL != pRunSummary);
-
- if (bJUnitXmlOutput) {
- CU_automated_finish_junit(CU_automated_get_junit_filename());
- return;
- }
-
- assert(NULL != f_pTestResultFile);
-
- if ((NULL != f_pRunningSuite) && (CU_TRUE == f_bWriting_CUNIT_RUN_SUITE)) {
- fprintf(f_pTestResultFile,
- " \n"
- " \n");
- }
-
- fprintf(f_pTestResultFile,
- " \n"
- " \n");
-
- fprintf(f_pTestResultFile,
- " \n"
- " %s \n"
- " %u \n"
- " %u \n"
- " - NA - \n"
- " %u \n"
- " %u \n"
- " \n",
- _("Suites"),
- pRegistry->uiNumberOfSuites,
- pRunSummary->nSuitesRun,
- pRunSummary->nSuitesFailed,
- pRunSummary->nSuitesInactive);
-
- fprintf(f_pTestResultFile,
- " \n"
- " %s \n"
- " %u \n"
- " %u \n"
- " %u \n"
- " %u \n"
- " %u \n"
- " \n",
- _("Test Cases"),
- pRegistry->uiNumberOfTests,
- pRunSummary->nTestsRun,
- pRunSummary->nTestsRun - pRunSummary->nTestsFailed,
- pRunSummary->nTestsFailed,
- pRunSummary->nTestsInactive);
-
- fprintf(f_pTestResultFile,
- " \n"
- " %s \n"
- " %u \n"
- " %u \n"
- " %u \n"
- " %u \n"
- " %s \n"
- " \n"
- " \n",
- _("Assertions"),
- pRunSummary->nAsserts,
- pRunSummary->nAsserts,
- pRunSummary->nAsserts - pRunSummary->nAssertsFailed,
- pRunSummary->nAssertsFailed,
- _("n/a"));
-
- if (CUE_SUCCESS != uninitialize_result_file()) {
- fprintf(stderr, "\n%s", _("ERROR - Failed to close/uninitialize the result files."));
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called when suite initialization fails.
- * @param pSuite The suite for which initialization failed.
- */
-static void automated_suite_init_failure_message_handler(const CU_pSuite pSuite)
-{
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (bJUnitXmlOutput) return;
-
- assert(NULL != f_pTestResultFile);
-
- if (CU_TRUE == f_bWriting_CUNIT_RUN_SUITE) {
- fprintf(f_pTestResultFile,
- " \n"
- " \n");
- f_bWriting_CUNIT_RUN_SUITE = CU_FALSE;
- }
-
- fprintf(f_pTestResultFile,
- " \n"
- " \n"
- " %s \n"
- " %s \n"
- " \n"
- " \n",
- pSuite->pName,
- _("Suite Initialization Failed"));
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called when suite cleanup fails.
- * @param pSuite The suite for which cleanup failed.
- */
-static void automated_suite_cleanup_failure_message_handler(const CU_pSuite pSuite)
-{
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (bJUnitXmlOutput) return;
-
- assert(NULL != f_pTestResultFile);
-
- if (CU_TRUE == f_bWriting_CUNIT_RUN_SUITE) {
- fprintf(f_pTestResultFile,
- " \n"
- " \n");
- f_bWriting_CUNIT_RUN_SUITE = CU_FALSE;
- }
-
- fprintf(f_pTestResultFile,
- " \n"
- " \n"
- " %s \n"
- " %s \n"
- " \n"
- " \n",
- pSuite->pName,
- _("Suite Cleanup Failed"));
-}
-
-/*------------------------------------------------------------------------*/
-/** Finalizes and closes the results output file generated
- * by the automated interface.
- */
-static CU_ErrorCode uninitialize_result_file(void) {
- char *szTime;
- time_t tTime = 0;
- if (bJUnitXmlOutput) { return CU_get_error(); }
-
- assert(NULL != f_pTestResultFile);
-
- CU_set_error(CUE_SUCCESS);
-
- time(&tTime);
- szTime = ctime(&tTime);
-
- fprintf(f_pTestResultFile,
- " %s" CU_VERSION " - %s \n"
- "", _("File Generated By CUnit v"),
- (NULL != szTime) ? szTime : "");
-
- if (0 != fclose(f_pTestResultFile)) {
- CU_set_error(CUE_FCLOSE_FAILED);
- }
-
- return CU_get_error();
-}
-
-/*------------------------------------------------------------------------*/
-/** Generates an xml listing of all tests in all suites for the
- * specified test registry. The output is directed to a file
- * having the specified name.
- * @param pRegistry Test registry for which to generate list (non-NULL).
- * @param szFilename Non-NULL, non-empty string containing name for
- * listing file.
- * @return A CU_ErrorCode indicating the error status.
- */
-static CU_ErrorCode automated_list_all_tests(CU_pTestRegistry pRegistry, const char* szFilename)
-{
- CU_pSuite pSuite = NULL;
- CU_pTest pTest = NULL;
- FILE* pTestListFile = NULL;
- char* szTime;
- time_t tTime = 0;
-
- CU_set_error(CUE_SUCCESS);
-
- if (NULL == pRegistry) {
- CU_set_error(CUE_NOREGISTRY);
- }
- else if ((NULL == szFilename) || (0 == strlen(szFilename))) {
- CU_set_error(CUE_BAD_FILENAME);
- }
- else if (NULL == (pTestListFile = fopen(f_szTestListFileName, "w"))) {
- CU_set_error(CUE_FOPEN_FAILED);
- }
- else {
- setvbuf(pTestListFile, NULL, _IONBF, 0);
-
- fprintf(pTestListFile,
- " \n"
- " \n"
- " \n"
- " \n"
- " \n"
- " \n");
-
- fprintf(pTestListFile,
- " \n"
- " %s \n"
- " %u \n"
- " \n",
- _("Total Number of Suites"),
- pRegistry->uiNumberOfSuites);
-
- fprintf(pTestListFile,
- " \n"
- " %s \n"
- " %u \n"
- " \n"
- " \n",
- _("Total Number of Test Cases"),
- pRegistry->uiNumberOfTests);
-
- fprintf(pTestListFile,
- " \n");
-
- pSuite = pRegistry->pSuite;
- while (NULL != pSuite) {
- assert(NULL != pSuite->pName);
- pTest = pSuite->pTest;
-
- fprintf(pTestListFile,
- " \n"
- " \n"
- " %s \n"
- " %s \n"
- " %s \n"
- " %s \n"
- " %u \n"
- " \n",
- pSuite->pName,
- (NULL != pSuite->pInitializeFunc) ? _("Yes") : _("No"),
- (NULL != pSuite->pCleanupFunc) ? _("Yes") : _("No"),
- (CU_FALSE != pSuite->fActive) ? _("Yes") : _("No"),
- pSuite->uiNumberOfTests);
-
- fprintf(pTestListFile,
- " \n");
- while (NULL != pTest) {
- assert(NULL != pTest->pName);
- fprintf(pTestListFile,
- " \n"
- " %s \n"
- " %s \n"
- " \n",
- pTest->pName,
- (CU_FALSE != pSuite->fActive) ? _("Yes") : _("No"));
- pTest = pTest->pNext;
- }
-
- fprintf(pTestListFile,
- " \n"
- " \n");
-
- pSuite = pSuite->pNext;
- }
-
- fprintf(pTestListFile, " \n");
-
- time(&tTime);
- szTime = ctime(&tTime);
- fprintf(pTestListFile,
- " %s" CU_VERSION " - %s \n"
- "",
- _("File Generated By CUnit v"),
- (NULL != szTime) ? szTime : "");
-
- if (0 != fclose(pTestListFile)) {
- CU_set_error(CUE_FCLOSE_FAILED);
- }
- }
-
- return CU_get_error();
-}
-
-/*------------------------------------------------------------------------*/
-/** Enable or Disable the XML output format to JUnit-like. When enabled (CU_TRUE)
- * then the Results xml that is produced can be read by cruisecontrol and displayed
- * in the test results page.
- */
-void CU_automated_enable_junit_xml(CU_BOOL bFlag)
-{
- bJUnitXmlOutput = bFlag;
-}
-/** @} */
-
-/*------------------------------------------------------------------------*/
-/** Set tests suites package name
- */
-void CU_automated_package_name_set(const char *pName)
-{
- memset(_gPackageName, 0, sizeof(_gPackageName));
-
- /* Is object valid? */
- if (pName) {
- strncpy(_gPackageName, pName, sizeof(_gPackageName) - 1);
- _gPackageName[sizeof(_gPackageName) - 1] = '\0';
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Get tests suites package name
- */
-const char *CU_automated_package_name_get()
-{
- return _gPackageName;
-}
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Automated/AutomatedJUnitXml.c b/tools/taos-tools/deps/CUnit/Sources/Automated/AutomatedJUnitXml.c
deleted file mode 100644
index bc904a9734..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Automated/AutomatedJUnitXml.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- * Copyright (C) 2019- Ian Norton
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Internal functions for rendering a JUnit XML report file once all tests are completed
- */
-
-#ifndef _CRT_SECURE_NO_WARNINGS
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include "CUnit/Automated.h"
-#include "CUnit/AutomatedJUnitXml.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/Util.h"
-#include
-#include
-#include
-#include
-
-#define _DEFAULT_REPORT_SIZE 10
-#define _REPORT_REALLOC_SIZE 8192
-
-
-/* crude dynamic string buffer */
-typedef struct {
- char *buf;
- unsigned end; /* the offset in buf of the nul terminator */
- size_t size;
-} cu_dstr;
-
-/* make a dstr */
-static void _dstr_init(cu_dstr *dst) {
- assert(dst);
- memset(dst, 0, sizeof(*dst));
- dst->buf = (char*) malloc(_DEFAULT_REPORT_SIZE);
- assert(dst->buf && "dynamic string buffer allocation failed");
- memset(dst->buf, 0, _DEFAULT_REPORT_SIZE);
- dst->end = 0;
- dst->size = _DEFAULT_REPORT_SIZE;
-}
-
-/* make sure there is enough space left to add count bytes */
-static void _dstr_ensure(cu_dstr *dst, size_t count) {
- size_t newsize = 0;
- if (!dst->buf) {
- _dstr_init(dst);
- }
- count++;
- if (dst->end + count >= dst->size) {
- if (count < _REPORT_REALLOC_SIZE) {
- count = _REPORT_REALLOC_SIZE;
- }
- newsize = dst->size + count;
- dst->buf = (char*) realloc(dst->buf, newsize);
- assert(dst->buf && "dynamic string buffer realloc failed");
- dst->size = newsize;
- }
-}
-
-/* append str to dst */
-static void _dstr_snputs(cu_dstr *dst, const char* str, size_t count) {
- unsigned i;
- _dstr_ensure(dst, count);
-
- for (i = 0; i < count; i++) {
- dst->buf[dst->end++] = str[i];
- }
- dst->buf[dst->end] = 0;
-}
-
-static void _dstr_puts(cu_dstr *dst, char *str) {
- size_t len = strlen(str);
- if (len) {
- _dstr_snputs(dst, str, len);
- }
-}
-
-static void _dstr_reset(cu_dstr *dst) {
- assert(dst);
- free(dst->buf);
- memset(dst, 0, sizeof(*dst));
-}
-
-static char* _dstr_release(cu_dstr *dst) {
- char *retval;
- assert(dst);
- retval = dst->buf;
- dst->buf = NULL;
- _dstr_reset(dst);
- return retval;
-}
-
-static int _dstr_putf(cu_dstr *dst, const char* format, ...) {
- va_list args;
- va_list args_copy;
-#if !(defined(_WIN32) || defined(__CYGWIN__))
- char tmp_buf[2];
-#endif
- int need = 0;
- int rv;
- va_start(args, format);
- va_copy(args_copy, args);
-
-#if defined(_WIN32) || defined(__CYGWIN__)
- need = _vscprintf(format, args);
-#else
- need = vsnprintf(tmp_buf, 2, format, args);
-#endif
-
- _dstr_ensure(dst, need + 1);
- rv = vsnprintf(dst->buf + dst->end, dst->size - dst->end, format, args_copy);
- dst->end = dst->end + need;
- va_end(args);
- return rv;
-}
-
-
-static char* _escape_string(const char* instr) {
- size_t len = CU_translated_strlen(instr) + 1;
- char *sztmp = (char *)malloc(len);
- assert (sztmp);
- CU_translate_special_characters(instr, sztmp, len);
- return sztmp;
-}
-
-static int count_suite_init_errors(CU_pSuite pSuite) {
- return CU_count_test_failures(pSuite->pCleanupFuncTest) + CU_count_test_failures(pSuite->pInitializeFuncTest);
-}
-
-static int count_all_init_errors(CU_pTestRegistry pTestRegistry) {
- CU_pSuite s = pTestRegistry->pSuite;
- int n = 0;
- while (s) {
- n += count_suite_init_errors(s);
- s = s->pNext;
- }
- return n;
-}
-
-static int count_suite_init_funcs(CU_pSuite pSuite) {
- int n = 0;
- if (pSuite) {
- if (pSuite->pInitializeFuncTest) n++;
- if (pSuite->pCleanupFuncTest) n++;
- }
- return n;
-}
-
-static int count_all_init_funcs(CU_pTestRegistry pTestRegistry) {
- int n = 0;
- if (pTestRegistry) {
- CU_pSuite s = pTestRegistry->pSuite;
- while (s) {
- n += count_suite_init_funcs(s);
- s = s->pNext;
- }
- }
- return n;
-}
-
-static void format_testcase(cu_dstr *dst, const char *esc_name, CU_pSuite suite, CU_pTest test) {
- char *esc_test_name = _escape_string(test->pName);
- CU_pFailureRecord failure = NULL;
- _dstr_putf(dst,
- " \n",
- CU_automated_package_name_get(),
- esc_name,
- esc_test_name,
- CU_get_test_duration(test)
- );
-
- if (test->fSkipped || suite->fSkipped) {
- char *skipreason = NULL;
- if (suite->fSkipped) {
- if (suite->pSkipReason)
- skipreason = _escape_string(suite->pSkipReason);
- _dstr_puts(dst, " ");
- _dstr_putf(dst,
- "Function: %s\n"
- "File: %s\n"
- "Line: %u\n",
- suite->pSkipFunction,
- suite->pSkipFile,
- suite->uiSkipLine
- );
- } else {
- if (test->pSkipReason)
- skipreason = _escape_string(test->pSkipReason);
- _dstr_puts(dst, " ");
- _dstr_putf(dst,
- "Function: %s\n"
- "File: %s\n"
- "Line: %u\n",
- test->pSkipFunction,
- test->pSkipFile,
- test->uiSkipLine
- );
- }
- if (skipreason)
- _dstr_puts(dst, skipreason);
- free(skipreason);
- _dstr_puts(dst, " \n");
- }
-
- while ((failure = CU_iterate_test_failures(test, failure))) {
- /* add each failure */
- cu_dstr failure_msg = {0};
- char *tmp_failure = NULL;
- _dstr_init(&failure_msg);
- assert(failure);
- switch (failure->type) {
- case CUF_SuiteCleanupFailed:
- _dstr_putf(&failure_msg, "%s Suite-wide cleanup failed", suite->pName);
- break;
- case CUF_SuiteInitFailed:
- _dstr_putf(&failure_msg, "%s Suite-wide setup failed", suite->pName);
- break;
- case CUF_AssertFailed:
- _dstr_putf(&failure_msg,
- "Function: %s\n"
- "File: %s\n"
- "Line: %u\n"
- "Assertion Failed:\n"
- "Condition: '%s'\n\n",
- failure->strFunction,
- failure->strFileName,
- failure->uiLineNumber,
- failure->strCondition
- );
- break;
- default:
- break;
- }
- tmp_failure = _escape_string(failure_msg.buf);
- _dstr_putf(dst, " %s\n", tmp_failure);
- free(tmp_failure);
- _dstr_reset(&failure_msg);
- }
-
- _dstr_puts(dst, " \n");
- free(esc_test_name);
-
-}
-
-CU_EXPORT void CU_automated_render_junit(char** outstr, const char* filename) {
- assert(outstr && "No destination pointer");
- *outstr = NULL;
- CU_pRunSummary summary = CU_get_run_summary();
- CU_pTestRegistry registry = CU_get_registry();
- CU_pSuite suite = registry->pSuite;
- if (summary) {
- cu_dstr dst = {0};
- char *esc_name = _escape_string(filename);
- int all_errors = count_all_init_errors(registry);
- int all_failures = all_errors + CU_count_all_failures(registry);
- int all_tests = CU_count_all_tests(registry) + count_all_init_funcs(registry);
-
- _dstr_init(&dst);
- _dstr_puts(&dst, "\n");
- _dstr_putf(&dst,
- "\n",
- all_errors,
- all_failures,
- all_tests,
- esc_name,
- summary->ElapsedTime
- );
- free(esc_name);
-
- /* iterate through all suites */
- while (suite) {
- CU_pTest test = suite->pTest;
- int errors = count_suite_init_errors(suite);
- int test_count = CU_count_suite_tests(suite) + count_suite_init_funcs(suite);
- int test_failures = errors + CU_count_suite_failures(suite);
- esc_name = _escape_string(suite->pName);
- _dstr_putf(&dst,
- " \n",
- errors,
- test_failures,
- test_count,
- suite->pName,
- CU_get_suite_duration(suite)
- );
-
- /* record suite setup */
- if (suite->pInitializeFuncTest) format_testcase(&dst, esc_name, suite, suite->pInitializeFuncTest);
-
- /* iterate through all the tests */
- while (test) {
- format_testcase(&dst, esc_name, suite, test);
- test = test->pNext;
- }
-
- /* record suite cleanup */
- if (suite->pCleanupFuncTest) format_testcase(&dst, esc_name, suite, suite->pCleanupFuncTest);
-
- _dstr_puts(&dst, " \n");
- free(esc_name);
- suite = suite->pNext;
- }
-
- _dstr_puts(&dst, "\n");
- *outstr = _dstr_release(&dst);
- }
-}
-
-
-CU_EXPORT void CU_automated_finish_junit(const char* filename)
-{
- char* reportXml = NULL;
- FILE* outfile = fopen(filename, "w");
- if (!outfile) {
- CU_set_error(CUE_FOPEN_FAILED);
- } else {
- CU_automated_render_junit(&reportXml, filename);
-
- fputs(reportXml, outfile);
-
- if (fclose(outfile)) {
- CU_set_error(CUE_FCLOSE_FAILED);
- }
- free(reportXml);
- }
-}
diff --git a/tools/taos-tools/deps/CUnit/Sources/Automated/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/Automated/Makefile.am
deleted file mode 100644
index df5dada626..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Automated/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AM_CPPFLAGS = -I$(top_srcdir)/CUnit/Headers
-noinst_LTLIBRARIES = libcunitautomated.la
-libcunitautomated_la_SOURCES = \
- Automated.c
diff --git a/tools/taos-tools/deps/CUnit/Sources/Basic/Basic.c b/tools/taos-tools/deps/CUnit/Sources/Basic/Basic.c
deleted file mode 100644
index 31d7e7a413..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Basic/Basic.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2004-2006 Jerry St.Clair, Anil Kumar
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Implementation for basic test runner interface.
- *
- * 11-Aug-2004 Initial implementation of basic test runner interface. (JDS)
- *
- * 8-Jan-2005 Fixed reporting bug (bug report cunit-Bugs-1093861). (JDS)
- *
- * 30-Apr-2005 Added notification of suite cleanup failure. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- */
-
-/** @file
- * Basic interface with output to stdout.
- */
-/** @addtogroup Basic
- * @{
- */
-
-#include
-#include
-#include
-#include
-#include
-
-
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/Util.h"
-#include "CUnit/TestRun.h"
-#include "CUnit/Basic.h"
-#include "CUnit/CUnit_intl.h"
-#include "CUnit/MessageHandlers.h"
-
-/*=================================================================
- * Global/Static Definitions
- *=================================================================*/
-/** Pointer to the currently running suite. */
-static CU_pSuite f_pRunningSuite = NULL;
-/** Current run mode. */
-static CU_BasicRunMode f_run_mode = CU_BRM_NORMAL;
-
-/*=================================================================
- * Forward declaration of module functions *
- *=================================================================*/
-static CU_ErrorCode basic_initialize(void);
-static CU_ErrorCode basic_run_all_tests(CU_pTestRegistry pRegistry);
-static CU_ErrorCode basic_run_suite(CU_pSuite pSuite);
-static CU_ErrorCode basic_run_single_test(CU_pSuite pSuite, CU_pTest pTest);
-
-static void basic_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite);
-static void basic_test_complete_message_handler(const CU_pTest pTest, const CU_pSuite pSuite, const CU_pFailureRecord pFailureList);
-static void basic_all_tests_complete_message_handler(const CU_pFailureRecord pFailure);
-static void basic_suite_init_failure_message_handler(const CU_pSuite pSuite);
-static void basic_suite_cleanup_failure_message_handler(const CU_pSuite pSuite);
-
-/*=================================================================
- * Public Interface functions
- *=================================================================*/
-CU_ErrorCode CU_basic_run_tests(void)
-{
- CU_ErrorCode error;
-
- if (NULL == CU_get_registry()) {
- if (CU_BRM_SILENT != f_run_mode)
- fprintf(stderr, "\n\n%s\n", _("FATAL ERROR - Test registry is not initialized."));
- error = CUE_NOREGISTRY;
- }
- else if (CUE_SUCCESS == (error = basic_initialize()))
- error = basic_run_all_tests(NULL);
-
- return error;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_basic_run_suite(CU_pSuite pSuite)
-{
- CU_ErrorCode error;
-
- if (NULL == pSuite)
- error = CUE_NOSUITE;
- else if (CUE_SUCCESS == (error = basic_initialize()))
- error = basic_run_suite(pSuite);
-
- return error;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_basic_run_test(CU_pSuite pSuite, CU_pTest pTest)
-{
- CU_ErrorCode error;
-
- if (NULL == pSuite)
- error = CUE_NOSUITE;
- else if (NULL == pTest)
- error = CUE_NOTEST;
- else if (CUE_SUCCESS == (error = basic_initialize()))
- error = basic_run_single_test(pSuite, pTest);
-
- return error;
-}
-
-/*------------------------------------------------------------------------*/
-void CU_basic_set_mode(CU_BasicRunMode mode)
-{
- f_run_mode = mode;
-}
-
-/*------------------------------------------------------------------------*/
-CU_BasicRunMode CU_basic_get_mode(void)
-{
- return f_run_mode;
-}
-
-/*------------------------------------------------------------------------*/
-void CU_basic_show_failures(CU_pFailureRecord pFailure)
-{
- int i;
-
- for (i = 1 ; (NULL != pFailure) ; pFailure = pFailure->pNext, i++) {
- fprintf(stdout, "\n %d. %s:%s:%u - %s", i,
- (NULL != pFailure->strFunction) ? pFailure->strFunction : "",
- (NULL != pFailure->strFileName) ? pFailure->strFileName : "",
- pFailure->uiLineNumber,
- (NULL != pFailure->strCondition) ? pFailure->strCondition : "");
- }
-}
-
-/*=================================================================
- * Static module functions
- *=================================================================*/
-/** Performs inialization actions for the basic interface.
- * This includes setting output to unbuffered, printing a
- * welcome message, and setting the test run handlers.
- * @return An error code indicating the framework error condition.
- */
-static CU_ErrorCode basic_initialize(void)
-{
- /* Unbuffered output so everything reaches the screen */
- setvbuf(stdout, NULL, _IONBF, 0);
- setvbuf(stderr, NULL, _IONBF, 0);
-
- CU_set_error(CUE_SUCCESS);
-
- if (CU_BRM_SILENT != f_run_mode)
- fprintf(stdout, "\n\n %s" CU_VERSION
- "\n %s\n\n",
- _("CUnit - A unit testing framework for C - Version "),
- _("http://cunit.sourceforge.net/"));
-
- CCU_basic_add_handlers();
-
- return CU_get_error();
-}
-
-/*------------------------------------------------------------------------*/
-/** Runs all tests within the basic interface.
- * If non-NULL, the test registry is changed to the specified registry
- * before running the tests, and reset to the original registry when
- * done. If NULL, the default CUnit test registry will be used.
- * @param pRegistry The CU_pTestRegistry containing the tests
- * to be run. If NULL, use the default registry.
- * @return An error code indicating the error status
- * during the test run.
- */
-static CU_ErrorCode basic_run_all_tests(CU_pTestRegistry pRegistry)
-{
- CU_pTestRegistry pOldRegistry = NULL;
- CU_ErrorCode result;
-
- f_pRunningSuite = NULL;
-
- if (NULL != pRegistry)
- pOldRegistry = CU_set_registry(pRegistry);
- result = CU_run_all_tests();
- if (NULL != pRegistry)
- CU_set_registry(pOldRegistry);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-/** Runs a specified suite within the basic interface.
- * @param pSuite The suite to be run (non-NULL).
- * @return An error code indicating the error status
- * during the test run.
- */
-static CU_ErrorCode basic_run_suite(CU_pSuite pSuite)
-{
- f_pRunningSuite = NULL;
- return CU_run_suite(pSuite);
-}
-
-/*------------------------------------------------------------------------*/
-/** Runs a single test for the specified suite within
- * the console interface.
- * @param pSuite The suite containing the test to be run (non-NULL).
- * @param pTest The test to be run (non-NULL).
- * @return An error code indicating the error status
- * during the test run.
- */
-static CU_ErrorCode basic_run_single_test(CU_pSuite pSuite, CU_pTest pTest)
-{
- f_pRunningSuite = NULL;
- return CU_run_test(pSuite, pTest);
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at start of each test.
- * @param pTest The test being run.
- * @param pSuite The suite containing the test.
- */
-static void basic_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- assert(NULL != pSuite);
- assert(NULL != pTest);
-
- if (CU_BRM_VERBOSE == f_run_mode) {
- assert(NULL != pTest->pName);
- if ((NULL == f_pRunningSuite) || (f_pRunningSuite != pSuite)) {
- assert(NULL != pSuite->pName);
- fprintf(stdout, "\n%s: %s", _("Suite"), pSuite->pName);
- fprintf(stdout, "\n %s: %s ...", _("Test"), pTest->pName);
- f_pRunningSuite = pSuite;
- }
- else {
- fprintf(stdout, "\n %s: %s ...", _("Test"), pTest->pName);
- }
- }
-}
-
-static void basic_test_skipped_message_handler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- if (CU_BRM_VERBOSE == f_run_mode) {
- fprintf(stdout, _("SKIPPED"));
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of each test.
- * @param pTest The test being run.
- * @param pSuite The suite containing the test.
- * @param pFailure Pointer to the 1st failure record for this test.
- */
-static void basic_test_complete_message_handler(const CU_pTest pTest,
- const CU_pSuite pSuite,
- const CU_pFailureRecord pFailureList)
-{
- CU_pFailureRecord pFailure = pFailureList;
- int i;
-
- assert(NULL != pSuite);
- assert(NULL != pTest);
-
- if (NULL == pFailure) {
- if (CU_BRM_VERBOSE == f_run_mode) {
- fprintf(stdout, _("passed"));
- }
- }
- else {
- switch (f_run_mode) {
- case CU_BRM_VERBOSE:
- fprintf(stdout, _("FAILED"));
- break;
- case CU_BRM_NORMAL:
- assert(NULL != pSuite->pName);
- assert(NULL != pTest->pName);
- fprintf(stdout, _("\nSuite %s, Test %s had failures:"), pSuite->pName, pTest->pName);
- break;
- default: /* gcc wants all enums covered. ok. */
- break;
- }
- if (CU_BRM_SILENT != f_run_mode) {
- for (i = 1 ; (NULL != pFailure) ; pFailure = pFailure->pNext, i++) {
- fprintf(stdout, "\n %d. %s:%s:%u - %s", i,
- (NULL != pFailure->strFunction) ? pFailure->strFunction : "",
- (NULL != pFailure->strFileName) ? pFailure->strFileName : "",
- pFailure->uiLineNumber,
- (NULL != pFailure->strCondition) ? pFailure->strCondition : "");
- }
- }
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of all tests in a suite.
- * @param pFailure Pointer to the test failure record list.
- */
-static void basic_all_tests_complete_message_handler(const CU_pFailureRecord pFailure)
-{
- CU_UNREFERENCED_PARAMETER(pFailure); /* not used in basic interface */
- fprintf(stdout, "\n\n");
- CU_print_run_results(stdout);
- fprintf(stdout, "\n");
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called when suite initialization fails.
- * @param pSuite The suite for which initialization failed.
- */
-static void basic_suite_init_failure_message_handler(const CU_pSuite pSuite)
-{
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (CU_BRM_SILENT != f_run_mode)
- fprintf(stdout, _("\nWARNING - Suite initialization failed for '%s'."), pSuite->pName);
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called when suite cleanup fails.
- * @param pSuite The suite for which cleanup failed.
- */
-static void basic_suite_cleanup_failure_message_handler(const CU_pSuite pSuite)
-{
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (CU_BRM_SILENT != f_run_mode)
- fprintf(stdout, _("\nWARNING - Suite cleanup failed for '%s'."), pSuite->pName);
-}
-
-void CCU_basic_add_handlers(void)
-{
- CCU_MessageHandlerFunction func;
-
- func.test_started = basic_test_start_message_handler;
- CCU_MessageHandler_Add(CUMSG_TEST_STARTED, func);
-
- func.test_completed = basic_test_complete_message_handler;
- CCU_MessageHandler_Add(CUMSG_TEST_COMPLETED, func);
-
- func.all_completed = basic_all_tests_complete_message_handler;
- CCU_MessageHandler_Add(CUMSG_ALL_COMPLETED, func);
-
- func.suite_setup_failed = basic_suite_init_failure_message_handler;
- CCU_MessageHandler_Add(CUMSG_SUITE_SETUP_FAILED, func);
-
- func.suite_teardown_failed = basic_suite_cleanup_failure_message_handler;
- CCU_MessageHandler_Add(CUMSG_SUITE_TEARDOWN_FAILED, func);
-
- func.test_skipped = basic_test_skipped_message_handler;
- CCU_MessageHandler_Add(CUMSG_TEST_SKIPPED, func);
-}
-
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Basic/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/Basic/Makefile.am
deleted file mode 100644
index 45b73f6a2e..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Basic/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AM_CPPFLAGS = -I$(top_srcdir)/CUnit/Headers
-noinst_LTLIBRARIES = libcunitbasic.la
-libcunitbasic_la_SOURCES = \
- Basic.c
diff --git a/tools/taos-tools/deps/CUnit/Sources/CI/CUnitCI.c b/tools/taos-tools/deps/CUnit/Sources/CI/CUnitCI.c
deleted file mode 100644
index e5276a5d3a..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/CI/CUnitCI.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * Easy setup of CUnit tests (Implementation)
- */
-
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- * Copyright (C) 2018 Ian Norton
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#include "assert.h"
-
-#include "CUnit/Automated.h"
-#include "CUnit/AutomatedJUnitXml.h"
-#include "CUnit/Basic.h"
-#include "CUnit/MessageHandlers.h"
-#include "CUnit/Util.h"
-#include "CUnit/CUnit_intl.h"
-#include "CUnit/CUnitCITypes.h"
-
-#if defined(_WIN32) || defined(WIN32)
-#include
-#endif
-
-
-/* The last suite defined by CU_CI_add_suite() */
-static CU_pSuite current_suite = NULL;
-
-
-static void cu_ci_suite_started(const CU_pSuite pSuite) {
- if (pSuite && pSuite->pName) {
- fprintf(stdout, _("\nRunning Suite : %s"), pSuite->pName);
- }
-}
-
-static void cu_ci_test_started(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- assert(pSuite && "called without a test suite");
- if (pTest && pTest->pName) {
- fprintf(stdout, _("\n Running Test : %s .."), pTest->pName);
- }
-}
-
-static void cu_ci_test_skipped(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- fprintf(stdout, _("SKIPPED"));
-}
-
-static void cu_ci_test_completed(const CU_pTest pTest,
- const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- if (pFailure) {
- fprintf(stdout, _("FAILED"));
- } else {
- fprintf(stdout, _("PASSED"));
- }
-}
-
-static void cu_ci_suite_setup_failed(const CU_pSuite pSuite)
-{
- fprintf(stdout, _(" - SUITE SETUP ERROR!"));
- fprintf(stdout, "\n");
-}
-
-static void cu_ci_suite_cleanup_failed(const CU_pSuite pSuite)
-{
- fprintf(stdout, _(" - SUITE CLEANUP ERROR!"));
- fprintf(stdout, "\n");
-}
-
-static void setup_handlers(void) {
- CCU_MessageHandlerFunction func;
-
- func.suite_start = cu_ci_suite_started;
- CCU_MessageHandler_Add(CUMSG_SUITE_STARTED, func);
-
- func.test_started = cu_ci_test_started;
- CCU_MessageHandler_Add(CUMSG_TEST_STARTED, func);
-
- func.test_completed = cu_ci_test_completed;
- CCU_MessageHandler_Add(CUMSG_TEST_COMPLETED, func);
-
- func.suite_setup_failed = cu_ci_suite_setup_failed;
- CCU_MessageHandler_Add(CUMSG_SUITE_SETUP_FAILED, func);
-
- func.suite_teardown_failed = cu_ci_suite_cleanup_failed;
- CCU_MessageHandler_Add(CUMSG_SUITE_TEARDOWN_FAILED, func);
-
- func.test_skipped = cu_ci_test_skipped;
- CCU_MessageHandler_Add(CUMSG_TEST_SKIPPED, func);
-}
-
-static char ** cunit_main_argv = NULL;
-static int cunit_main_argc = 0;
-
-CU_EXPORT void CU_CI_args(int *argc, char*** argv) {
- *argc = cunit_main_argc;
- *argv = cunit_main_argv;
-}
-
-CU_EXPORT int CU_CI_main(int argc, char** argv) {
- int ret = -1;
- cunit_main_argc = argc;
- cunit_main_argv = argv;
-
- if (argc > 0) {
- fprintf(stdout, _("Starting CUnit test:\n %s\n"), argv[0]);
- CU_set_output_filename(CU_get_basename(argv[0]));
- CU_automated_enable_junit_xml(CU_TRUE);
- CU_automated_package_name_set("CUnit");
-
- // if we can work out how to make report files then enable them
- if (CUE_SUCCESS != CU_initialize_junit_result_file()) {
- fprintf(stderr, "\n%s", _("ERROR - Failed to create/initialize the result file."));
- CU_automated_enable_junit_xml(CU_FALSE);
- } else {
- CCU_automated_add_handlers();
- fprintf(stdout, _("JUnit XML:\n %s\n"), CU_automated_get_junit_filename());
- }
- } else {
- fprintf(stdout, _("Starting CUnit:\n"));
- fprintf(stdout, _("JUnit XML will not be written\n"));
- }
-
- setup_handlers();
- CCU_basic_add_handlers();
- CU_run_all_tests();
-
- ret = (int) (CU_get_number_of_failures() + CU_get_number_of_failure_records());
-
- CU_cleanup_registry();
-
- return ret;
-}
-
-CU_EXPORT void CU_CI_add_suite(
- const char* name,
- CU_InitializeFunc init,
- CU_CleanupFunc cleanup,
- CU_SetUpFunc setup,
- CU_TearDownFunc teardown)
-{
- CU_pSuite new_suite = NULL;
-
- if (CU_registry_initialized() != CU_TRUE)
- {
- assert(CU_initialize_registry() == CUE_SUCCESS && "CUnit Internal error");
- }
- new_suite = CU_add_suite_with_setup_and_teardown(
- name,
- init,
- cleanup,
- setup,
- teardown);
-
- current_suite = new_suite;
-}
-
-CU_EXPORT void CU_CI_add_test(const char* name, CU_TestFunc test)
-{
- assert(current_suite && "CU_CI_DEFINE_SUITE not called");
- CU_add_test(current_suite, name, test);
-}
diff --git a/tools/taos-tools/deps/CUnit/Sources/Console/Console.c b/tools/taos-tools/deps/CUnit/Sources/Console/Console.c
deleted file mode 100644
index fb5d0608cb..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Console/Console.c
+++ /dev/null
@@ -1,711 +0,0 @@
- /*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Implementation of the Console Test Interface.
- *
- * Aug 2001 Initial implementation (AK)
- *
- * 19/Aug/2001 Added initial console interface functions without
- * any run functionality. (AK)
- *
- * 24/Aug/2001 Added compare_strings, show_errors, list_suites,
- * list_tests function declarations. (AK)
- *
- * 17-Jul-2004 New interface, doxygen comments, reformat console output. (JDS)
- *
- * 30-Apr-2005 Added notification of suite cleanup failure. (JDS)
- *
- * 24-Apr-2006 Suite/test selection is now by number rather than name.
- * Inactive suites/tests now reported.
- * Interface supports (de)activation of tests/suites.
- * Help function added for both menu levels.
- * Option menu added. Immediate action on hotkeys
- * without needing to , like curses. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- */
-
-/** @file
- * Console test interface with interactive output (implementation).
- */
-/** @addtogroup Console
- @{
-*/
-
-#include
-#include
-#include
-#include
-#include
-
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/Util.h"
-#include "CUnit/TestRun.h"
-#include "CUnit/Console.h"
-#include "CUnit/CUnit_intl.h"
-
-/** Ignore return values in modern gcc */
-#define IGNORE_RETURN(x) if(x){}
-
-/** Console interface status flag. */
-typedef enum
-{
- CU_STATUS_CONTINUE = 1, /**< Continue processing commands in current menu. */
- CU_STATUS_MOVE_UP, /**< Move up to the previous menu. */
- CU_STATUS_STOP /**< Stop processing (user selected 'Quit'). */
-} CU_STATUS;
-
-/*=================================================================
- * Global / Static data definitions
- *=================================================================*/
-/** Pointer to the currently running suite. */
-static CU_pSuite f_pRunningSuite = NULL;
-
-/** Common width measurements for output formatting. */
-static size_t f_yes_width = 0;
-static size_t f_no_width = 0;
-
-/*=================================================================
- * Static function forward declarations
- *=================================================================*/
-static void console_registry_level_run(CU_pTestRegistry pRegistry);
-static CU_STATUS console_suite_level_run(CU_pSuite pSuite);
-static CU_STATUS console_set_options_run(void);
-
-static CU_ErrorCode console_run_all_tests(CU_pTestRegistry pRegistry);
-static CU_ErrorCode console_run_suite(CU_pSuite pSuite);
-static CU_ErrorCode console_run_single_test(CU_pSuite pSuite, CU_pTest pTest);
-
-static void console_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite);
-static void console_test_complete_message_handler(const CU_pTest pTest, const CU_pSuite pSuite, const CU_pFailureRecord pFailure);
-static void console_all_tests_complete_message_handler(const CU_pFailureRecord pFailure);
-static void console_suite_init_failure_message_handler(const CU_pSuite pSuite);
-static void console_suite_cleanup_failure_message_handler(const CU_pSuite pSuite);
-static void console_suite_init_skipped_message_handler(const CU_pSuite pSuite);
-
-static CU_ErrorCode select_test(CU_pSuite pSuite, CU_pTest* ppTest);
-static CU_ErrorCode select_suite(CU_pTestRegistry pRegistry, CU_pSuite* ppSuite);
-
-static void list_suites(CU_pTestRegistry pRegistry);
-static void list_tests(CU_pSuite pSuite);
-static void show_failures(void);
-
-/*=================================================================
- * Public Interface functions
- *=================================================================*/
-void CU_console_run_tests(void)
-{
- /*
- * To avoid user from cribbing about the output not coming onto
- * screen at the moment of SIGSEGV.
- */
- setvbuf(stdout, NULL, _IONBF, 0);
- setvbuf(stderr, NULL, _IONBF, 0);
-
- fprintf(stdout, "\n\n %s" CU_VERSION
- "\n %s\n",
- _("CUnit - A Unit testing framework for C - Version "),
- _("http://cunit.sourceforge.net/"));
-
- if (NULL == CU_get_registry()) {
- fprintf(stderr, "\n\n%s\n", _("FATAL ERROR - Test registry is not initialized."));
- CU_set_error(CUE_NOREGISTRY);
- }
- else {
- f_yes_width = strlen(_("Yes"));
- f_no_width = strlen(_("No"));
-
- CU_set_test_start_handler(console_test_start_message_handler);
- CU_set_test_complete_handler(console_test_complete_message_handler);
- CU_set_all_test_complete_handler(console_all_tests_complete_message_handler);
- CU_set_suite_init_failure_handler(console_suite_init_failure_message_handler);
- CU_set_suite_cleanup_failure_handler(console_suite_cleanup_failure_message_handler);
- CU_set_suite_skipped_handler(console_suite_init_skipped_message_handler);
-
- console_registry_level_run(NULL);
- }
-}
-
-/*=================================================================
- * Static function implementation
- *=================================================================*/
-
-static int get_choice(void)
-{
- char szTemp[256];
- int ch;
-
- ch = getchar();
- IGNORE_RETURN(fgets(szTemp, 256, stdin)) /* flush any chars out of the read buffer */
- return toupper(ch);
-}
-
-/**
- * Main loop for console interface.
- * Displays actions and responds based on user imput. If pRegistry
- * is NULL, will use the default internal CUnit test registry.
- *
- * @param pRegistry The CU_pTestRegistry to use for testing.
- */
-static void console_registry_level_run(CU_pTestRegistry pRegistry)
-{
- int chChoice;
- CU_pSuite pSuite = NULL;
- CU_STATUS eStatus = CU_STATUS_CONTINUE;
-
- while (CU_STATUS_CONTINUE == eStatus)
- {
- fprintf(stdout, "\n\n%s\n%s\n%s",
- _("***************** CUNIT CONSOLE - MAIN MENU ******************************"),
- _("(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp (Q)uit"),
- _("Enter command: "));
- chChoice = get_choice();
-
- if (chChoice == _("R")[0]) {
- console_run_all_tests(pRegistry);
- }
-
- else if (chChoice == _("S")[0]) {
- if (CUE_SUCCESS == select_suite(pRegistry, &pSuite)) {
- assert(NULL != pSuite->pName);
- fprintf(stdout, _("Suite '%s' selected."), pSuite->pName);
- fprintf(stdout, "\n");
- if (CU_STATUS_STOP == console_suite_level_run(pSuite)) {
- eStatus = CU_STATUS_STOP;
- }
- }
- else {
- fprintf(stdout, "\n%s\n", _("Suite not found."));
- }
- }
-
- else if (chChoice == _("L")[0]) {
- list_suites(pRegistry);
- }
-
- else if (chChoice == _("A")[0]) {
- while (CUE_SUCCESS == select_suite(pRegistry, &pSuite)) {
- CU_set_suite_active(pSuite, (CU_FALSE == pSuite->fActive) ? CU_TRUE : CU_FALSE);
- }
- }
-
- else if (chChoice == _("F")[0]) {
- show_failures();
- }
-
- else if (chChoice == _("O")[0]) {
- console_set_options_run();
- }
-
- else if (chChoice == _("Q")[0]) {
- eStatus = CU_STATUS_STOP;
- }
-
- else if ((chChoice == _("H")[0]) || (chChoice == _("?")[0])) {
- fprintf(stdout, "\n%s\n", _("Commands: R - run all tests in all suites"));
- fprintf(stdout, "%s\n", _(" S - Select a suite to run or modify"));
- fprintf(stdout, "%s\n", _(" L - List all registered suites"));
- fprintf(stdout, "%s\n", _(" A - Activate or deactivate a suite (toggle)"));
- fprintf(stdout, "%s\n", _(" F - Show failures from last test run"));
- fprintf(stdout, "%s\n", _(" O - Set CUnit options"));
- fprintf(stdout, "%s\n", _(" H - Show this help message"));
- fprintf(stdout, "%s\n", _(" Q - Quit the application"));
- }
- }
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Runs a selected suite within the console interface.
- * Displays actions and responds based on user imput.
- *
- * @param pSuite The suite to use for testing (non-NULL).
- */
-static CU_STATUS console_suite_level_run(CU_pSuite pSuite)
-{
- int chChoice;
- CU_pTest pTest = NULL;
- CU_STATUS eStatus = CU_STATUS_CONTINUE;
-
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- while (CU_STATUS_CONTINUE == eStatus) {
-
- fprintf(stdout, "\n%s\n%s\n%s",
- _("***************** CUNIT CONSOLE - SUITE MENU ***************************"),
- _("(R)un (S)elect (L)ist (A)ctivate (F)ailures (U)p (O)ptions (H)elp (Q)uit"),
- _("Enter command: "));
- chChoice = get_choice();
-
- if (chChoice == _("R")[0]) {
- console_run_suite(pSuite);
- }
-
- else if (chChoice == _("S")[0]) {
- if (CUE_SUCCESS == select_test(pSuite, &pTest)) {
- console_run_single_test(pSuite, pTest);
- }
- else {
- fprintf(stdout, "\n%s\n", _("Test not found."));
- }
- }
-
- else if (chChoice == _("L")[0]) {
- list_tests(pSuite);
- }
-
- else if (chChoice == _("A")[0]) {
- while (CUE_SUCCESS == select_test(pSuite, &pTest)) {
- CU_set_test_active(pTest, (CU_FALSE == pTest->fActive) ? CU_TRUE : CU_FALSE);
- }
- }
-
- else if (chChoice == _("F")[0]) {
- show_failures();
- }
-
- else if ((chChoice == _("M")[0]) || (chChoice == _("U")[0])) {
- eStatus = CU_STATUS_MOVE_UP;
- }
-
- else if (chChoice == _("O")[0]) {
- console_set_options_run();
- }
-
- else if (chChoice == _("Q")[0]) {
- eStatus = CU_STATUS_STOP;
- }
-
- else if ((chChoice == _("H")[0]) || (chChoice == _("?")[0])) {
- fprintf(stdout, "\n");
- fprintf(stdout, _("Commands: R - run all tests in suite %s"), pSuite->pName);
- fprintf(stdout, "\n");
- fprintf(stdout, "%s\n", _(" S - Select and run a test"));
- fprintf(stdout, _(" L - List all tests registered in suite %s"), pSuite->pName);
- fprintf(stdout, "\n");
- fprintf(stdout, "%s\n", _(" A - Activate or deactivate a test (toggle)"));
- fprintf(stdout, "%s\n", _(" F - Show failures from last test run"));
- fprintf(stdout, "%s\n", _(" M - Move up to main menu"));
- fprintf(stdout, "%s\n", _(" O - Set CUnit options"));
- fprintf(stdout, "%s\n", _(" H - Show this help message"));
- fprintf(stdout, "%s\n", _(" Q - Quit the application"));
- }
- }
- return eStatus;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Sets CUnit options interactively using console interface.
- * Displays actions and responds based on user imput.
- */
-static CU_STATUS console_set_options_run(void)
-{
- int chChoice;
- CU_STATUS eStatus = CU_STATUS_CONTINUE;
-
- while (CU_STATUS_CONTINUE == eStatus) {
- fprintf(stdout, "\n%s\n",
- _("***************** CUNIT CONSOLE - OPTIONS **************************"));
- fprintf(stdout, _(" 1 - Inactive suites/tests treated as runtime failures %s"),
- (CU_FALSE != CU_get_fail_on_inactive()) ? _("Yes") : _("No"));
- fprintf(stdout, "\n********************************************************************\n");
- fprintf(stdout, "%s",
- _("Enter number of option to change : "));
- chChoice = get_choice();
-
- switch (tolower(chChoice)) {
- case '1':
- CU_set_fail_on_inactive((CU_FALSE == CU_get_fail_on_inactive()) ? CU_TRUE : CU_FALSE);
- break;
-
- default:
- eStatus = CU_STATUS_MOVE_UP;
- break;
- }
- }
- return eStatus;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Runs all tests within the console interface.
- * The test registry is changed to the specified registry before running
- * the tests, and reset to the original registry when done. If pRegistry
- * is NULL, the default internal CUnit test registry is used.
- *
- * @param pRegistry The CU_pTestRegistry containing the tests to be run.
- * @return An error code indicating the error status during the test run.
- */
-static CU_ErrorCode console_run_all_tests(CU_pTestRegistry pRegistry)
-{
- CU_pTestRegistry pOldRegistry = NULL;
- CU_ErrorCode result;
-
- f_pRunningSuite = NULL;
-
- if (NULL != pRegistry) {
- pOldRegistry = CU_set_registry(pRegistry);
- }
- result = CU_run_all_tests();
- if (NULL != pRegistry) {
- CU_set_registry(pOldRegistry);
- }
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Runs a specified suite within the console interface.
- *
- * @param pSuite The suite to be run (non-NULL).
- * @return An error code indicating the error status during the test run.
- */
-static CU_ErrorCode console_run_suite(CU_pSuite pSuite)
-{
- f_pRunningSuite = NULL;
- return CU_run_suite(pSuite);
-}
-
-/*------------------------------------------------------------------------*/
-/**
- ( Runs a specific test for the specified suite within the console interface.
- *
- * @param pSuite The suite containing the test to be run (non-NULL).
- * @param pTest The test to be run (non-NULL).
- * @return An error code indicating the error status during the test run.
- */
-static CU_ErrorCode console_run_single_test(CU_pSuite pSuite, CU_pTest pTest)
-{
- f_pRunningSuite = NULL;
- return CU_run_test(pSuite, pTest);
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Reads the number of a test from standard input and locates the test
- * at that position. A pointer to the located test is stored
- * in ppTest upon return.
- *
- * @param pSuite The suite to be queried.
- * @param ppTest Pointer to location to store the selected test.
- * @return CUE_SUCCESS if a test was successfully selected, CUE_NOTEST
- * otherwise. On return, ppTest points to the test selected,
- * or NULL if none.
- */
-static CU_ErrorCode select_test(CU_pSuite pSuite, CU_pTest* ppTest)
-{
- char buffer[100];
-
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
- *ppTest = NULL;
-
- if (0 == pSuite->uiNumberOfTests) {
- fprintf(stdout, "\n");
- fprintf(stdout, _("Suite %s contains no tests."), pSuite->pName);
- }
- else {
- list_tests(pSuite);
- fprintf(stdout, "\n");
- fprintf(stdout, _("Enter number of test to select (1-%u) : "),
- pSuite->uiNumberOfTests);
- IGNORE_RETURN(fgets(buffer, 100, stdin))
-
- *ppTest = CU_get_test_by_index(atol(buffer), pSuite);
- }
-
- return (NULL != *ppTest) ? CUE_SUCCESS : CUE_NOTEST;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Reads the number of a suite from standard input and locates the suite
- * at that position. If pRegistry is NULL, the default CUnit registry
- * will be used. The located pSuite is returned in ppSuite. ppSuite
- * will be NULL if there is no suite in the registry having the input name.
- * Returns NULL if the suite is successfully located, non-NULL otherwise.
- *
- * @param pRegistry The CU_pTestRegistry to query. If NULL, use the
- * default internal CUnit test registry.
- * @param ppSuite Pointer to location to store the selected suite.
- * @return CUE_SUCCESS if a suite was successfully selected, CUE_NOSUITE
- * otherwise. On return, ppSuite points to the suite selected.
- */
-static CU_ErrorCode select_suite(CU_pTestRegistry pRegistry, CU_pSuite* ppSuite)
-{
- char buffer[100];
-
- if (NULL == pRegistry) {
- pRegistry = CU_get_registry();
- }
-
- if (0 == pRegistry->uiNumberOfSuites) {
- fprintf(stdout, "\n%s", _("No suites are registered."));
- *ppSuite = NULL;
- }
- else {
- list_suites(pRegistry);
- fprintf(stdout, "\n");
- fprintf(stdout, _("Enter number of suite to select (1-%u) : "),
- pRegistry->uiNumberOfSuites);
- IGNORE_RETURN(fgets(buffer, 100, stdin))
-
- *ppSuite = CU_get_suite_by_index(atol(buffer), pRegistry);
- }
-
- return (NULL != *ppSuite) ? CUE_SUCCESS : CUE_NOSUITE;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Lists the suites in a registry to standard output.
- * @param pRegistry The CU_pTestRegistry to query (non-NULL).
- */
-static void list_suites(CU_pTestRegistry pRegistry)
-{
- CU_pSuite pCurSuite = NULL;
- int i;
- static int width[6];
-
- if (NULL == pRegistry) {
- pRegistry = CU_get_registry();
- }
-
- assert(NULL != pRegistry);
- if (0 == pRegistry->uiNumberOfSuites) {
- fprintf(stdout, "\n%s\n", _("No suites are registered."));
- return;
- }
-
- assert(NULL != pRegistry->pSuite);
-
- /* only number of suite can change between calls */
- width[0] = (int) CU_number_width(pRegistry->uiNumberOfSuites) + 1;
- if (0 == width[1]) {
- width[1] = 34;
- width[2] = (int)CU_MAX(strlen(_("Init?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- width[3] = (int)CU_MAX(strlen(_("Cleanup?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- width[4] = (int)CU_MAX(strlen(_("#Tests")), CU_number_width(pRegistry->uiNumberOfTests) + 1) + 1;
- width[5] = (int)CU_MAX(strlen(_("Active?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- }
-
- fprintf(stdout, "\n%s", _("--------------------- Registered Suites -----------------------------"));
- fprintf(stdout, "\n%*s %-*s%*s%*s%*s%*s\n",
- width[0], _("#"),
- width[1], _("Suite Name"),
- width[2], _("Init?"),
- width[3], _("Cleanup?"),
- width[4], _("#Tests"),
- width[5], _("Active?"));
-
- for (i = 1, pCurSuite = pRegistry->pSuite; (NULL != pCurSuite); pCurSuite = pCurSuite->pNext, ++i) {
- assert(NULL != pCurSuite->pName);
- fprintf(stdout, "\n%*d. %-*.*s%*s%*s%*u%*s",
- width[0], i,
- width[1], width[1] - 1, pCurSuite->pName,
- width[2]-1, (NULL != pCurSuite->pInitializeFunc) ? _("Yes") : _("No"),
- width[3], (NULL != pCurSuite->pCleanupFunc) ? _("Yes") : _("No"),
- width[4], pCurSuite->uiNumberOfTests,
- width[5], (CU_FALSE != pCurSuite->fActive) ? _("Yes") : _("No"));
- }
- fprintf(stdout, "\n---------------------------------------------------------------------\n");
- fprintf(stdout, _("Total Number of Suites : %-u"), pRegistry->uiNumberOfSuites);
- fprintf(stdout, "\n");
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Lists the tests in a suite to standard output.
- * @param pSuite The suite to query (non-NULL).
- */
-static void list_tests(CU_pSuite pSuite)
-{
- CU_pTest pCurTest = NULL;
- unsigned int uiCount;
- static int width[3];
-
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (0 == pSuite->uiNumberOfTests) {
- fprintf(stdout, "\n");
- fprintf(stdout, _("Suite %s contains no tests."), pSuite->pName);
- fprintf(stdout, "\n");
- return;
- }
-
- assert(NULL != pSuite->pTest);
-
- /* only number of tests can change between calls */
- width[0] = (int)CU_number_width(pSuite->uiNumberOfTests) + 1;
- if (0 == width[1]) {
- width[1] = 34;
- width[2] = (int)CU_MAX(strlen(_("Active?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- }
-
- fprintf(stdout, "\n%s",
- _("----------------- Test List ------------------------------"));
- fprintf(stdout, "\n%s%s\n", _("Suite: "), pSuite->pName);
- fprintf(stdout, "\n%*s %-*s%*s\n",
- width[0], _("#"),
- width[1], _("Test Name"),
- width[2], _("Active?"));
-
- for (uiCount = 1, pCurTest = pSuite->pTest ;
- NULL != pCurTest ;
- uiCount++, pCurTest = pCurTest->pNext) {
- assert(NULL != pCurTest->pName);
- fprintf(stdout, "\n%*u. %-*.*s%*s",
- width[0], uiCount,
- width[1], width[1]-1, pCurTest->pName,
- width[2]-1, (CU_FALSE != pCurTest->fActive) ? _("Yes") : _("No"));
- }
- fprintf(stdout, "\n----------------------------------------------------------\n");
- fprintf(stdout, _("Total Number of Tests : %-u"), pSuite->uiNumberOfTests);
- fprintf(stdout, "\n");
-}
-
-/*------------------------------------------------------------------------*/
-/** Displays the record of test failures on standard output. */
-static void show_failures(void)
-{
- unsigned int i;
- CU_pFailureRecord pFailure = CU_get_failure_list();
-
- if (NULL == pFailure) {
- fprintf(stdout, "\n%s\n", _("No failures."));
- }
- else {
-
- fprintf(stdout, "\n%s",
- _("--------------- Test Run Failures -------------------------"));
- fprintf(stdout, "\n%s\n",
- _(" func:file:line# : (suite:test) : failure_condition"));
-
- for (i = 1 ; (NULL != pFailure) ; pFailure = pFailure->pNext, i++) {
- fprintf(stdout, "\n%d. %s:%s:%u : (%s : %s) : %s", i,
- (NULL != pFailure->strFunction)
- ? pFailure->strFunction : "",
- (NULL != pFailure->strFileName)
- ? pFailure->strFileName : "",
- pFailure->uiLineNumber,
- ((NULL != pFailure->pSuite) && (NULL != pFailure->pSuite->pName))
- ? pFailure->pSuite->pName : "",
- ((NULL != pFailure->pTest) && (NULL != pFailure->pTest->pName))
- ? pFailure->pTest->pName : "",
- (NULL != pFailure->strCondition)
- ? pFailure->strCondition : "");
- }
- fprintf(stdout, "\n-----------------------------------------------------------");
- fprintf(stdout, "\n");
- fprintf(stdout, _("Total Number of Failures : %-u"), i - 1);
- fprintf(stdout, "\n");
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at start of each test.
- * @param pTest The test being run.
- * @param pSuite The suite containing the test.
- */
-static void console_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- assert(NULL != pTest);
- assert(NULL != pTest->pName);
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- /* Comparing the Addresses rather than the Group Names. */
- if ((NULL == f_pRunningSuite) || (f_pRunningSuite != pSuite)) {
- fprintf(stdout, _("\nRunning Suite : %s"), pSuite->pName);
- fprintf(stdout, _("\n %-45s"), pTest->pName);
- f_pRunningSuite = pSuite;
- }
- else {
- fprintf(stdout, _("\n %-45s"), pTest->pName);
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of each test.
- * @param pTest The test being run.
- * @param pSuite The suite containing the test.
- * @param pFailure Pointer to the 1st failure record for this test.
- */
-static void console_test_complete_message_handler(const CU_pTest pTest,
- const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- /*
- * For console interface do nothing. This is useful only for the test
- * interface where UI is involved. Just silence compiler warnings.
- */
- CU_UNREFERENCED_PARAMETER(pTest);
- CU_UNREFERENCED_PARAMETER(pSuite);
- CU_UNREFERENCED_PARAMETER(pFailure);
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of all tests in a suite.
- * @param pFailure Pointer to the test failure record list.
- */
-static void console_all_tests_complete_message_handler(const CU_pFailureRecord pFailure)
-{
- CU_UNREFERENCED_PARAMETER(pFailure); /* not used in console interface */
- fprintf(stdout, "\n\n");
- CU_print_run_results(stdout);
- fprintf(stdout, "\n");
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called when suite initialization fails.
- * @param pSuite The suite for which initialization failed.
- */
-static void console_suite_init_failure_message_handler(const CU_pSuite pSuite)
-{
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- fprintf(stdout,
- _("\nWARNING - Suite initialization failed for '%s'."), pSuite->pName);
-}
-
-static void console_suite_init_skipped_message_handler(const CU_pSuite pSuite) {
- fprintf(stdout,
- _("SKIPPED"));
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called when suite cleanup fails.
- * @param pSuite The suite for which cleanup failed.
- */
-static void console_suite_cleanup_failure_message_handler(const CU_pSuite pSuite)
-{
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- fprintf(stdout, _("\nWARNING - Suite cleanup failed for '%s'."), pSuite->pName);
-}
-
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Console/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/Console/Makefile.am
deleted file mode 100644
index 3f1527b591..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Console/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AM_CPPFLAGS = -I$(top_srcdir)/CUnit/Headers
-noinst_LTLIBRARIES = libcunitconsole.la
-libcunitconsole_la_SOURCES = \
- Console.c
diff --git a/tools/taos-tools/deps/CUnit/Sources/Curses/Curses.c b/tools/taos-tools/deps/CUnit/Sources/Curses/Curses.c
deleted file mode 100644
index de1bd257e6..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Curses/Curses.c
+++ /dev/null
@@ -1,1350 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Implementation of the Curses based Test Interface.
- *
- * 01/Nov/2001 Started Curses based interface for CUnit. (AK)
- *
- * 04/Nov/2001 Added Scrolling Capability to the Details Window. (AK)
- *
- * 24/Nov/2001 Added List and Show Failure Capability to the Details Window.
- * Also added group initialization failure message handler. (AK)
- *
- * 09-Aug-2004 New interface, made all curses local functions static. (JDS)
- *
- * 30-Apr-2006 Suite/test selection is now by number rather than name.
- * Inactive suites/tests now reported.
- * Interface supports (de)activation of tests/suites.
- * Help function added for both menu levels.
- * Option menu added. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- */
-
-/** @file
- * Curses test interface with interactive output (implementation).
- */
-/** @addtogroup Curses
- @{
-*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "CUnit/CUnit.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/Util.h"
-#include "CUnit/TestRun.h"
-#include "CUnit/CUCurses.h"
-#include "CUnit/CUnit_intl.h"
-
-/*=================================================================
- * Global / Static data definitions
- *=================================================================*/
-
-/* Type Definitions */
-
-#ifndef false
-#define false (0) /**< Local boolean definition for false. */
-#endif
-
-#ifndef true
-#define true (~false) /**< Local boolean definition for true. */
-#endif
-
-/** Curses interface status flag. */
-typedef enum
-{
- CONTINUE = 1, /**< Continue processing commands in current menu. */
- MOVE_UP, /**< Move up to the previous menu. */
- STOP /**< Stop processing (user selected 'Quit'). */
-} STATUS;
-
-/** Menu type. */
-typedef enum
-{
- MAIN_MENU = 1,
- GROUP_MENU
-} MENU_TYPE;
-
-/** Pointers to curses interface windows. */
-typedef struct
-{
- WINDOW* pMainWin; /**< Main window. */
- WINDOW* pTitleWin; /**< Title window. */
- WINDOW* pProgressWin; /**< Progress bar window. */
- WINDOW* pSummaryWin; /**< Summary window. */
- WINDOW* pRunSummaryWin; /**< Run Summary window. */
- WINDOW* pDetailsWin; /**< Details window. */
- WINDOW* pOptionsWin; /**< Options window. */
-} APPWINDOWS;
-
-/** Window elements. */
-typedef struct
-{
- WINDOW* pPad; /**< Pointer to the pad. */
- unsigned int uiRows; /**< Number of rows in pad. */
- unsigned int uiColumns; /**< Number of columns in pad. */
- unsigned int uiPadRow; /**< Current pad row. */
- unsigned int uiPadCol; /**< Current pad column. */
- unsigned int uiWinLeft; /**< Left position of containing window. */
- unsigned int uiWinTop; /**< Top position of containing window. */
- unsigned int uiWinRows; /**< Number of rows in containing window. */
- unsigned int uiWinColumns; /**< Number of columns in containing window. */
-} APPPAD;
-
-/*
- * Constants definitions
- */
-/** Standard string length. */
-#define STRING_LENGTH 128
-/** String holding main menu run options. */
-static const char* MAIN_OPTIONS =
- N_("(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp (Q)uit");
-/** String holding suite menu run options. */
-static const char* SUITE_OPTIONS =
- N_("(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp (U)p (Q)uit");
-
-/*
- * Color Pairs Initialized for the Various Parameter Display
- */
-static const int CLEAR_COLOR = 1; /**< Clear color.*/
-static const int TITLE_COLOR = 2; /**< Title color.*/
-static const int PROGRESS_BACKGROUND_COLOR = 3; /**< progress bar background color.*/
-static const int PROGRESS_SUCCESS_COLOR = 4; /**< Progress bar success color.*/
-static const int PROGRESS_FAILURE_COLOR = 5; /**< Progress bar failure color.*/
-static const int MENU_COLOR = 6; /**< Menu color.*/
-
-static const char* const f_szProgress = N_("Progress "); /**< Text for progress bar. */
-
-static const char* f_szOptions = NULL; /**< String containing options. */
-
-static CU_pTest f_pCurrentTest = NULL; /**< Pointer to the test currently being run. */
-static CU_pSuite f_pCurrentSuite = NULL; /**< Pointer to the suite currently being run. */
-
-static unsigned int f_uiTotalTests = 0; /**< Number of tests in registered suites. */
-static unsigned int f_uiTestsRun = 0; /**< Number of tests actually run. */
-static unsigned int f_uiTestsSkipped = 0; /**< Number of tests skipped during run. */
-static unsigned int f_uiTestsFailed = 0; /**< Number of tests having failed assertions. */
-static unsigned int f_uiTestsRunSuccessful = 0; /**< Number of tests run with no failed assertions. */
-
-static unsigned int f_uiTotalSuites = 0; /**< Number of registered suites. */
-static unsigned int f_uiSuitesSkipped = 0; /**< Number of suites skipped during run. */
-
-static short f_nLeft; /**< Left window position. */
-static short f_nTop; /**< Top window position. */
-static short f_nWidth; /**< Width of window. */
-static short f_nHeight; /**< Height of window. */
-
-/** Common width measurements for output formatting. */
-static size_t f_yes_width = 0;
-static size_t f_no_width = 0;
-
-/** Pointers to curses interface windows. */
-static APPWINDOWS application_windows = {NULL, NULL, NULL, NULL, NULL, NULL, NULL};
-/** Details window definition. */
-static APPPAD details_pad = {NULL, 0, 0, 0, 0, 0, 0, 0, 0};
-
-/*=================================================================
- * Static function forward declarations
- *=================================================================*/
-static bool initialize_windows(void);
-static void uninitialize_windows(void);
-
-static void refresh_windows(void);
-static void refresh_title_window(void);
-static void refresh_progress_window(void);
-static void refresh_summary_window(void);
-static void refresh_run_summary_window(void);
-static void refresh_details_window(void);
-static void refresh_options_window(void);
-static void show_detail_window_message(const char* msg);
-
-static bool create_pad(APPPAD* pPad, WINDOW* pParent, unsigned int uiRows, unsigned int uiCols);
-static void scroll_window(int nCommand, APPPAD* pPad, void (*parent_refresh)(void));
-
-static bool test_initialize(void);
-
-static void show_progress_bar(void);
-static const char* get_hotkey(const char* szStr, int* pPos);
-static void read_input_string(const char szPropmt[], char szValue[], int nBytes);
-
-static STATUS curses_registry_level_run(CU_pTestRegistry pRegistry);
-static STATUS curses_suite_level_run(CU_pSuite pSuite);
-static STATUS curses_set_options_run(void);
-
-static CU_ErrorCode curses_run_all_tests(CU_pTestRegistry pRegistry);
-static CU_ErrorCode curses_run_suite_tests(CU_pSuite pSuite);
-static CU_ErrorCode curses_run_single_test(CU_pSuite pSuite, CU_pTest pTest);
-
-static void curses_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite);
-static void curses_test_complete_message_handler(const CU_pTest pTest, const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure);
-static void curses_all_tests_complete_message_handler(const CU_pFailureRecord pFailure);
-static void curses_suite_init_failure_message_handler(const CU_pSuite pSuite);
-
-static void list_suites(CU_pTestRegistry pRegistry);
-static void list_tests(CU_pSuite pSuite);
-static void show_failures(void);
-static void show_registry_level_help(void);
-static void show_suite_level_help(CU_pSuite pSuite);
-
-static void reset_run_parameters(void);
-
-/*=================================================================
- * Public Interface functions
- *=================================================================*/
-void CU_curses_run_tests(void)
-{
- setvbuf(stdout, NULL, _IONBF, 0);
- setvbuf(stderr, NULL, _IONBF, 0);
-
- f_szOptions = _(MAIN_OPTIONS);
- if (!initialize_windows()) {
- return;
- }
-
- if (!test_initialize()) {
- goto test_initialize_fail;
- }
-
- f_yes_width = strlen(_("Yes"));
- f_no_width = strlen(_("No"));
-
- show_detail_window_message(_("Welcome to CUnit. Press the indicated key to run the command."));
- curses_registry_level_run(CU_get_registry());
-
- /* fall thru */
-
-test_initialize_fail:
- uninitialize_windows();
-}
-
-/*=================================================================
- * Static function implementation
- *=================================================================*/
-/** Initialize the curses interface windows. */
-static bool initialize_windows(void)
-{
- bool bStatus = false;
-
- if (NULL == (application_windows.pMainWin = initscr())) {
- goto main_fail;
- }
-
- start_color();
-
- f_nLeft = application_windows.pMainWin->_begx;
- f_nTop = application_windows.pMainWin->_begy;
- f_nWidth = application_windows.pMainWin->_maxx;
- f_nHeight = application_windows.pMainWin->_maxy;
-
- if (NULL == (application_windows.pTitleWin = newwin(3, f_nWidth, 0, 0))) {
- goto title_fail;
- }
-
- if (NULL == (application_windows.pProgressWin = newwin(2, f_nWidth, 3, 0))) {
- goto progress_fail;
- }
-
- if (NULL == (application_windows.pSummaryWin = newwin(1, f_nWidth, 5, 0))) {
- goto summary_fail;
- }
-
- if (NULL == (application_windows.pRunSummaryWin = newwin(1, f_nWidth, 6, 0))) {
- goto run_summary_fail;
- }
-
- if (NULL == (application_windows.pDetailsWin = newwin(f_nHeight - f_nTop - 7 , f_nWidth, 7, 0))) {
- goto details_fail;
- }
-
- if (NULL == (application_windows.pOptionsWin = newwin(1, f_nWidth, f_nHeight - f_nTop, 0))) {
- goto option_fail;
- }
-
- curs_set(0);
- noecho();
- cbreak();
- keypad(application_windows.pMainWin, CU_TRUE);
- init_pair(CLEAR_COLOR, COLOR_WHITE, COLOR_BLACK);
- init_pair(TITLE_COLOR, COLOR_WHITE, COLOR_BLACK);
- init_pair(PROGRESS_BACKGROUND_COLOR, COLOR_BLACK, COLOR_WHITE);
- init_pair(PROGRESS_SUCCESS_COLOR, COLOR_WHITE, COLOR_GREEN);
- init_pair(PROGRESS_FAILURE_COLOR, COLOR_WHITE, COLOR_RED);
- init_pair(MENU_COLOR, COLOR_GREEN, COLOR_BLACK);
-
- refresh_windows();
- bStatus = true;
- goto main_fail;
-
- /*
- * Error Handlers for all the stages.
- */
-option_fail:
- delwin(application_windows.pDetailsWin);
-
-details_fail:
- delwin(application_windows.pRunSummaryWin);
-
-run_summary_fail:
- delwin(application_windows.pSummaryWin);
-
-summary_fail:
- delwin(application_windows.pProgressWin);
-
-progress_fail:
- delwin(application_windows.pTitleWin);
-
-title_fail:
- endwin();
-
-main_fail:
- return bStatus;
-
-}
-
-/*------------------------------------------------------------------------*/
-/** Clean up and delete curses interface windows. */
-static void uninitialize_windows(void)
-{
- curs_set(1);
- echo();
- nocbreak();
- keypad(application_windows.pMainWin, CU_FALSE);
-
- if (details_pad.pPad) {
- delwin(details_pad.pPad);
- }
-
- delwin(application_windows.pOptionsWin);
- delwin(application_windows.pDetailsWin);
- delwin(application_windows.pRunSummaryWin);
- delwin(application_windows.pSummaryWin);
- delwin(application_windows.pProgressWin);
- delwin(application_windows.pTitleWin);
-
- clear();
- refresh();
- endwin();
-}
-
-
-/*------------------------------------------------------------------------*/
-/** Refresh curses interface windows. */
-static void refresh_windows(void)
-{
- refresh();
-
- f_nLeft = application_windows.pMainWin->_begx;
- f_nTop = application_windows.pMainWin->_begy;
- f_nWidth = application_windows.pMainWin->_maxx;
- f_nHeight = application_windows.pMainWin->_maxy;
-
- refresh_title_window();
- refresh_progress_window();
- refresh_run_summary_window();
- refresh_summary_window();
- refresh_details_window();
- refresh_options_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Refresh the title window. */
-static void refresh_title_window(void)
-{
- char szPackageTitle[STRING_LENGTH];
- char* szSite = N_("http://cunit.sourceforge.net/");
- static bool bFirstTime = true;
-
- if (!bFirstTime) {
- bFirstTime = false;
- return;
- }
-
- snprintf(szPackageTitle, STRING_LENGTH,
- "%s%s", _("CUnit - A Unit testing framework for C - Version "), CU_VERSION);
- wattrset(application_windows.pTitleWin, A_BOLD | COLOR_PAIR(TITLE_COLOR));
- mvwprintw(application_windows.pTitleWin,
- 0, f_nLeft + (f_nWidth - strlen(szPackageTitle))/2,
- "%s", szPackageTitle);
-
- wattrset(application_windows.pTitleWin, A_BOLD | A_UNDERLINE | COLOR_PAIR(TITLE_COLOR));
- mvwprintw(application_windows.pTitleWin, 1, f_nLeft + (f_nWidth - strlen(_(szSite)))/2,
- "%s", _(szSite));
- wattrset(application_windows.pTitleWin, A_NORMAL);
-
- wrefresh(application_windows.pTitleWin);
-}
-
-/*------------------------------------------------------------------------*/
-/** Refresh the progress bar window. */
-static void refresh_progress_window(void)
-{
- wattrset(application_windows.pProgressWin, A_BOLD);
- mvwprintw(application_windows.pProgressWin, 0, 1, (char *)_(f_szProgress));
- show_progress_bar();
- wrefresh(application_windows.pProgressWin);
-}
-
-/*------------------------------------------------------------------------*/
-/** Refresh the summary window. */
-static void refresh_summary_window(void)
-{
- char szTemp[STRING_LENGTH];
-
- memset(szTemp, 0, sizeof(szTemp));
- snprintf(szTemp, STRING_LENGTH, _("Tests Run : %6u Success : %6u Failed : %6u"),
- f_uiTestsRun, f_uiTestsRunSuccessful,
- f_uiTestsRun - f_uiTestsRunSuccessful);
- werase(application_windows.pSummaryWin);
- mvwprintw(application_windows.pSummaryWin, 0, 1, "%s", szTemp);
- wrefresh(application_windows.pSummaryWin);
-}
-
-/*------------------------------------------------------------------------*/
-/** Prints a custom message in the detail window. */
-static void show_detail_window_message(const char *msg)
-{
- if (NULL != msg) {
-
- if (!create_pad(&details_pad, application_windows.pDetailsWin, 1, 256)) {
- return;
- }
-
- assert(256 >= strlen(msg));
- mvwprintw(details_pad.pPad, 0, 0, "%s", msg);
- refresh_details_window();
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Refresh the run summary window. */
-static void refresh_run_summary_window(void)
-{
- const char* szRunSummary = N_("Running test \'%s\' of Suite \'%s\'");
- char szTemp[STRING_LENGTH];
-
- if (f_pCurrentTest && f_pCurrentSuite) {
- assert(NULL != f_pCurrentTest->pName);
- assert(NULL != f_pCurrentSuite->pName);
- snprintf(szTemp, STRING_LENGTH, _(szRunSummary),
- f_pCurrentTest->pName, f_pCurrentSuite->pName);
- }
- else {
- snprintf(szTemp, STRING_LENGTH, "%s", "");
- }
- werase(application_windows.pRunSummaryWin);
- mvwprintw(application_windows.pRunSummaryWin, 0, 1, "%s", szTemp);
- wrefresh(application_windows.pRunSummaryWin);
-}
-
-/*------------------------------------------------------------------------*/
-/** Refresh the details window. */
-static void refresh_details_window(void)
-{
- const char* szDetailsTitle = N_(" Details Window ");
-
- box(application_windows.pDetailsWin, ACS_VLINE, ACS_HLINE);
- mvwprintw(application_windows.pDetailsWin, 0,
- f_nLeft + (f_nWidth - strlen(_(szDetailsTitle)))/2, "%s", _(szDetailsTitle));
- scrollok(application_windows.pDetailsWin, CU_TRUE);
- wrefresh(application_windows.pDetailsWin);
-
- if (details_pad.pPad) {
- prefresh(details_pad.pPad, details_pad.uiPadRow, details_pad.uiPadCol,
- details_pad.uiWinTop, details_pad.uiWinLeft,
- details_pad.uiWinTop + details_pad.uiWinRows,
- details_pad.uiWinLeft + details_pad.uiWinColumns);
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Refresh the options window. */
-static void refresh_options_window(void)
-{
- int nPos = 0;
- const char* szHotKey = NULL;
-
- wclear(application_windows.pOptionsWin);
- mvwprintw(application_windows.pOptionsWin, 0, 1, "%s", f_szOptions);
-
- get_hotkey(f_szOptions, NULL);
- wattron(application_windows.pOptionsWin, A_BOLD);
- while (NULL != (szHotKey = get_hotkey((const char*)NULL, &nPos))) {
- mvwaddstr(application_windows.pOptionsWin, 0, nPos + 1, szHotKey);
- }
- wattroff(application_windows.pOptionsWin, A_BOLD);
-
- wrefresh(application_windows.pOptionsWin);
-}
-
-/*------------------------------------------------------------------------*/
-/** Show the progress bar window. */
-static void show_progress_bar(void)
-{
- int nLength = 0;
- int nIndex = 0;
- int nStart = strlen(_(f_szProgress));
- int nColorID = 0;
-
- if (0 == (f_uiTestsRun + f_uiTestsSkipped)) {
- nLength = f_nWidth - f_nLeft - nStart - 6;
- nColorID = PROGRESS_BACKGROUND_COLOR;
- }
- else {
- nLength = (f_nWidth - f_nLeft - nStart - 6) * ((double)(f_uiTestsRun + f_uiTestsSkipped) / f_uiTotalTests);
- nColorID = (!f_uiTestsSkipped && f_uiTestsRun == f_uiTestsRunSuccessful)
- ? PROGRESS_SUCCESS_COLOR
- : PROGRESS_FAILURE_COLOR;
- }
-
- wattron(application_windows.pProgressWin, A_BOLD | COLOR_PAIR(nColorID));
- for (nIndex = 0; nIndex < nLength; nIndex++) {
- mvwprintw(application_windows.pProgressWin, 0, nStart + nIndex, " ");
- }
- wattroff(application_windows.pProgressWin, COLOR_PAIR(nColorID));
-}
-
-/*------------------------------------------------------------------------*/
-/** Initialize the message handlers in preparation for running tests. */
-static bool test_initialize(void)
-{
- if (NULL == CU_get_registry()) {
- return false;
- }
-
- CU_set_test_start_handler(curses_test_start_message_handler);
- CU_set_test_complete_handler(curses_test_complete_message_handler);
- CU_set_all_test_complete_handler(curses_all_tests_complete_message_handler);
- CU_set_suite_init_failure_handler(curses_suite_init_failure_message_handler);
- return true;
-}
-
-/*------------------------------------------------------------------------*/
-/** Parse a string and return the coded hotkeys.
- * If called with szStr non-NULL, the string is simply stored.
- * Subsequent calls with szStr NULL will cause the
- * hotkeys in the string (chars between parentheses) to
- * be returned sequentially in the order in which they
- * appear in the original string.
- * @param szStr String to parse (non-NULL to set, NULL to parse).
- * @param pPos Used to store position of the next '('.
- * @return If szStr is non-NULL, it is returned. If szStr is NULL,
- * the next hotkey character is returned, or NULL if there
- * are no more hotkey characters in the original string.
- */
-static const char* get_hotkey(const char* szStr, int* pPos)
-{
- static char szTemp[128] = "";
- static char szString[128] = "";
- static int nPos = 0;
-
- int nTempIndex;
- char* pS = NULL;
-
- if (szStr) {
- nPos = 0;
- strcpy(szString, szStr);
- return szString;
- }
-
- memset(szTemp, 0, sizeof(szTemp));
- for (nTempIndex = 0, pS = szString + nPos; *pS; nPos++, pS++) {
- if (!nTempIndex && '(' == *pS) {
- szTemp[nTempIndex++] = *pS;
- *pPos = nPos;
- }
- else if (nTempIndex && ')' == *pS) {
- szTemp[nTempIndex++] = *pS;
- szTemp[nTempIndex++] = '\0';
- return szTemp;
- }
- else if (nTempIndex) {
- szTemp[nTempIndex++] = *pS;
- }
- }
-
- return NULL;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Main loop for curses interface.
- * Displays actions and responds based on user imput.
- * @param pRegistry The CU_pTestRegistry to use for testing.
- * If NULL, uses the default registry.
- */
-static STATUS curses_registry_level_run(CU_pTestRegistry pRegistry)
-{
- char szSuiteNumber[STRING_LENGTH];
- CU_pSuite pSuite = NULL;
- bool bContinue = true;
- char szTemp[STRING_LENGTH];
- long suite_num;
-
- if (NULL == pRegistry) {
- pRegistry = CU_get_registry();
- }
- assert(NULL != pRegistry);
-
- while (bContinue) {
- int option = toupper(getch());
-
- if (option == _("R")[0]) {
- curses_run_all_tests(pRegistry);
- }
-
- else if (option == _("S")[0]) {
- if (0 == pRegistry->uiNumberOfSuites) {
- fprintf(stdout, "\n%s", _("No suites are registered."));
- }
- else {
- list_suites(pRegistry);
- snprintf(szTemp, STRING_LENGTH, _("Enter number of suite to select (1-%u) : "),
- pRegistry->uiNumberOfSuites);
- read_input_string(szTemp, szSuiteNumber, STRING_LENGTH);
- refresh_details_window();
- suite_num = atol(szSuiteNumber);
- pSuite = CU_get_suite_by_index(suite_num, pRegistry);
- if (NULL != pSuite) {
- assert(NULL != pSuite->pName);
- snprintf(szTemp, STRING_LENGTH, _("Suite '%s' selected."), pSuite->pName);
- show_detail_window_message(szTemp);
- if (STOP == curses_suite_level_run(pSuite)) {
- bContinue = false;
- }
- f_szOptions = _(MAIN_OPTIONS);
- refresh_options_window();
- }
- else {
- show_detail_window_message(_("Suite not found."));
- }
- }
- }
-
- else if (option == _("L")[0]) {
- list_suites(pRegistry);
- }
-
- else if (option == _("A")[0]) {
- if (0 == pRegistry->uiNumberOfSuites) {
- fprintf(stdout, "\n%s", _("No suites are registered."));
- }
- else {
- while (1) {
- list_suites(pRegistry);
- snprintf(szTemp, STRING_LENGTH, _("Enter number of suite to select (1-%u) : "),
- pRegistry->uiNumberOfSuites);
- read_input_string(szTemp, szSuiteNumber, STRING_LENGTH);
- refresh_details_window();
- suite_num = atol(szSuiteNumber);
- pSuite = CU_get_suite_by_index(suite_num, pRegistry);
- if (NULL != pSuite) {
- CU_set_suite_active(pSuite, (CU_FALSE == pSuite->fActive) ? CU_TRUE : CU_FALSE);
- }
- else {
- break;
- }
- }
- f_szOptions = _(MAIN_OPTIONS);
- refresh_options_window();
- }
- }
-
- else if (option == _("F")[0]) {
- show_failures();
- }
-
- else if (option == _("O")[0]) {
- curses_set_options_run();
- }
-
- else if (option == _("Q")[0]) {
- return bContinue = false;
- }
-
- else if ((option == KEY_UP) ||
- (option == KEY_DOWN) ||
- (option == KEY_RIGHT) ||
- (option == KEY_LEFT)) {
- scroll_window(option, &details_pad, refresh_details_window);
- }
-
- else if ((option == _("H")[0]) || (option == _("?")[0])) {
- show_registry_level_help();
- }
- }
-
- return STOP;
-}
-
-/*------------------------------------------------------------------------*/
-/** Run a selected suite within the curses interface.
- * Displays actions and responds based on user imput.
- * @param pSuite The suite to use for testing (non-NULL).
- */
-static STATUS curses_suite_level_run(CU_pSuite pSuite)
-{
- char szTestNumber[STRING_LENGTH];
- char szTemp[STRING_LENGTH];
- CU_pTestRegistry pRegistry = CU_get_registry();
- CU_pTest pTest = NULL;
- long test_num;
-
- assert(NULL != pRegistry);
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- f_szOptions = _(SUITE_OPTIONS);
- refresh_options_window();
-
- while (true) {
- int option = toupper(getch());
-
- if (option == _("R")[0]) {
- curses_run_suite_tests(pSuite);
- }
-
- else if (option == _("S")[0]) {
- if (0 == pSuite->uiNumberOfTests) {
- snprintf(szTemp, STRING_LENGTH,
- _("Suite %s contains no tests."), pSuite->pName);
- show_detail_window_message(szTemp);
- }
- else {
- list_tests(pSuite);
- snprintf(szTemp, STRING_LENGTH, "%s (1-%u) :",
- _("Enter number of test to select"),
- pRegistry->uiNumberOfSuites);
- read_input_string(szTemp, szTestNumber, STRING_LENGTH);
- test_num = atol(szTestNumber);
- pTest = CU_get_test_by_index(test_num, pSuite);
- if (NULL != pTest) {
- curses_run_single_test(pSuite, pTest);
- }
- else {
- show_detail_window_message(_("Test not found."));
- }
- refresh_details_window();
- }
- }
-
- else if (option == _("L")[0]) {
- list_tests(pSuite);
- }
-
- else if (option == _("F")[0]) {
- show_failures();
- }
-
- else if (option == _("A")[0]) {
- if (0 == pSuite->uiNumberOfTests) {
- snprintf(szTemp, STRING_LENGTH,
- _("Suite %s contains no tests."), pSuite->pName);
- show_detail_window_message(szTemp);
- }
- else {
- while (1) {
- list_tests(pSuite);
- snprintf(szTemp, STRING_LENGTH, "%s (1-%u) : ",
- _("Enter number of test to select"),
- pRegistry->uiNumberOfSuites);
- read_input_string(szTemp, szTestNumber, STRING_LENGTH);
- test_num = atol(szTestNumber);
- pTest = CU_get_test_by_index(test_num, pSuite);
- if (NULL != pTest) {
- CU_set_test_active(pTest, (CU_FALSE == pTest->fActive) ? CU_TRUE : CU_FALSE);
- }
- else {
- break;
- }
- }
- f_szOptions = _(SUITE_OPTIONS);
- refresh_options_window();
- }
- }
-
- else if (option == _("O")[0]) {
- curses_set_options_run();
- }
-
- else if (option == _("U")[0]) {
- return CONTINUE;
- }
-
- else if (option == _("Q")[0]) {
- return STOP;
- }
-
- else if ((option == KEY_UP) ||
- (option == KEY_DOWN) ||
- (option == KEY_RIGHT) ||
- (option == KEY_LEFT)) {
- scroll_window(option, &details_pad, refresh_details_window);
- }
-
- else if ((option == _("H")[0]) || (option == _("?")[0])) {
- show_suite_level_help(pSuite);
- }
- }
-
- return CONTINUE;
-}
-
-/*------------------------------------------------------------------------*/
-/** Display a prompt, then read a string from the keyboard.
- * @param szPrompt The prompt to display.
- * @param szValue The string in which to store the response.
- * @param nBytes The length of the szValue buffer.
- */
-static void read_input_string(const char szPrompt[], char szValue[], int nBytes)
-{
- echo();
- curs_set(1);
- nocbreak();
-
- wclear(application_windows.pOptionsWin);
- mvwprintw(application_windows.pOptionsWin, 0, 1, "%s", szPrompt);
- wgetnstr(application_windows.pOptionsWin, szValue, nBytes - 1);
- refresh_options_window();
-
- cbreak();
- curs_set(0);
- noecho();
-}
-
-/*------------------------------------------------------------------------*/
-/** Scroll a window.
- * @param nCommand Code for the direction to scroll.
- * @param pPad The window to scroll.
- * @param parent_refresh Function to call to refresh the parent window.
- */
-static void scroll_window(int nCommand, APPPAD* pPad, void (*parent_refresh)(void))
-{
- if (NULL == pPad->pPad) {
- return;
- }
-
- switch (nCommand) {
- case KEY_UP:
- if (pPad->uiPadRow) {
- --pPad->uiPadRow;
- (*parent_refresh)();
- }
- break;
-
- case KEY_DOWN:
- if (pPad->uiRows - 1 > pPad->uiPadRow + pPad->uiWinRows) {
- ++pPad->uiPadRow;
- (*parent_refresh)();
- }
- break;
-
- case KEY_LEFT:
- if (pPad->uiPadCol) {
- --pPad->uiPadCol;
- (*parent_refresh)();
- }
- break;
-
- case KEY_RIGHT:
- if (details_pad.uiColumns - 1 > details_pad.uiPadCol + details_pad.uiWinColumns) {
- ++pPad->uiPadCol;
- (*parent_refresh)();
- }
- break;
-
- default:
- break;
- }
-}
-
-/*------------------------------------------------------------------------*/
-/** Create a window having specified parent and dimensions.
- * @param pPad Pointer to the new window.
- * @param pParent Parent window.
- * @param uiRows Number of rows for new window.
- * @param uiCols Number of columnss for new window.
- */
-static bool create_pad(APPPAD* pPad, WINDOW* pParent, unsigned int uiRows,
- unsigned int uiCols)
-{
- bool bStatus = false;
-
- assert(pParent);
- if (pPad->pPad) {
- delwin(pPad->pPad);
- }
-
- if (NULL != pPad && NULL == (pPad->pPad = newpad(uiRows, uiCols))) {
- goto newpad_fail;
- }
-
- pPad->uiRows = uiRows;
- pPad->uiColumns = uiCols;
- pPad->uiPadRow = 0;
- pPad->uiPadCol = 0;
- pPad->uiWinLeft = application_windows.pDetailsWin->_begx + 1;
- pPad->uiWinTop = application_windows.pDetailsWin->_begy + 1;
- pPad->uiWinColumns = application_windows.pDetailsWin->_maxx - 2;
- pPad->uiWinRows = application_windows.pDetailsWin->_maxy - 2;
-
- bStatus = true;
-
-newpad_fail:
- return bStatus;
-}
-
-/*------------------------------------------------------------------------*/
-/** Prints help text for registry level to detail window. */
-static void show_registry_level_help(void)
-{
- if (!create_pad(&details_pad, application_windows.pDetailsWin, 8, 256)) {
- return;
- }
-
- mvwprintw(details_pad.pPad, 0, 0, _("Commands: R - run all tests in all suites"));
- mvwprintw(details_pad.pPad, 1, 0, _(" S - Select a suite to run or modify"));
- mvwprintw(details_pad.pPad, 2, 0, _(" L - List all registered suites"));
- mvwprintw(details_pad.pPad, 3, 0, _(" A - Activate or deactivate a suite (toggle)"));
- mvwprintw(details_pad.pPad, 4, 0, _(" F - Show failures from last test run"));
- mvwprintw(details_pad.pPad, 5, 0, _(" O - Set CUnit options"));
- mvwprintw(details_pad.pPad, 6, 0, _(" H - Show this help message"));
- mvwprintw(details_pad.pPad, 7, 0, _(" Q - Quit the application"));
- refresh_details_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Prints help text for suite level to detail window. */
-static void show_suite_level_help(CU_pSuite pSuite)
-{
- char szTemp[STRING_LENGTH];
-
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (!create_pad(&details_pad, application_windows.pDetailsWin, 9, 256)) {
- return;
- }
-
- snprintf(szTemp, STRING_LENGTH, _("Commands: R - run all tests in suite %s"),
- pSuite->pName);
- mvwprintw(details_pad.pPad, 0, 0, szTemp);
- mvwprintw(details_pad.pPad, 1, 0, _(" S - Select and run a test"));
- snprintf(szTemp, STRING_LENGTH, _(" L - List all tests registered in suite %s"),
- pSuite->pName);
- mvwprintw(details_pad.pPad, 2, 0, szTemp);
- mvwprintw(details_pad.pPad, 3, 0, _(" A - Activate or deactivate a test (toggle)"));
- mvwprintw(details_pad.pPad, 4, 0, _(" F - Show failures from last test run"));
- mvwprintw(details_pad.pPad, 5, 0, _(" M - Move up to main menu"));
- mvwprintw(details_pad.pPad, 6, 0, _(" O - Set CUnit options"));
- mvwprintw(details_pad.pPad, 7, 0, _(" H - Show this help message"));
- mvwprintw(details_pad.pPad, 8, 0, _(" Q - Quit the application"));
- refresh_details_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Print a list of registered suites to the detail window.
- * @param pRegistry The CU_pTestRegistry to query (non-NULL).
- */
-static void list_suites(CU_pTestRegistry pRegistry)
-{
-
- CU_pSuite pCurSuite = NULL;
- int i;
- char szTemp[STRING_LENGTH];
- static int width[6];
-
- if (NULL == pRegistry) {
- pRegistry = CU_get_registry();
- }
-
- assert(pRegistry);
-
- if (0 == pRegistry->uiNumberOfSuites) {
- show_detail_window_message(_("No suites are registered."));
- return;
- }
-
- assert(pRegistry->pSuite);
-
- if (!create_pad(&details_pad, application_windows.pDetailsWin, pRegistry->uiNumberOfSuites + 4, 256)) {
- return;
- }
-
- /* only need to calculate formatting widths once */
- if (0 == width[0]) {
- width[0] = CU_number_width(pRegistry->uiNumberOfSuites) + 1;
- width[1] = 34;
- width[2] = CU_MAX(strlen(_("Init?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- width[3] = CU_MAX(strlen(_("Cleanup?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- width[4] = CU_MAX(strlen(_("#Tests")), CU_number_width(pRegistry->uiNumberOfTests) + 1) + 1;
- width[5] = CU_MAX(strlen(_("Active?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- }
-
- snprintf(szTemp, STRING_LENGTH, "%*s %-*s%*s%*s%*s%*s",
- width[0], _("#"),
- width[1], _("Suite Name"),
- width[2], _("Init?"),
- width[3], _("Cleanup?"),
- width[4], _("#Tests"),
- width[5], _("Active?"));
- mvwprintw(details_pad.pPad, 0, 0, "%s", szTemp);
-
- for (i = 0, pCurSuite = pRegistry->pSuite; pCurSuite; pCurSuite = pCurSuite->pNext, i++) {
- assert(NULL != pCurSuite->pName);
- snprintf(szTemp, STRING_LENGTH, "%*d. %-*.*s%*s%*s%*u%*s",
- width[0], i+1,
- width[1], width[1] - 1, pCurSuite->pName,
- width[2]-1, (NULL != pCurSuite->pInitializeFunc) ? _("Yes") : _("No"),
- width[3], (NULL != pCurSuite->pCleanupFunc) ? _("Yes") : _("No"),
- width[4], pCurSuite->uiNumberOfTests,
- width[5], (CU_FALSE != pCurSuite->fActive) ? _("Yes") : _("No"));
- mvwprintw(details_pad.pPad, i + 2, 0, "%s", szTemp);
- }
-
- mvwprintw(details_pad.pPad, i + 2, 0, "%s",
- "---------------------------------------------------------------------------");
- mvwprintw(details_pad.pPad, i + 3, 0,
- _("Total Number of Suites : %-u"), pRegistry->uiNumberOfSuites);
- refresh_details_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Print a list of tests contained in a specified suite to the detail window.
- * @param pSuite The suite to query (non-NULL).
- */
-static void list_tests(CU_pSuite pSuite)
-{
- CU_pTest pCurTest = NULL;
- unsigned int i;
- char szTemp[STRING_LENGTH];
- static int width[3];
-
- assert(NULL != pSuite);
- assert(NULL != pSuite->pName);
-
- if (!create_pad(&details_pad, application_windows.pDetailsWin, pSuite->uiNumberOfTests + 5, 256)) {
- return;
- }
-
- if (0 == pSuite->uiNumberOfTests) {
- snprintf(szTemp, STRING_LENGTH,
- _("Suite %s contains no tests."), pSuite->pName);
- show_detail_window_message(szTemp);
- return;
- }
-
- assert(pSuite->pTest);
-
- /* only number of tests can change between calls */
- width[0] = CU_number_width(pSuite->uiNumberOfTests) + 1;
- if (0 == width[1]) {
- width[1] = 34;
- width[2] = CU_MAX(strlen(_("Active?")), CU_MAX(f_yes_width, f_no_width)) + 1;
- }
-
- snprintf(szTemp, STRING_LENGTH, "%s: %s", _("Suite"), pSuite->pName);
- mvwprintw(details_pad.pPad, 0, 0, szTemp);
-
- snprintf(szTemp, STRING_LENGTH,
- "%*s %-*s%*s",
- width[0], _("#"),
- width[1], _("Test Name"),
- width[2], _("Active?"));
- mvwprintw(details_pad.pPad, 1, 0, szTemp);
-
- for (i = 0, pCurTest = pSuite->pTest ;
- NULL != pCurTest ;
- pCurTest = pCurTest->pNext, i++) {
- assert(NULL != pCurTest->pName);
- snprintf(szTemp, STRING_LENGTH,
- "%*u. %-*.*s%*s",
- width[0], i + 1,
- width[1], width[1]-1, pCurTest->pName,
- width[2]-1, (CU_FALSE != pCurTest->fActive) ? _("Yes") : _("No"));
- mvwprintw(details_pad.pPad, i + 3, 0, "%s", szTemp);
- }
-
- mvwprintw(details_pad.pPad, i + 3, 0, "%s",
- "---------------------------------------------");
- mvwprintw(details_pad.pPad, i + 4, 0,
- _("Total Number of Tests : %-u"), pSuite->uiNumberOfTests);
- refresh_details_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Display the record of test failures in the detail window. */
-static void show_failures(void)
-{
- int i;
- CU_pFailureRecord pFailure = CU_get_failure_list();
- unsigned int nFailures = CU_get_number_of_failure_records();
-
- if (0 == nFailures) {
- show_detail_window_message(_("No failures."));
- return;
- }
-
- assert(pFailure);
-
- if (!create_pad(&details_pad, application_windows.pDetailsWin, nFailures + 5, 256)) {
- return;
- }
-
- mvwprintw(details_pad.pPad, 1, 0, "%s", _(" src_file:line# : (suite:test) : failure_condition"));
-
- for (i = 0 ; pFailure ; pFailure = pFailure->pNext, i++) {
- char szTemp[STRING_LENGTH];
-
- snprintf(szTemp, STRING_LENGTH, "%d. %s:%s:%d : (%s : %s) : %s", i + 1,
- ((NULL != pFailure->strFunction) ? pFailure->strFunction : ""),
- ((NULL != pFailure->strFileName) ? pFailure->strFileName : ""),
- pFailure->uiLineNumber,
- (((NULL != pFailure->pSuite) && (NULL != pFailure->pSuite->pName))
- ? pFailure->pSuite->pName : ""),
- (((NULL != pFailure->pTest) && (NULL != pFailure->pTest->pName))
- ? pFailure->pTest->pName : ""),
- ((NULL != pFailure->strCondition) ? pFailure->strCondition : ""));
-
- mvwprintw(details_pad.pPad, i + 3, 0, "%s", szTemp);
- }
-
- mvwprintw(details_pad.pPad, i + 3, 0, "%s", "=============================================");
- mvwprintw(details_pad.pPad, i + 4, 0, _("Total Number of Failures : %-u"), nFailures);
- refresh_details_window();
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Sets CUnit options interactively using curses interface.
- * Displays actions and responds based on user imput.
- */
-static STATUS curses_set_options_run(void)
-{
- char szTemp[STRING_LENGTH];
- STATUS eStatus = CONTINUE;
- long option_num;
-
- if (!create_pad(&details_pad, application_windows.pDetailsWin, 3, 256)) {
- return eStatus;
- }
-
- mvwprintw(details_pad.pPad, 0, 0, _("CUnit Options:"));
-
- while (CONTINUE == eStatus) {
-
- snprintf(szTemp, STRING_LENGTH, _(" 1 - Inactive suites/tests treated as runtime failures %s"),
- (CU_FALSE != CU_get_fail_on_inactive()) ? _("Yes") : _("No "));
- mvwprintw(details_pad.pPad, 2, 0, szTemp);
- refresh_details_window();
- read_input_string(_("Enter number of option to change : "), szTemp, STRING_LENGTH);
- option_num = atol(szTemp);
-
- switch (option_num) {
- case 1:
- CU_set_fail_on_inactive((CU_FALSE == CU_get_fail_on_inactive()) ? CU_TRUE : CU_FALSE);
- break;
-
- default:
- eStatus = MOVE_UP;
- break;
- }
- }
- return eStatus;
-}
-
-/*------------------------------------------------------------------------*/
-/** Run all tests within the curses interface.
- * The test registry is changed to the specified registry
- * before running the tests, and reset to the original
- * registry when done.
- * @param pRegistry The CU_pTestRegistry containing the tests
- * to be run (non-NULL).
- * @return An error code indicating the error status
- * during the test run.
- */
-static CU_ErrorCode curses_run_all_tests(CU_pTestRegistry pRegistry)
-{
- CU_pTestRegistry pOldRegistry = NULL;
- CU_ErrorCode result;
-
- assert(pRegistry);
-
- reset_run_parameters();
- f_uiTotalTests = pRegistry->uiNumberOfTests;
- f_uiTotalSuites = pRegistry->uiNumberOfSuites;
-
- if (NULL != pRegistry) {
- pOldRegistry = CU_set_registry(pRegistry);
- }
- result = CU_run_all_tests();
- if (NULL != pOldRegistry) {
- CU_set_registry(pOldRegistry);
- }
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-/** Run a specified suite within the curses interface.
- * @param pSuite The suite to be run (non-NULL).
- * @return An error code indicating the error status
- * during the test run.
- */
-static CU_ErrorCode curses_run_suite_tests(CU_pSuite pSuite)
-{
- reset_run_parameters();
- f_uiTotalTests = pSuite->uiNumberOfTests;
- f_uiTotalSuites = 1;
- return CU_run_suite(pSuite);
-}
-
-/*------------------------------------------------------------------------*/
-/** Run a specific test for the specified suite within
- * the curses interface.
- * @param pSuite The suite containing the test to be run (non-NULL).
- * @param pTest The test to be run (non-NULL).
- * @return An error code indicating the error status
- * during the test run.
- */
-static CU_ErrorCode curses_run_single_test(CU_pSuite pSuite, CU_pTest pTest)
-{
- reset_run_parameters();
- f_uiTotalTests = 1;
- f_uiTotalSuites = 1;
- return CU_run_test(pSuite, pTest);
-}
-
-/*------------------------------------------------------------------------*/
-/** Reset the local run counters and prepare for a test run. */
-static void reset_run_parameters(void)
-{
- f_pCurrentTest = NULL;
- f_pCurrentSuite = NULL;
- f_uiTestsRunSuccessful = f_uiTestsRun = f_uiTotalTests = f_uiTestsFailed = f_uiTestsSkipped = 0;
- f_uiTotalSuites = f_uiSuitesSkipped = 0;
- refresh_progress_window();
- refresh_summary_window();
- refresh_run_summary_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at start of each test.
- * @param pTest The test being run.
- * @param pSuite The suite containing the test.
- */
-static void curses_test_start_message_handler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- f_pCurrentTest = (CU_pTest)pTest;
- f_pCurrentSuite = (CU_pSuite)pSuite;
- refresh_run_summary_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of each test.
- * @param pTest The test being run.
- * @param pSuite The suite containing the test.
- * @param pFailure Pointer to the 1st failure record for this test.
- */
-static void curses_test_complete_message_handler(const CU_pTest pTest,
- const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- /* Not used in curses implementation - quiet compiler warning */
- CU_UNREFERENCED_PARAMETER(pTest);
- CU_UNREFERENCED_PARAMETER(pSuite);
- CU_UNREFERENCED_PARAMETER(pFailure);
-
- f_uiTestsRun++;
- if (CU_get_number_of_tests_failed() != f_uiTestsFailed) {
- f_uiTestsFailed++;
- }
- else {
- f_uiTestsRunSuccessful++;
- }
-
- refresh_summary_window();
- refresh_progress_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called at completion of all tests in a suite.
- * @param pFailure Pointer to the test failure record list.
- */
-static void curses_all_tests_complete_message_handler(const CU_pFailureRecord pFailure)
-{
- /* Not used in curses implementation - quiet compiler warning */
- CU_UNREFERENCED_PARAMETER(pFailure);
-
- f_pCurrentTest = NULL;
- f_pCurrentSuite = NULL;
-
- if (!create_pad(&details_pad, application_windows.pDetailsWin, 21, 256)) {
- return;
- }
-
- mvwprintw(details_pad.pPad, 0, 0, "%s", _("====== Suite Run Summary ======"));
- mvwprintw(details_pad.pPad, 1, 0, _(" TOTAL SUITES: %4u"), f_uiTotalSuites);
- mvwprintw(details_pad.pPad, 2, 0, _(" Run: %4u"), f_uiTotalSuites - f_uiSuitesSkipped);
- mvwprintw(details_pad.pPad, 3, 0, _(" Skipped: %4u"), f_uiSuitesSkipped);
- mvwprintw(details_pad.pPad, 4, 0, _(" Inactive: %4u"), CU_get_number_of_suites_inactive());
-
- mvwprintw(details_pad.pPad, 6, 0, "%s", _("====== Test Run Summary ======="));
- mvwprintw(details_pad.pPad, 7, 0, _(" TOTAL TESTS: %4u"), f_uiTotalTests);
- mvwprintw(details_pad.pPad, 8, 0, _(" Run: %4u"), f_uiTestsRun);
- mvwprintw(details_pad.pPad, 9, 0, _(" Skipped: %4u"), f_uiTestsSkipped);
- mvwprintw(details_pad.pPad, 10, 0, _(" Successful: %4u"), f_uiTestsRunSuccessful);
- mvwprintw(details_pad.pPad, 11, 0, _(" Failed: %4u"), f_uiTestsFailed);
- mvwprintw(details_pad.pPad, 12, 0, _(" Inactive: %4u"), CU_get_number_of_tests_inactive());
-
- mvwprintw(details_pad.pPad, 14, 0, "%s", _("====== Assertion Summary ======"));
- mvwprintw(details_pad.pPad, 15, 0, _(" TOTAL ASSERTS: %4u"), CU_get_number_of_asserts());
- mvwprintw(details_pad.pPad, 16, 0, _(" Passed: %4u"), CU_get_number_of_successes());
- mvwprintw(details_pad.pPad, 17, 0, _(" Failed: %4u"), CU_get_number_of_failures());
-
-
- mvwprintw(details_pad.pPad, 19, 0, "%s", _("====== Failure Summary ======"));
- mvwprintw(details_pad.pPad, 20, 0, _(" TOTAL FAILURES: %4u"), CU_get_number_of_failure_records());
-
- refresh_details_window();
- refresh_run_summary_window();
-}
-
-/*------------------------------------------------------------------------*/
-/** Handler function called when suite initialization fails.
- * @param pSuite The suite for which initialization failed.
- */
-static void curses_suite_init_failure_message_handler(const CU_pSuite pSuite)
-{
- assert(pSuite);
- f_uiTestsSkipped += pSuite->uiNumberOfTests;
- f_uiSuitesSkipped++;
-
- refresh_summary_window();
- refresh_progress_window();
-}
-
-/** @} */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Curses/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/Curses/Makefile.am
deleted file mode 100644
index 1a0a5bf528..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Curses/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AM_CPPFLAGS = -I$(top_srcdir)/CUnit/Headers
-noinst_LTLIBRARIES = libcunitcurses.la
-libcunitcurses_la_SOURCES = \
- Curses.c
diff --git a/tools/taos-tools/deps/CUnit/Sources/Framework/CUError.c b/tools/taos-tools/deps/CUnit/Sources/Framework/CUError.c
deleted file mode 100644
index afb50e3bf8..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Framework/CUError.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Error handling code used by CUnit
- *
- * 16-Jul-2004 Created access functions for error code, error action
- * functions, messages for new error codes. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- */
-
-/** @file
- * Error handling functions (implementation).
- */
-/** @addtogroup Framework
- @{
-*/
-
-#include
-#include
-
-#include "CUnit/CUnit_intl.h"
-#include "CUnit/CUError.h"
-
-/*=================================================================
- * Global/Static Definitions
- *=================================================================*/
-/** Local variable holding the current error code. */
-static CU_ErrorCode g_error_number = CUE_SUCCESS;
-/** Local variable holding the current error action code. */
-static CU_ErrorAction g_error_action = CUEA_IGNORE;
-
-/*=================================================================
- * Private function forward declarations
- *=================================================================*/
-static const char* get_error_desc(CU_ErrorCode error);
-
-#ifdef CUNIT_DO_NOT_DEFINE_UNLESS_BUILDING_TESTS
-void test_exit(int status);
-#endif
-
-/*=================================================================
- * Public API functions
- *=================================================================*/
-void CU_set_error(CU_ErrorCode error)
-{
- if ((error != CUE_SUCCESS) && (g_error_action == CUEA_ABORT)) {
-#ifndef CUNIT_DO_NOT_DEFINE_UNLESS_BUILDING_TESTS
- fprintf(stderr, _("\nAborting due to error #%d: %s\n"),
- (int)error,
- get_error_desc(error));
- exit((int)error);
-#else
- test_exit(error);
-#endif
- }
-
- g_error_number = error;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_get_error(void)
-{
- return g_error_number;
-}
-
-/*------------------------------------------------------------------------*/
-const char* CU_get_error_msg(void)
-{
- return get_error_desc(g_error_number);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_error_action(CU_ErrorAction action)
-{
- g_error_action = action;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorAction CU_get_error_action(void)
-{
- return g_error_action;
-}
-
-/*=================================================================
- * Private static function definitions
- *=================================================================*/
-/** Internal function to look up the error message for a specified
- * error code. An empty string is returned if iError is not a member
- * of CU_ErrorCode. If you add an error code to enum CU_ErrorCode,
- * be sure to add a corresponding error message here.
- *
- * @param iError CU_ErrorCode to look up.
- * @return Pointer to a string containing the error message.
- * @see CU_get_error_msg()
- */
-static const char* get_error_desc(CU_ErrorCode iError)
-{
- int iMaxIndex;
-
- static const char* ErrorDescription[] = {
- N_("No Error."), /* CUE_SUCCESS - 0 */
- N_("Memory allocation failed."), /* CUE_NOMEMORY - 1 */
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- N_("Test registry does not exist."), /* CUE_NOREGISTRY - 10 */
- N_("Registry already exists."), /* CUE_REGISTRY_EXISTS - 11 */
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- N_("NULL suite not allowed."), /* CUE_NOSUITE - 20 */
- N_("Suite name cannot be NULL."), /* CUE_NO_SUITENAME - 21 */
- N_("Suite initialization function failed."), /* CUE_SINIT_FAILED - 22 */
- N_("Suite cleanup function failed."), /* CUE_SCLEAN_FAILED - 23 */
- N_("Suite having name already registered."), /* CUE_DUP_SUITE - 24 */
- N_("Requested suite is not active."), /* CUE_SUITE_INACTIVE - 25 */
- "",
- "",
- "",
- "",
- N_("NULL test or test function not allowed."),/* CUE_NOTEST - 30 */
- N_("Test name cannot be NULL."), /* CUE_NO_TESTNAME - 31 */
- N_("Test having this name already in suite."),/* CUE_DUP_TEST - 32 */
- N_("Test not registered in specified suite."),/* CUE_TEST_NOT_IN_SUITE - 33 */
- N_("Requested test is not active"), /* CUE_TEST_INACTIVE - 34 */
- "",
- "",
- "",
- "",
- "",
- N_("Error opening file."), /* CUE_FOPEN_FAILED - 40 */
- N_("Error closing file."), /* CUE_FCLOSE_FAILED - 41 */
- N_("Bad file name."), /* CUE_BAD_FILENAME - 42 */
- N_("Error during write to file."), /* CUE_WRITE_ERROR - 43 */
- N_("Undefined Error")
- };
-
- iMaxIndex = (int)(sizeof(ErrorDescription)/sizeof(char *) - 1);
- if ((int)iError < 0) {
- return _(ErrorDescription[0]);
- }
- else if ((int)iError > iMaxIndex) {
- return _(ErrorDescription[iMaxIndex]);
- }
- else {
- return _(ErrorDescription[(int)iError]);
- }
-}
-
-/** @} */
-
-#ifdef CUNIT_BUILD_TESTS
-#include "test_cunit.h"
-
-void test_cunit_CUError(void)
-{
- CU_ErrorCode old_err = CU_get_error();
- CU_ErrorAction old_action = CU_get_error_action();
-
- test_cunit_start_tests("CUError.c");
-
- /* CU_set_error() & CU_get_error() */
- CU_set_error(CUE_NOMEMORY);
- TEST(CU_get_error() != CUE_SUCCESS);
- TEST(CU_get_error() == CUE_NOMEMORY);
-
- CU_set_error(CUE_NOREGISTRY);
- TEST(CU_get_error() != CUE_SUCCESS);
- TEST(CU_get_error() == CUE_NOREGISTRY);
-
- /* CU_get_error_msg() */
- CU_set_error(CUE_SUCCESS);
- TEST(!strcmp(CU_get_error_msg(), get_error_desc(CUE_SUCCESS)));
-
- CU_set_error(CUE_NOTEST);
- TEST(!strcmp(CU_get_error_msg(), get_error_desc(CUE_NOTEST)));
-
- CU_set_error(CUE_NOMEMORY);
- TEST(!strcmp(CU_get_error_msg(), get_error_desc(CUE_NOMEMORY)));
- TEST(strcmp(CU_get_error_msg(), get_error_desc(CUE_SCLEAN_FAILED)));
-
- TEST(!strcmp(get_error_desc(100), "Undefined Error"));
-
- /* CU_set_error_action() & CU_get_error_action() */
- CU_set_error_action(CUEA_FAIL);
- TEST(CU_get_error_action() != CUEA_IGNORE);
- TEST(CU_get_error_action() == CUEA_FAIL);
- TEST(CU_get_error_action() != CUEA_ABORT);
-
- CU_set_error_action(CUEA_ABORT);
- TEST(CU_get_error_action() != CUEA_IGNORE);
- TEST(CU_get_error_action() != CUEA_FAIL);
- TEST(CU_get_error_action() == CUEA_ABORT);
-
- /* reset values */
- CU_set_error(old_err);
- CU_set_error_action(old_action);
-
- test_cunit_end_tests();
-}
-
-#endif /* CUNIT_BUILD_TESTS */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Framework/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/Framework/Makefile.am
deleted file mode 100644
index 54feb37329..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Framework/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AM_CPPFLAGS = -I$(top_srcdir)/CUnit/Headers
-
-SHARED_SOURCES = \
- InternalPoolMalloc.c \
- MessageHandlers.c \
- CUError.c \
- MyMem.c \
- TestDB.c \
- TestRun.c \
- Util.c
-
-noinst_LTLIBRARIES = libcunitfmk.la
-libcunitfmk_la_SOURCES = $(SHARED_SOURCES)
-
-if ENABLE_TEST
-
-TEST_DEFINES = -DCUNIT_BUILD_TESTS -DCUNIT_DO_NOT_DEFINE_UNLESS_BUILDING_TESTS -DMEMTRACE
-TEST_INCLUDES = -I../Test
-
-%_test.o: %.c
- $(COMPILE) $(TEST_INCLUDES) $(TEST_DEFINES) -o $@ -c $<
-
-TEST_OBJECTS = \
- CUError_test.o \
- MyMem_test.o \
- TestDB_test.o \
- TestRun_test.o \
- Util_test.o
-
-noinst_LIBRARIES = libcunittestfmk.a
-libcunittestfmk_a_SOURCES =
-libcunittestfmk_a_LIBADD = $(TEST_OBJECTS)
-endif
diff --git a/tools/taos-tools/deps/CUnit/Sources/Framework/MessageHandlers.c b/tools/taos-tools/deps/CUnit/Sources/Framework/MessageHandlers.c
deleted file mode 100644
index f9664e12ab..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Framework/MessageHandlers.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Message handler internal functions
- *
- * These are allocated statically so that abnormal termination of a test does not show
- * spurious memory leaks of intenral CUnit data.
- *
- */
-#include
-#include
-#include
-#include
-
-#include "CUnit/MessageHandlers.h"
-
-#define MAX_HANDLERS 128
-
-typedef struct _handler_container {
- int used;
- CCU_MessageHandler h;
-} _handler_container;
-
-/* handlers that can be dished out */
-static _handler_container handler_pool[MAX_HANDLERS];
-
-/* handlsers in use */
-static CCU_MessageHandler* handlers[CUMSG_MAX];
-
-
-static CCU_MessageHandler* alloc_MessageHandler(void) {
- CCU_MessageHandler *new = NULL;
- int i;
- for (i = 0; i < MAX_HANDLERS; i++) {
- if (!handler_pool[i].used) {
- handler_pool[i].used = 1;
- new = &(handler_pool[i].h);
- break;
- }
- }
- assert(new && "CUnit: Exceeded max active message handlers!");
- memset(new, 0, sizeof(*new));
- return new;
-}
-
-static void _free_MessageHandler(CCU_MessageHandler* ptr)
-{
- int i;
- if (ptr) {
- if (ptr->prev) {
- ptr->prev->next = NULL;
- }
- _free_MessageHandler(ptr->next);
- /* release the handler back to the pool */
-
- for (i = 0; i < MAX_HANDLERS; i++) {
- if (ptr == &handler_pool[i].h) {
- handler_pool[i].used = 0;
- break;
- }
- }
- }
-}
-
-void CCU_MessageHandler_Add(CCU_MessageType type, CCU_MessageHandlerFunction func) {
- CCU_MessageHandler *tail;
- CCU_MessageHandler *new;
-
- new = alloc_MessageHandler();
- new->func = func;
-
- if (!handlers[type]) {
- // no list at all, add first entry
- handlers[type] = new;
- } else {
- // append to list for this message
- tail = handlers[type];
- while (tail->next) {
- tail = tail->next;
- }
- tail->next = new;
- new->prev = tail;
- }
-}
-
-void CCU_MessageHandler_Clear(CCU_MessageType type)
-{
- CCU_MessageHandler *head = handlers[type];
- _free_MessageHandler(head);
- handlers[type] = NULL;
-}
-
-void CCU_MessageHandler_Set(CCU_MessageType type, CCU_MessageHandlerFunction func)
-{
- CCU_MessageHandler_Clear(type);
- if (func.suite_start) {
- CCU_MessageHandler_Add(type, func);
- }
-}
-
-static void _run_MessageHandler(CCU_MessageHandlerFunction func,
- CCU_MessageType type,
- CU_pSuite pSuite,
- CU_pTest pTest,
- CU_pFailureRecord pFailure)
-{
- if (!func.suite_start) return;
-
- switch (type) {
- case CUMSG_SUITE_STARTED:
- func.suite_start(pSuite);
- break;
- case CUMSG_SUITE_TEARDOWN_FAILED:
- func.suite_teardown_failed(pSuite);
- break;
- case CUMSG_SUITE_SETUP_FAILED:
- func.suite_setup_failed(pSuite);
- break;
- case CUMSG_SUITE_COMPLETED:
- func.suite_completed(pSuite, pFailure);
- break;
- case CUMSG_TEST_STARTED:
- func.test_started(pTest, pSuite);
- break;
- case CUMSG_TEST_SKIPPED:
- func.test_skipped(pTest, pSuite);
- break;
- case CUMSG_TEST_COMPLETED:
- func.test_completed(pTest, pSuite, pFailure);
- break;
- case CUMSG_ALL_COMPLETED:
- func.all_completed(pFailure);
- break;
- case CUMSG_SUITE_SKIPPED:
- func.suite_skipped(pSuite);
- break;
- default:
- break;
- }
-}
-
-void CCU_MessageHandler_Run(CCU_MessageType type,
- CU_pSuite pSuite,
- CU_pTest pTest,
- CU_pFailureRecord pFailure)
-{
- CCU_MessageHandler *handler = handlers[type];
- while (handler) {
- _run_MessageHandler(handler->func, type, pSuite, pTest, pFailure);
- handler = handler->next;
- }
-}
-
-CCU_MessageHandler* CCU_MessageHandler_Get(CCU_MessageType type)
-{
- CCU_MessageHandler *handler = handlers[type];
- return handler;
-}
diff --git a/tools/taos-tools/deps/CUnit/Sources/Framework/MyMem.c b/tools/taos-tools/deps/CUnit/Sources/Framework/MyMem.c
deleted file mode 100644
index 7ae3178d2d..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Framework/MyMem.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Memory management functions used throughout CUnit.
- *
- * 13/Oct/2001 Moved some of the generic functions definitions from other
- * files to this one so as to use the functions consitently.
- * This file is not included in the distribution headers because
- * it is used internally by CUnit. (AK)
- *
- * 18-Jul-2004 New interface, doxygen comments, made local functions &
- * constants static, fixed reporting of memory tracking (valid
- * vs invalid cycles), restructured memory tracking to detect
- * reallocations & multiple deletions. (JDS)
- *
- * 24-Apr-2005 Changed type of allocated sizes to size_t to avoid
- * signed-unsigned mismatch. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- */
-
-/** @file
- * Memory management & reporting functions (implementation).
- */
-/** @addtogroup Framework
- @{
-*/
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "CUnit/CUnit.h"
-#include "CUnit/MyMem.h"
-#include "CUnit/CUnit_intl.h"
-
-#ifdef MEMTRACE
-
-#define MAX_NAME_LENGTH 256
-
-/** Default name for memory dump file. */
-static const char* f_szDefaultDumpFileName = "CUnit-Memory-Dump.xml";
-/**< Default name for memory dump file. */
-
-#ifdef CUNIT_BUILD_TESTS
-/** For testing use (only) to simulate memory exhaustion -
- * if CU_FALSE, allocation requests will always fail and return NULL.
- */
-static CU_BOOL f_bTestCunitMallocActive = CU_TRUE;
-#endif
-
-/** Structure holding the details of a memory allocation/deallocation event. */
-typedef struct mem_event {
- size_t Size;
- unsigned int AllocLine;
- char AllocFilename[MAX_NAME_LENGTH];
- char AllocFunction[MAX_NAME_LENGTH];
- unsigned int DeallocLine;
- char DeallocFilename[MAX_NAME_LENGTH];
- char DeallocFunction[MAX_NAME_LENGTH];
- struct mem_event* pNext;
-} MEMORY_EVENT;
-typedef MEMORY_EVENT* PMEMORY_EVENT;
-
-#define NOT_ALLOCATED 0
-#define NOT_DELETED 0
-
-/** Structure holding the details of a memory node having allocation/deallocation events. */
-typedef struct mem_node {
- void* pLocation;
- unsigned int EventCount;
- PMEMORY_EVENT pFirstEvent;
- struct mem_node* pNext;
-} MEMORY_NODE;
-typedef MEMORY_NODE* PMEMORY_NODE;
-
-static PMEMORY_NODE f_pMemoryTrackerHead = NULL; /**< Head of double-linked list of memory nodes. */
-static unsigned int f_nMemoryNodes = 0; /**< Counter for memory nodes created. */
-/*------------------------------------------------------------------------*/
-/** Locate the memory node for the specified memory location (returns NULL if none). */
-static PMEMORY_NODE find_memory_node(void* pLocation)
-{
- PMEMORY_NODE pMemoryNode = f_pMemoryTrackerHead;
- while (NULL != pMemoryNode) {
- if (pLocation == pMemoryNode->pLocation) {
- break;
- }
- pMemoryNode = pMemoryNode->pNext;
- }
-
- return pMemoryNode;
-}
-/*------------------------------------------------------------------------*/
-/** Create a new memory node for the specified memory location. */
-static PMEMORY_NODE create_memory_node(void* pLocation)
-{
- PMEMORY_NODE pTempNode = NULL;
- PMEMORY_NODE pMemoryNode = find_memory_node(pLocation);
-
- /* a memory node for pLocation should not exist yet */
- if (NULL == pMemoryNode) {
-
- pMemoryNode = (PMEMORY_NODE)malloc(sizeof(MEMORY_NODE));
- assert(NULL != pMemoryNode);
-
- pMemoryNode->pLocation = pLocation;
- pMemoryNode->EventCount = 0;
- pMemoryNode->pFirstEvent = NULL;
- pMemoryNode->pNext = NULL;
-
- /* add new node to linked list */
- pTempNode = f_pMemoryTrackerHead;
- if (NULL == pTempNode) {
- f_pMemoryTrackerHead = pMemoryNode;
- }
- else {
- while (NULL != pTempNode->pNext) {
- pTempNode = pTempNode->pNext;
- }
- pTempNode->pNext = pMemoryNode;
- }
-
- ++f_nMemoryNodes;
- }
- return pMemoryNode;
-}
-/*------------------------------------------------------------------------*/
-/** Add a new memory event having the specified parameters. */
-static PMEMORY_EVENT add_memory_event(PMEMORY_NODE pMemoryNode,
- size_t size,
- unsigned int alloc_line,
- const char* alloc_filename,
- const char* alloc_function)
-{
- PMEMORY_EVENT pMemoryEvent = NULL;
- PMEMORY_EVENT pTempEvent = NULL;
-
- assert (NULL != pMemoryNode);
-
- /* create and set up the new event */
- pMemoryEvent = (PMEMORY_EVENT)malloc(sizeof(MEMORY_EVENT));
- assert(NULL != pMemoryEvent);
-
- pMemoryEvent->Size = size;
- pMemoryEvent->AllocLine = alloc_line;
- strncpy(pMemoryEvent->AllocFilename, alloc_filename, (size_t) MAX_NAME_LENGTH-1);
- pMemoryEvent->AllocFilename[MAX_NAME_LENGTH-1] = (char)0;
- strncpy(pMemoryEvent->AllocFunction, alloc_function, (size_t) MAX_NAME_LENGTH-1);
- pMemoryEvent->AllocFunction[MAX_NAME_LENGTH-1] = (char)0;
- pMemoryEvent->DeallocLine = NOT_DELETED;
- pMemoryEvent->DeallocFilename[0] = (char)0;
- pMemoryEvent->DeallocFunction[0] = (char)0;
- pMemoryEvent->pNext = NULL;
-
- /* add the new event to the end of the linked list */
- pTempEvent = pMemoryNode->pFirstEvent;
- if (NULL == pTempEvent) {
- pMemoryNode->pFirstEvent = pMemoryEvent;
- }
- else {
- while (NULL != pTempEvent->pNext) {
- pTempEvent = pTempEvent->pNext;
- }
- pTempEvent->pNext = pMemoryEvent;
- }
-
- ++pMemoryNode->EventCount;
-
- return pMemoryEvent;
-}
-/*------------------------------------------------------------------------*/
-/** Record memory allocation event. */
-static PMEMORY_NODE allocate_memory(size_t nSize,
- void* pLocation,
- unsigned int uiAllocationLine,
- const char* szAllocationFile,
- const char* szAllocationFunction)
-{
- PMEMORY_NODE pMemoryNode = NULL;
-
- /* attempt to locate an existing record for this pLocation */
- pMemoryNode = find_memory_node(pLocation);
-
- /* pLocation not found - create a new event record */
- if (NULL == pMemoryNode) {
- pMemoryNode = create_memory_node(pLocation);
- }
-
- /* add the new event record */
- add_memory_event(pMemoryNode, nSize, uiAllocationLine, szAllocationFile, szAllocationFunction);
-
- return pMemoryNode;
-}
-
-/*------------------------------------------------------------------------*/
-/** Record memory deallocation event. */
-static void deallocate_memory(void* pLocation,
- unsigned int uiDeletionLine,
- const char* szDeletionFileName,
- const char* szDeletionFunction)
-{
- PMEMORY_NODE pMemoryNode = NULL;
- PMEMORY_EVENT pTempEvent = NULL;
-
- assert(0 != uiDeletionLine);
- assert(NULL != szDeletionFileName);
-
- /* attempt to locate an existing record for this pLocation */
- pMemoryNode = find_memory_node(pLocation);
-
- /* if no entry, then an unallocated pointer was freed */
- if (NULL == pMemoryNode) {
- pMemoryNode = create_memory_node(pLocation);
- pTempEvent = add_memory_event(pMemoryNode, 0, NOT_ALLOCATED, "", "");
- }
- else {
- /* there should always be at least 1 event for an existing memory node */
- assert(NULL != pMemoryNode->pFirstEvent);
-
- /* locate last memory event for this pLocation */
- pTempEvent = pMemoryNode->pFirstEvent;
- while (NULL != pTempEvent->pNext) {
- pTempEvent = pTempEvent->pNext;
- }
-
- /* if pointer has already been freed, create a new event for double deletion */
- if (NOT_DELETED != pTempEvent->DeallocLine) {
- pTempEvent = add_memory_event(pMemoryNode, pTempEvent->Size, NOT_ALLOCATED, "", "");
- }
- }
-
- pTempEvent->DeallocLine = uiDeletionLine;
- strncpy(pTempEvent->DeallocFilename, szDeletionFileName, MAX_NAME_LENGTH-1);
- pTempEvent->DeallocFilename[MAX_NAME_LENGTH-1] = (char)0;
- strncpy(pTempEvent->DeallocFunction, szDeletionFunction, MAX_NAME_LENGTH-1);
- pTempEvent->DeallocFunction[MAX_NAME_LENGTH-1] = (char)0;
-}
-
-/*------------------------------------------------------------------------*/
-/** Custom calloc function with memory event recording. */
-void* CU_calloc(size_t nmemb, size_t size, unsigned int uiLine, const char* szFileName, const char* szFunction)
-{
- void* pVoid = NULL;
-
-#ifdef CUNIT_BUILD_TESTS
- if (CU_FALSE == f_bTestCunitMallocActive) {
- return NULL;
- }
-#endif
-
- pVoid = calloc(nmemb, size);
- if (NULL != pVoid) {
- allocate_memory(nmemb * size, pVoid, uiLine, szFileName, szFunction);
- }
-
- return pVoid;
-}
-
-/*------------------------------------------------------------------------*/
-/** Custom malloc function with memory event recording. */
-void* CU_malloc(size_t size, unsigned int uiLine, const char* szFileName, const char* szFunction)
-{
- void* pVoid = NULL;
-
-#ifdef CUNIT_BUILD_TESTS
- if (CU_FALSE == f_bTestCunitMallocActive) {
- return NULL;
- }
-#endif
-
- pVoid = malloc(size);
- if (NULL != pVoid) {
- allocate_memory(size, pVoid, uiLine, szFileName, szFunction);
- }
-
- return pVoid;
-}
-
-/*------------------------------------------------------------------------*/
-/** Custom free function with memory event recording. */
-void CU_free(void *ptr, unsigned int uiLine, const char* szFileName, const char* szFunction)
-{
- deallocate_memory(ptr, uiLine, szFileName, szFunction);
- free(ptr);
-}
-
-/*------------------------------------------------------------------------*/
-/** Custom realloc function with memory event recording. */
-void* CU_realloc(void *ptr, size_t size, unsigned int uiLine, const char* szFileName, const char* szFunction)
-{
- void* pVoid = NULL;
-
- deallocate_memory(ptr, uiLine, szFileName, szFunction);
-
-#ifdef CUNIT_BUILD_TESTS
- if (CU_FALSE == f_bTestCunitMallocActive) {
- free(ptr);
- return NULL;
- }
-#endif
-
- pVoid = realloc(ptr, size);
-
- if (NULL != pVoid) {
- allocate_memory(size, pVoid, uiLine, szFileName, szFunction);
- }
-
- return pVoid;
-}
-
-/*------------------------------------------------------------------------*/
-/** Print a report of memory events to file. */
-void CU_dump_memory_usage(const char* szFilename)
-{
- char* szDumpFileName = (char*)f_szDefaultDumpFileName;
- unsigned int nValid;
- unsigned int nInvalid;
- PMEMORY_NODE pTempNode = NULL;
- PMEMORY_EVENT pTempEvent = NULL;
- FILE* pFile = NULL;
- time_t tTime = 0;
-
- /* use the specified file name, if supplied) */
- if ((NULL != szFilename) && strlen(szFilename) > 0) {
- szDumpFileName = (char*)szFilename;
- }
-
- if (NULL == (pFile = fopen(szDumpFileName, "w"))) {
- fprintf(stderr, _("Failed to open file \"%s\" : %s"), szDumpFileName, strerror(errno));
- return;
- }
-
- setvbuf(pFile, NULL, _IONBF, 0);
-
- fprintf(pFile, "<\?xml version=\"1.0\" \?>");
- fprintf(pFile, "\n<\?xml-stylesheet type=\"text/xsl\" href=\"Memory-Dump.xsl\" \?>");
- fprintf(pFile, "\n");
- fprintf(pFile, "\n");
- fprintf(pFile, "\n ");
- fprintf(pFile, "\n ");
-
- nValid = 0;
- nInvalid = 0;
- pTempNode = f_pMemoryTrackerHead;
- while (NULL != pTempNode) {
- fprintf(pFile, "\n ");
- fprintf(pFile, "\n %p ", pTempNode->pLocation);
- fprintf(pFile, "\n %u ", pTempNode->EventCount);
-
- pTempEvent = pTempNode->pFirstEvent;
- while (NULL != pTempEvent) {
- fprintf(pFile, "\n ");
- fprintf(pFile, "\n %u ", (unsigned int)pTempEvent->Size);
- fprintf(pFile, "\n %s ", pTempEvent->AllocFunction);
- fprintf(pFile, "\n %s ", pTempEvent->AllocFilename);
- fprintf(pFile, "\n %u ", pTempEvent->AllocLine);
- fprintf(pFile, "\n %s ", pTempEvent->DeallocFunction);
- fprintf(pFile, "\n %s ", pTempEvent->DeallocFilename);
- fprintf(pFile, "\n %u ", pTempEvent->DeallocLine);
- fprintf(pFile, "\n ");
-
- if ((0 != pTempEvent->AllocLine) && (0 != pTempEvent->DeallocLine)) {
- ++nValid;
- }
- else {
- ++nInvalid;
- }
-
- pTempEvent = pTempEvent->pNext;
- }
-
- fprintf(pFile, "\n ");
- pTempNode = pTempNode->pNext;
- }
-
- fprintf(pFile, "\n ");
-
- fprintf(pFile, "\n ");
- fprintf(pFile, "\n %u ", nValid);
- fprintf(pFile, "\n %u ", nInvalid);
- fprintf(pFile, "\n %u ", nValid + nInvalid);
- fprintf(pFile, "\n ");
-
- time(&tTime);
- fprintf(pFile, "\n Memory Trace for CUnit Run at %s ", ctime(&tTime));
- fprintf(pFile, "");
-
- fclose(pFile);
-}
-
-#endif /* MEMTRACE */
-
-/** @} */
-
-#ifdef CUNIT_BUILD_TESTS
-#include "test_cunit.h"
-
-/** Deactivate CUnit memory allocation
- * After calling this function, all Cunit memory
- * allocation routines will fail and return NULL.
- */
-void test_cunit_deactivate_malloc(void)
-{
- f_bTestCunitMallocActive = CU_FALSE;
-}
-
-/** Activate CUnit memory allocation
- * After calling this function, all Cunit memory
- * allocation routines will behave normally (allocating
- * memory if it is available).
- */
-void test_cunit_activate_malloc(void)
-{
- f_bTestCunitMallocActive = CU_TRUE;
-}
-
-/** Retrieve the number of memory events recorded for a given pointer. */
-unsigned int test_cunit_get_n_memevents(void* pLocation)
-{
- PMEMORY_NODE pNode = find_memory_node(pLocation);
- return (pNode) ? pNode->EventCount : 0;
-}
-
-/** Retrieve the number of memory allocations recorded for a given pointer. */
-unsigned int test_cunit_get_n_allocations(void* pLocation)
-{
- PMEMORY_NODE pNode = find_memory_node(pLocation);
- PMEMORY_EVENT pEvent = NULL;
- int result = 0;
-
- if (NULL != pNode) {
- pEvent = pNode->pFirstEvent;
- while (NULL != pEvent) {
- if (pEvent->AllocLine != NOT_ALLOCATED)
- ++result;
- pEvent = pEvent->pNext;
- }
- }
-
- return result;
-}
-
-/** Retrieve the number of memory deallocations recorded for a given pointer. */
-unsigned int test_cunit_get_n_deallocations(void* pLocation)
-{
- PMEMORY_NODE pNode = find_memory_node(pLocation);
- PMEMORY_EVENT pEvent = NULL;
- int result = 0;
-
- if (NULL != pNode) {
- pEvent = pNode->pFirstEvent;
- while (NULL != pEvent) {
- if (pEvent->DeallocLine != NOT_DELETED)
- ++result;
- pEvent = pEvent->pNext;
- }
- }
-
- return result;
-}
-
-void test_CU_calloc(void)
-{
- void* ptr1 = NULL;
- void* ptr2 = calloc(2, sizeof(int));
- unsigned int n2 = test_cunit_get_n_memevents(ptr2);
-
- /* test allocation failure */
- test_cunit_deactivate_malloc();
- ptr1 = CU_CALLOC(2, sizeof(int));
- TEST(NULL == ptr1);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- test_cunit_activate_malloc();
-
- /* normal allocation */
- ptr1 = CU_CALLOC(2, sizeof(int));
- TEST_FATAL(NULL != ptr1);
- TEST(test_cunit_get_n_allocations(ptr1) != test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
-
- CU_FREE(ptr1);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- TEST(n2 == test_cunit_get_n_memevents(ptr2));
-
- free(ptr2);
-}
-
-void test_CU_malloc(void)
-{
- void* ptr1 = NULL;
- void* ptr2 = malloc(sizeof(int));
- unsigned int n2 = test_cunit_get_n_memevents(ptr2);
-
- /* test allocation failure */
- test_cunit_deactivate_malloc();
- ptr1 = CU_MALLOC(sizeof(int));
- TEST(NULL == ptr1);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- test_cunit_activate_malloc();
-
- /* normal allocation */
- ptr1 = CU_MALLOC(sizeof(int));
- TEST_FATAL(NULL != ptr1);
- TEST(test_cunit_get_n_allocations(ptr1) != test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
-
- CU_FREE(ptr1);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- TEST(n2 == test_cunit_get_n_memevents(ptr2));
-
- free(ptr2);
-}
-
-void test_CU_free(void)
-{
- /* covered by other test functions */
-}
-
-void test_CU_realloc(void)
-{
- void* ptr1 = CU_MALLOC(sizeof(int));
- void* ptr2 = malloc(sizeof(int));
- void* ptr3;
- void* ptr4;
- unsigned int n2 = test_cunit_get_n_memevents(ptr2);
-
- /* test allocation failure */
- test_cunit_deactivate_malloc();
- ptr1 = CU_REALLOC(ptr1, sizeof(long int));
- TEST(NULL == ptr1);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- test_cunit_activate_malloc();
-
- /* normal allocation */
- ptr3 = CU_MALLOC(sizeof(int));
- TEST_FATAL(NULL != ptr3);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- TEST(test_cunit_get_n_allocations(ptr3) != test_cunit_get_n_deallocations(ptr3));
-
- ptr4 = CU_REALLOC(ptr3, sizeof(long int));
- TEST_FATAL(NULL != ptr4);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- if (ptr3 != ptr4)
- TEST(test_cunit_get_n_allocations(ptr3) == test_cunit_get_n_deallocations(ptr3));
- TEST(test_cunit_get_n_allocations(ptr4) != test_cunit_get_n_deallocations(ptr4));
-
- CU_FREE(ptr4);
- TEST(test_cunit_get_n_allocations(ptr1) == test_cunit_get_n_deallocations(ptr1));
- TEST(test_cunit_get_n_allocations(ptr2) == test_cunit_get_n_deallocations(ptr2));
- TEST(test_cunit_get_n_allocations(ptr3) == test_cunit_get_n_deallocations(ptr3));
- TEST(test_cunit_get_n_allocations(ptr4) == test_cunit_get_n_deallocations(ptr4));
- TEST(n2 == test_cunit_get_n_memevents(ptr2));
-
- free(ptr2);
-}
-
-/** The main internal testing function for MyMem.c. */
-void test_cunit_MyMem(void)
-{
- test_cunit_start_tests("MyMem.c");
-
- test_CU_calloc();
- test_CU_malloc();
- test_CU_free();
- test_CU_realloc();
-
- test_cunit_end_tests();
-}
-
-#endif /* CUNIT_BUILD_TESTS */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Framework/TestDB.c b/tools/taos-tools/deps/CUnit/Sources/Framework/TestDB.c
deleted file mode 100644
index e997328dd4..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Framework/TestDB.c
+++ /dev/null
@@ -1,2846 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004,2005,2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Implementation of Registry/TestGroup/Testcase management Routines.
- *
- * Aug 2001 Initial implementation (AK)
- *
- * 09/Aug/2001 Added startup initialize/cleanup registry functions. (AK)
- *
- * 29/Aug/2001 Added Test and Group Add functions. (AK)
- *
- * 02/Oct/2001 Added Proper Error codes and Messages on the failure conditions. (AK)
- *
- * 13/Oct/2001 Added Code to Check for the Duplicate Group name and test name. (AK)
- *
- * 15-Jul-2004 Added doxygen comments, new interface, added assertions to
- * internal functions, moved error handling code to CUError.c,
- * added assertions to make sure no modification of registry
- * during a run, bug fixes, changed CU_set_registry() so that it
- * doesn't require cleaning the existing registry. (JDS)
- *
- * 24-Apr-2006 Removed constraint that suites/tests be uniquely named.
- * Added ability to turn individual tests/suites on or off.
- * Added lookup functions for suites/tests based on index.
- * Moved doxygen comments for public API here to header.
- * Modified internal unit tests to include these changes. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- *
- * 16-Avr-2007 Added setup and teardown functions. (CJN)
- *
-*/
-
-/** @file
- * Management functions for tests, suites, and the test registry (implementation).
- */
-/** @addtogroup Framework
- @{
-*/
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include
-#include
-#include
-#include
-#include
-
-#include "CUnit/CUnit.h"
-#include "CUnit/MyMem.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/TestRun.h"
-#include "CUnit/Util.h"
-
-
-/*=================================================================
- * Global/Static Definitions
- *=================================================================*/
-static CU_pTestRegistry f_pTestRegistry = NULL; /**< The active internal Test Registry. */
-
-/*=================================================================
- * Private function forward declarations
- *=================================================================*/
-static void cleanup_test_registry(CU_pTestRegistry pRegistry);
-static CU_pSuite create_suite(const char* strName, CU_InitializeFunc pInit, CU_CleanupFunc pClean, CU_SetUpFunc pSetup, CU_TearDownFunc pTear);
-static void cleanup_suite(CU_pSuite pSuite);
-static void insert_suite(CU_pTestRegistry pRegistry, CU_pSuite pSuite);
-static CU_pTest create_test(const char* strName, CU_TestFunc pTestFunc);
-static CU_pTest create_suite_test(const char* strName, CU_BOOL suite_setup);
-static void cleanup_test(CU_pTest pTest);
-static void insert_test(CU_pSuite pSuite, CU_pTest pTest);
-
-static CU_BOOL suite_exists(CU_pTestRegistry pRegistry, const char* szSuiteName);
-static CU_BOOL test_exists(CU_pSuite pSuite, const char* szTestName);
-
-/*=================================================================
- * Public Interface functions
- *=================================================================*/
-CU_ErrorCode CU_initialize_registry(void)
-{
- CU_ErrorCode result;
-
- assert(CU_FALSE == CU_is_test_running());
-
- CU_set_error(result = CUE_SUCCESS);
-
- if (NULL != f_pTestRegistry) {
- CU_cleanup_registry();
- }
-
- f_pTestRegistry = CU_create_new_registry();
- if (NULL == f_pTestRegistry) {
- CU_set_error(result = CUE_NOMEMORY);
- }
-
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_BOOL CU_registry_initialized(void)
-{
- return (NULL == f_pTestRegistry) ? CU_FALSE : CU_TRUE;
-}
-
-/*------------------------------------------------------------------------*/
-void CU_cleanup_registry(void)
-{
- assert(CU_FALSE == CU_is_test_running());
-
- CU_set_error(CUE_SUCCESS);
- CU_destroy_existing_registry(&f_pTestRegistry); /* supposed to handle NULL ok */
- CU_clear_previous_results();
- CU_CREATE_MEMORY_REPORT(NULL);
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTestRegistry CU_get_registry(void)
-{
- return f_pTestRegistry;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTestRegistry CU_set_registry(CU_pTestRegistry pRegistry)
-{
- CU_pTestRegistry pOldRegistry = f_pTestRegistry;
-
- assert(CU_FALSE == CU_is_test_running());
-
- CU_set_error(CUE_SUCCESS);
- f_pTestRegistry = pRegistry;
- return pOldRegistry;
-}
-
-/* test that assert has not been compiled out */
-static void _test_assert_enabled(void) {
- int i = 0;
- assert(++i);
- if (i == 0) {
- fprintf(stderr, "CUnit built wrongly:\n");
- fprintf(stderr, "This build of CUnit has been built without a working assert() macro\n");
- fprintf(stderr, "If this is windows, try building with /UNDEBUG\n");
- exit(1);
- }
-}
-
-/*------------------------------------------------------------------------*/
-CU_pSuite CU_add_suite_with_setup_and_teardown(const char* strName, CU_InitializeFunc pInit, CU_CleanupFunc pClean, CU_SetUpFunc pSetup, CU_TearDownFunc pTear)
-{
- CU_pSuite pRetValue = NULL;
- CU_ErrorCode error = CUE_SUCCESS;
-
- _test_assert_enabled();
-
- assert(CU_FALSE == CU_is_test_running());
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == strName) {
- error = CUE_NO_SUITENAME;
- }
- else {
- pRetValue = create_suite(strName, pInit, pClean, pSetup, pTear);
- if (NULL == pRetValue) {
- error = CUE_NOMEMORY;
- } else {
- if (CU_TRUE == suite_exists(f_pTestRegistry, strName)) {
- error = CUE_DUP_SUITE;
- }
- insert_suite(f_pTestRegistry, pRetValue);
-
- /* if there are suite setup and teardowns add them as "tests" */
- if (pInit) {
- pRetValue->pInitializeFuncTest = create_suite_test("CUnit Suite init", CU_TRUE);
- }
- if (pClean) {
- pRetValue->pCleanupFuncTest = create_suite_test("CUnit Suite cleanup", CU_FALSE);
- }
- }
- }
-
-
-
- CU_set_error(error);
- return pRetValue;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pSuite CU_add_suite(const char* strName, CU_InitializeFunc pInit, CU_CleanupFunc pClean)
-{
- return CU_add_suite_with_setup_and_teardown(strName, pInit, pClean, NULL, NULL);
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_suite_active(CU_pSuite pSuite, CU_BOOL fNewActive)
-{
- CU_ErrorCode result = CUE_SUCCESS;
-
- if (NULL == pSuite) {
- result = CUE_NOSUITE;
- }
- else {
- pSuite->fActive = fNewActive;
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_suite_name(CU_pSuite pSuite, const char *strNewName)
-{
- CU_ErrorCode result = CUE_SUCCESS;
-
- if (NULL == pSuite) {
- result = CUE_NOSUITE;
- }
- else if (NULL == strNewName) {
- result = CUE_NO_SUITENAME;
- }
- else {
- CU_FREE(pSuite->pName);
- pSuite->pName = (char *)CU_MALLOC(strlen(strNewName)+1);
- strcpy(pSuite->pName, strNewName);
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_suite_initfunc(CU_pSuite pSuite, CU_InitializeFunc pNewInit)
-{
- CU_ErrorCode result = CUE_SUCCESS;
-
- if (NULL == pSuite) {
- result = CUE_NOSUITE;
- }
- else {
- pSuite->pInitializeFunc = pNewInit;
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_suite_cleanupfunc(CU_pSuite pSuite, CU_CleanupFunc pNewClean)
-{
- CU_ErrorCode result = CUE_SUCCESS;
-
- if (NULL == pSuite) {
- result = CUE_NOSUITE;
- }
- else {
- pSuite->pCleanupFunc = pNewClean;
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pSuite CU_get_suite(const char *strName)
-{
- CU_pSuite result = NULL;
- CU_ErrorCode error = CUE_SUCCESS;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == strName) {
- error = CUE_NO_SUITENAME;
- }
- else {
- result = CU_get_suite_by_name(strName, f_pTestRegistry);
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pSuite CU_get_suite_at_pos(unsigned int pos)
-{
- CU_pSuite result = NULL;
- CU_ErrorCode error = CUE_SUCCESS;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else {
- result = CU_get_suite_by_index(pos, f_pTestRegistry);
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_suite_pos(CU_pSuite pSuite)
-{
- unsigned int result = 0;
- CU_ErrorCode error = CUE_SUCCESS;
- CU_pSuite pCurrentSuite = NULL;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == pSuite) {
- error = CUE_NOSUITE;
- }
- else {
- pCurrentSuite = f_pTestRegistry->pSuite;
- result = 1;
- while ((NULL != pCurrentSuite) && (pCurrentSuite != pSuite)) {
- ++result;
- pCurrentSuite = pCurrentSuite->pNext;
- }
- if (pCurrentSuite == NULL) {
- result = 0;
- }
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_suite_pos_by_name(const char *strName)
-{
- unsigned int result = 0;
- CU_ErrorCode error = CUE_SUCCESS;
- CU_pSuite pCurrentSuite = NULL;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == strName) {
- error = CUE_NO_SUITENAME;
- }
- else {
- pCurrentSuite = f_pTestRegistry->pSuite;
- result = 1;
- while ((NULL != pCurrentSuite) && (0 != strcmp(pCurrentSuite->pName, strName))) {
- ++result;
- pCurrentSuite = pCurrentSuite->pNext;
- }
- if (pCurrentSuite == NULL) {
- result = 0;
- }
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTest CU_add_test(CU_pSuite pSuite, const char* strName, CU_TestFunc pTestFunc)
-{
- CU_pTest pRetValue = NULL;
- CU_ErrorCode error = CUE_SUCCESS;
-
- assert(CU_FALSE == CU_is_test_running());
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == pSuite) {
- error = CUE_NOSUITE;
- }
- else if (NULL == strName) {
- error = CUE_NO_TESTNAME;
- }
- else if (NULL == pTestFunc) {
- error = CUE_NOTEST;
- }
- else {
- pRetValue = create_test(strName, pTestFunc);
- if (NULL == pRetValue) {
- error = CUE_NOMEMORY;
- }
- else {
- f_pTestRegistry->uiNumberOfTests++;
- if (CU_TRUE == test_exists(pSuite, strName)) {
- error = CUE_DUP_TEST;
- }
- insert_test(pSuite, pRetValue);
- }
- }
-
- CU_set_error(error);
- return pRetValue;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_test_active(CU_pTest pTest, CU_BOOL fNewActive)
-{
- CU_ErrorCode result = CUE_SUCCESS;
-
- if (NULL == pTest) {
- result = CUE_NOTEST;
- }
- else {
- pTest->fActive = fNewActive;
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_test_name(CU_pTest pTest, const char *strNewName)
-{
- CU_ErrorCode result = CUE_SUCCESS;
-
- if (NULL == pTest) {
- result = CUE_NOTEST;
- }
- else if (NULL == strNewName) {
- result = CUE_NO_TESTNAME;
- }
- else {
- CU_FREE(pTest->pName);
- pTest->pName = (char *)CU_MALLOC(strlen(strNewName)+1);
- strcpy(pTest->pName, strNewName);
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_test_func(CU_pTest pTest, CU_TestFunc pNewFunc)
-{
- CU_ErrorCode result = CUE_SUCCESS;
-
- if ((NULL == pTest) || (NULL == pNewFunc)) {
- result = CUE_NOTEST;
- }
- else {
- pTest->pTestFunc = pNewFunc;
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTest CU_get_test(CU_pSuite pSuite, const char *strName)
-{
- CU_pTest result = NULL;
- CU_ErrorCode error = CUE_SUCCESS;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == pSuite) {
- error = CUE_NOSUITE;
- }
- else if (NULL == strName) {
- error = CUE_NO_SUITENAME;
- }
- else {
- result = CU_get_test_by_name(strName, pSuite);
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTest CU_get_test_at_pos(CU_pSuite pSuite, unsigned int pos)
-{
- CU_pTest result = NULL;
- CU_ErrorCode error = CUE_SUCCESS;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == pSuite) {
- error = CUE_NOSUITE;
- }
- else {
- result = CU_get_test_by_index(pos, pSuite);
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_test_pos(CU_pSuite pSuite, CU_pTest pTest)
-{
- unsigned int result = 0;
- CU_ErrorCode error = CUE_SUCCESS;
- CU_pTest pCurrentTest = NULL;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == pSuite) {
- error = CUE_NOSUITE;
- }
- else if (NULL == pTest) {
- error = CUE_NOTEST;
- }
- else {
- pCurrentTest = pSuite->pTest;
- result = 1;
- while ((NULL != pCurrentTest) && (pCurrentTest != pTest)) {
- ++result;
- pCurrentTest = pCurrentTest->pNext;
- }
- if (pCurrentTest == NULL) {
- result = 0;
- }
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_test_pos_by_name(CU_pSuite pSuite, const char *strName)
-{
- unsigned int result = 0;
- CU_ErrorCode error = CUE_SUCCESS;
- CU_pTest pCurrentTest = NULL;
-
- if (NULL == f_pTestRegistry) {
- error = CUE_NOREGISTRY;
- }
- else if (NULL == pSuite) {
- error = CUE_NOSUITE;
- }
- else if (NULL == strName) {
- error = CUE_NO_TESTNAME;
- }
- else {
- pCurrentTest = pSuite->pTest;
- result = 1;
- while ((NULL != pCurrentTest) && (0 != strcmp(pCurrentTest->pName, strName))) {
- ++result;
- pCurrentTest = pCurrentTest->pNext;
- }
- if (pCurrentTest == NULL) {
- result = 0;
- }
- }
-
- CU_set_error(error);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_set_all_active(CU_BOOL fNewActive)
-{
- CU_pSuite pSuite;
- CU_pTest pTest;
-
- if (NULL == f_pTestRegistry) {
- return CUE_NOREGISTRY;
- }
-
- for (pSuite = f_pTestRegistry->pSuite; NULL != pSuite; pSuite = pSuite->pNext) {
- pSuite->fActive = fNewActive;
- for (pTest = pSuite->pTest; NULL != pTest; pTest = pTest->pNext) {
- pSuite->fActive = fNewActive;
- }
- }
-
- return CUE_SUCCESS;
-}
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-/* This section is based conceptually on code
- * Copyright (C) 2004 Aurema Pty Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Derived from code contributed by K. Cheung and Aurema Pty Ltd. (thanks!)
- * int test_group_register(test_group_t *tg)
- * int test_suite_register(test_suite_t *ts)
- */
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_register_nsuites(int suite_count, ...)
-{
- CU_SuiteInfo *pSuiteItem = NULL;
- CU_TestInfo *pTestItem = NULL;
- CU_pSuite pSuite = NULL;
-
- va_list argptr;
- int i;
-
- va_start(argptr, suite_count);
-
- for (i=0 ; ipName; pSuiteItem++) {
- if (NULL != (pSuite = CU_add_suite_with_setup_and_teardown(pSuiteItem->pName, pSuiteItem->pInitFunc, pSuiteItem->pCleanupFunc, pSuiteItem->pSetUpFunc, pSuiteItem->pTearDownFunc))) {
- for (pTestItem = pSuiteItem->pTests; NULL != pTestItem->pName; pTestItem++) {
- if (NULL == CU_add_test(pSuite, pTestItem->pName, pTestItem->pTestFunc)) {
- goto out;
- }
- }
- }
- else {
- goto out;
- }
- }
- }
- }
-
-out:
- va_end(argptr);
- return CU_get_error();
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_register_suites(CU_SuiteInfo suite_info[])
-{
- return CU_register_nsuites(1, suite_info);
-}
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-/*=================================================================
- * Private static function definitions
- *=================================================================*/
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to clean up the specified test registry.
- * cleanup_suite() will be called for each registered suite to perform
- * cleanup of the associated test cases. Then, the suite's memory will
- * be freed. Note that any pointers to tests or suites in pRegistry
- * held by the user will be invalidated by this function. Severe problems
- * can occur if this function is called during a test run involving pRegistry.
- * Note that memory held for data members in the registry (e.g. pName) and
- * the registry itself are not freed by this function.
- *
- * @see cleanup_suite()
- * @see cleanup_test()
- * @param pRegistry CU_pTestRegistry to clean up (non-NULL).
- */
-static void cleanup_test_registry(CU_pTestRegistry pRegistry)
-{
- CU_pSuite pCurSuite = NULL;
- CU_pSuite pNextSuite = NULL;
-
- assert(NULL != pRegistry);
-
- pCurSuite = pRegistry->pSuite;
- while (NULL != pCurSuite) {
- pNextSuite = pCurSuite->pNext;
- cleanup_suite(pCurSuite);
-
- CU_FREE(pCurSuite);
- pCurSuite = pNextSuite;
- }
- pRegistry->pSuite = NULL;
- pRegistry->uiNumberOfSuites = 0;
- pRegistry->uiNumberOfTests = 0;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to create a new test suite having the specified parameters.
- * This function creates a new test suite having the specified name and
- * initialization/cleanup functions. The new suite is active for execution during
- * test runs. The strName cannot be NULL (checked by assertion), but either or
- * both function pointers can be. A pointer to the newly-created suite is returned,
- * or NULL if there was an error allocating memory for the new suite. It is the
- * responsibility of the caller to destroy the returned suite (use cleanup_suite()
- * before freeing the returned pointer).
- *
- * @param strName Name for the new test suite (non-NULL).
- * @param pInit Initialization function to call before running suite.
- * @param pClean Cleanup function to call after running suite.
- * @return A pointer to the newly-created suite (NULL if creation failed)
- */
-static CU_pSuite create_suite(const char* strName, CU_InitializeFunc pInit, CU_CleanupFunc pClean, CU_SetUpFunc pSetup, CU_TearDownFunc pTear)
-{
- CU_pSuite pRetValue = (CU_pSuite)CU_MALLOC(sizeof(CU_Suite));
-
- assert(NULL != strName);
-
- if (NULL != pRetValue) {
- memset(pRetValue, 0, sizeof(*pRetValue));
- pRetValue->pName = (char *)CU_MALLOC(strlen(strName)+1);
- if (NULL != pRetValue->pName) {
- strcpy(pRetValue->pName, strName);
- pRetValue->fActive = CU_TRUE;
- pRetValue->pInitializeFunc = pInit;
- pRetValue->pCleanupFunc = pClean;
- pRetValue->pSetUpFunc = pSetup;
- pRetValue->pTearDownFunc = pTear;
- pRetValue->pTest = NULL;
- pRetValue->pNext = NULL;
- pRetValue->pPrev = NULL;
- pRetValue->uiNumberOfTests = 0;
- }
- else {
- CU_FREE(pRetValue);
- pRetValue = NULL;
- }
- }
-
- return pRetValue;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to clean up the specified test suite.
- * Each test case registered with pSuite will be freed. Allocated memory held
- * by the suite (i.e. the name) will also be deallocated. Severe problems can
- * occur if this function is called during a test run involving pSuite.
- *
- * @param pSuite CU_pSuite to clean up (non-NULL).
- * @see cleanup_test_registry()
- * @see cleanup_test()
- */
-static void cleanup_suite(CU_pSuite pSuite)
-{
- CU_pTest pCurTest = NULL;
- CU_pTest pNextTest = NULL;
-
- assert(NULL != pSuite);
-
- pCurTest = pSuite->pTest;
- if (pSuite->pInitializeFuncTest) {
- cleanup_test(pSuite->pInitializeFuncTest);
- CU_FREE(pSuite->pInitializeFuncTest);
- }
- if (pSuite->pCleanupFuncTest) {
- cleanup_test(pSuite->pCleanupFuncTest);
- CU_FREE(pSuite->pCleanupFuncTest);
- }
- while (NULL != pCurTest) {
- pNextTest = pCurTest->pNext;
-
- cleanup_test(pCurTest);
-
- CU_FREE(pCurTest);
- pCurTest = pNextTest;
- }
- if (NULL != pSuite->pName) {
- CU_FREE(pSuite->pName);
- }
-
- pSuite->pName = NULL;
- pSuite->pTest = NULL;
- pSuite->uiNumberOfTests = 0;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to insert a suite into a registry.
- * The suite name is assumed to be unique. Internally, the list of suites
- * is a double-linked list, which this function manages. Insertion of NULL
- * pSuites is not allowed (checked by assertion). Severe problems can occur
- * if this function is called during a test run involving pRegistry.
- *
- * @param pRegistry CU_pTestRegistry to insert into (non-NULL).
- * @param pSuite CU_pSuite to insert (non-NULL).
- * @see insert_test()
- */
-static void insert_suite(CU_pTestRegistry pRegistry, CU_pSuite pSuite)
-{
- CU_pSuite pCurSuite = NULL;
-
- assert(NULL != pRegistry);
- assert(NULL != pSuite);
-
- pCurSuite = pRegistry->pSuite;
-
- assert(pCurSuite != pSuite);
-
- pSuite->pNext = NULL;
- pRegistry->uiNumberOfSuites++;
-
- /* if this is the 1st suite to be added... */
- if (NULL == pCurSuite) {
- pRegistry->pSuite = pSuite;
- pSuite->pPrev = NULL;
- }
- /* otherwise, add it to the end of the linked list... */
- else {
- while (NULL != pCurSuite->pNext) {
- pCurSuite = pCurSuite->pNext;
- assert(pCurSuite != pSuite);
- }
-
- pCurSuite->pNext = pSuite;
- pSuite->pPrev = pCurSuite;
- }
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to create a new test case having the specified parameters.
- * This function creates a new test having the specified name and test function.
- * The strName cannot be NULL (checked by assertion), but the function pointer
- * may be. A pointer to the newly-created test is returned, or NULL if there
- * was an error allocating memory for the new test. It is the responsibility
- * of the caller to destroy the returned test (use cleanup_test() before freeing
- * the returned pointer).
- *
- * @param strName Name for the new test.
- * @param pTestFunc Test function to call when running this test.
- * @return A pointer to the newly-created test (NULL if creation failed)
- */
-static CU_pTest create_test(const char* strName, CU_TestFunc pTestFunc)
-{
- CU_pTest pRetValue = (CU_pTest)CU_MALLOC(sizeof(CU_Test));
- assert(NULL != strName);
-
- if (NULL != pRetValue) {
- memset(pRetValue, 0, sizeof(*pRetValue));
- pRetValue->pName = (char *)CU_MALLOC(strlen(strName)+1);
- if (NULL != pRetValue->pName) {
- strcpy(pRetValue->pName, strName);
- pRetValue->fActive = CU_TRUE;
- pRetValue->pTestFunc = pTestFunc;
- pRetValue->pJumpBuf = NULL;
- pRetValue->pNext = NULL;
- pRetValue->pPrev = NULL;
- }
- else {
- CU_FREE(pRetValue);
- pRetValue = NULL;
- }
- }
-
- return pRetValue;
-}
-
-/*
- * Internal function to register that a suite as a setup or teardown function
- * */
-static CU_pTest create_suite_test(const char* strName, CU_BOOL suite_setup) {
- CU_pTest pTest = create_test(strName, NULL);
- if (pTest) {
- if (suite_setup) {
- pTest->fSuiteSetup = CU_TRUE;
- } else {
- pTest->fSuiteCleanup = CU_TRUE;
- }
- }
- return pTest;
-}
-
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to clean up the specified test.
- * All memory associated with the test will be freed. Severe problems can
- * occur if this function is called during a test run involving pTest.
- *
- * @param pTest CU_pTest to clean up (non-NULL).
- * @see cleanup_test_registry()
- * @see cleanup_suite()
- */
-static void cleanup_test(CU_pTest pTest)
-{
- assert(NULL != pTest);
-
- if (NULL != pTest->pName) {
- CU_FREE(pTest->pName);
- }
-
- pTest->pName = NULL;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to insert a test into a suite.
- * The test name is assumed to be unique. Internally, the list of tests in
- * a suite is a double-linked list, which this function manages. Neither
- * pSuite nor pTest may be NULL (checked by assertion). Further, pTest must
- * be an independent test (i.e. both pTest->pNext and pTest->pPrev == NULL),
- * which is also checked by assertion. Severe problems can occur if this
- * function is called during a test run involving pSuite.
- *
- * @param pSuite CU_pSuite to insert into (non-NULL).
- * @param pTest CU_pTest to insert (non-NULL).
- * @see insert_suite()
- */
-static void insert_test(CU_pSuite pSuite, CU_pTest pTest)
-{
- CU_pTest pCurTest = NULL;
-
- assert(NULL != pSuite);
- assert(NULL != pTest);
- assert(NULL == pTest->pNext);
- assert(NULL == pTest->pPrev);
-
- pCurTest = pSuite->pTest;
-
- assert(pCurTest != pTest);
-
- pSuite->uiNumberOfTests++;
- /* if this is the 1st suite to be added... */
- if (NULL == pCurTest) {
- pSuite->pTest = pTest;
- pTest->pPrev = NULL;
- }
- else {
- while (NULL != pCurTest->pNext) {
- pCurTest = pCurTest->pNext;
- assert(pCurTest != pTest);
- }
-
- pCurTest->pNext = pTest;
- pTest->pPrev = pCurTest;
- }
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to check whether a suite having a specified
- * name already exists.
- *
- * @param pRegistry CU_pTestRegistry to check (non-NULL).
- * @param szSuiteName Suite name to check (non-NULL).
- * @return CU_TRUE if suite exists in the registry, CU_FALSE otherwise.
- */
-static CU_BOOL suite_exists(CU_pTestRegistry pRegistry, const char* szSuiteName)
-{
- CU_pSuite pSuite = NULL;
-
- assert(NULL != pRegistry);
- assert(NULL != szSuiteName);
-
- pSuite = pRegistry->pSuite;
- while (NULL != pSuite) {
- if ((NULL != pSuite->pName) && (0 == CU_compare_strings(szSuiteName, pSuite->pName))) {
- return CU_TRUE;
- }
- pSuite = pSuite->pNext;
- }
-
- return CU_FALSE;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Internal function to check whether a test having a specified
- * name is already registered in a given suite.
- *
- * @param pSuite CU_pSuite to check (non-NULL).
- * @param szTestName Test case name to check (non-NULL).
- * @return CU_TRUE if test exists in the suite, CU_FALSE otherwise.
- */
-static CU_BOOL test_exists(CU_pSuite pSuite, const char* szTestName)
-{
- CU_pTest pTest = NULL;
-
- assert(NULL != pSuite);
- assert(NULL != szTestName);
-
- pTest = pSuite->pTest;
- while (NULL != pTest) {
- if ((NULL != pTest->pName) && (0 == CU_compare_strings(szTestName, pTest->pName))) {
- return CU_TRUE;
- }
- pTest = pTest->pNext;
- }
-
- return CU_FALSE;
-}
-
-/*=================================================================
- * Public but primarily internal function definitions
- *=================================================================*/
-CU_pTestRegistry CU_create_new_registry(void)
-{
- CU_pTestRegistry pRegistry = (CU_pTestRegistry)CU_MALLOC(sizeof(CU_TestRegistry));
- if (NULL != pRegistry) {
- pRegistry->pSuite = NULL;
- pRegistry->uiNumberOfSuites = 0;
- pRegistry->uiNumberOfTests = 0;
- }
-
- return pRegistry;
-}
-
-/*------------------------------------------------------------------------*/
-void CU_destroy_existing_registry(CU_pTestRegistry* ppRegistry)
-{
- assert(NULL != ppRegistry);
-
- /* Note - CU_cleanup_registry counts on being able to pass NULL */
-
- if (NULL != *ppRegistry) {
- cleanup_test_registry(*ppRegistry);
- }
- CU_FREE(*ppRegistry);
- *ppRegistry = NULL;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pSuite CU_get_suite_by_name(const char* szSuiteName, CU_pTestRegistry pRegistry)
-{
- CU_pSuite pSuite = NULL;
- CU_pSuite pCur = NULL;
-
- assert(NULL != pRegistry);
- assert(NULL != szSuiteName);
-
- pCur = pRegistry->pSuite;
- while (NULL != pCur) {
- if ((NULL != pCur->pName) && (0 == CU_compare_strings(pCur->pName, szSuiteName))) {
- pSuite = pCur;
- break;
- }
- pCur = pCur->pNext;
- }
-
- return pSuite;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pSuite CU_get_suite_by_index(unsigned int index, CU_pTestRegistry pRegistry)
-{
- CU_pSuite result = NULL;
- unsigned int i;
-
- assert(NULL != pRegistry);
-
- if ((index > 0) && (index <= f_pTestRegistry->uiNumberOfSuites)) {
- result = f_pTestRegistry->pSuite;
- for (i=1 ; ipNext;
- }
- }
-
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTest CU_get_test_by_name(const char* szTestName, CU_pSuite pSuite)
-{
- CU_pTest pTest = NULL;
- CU_pTest pCur = NULL;
-
- assert(NULL != pSuite);
- assert(NULL != szTestName);
-
- pCur = pSuite->pTest;
- while (NULL != pCur) {
- if ((NULL != pCur->pName) && (0 == CU_compare_strings(pCur->pName, szTestName))) {
- pTest = pCur;
- break;
- }
- pCur = pCur->pNext;
- }
-
- return pTest;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTest CU_get_test_by_index(unsigned int index, CU_pSuite pSuite)
-{
- CU_pTest t;
- unsigned int i = 1;
- assert(NULL != pSuite);
- t = pSuite->pTest;
- while(t) {
- if (i++ == index) return t;
- t = t->pNext;
- }
- return NULL;
-}
-
-/** @} */
-
-/*------------------------------------------------------------------------*/
-/*------------------------------------------------------------------------*/
-#ifdef CUNIT_BUILD_TESTS
-#include "test_cunit.h"
-
-static int sfunc1(void)
-{ return 0; }
-
-static void test1(void)
-{}
-
-static void test2(void)
-{}
-
-/*--------------------------------------------------*/
-static void test_CU_initialize_registry(void)
-{
- CU_pTestRegistry pReg = NULL;
- unsigned int ndeallocs_before;
-
- /* initial state */
- TEST(NULL == CU_get_registry());
- TEST(CU_FALSE == CU_registry_initialized());
-
- /* after normal initialization */
- TEST(CUE_SUCCESS == CU_initialize_registry());
- pReg = CU_get_registry();
- TEST_FATAL(NULL != pReg);
- TEST(CU_TRUE == CU_registry_initialized());
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(NULL == pReg->pSuite);
-
- /* after reinitialization */
- TEST(0 < test_cunit_get_n_memevents(pReg));
- ndeallocs_before = test_cunit_get_n_deallocations(pReg);
- TEST(CUE_SUCCESS == CU_initialize_registry());
- TEST((ndeallocs_before + 1) == test_cunit_get_n_deallocations(pReg));
- pReg = CU_get_registry();
- TEST_FATAL(NULL != pReg);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(NULL == pReg->pSuite);
-
- /* after cleanup */
- CU_cleanup_registry();
- TEST(NULL == CU_get_registry());
- TEST(CU_FALSE == CU_registry_initialized());
-
- /* if malloc fails */
- test_cunit_deactivate_malloc();
- TEST(CUE_NOMEMORY == CU_initialize_registry());
- TEST(NULL == CU_get_registry());
- TEST(CU_FALSE == CU_registry_initialized());
- test_cunit_activate_malloc();
-}
-
-/*--------------------------------------------------*/
-static void test_CU_cleanup_registry(void)
-{
- /* make sure calling with uninitialized registry does not crash */
- CU_cleanup_registry();
- CU_cleanup_registry();
- CU_cleanup_registry();
- CU_cleanup_registry();
- CU_cleanup_registry();
-
- /* nothing more to do over test_CU_initialize_registry() */
-}
-
-/*--------------------------------------------------*/
-/* test CU_add_suite()
- * CU_get_suite_by_name()
- * CU_get_suite_by_index()
- */
-static void test_CU_add_suite(void)
-{
- CU_pSuite pSuite = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
- CU_pTestRegistry pReg = NULL;
-
- CU_cleanup_registry(); /* make sure registry not initialized */
-
- /* error condition - registry not initialized */
- pSuite = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_NOREGISTRY == CU_get_error());
- TEST(NULL == pSuite);
-
- /* error condition - no name */
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- pSuite = CU_add_suite(NULL, NULL, NULL);
- TEST(CUE_NO_SUITENAME == CU_get_error());
- TEST(NULL == pSuite);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
-
- /* warning condition - duplicate name */
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- pSuite = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pSuite);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
-
- pSuite2 = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_DUP_SUITE == CU_get_error());
- TEST(NULL != pSuite2);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
-
- TEST(!strcmp("suite1", pSuite->pName));
- TEST(pSuite->fActive == CU_TRUE); /* suite active on creation */
- TEST(pSuite->pTest == NULL); /* no tests added yet */
- TEST(pSuite->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite->pInitializeFunc == NULL); /* no init function */
- TEST(pSuite->pCleanupFunc == NULL); /* no cleanup function */
- TEST(pSuite->pNext == pSuite2); /* now have another suite */
-
- TEST(!strcmp("suite1", pSuite2->pName));
- TEST(pSuite2->fActive == CU_TRUE); /* suite active on creation */
- TEST(pSuite2->pTest == NULL); /* no tests added yet */
- TEST(pSuite2->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite2->pInitializeFunc == NULL); /* no init function */
- TEST(pSuite2->pCleanupFunc == NULL); /* no cleanup function */
- TEST(pSuite2->pNext == NULL); /* end of the list */
-
- /* error condition - memory allocation failure */
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- test_cunit_deactivate_malloc();
- pSuite = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_NOMEMORY == CU_get_error());
- TEST(NULL == pSuite);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- test_cunit_activate_malloc();
-
- /* normal creation & cleanup */
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- TEST(CU_get_suite_by_index(0, pReg) == NULL);
- TEST(CU_get_suite_by_index(1, pReg) == NULL);
-
- pSuite = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pSuite);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(CU_get_suite_by_name("suite1", pReg) == pSuite);
- TEST(CU_get_suite_by_index(0, pReg) == NULL);
- TEST(CU_get_suite_by_index(1, pReg) == pSuite);
- TEST(CU_get_suite_by_index(2, pReg) == NULL);
- TEST(pReg->pSuite == pSuite);
-
- TEST(!strcmp("suite1", pSuite->pName));
- TEST(pSuite->fActive == CU_TRUE); /* suite active on creation */
- TEST(pSuite->pTest == NULL); /* no tests added yet */
- TEST(pSuite->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite->pInitializeFunc == NULL); /* no init function */
- TEST(pSuite->pCleanupFunc == NULL); /* no cleanup function */
- TEST(pSuite->pNext == NULL); /* no more suites added yet */
-
- pSuite2 = CU_add_suite("suite2", sfunc1, NULL);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pSuite2);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(CU_get_suite_by_name("suite2", pReg) == pSuite2);
- TEST(CU_get_suite_by_index(0, pReg) == NULL);
- TEST(CU_get_suite_by_index(1, pReg) == pSuite);
- TEST(CU_get_suite_by_index(2, pReg) == pSuite2);
- TEST(CU_get_suite_by_index(3, pReg) == NULL);
-
- pSuite3 = CU_add_suite("suite3", NULL, sfunc1);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pSuite3);
- TEST(3 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(CU_get_suite_by_name("suite3", pReg) == pSuite3);
- TEST(CU_get_suite_by_index(0, pReg) == NULL);
- TEST(CU_get_suite_by_index(1, pReg) == pSuite);
- TEST(CU_get_suite_by_index(2, pReg) == pSuite2);
- TEST(CU_get_suite_by_index(3, pReg) == pSuite3);
- TEST(CU_get_suite_by_index(4, pReg) == NULL);
-
- pSuite4 = CU_add_suite("suite4", sfunc1, sfunc1);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pSuite4);
- TEST(4 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(CU_get_suite_by_name("suite4", pReg) == pSuite4);
- TEST(CU_get_suite_by_index(0, pReg) == NULL);
- TEST(CU_get_suite_by_index(1, pReg) == pSuite);
- TEST(CU_get_suite_by_index(2, pReg) == pSuite2);
- TEST(CU_get_suite_by_index(3, pReg) == pSuite3);
- TEST(CU_get_suite_by_index(4, pReg) == pSuite4);
- TEST(CU_get_suite_by_index(5, pReg) == NULL);
-
- /* test registry suite structures */
- TEST(pReg->pSuite == pSuite);
-
- TEST(!strcmp("suite1", pSuite->pName));
- TEST(pSuite->fActive == CU_TRUE); /* suite active on creation */
- TEST(pSuite->pTest == NULL); /* no tests added yet */
- TEST(pSuite->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite->pInitializeFunc == NULL); /* no init function */
- TEST(pSuite->pCleanupFunc == NULL); /* no cleanup function */
- TEST(pSuite->pNext == pSuite2); /* now have another suite */
-
- TEST(!strcmp("suite2", pSuite2->pName));
- TEST(pSuite2->fActive == CU_TRUE); /* suite active on creation */
- TEST(pSuite2->pTest == NULL); /* no tests added yet */
- TEST(pSuite2->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite2->pInitializeFunc == sfunc1); /* no init function */
- TEST(pSuite2->pCleanupFunc == NULL); /* no cleanup function */
- TEST(pSuite2->pNext == pSuite3); /* next suite in list */
-
- TEST(!strcmp("suite3", pSuite3->pName));
- TEST(pSuite3->fActive == CU_TRUE); /* suite active on creation */
- TEST(pSuite3->pTest == NULL); /* no tests added yet */
- TEST(pSuite3->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite3->pInitializeFunc == NULL); /* no init function */
- TEST(pSuite3->pCleanupFunc == sfunc1); /* no cleanup function */
- TEST(pSuite3->pNext == pSuite4); /* next suite in list */
-
- TEST(!strcmp("suite4", pSuite4->pName));
- TEST(pSuite4->fActive == CU_TRUE); /* suite active on creation */
- TEST(pSuite4->pTest == NULL); /* no tests added yet */
- TEST(pSuite4->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite4->pInitializeFunc == sfunc1); /* no init function */
- TEST(pSuite4->pCleanupFunc == sfunc1); /* no cleanup function */
- TEST(pSuite4->pNext == NULL); /* end of suite list */
-
- TEST(0 != test_cunit_get_n_memevents(pSuite));
- TEST(0 != test_cunit_get_n_memevents(pSuite2));
- TEST(0 != test_cunit_get_n_memevents(pSuite3));
- TEST(0 != test_cunit_get_n_memevents(pSuite4));
-
- TEST(test_cunit_get_n_allocations(pSuite) != test_cunit_get_n_deallocations(pSuite));
- TEST(test_cunit_get_n_allocations(pSuite2) != test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pSuite3) != test_cunit_get_n_deallocations(pSuite3));
- TEST(test_cunit_get_n_allocations(pSuite4) != test_cunit_get_n_deallocations(pSuite4));
-
- /* clean up everything and confirm deallocation */
- CU_cleanup_registry();
-
- TEST(test_cunit_get_n_allocations(pSuite) == test_cunit_get_n_deallocations(pSuite));
- TEST(test_cunit_get_n_allocations(pSuite2) == test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pSuite3) == test_cunit_get_n_deallocations(pSuite3));
- TEST(test_cunit_get_n_allocations(pSuite4) == test_cunit_get_n_deallocations(pSuite4));
-}
-
-/*--------------------------------------------------*/
-/* test CU_set_suite_active()
- * CU_set_suite_name()
- * CU_set_suite_initfunc()
- * CU_set_suite_cleanupfunc()
- */
-static void test_CU_set_suite_attributes(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
-
- /* initialize system */
- CU_initialize_registry();
-
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- TEST_FATAL(NULL != pSuite1);
- TEST_FATAL(NULL != CU_add_test(pSuite1, "test1", test1));
- TEST_FATAL(NULL != CU_add_test(pSuite1, "test2", test1));
-
- pSuite2 = CU_add_suite("suite2", sfunc1, NULL); /* add another suite */
- TEST_FATAL(NULL != pSuite2);
- TEST_FATAL(NULL != CU_add_test(pSuite2, "test1", test1));
- TEST_FATAL(NULL != CU_add_test(pSuite2, "test2", test1));
-
- /* test CU_set_suite_active() */
- TEST(CUE_NOSUITE == CU_set_suite_active(NULL, CU_FALSE)); /* error - NULL suite */
-
- TEST(pSuite2->fActive == CU_TRUE); /* suites active on creation */
- TEST(pSuite1->fActive == CU_TRUE);
-
- TEST(CUE_SUCCESS == CU_set_suite_active(pSuite1, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_suite_active(pSuite2, CU_FALSE));
- TEST(pSuite1->fActive == CU_TRUE);
- TEST(pSuite2->fActive == CU_FALSE);
-
- TEST(CUE_SUCCESS == CU_set_suite_active(pSuite1, CU_FALSE));
- TEST(CUE_SUCCESS == CU_set_suite_active(pSuite2, CU_FALSE));
- TEST(pSuite1->fActive == CU_FALSE);
- TEST(pSuite2->fActive == CU_FALSE);
-
- TEST(CUE_SUCCESS == CU_set_suite_active(pSuite1, CU_FALSE));
- TEST(CUE_SUCCESS == CU_set_suite_active(pSuite2, CU_TRUE));
- TEST(pSuite1->fActive == CU_FALSE);
- TEST(pSuite2->fActive == CU_TRUE);
-
- /* test CU_set_suite_name() */
- TEST(CUE_NOSUITE == CU_set_suite_name(NULL, "null suite")); /* error - NULL suite */
- TEST(CUE_NO_SUITENAME == CU_set_suite_name(pSuite1, NULL)); /* error - NULL name */
-
- TEST(!strcmp(pSuite1->pName, "suite1"));
- TEST(!strcmp(pSuite2->pName, "suite2"));
- TEST(CUE_SUCCESS == CU_set_suite_name(pSuite1, "This is my new name."));
- TEST(!strcmp(pSuite1->pName, "This is my new name."));
- TEST(!strcmp(pSuite2->pName, "suite2"));
-
- TEST(CUE_SUCCESS == CU_set_suite_name(pSuite2, "Never mind."));
- TEST(!strcmp(pSuite1->pName, "This is my new name."));
- TEST(!strcmp(pSuite2->pName, "Never mind."));
-
- TEST(CUE_SUCCESS == CU_set_suite_name(pSuite1, "suite1"));
- TEST(CUE_SUCCESS == CU_set_suite_name(pSuite2, "suite2"));
- TEST(!strcmp(pSuite1->pName, "suite1"));
- TEST(!strcmp(pSuite2->pName, "suite2"));
-
- /* test CU_set_suite_initfunc() */
- TEST(CUE_NOSUITE == CU_set_suite_initfunc(NULL, &sfunc1)); /* error - NULL suite */
-
- TEST(pSuite1->pInitializeFunc == NULL);
- TEST(pSuite2->pInitializeFunc == &sfunc1);
- TEST(CUE_SUCCESS == CU_set_suite_initfunc(pSuite1, &sfunc1));
- TEST(pSuite1->pInitializeFunc == &sfunc1);
- TEST(pSuite2->pInitializeFunc == &sfunc1);
-
- TEST(CUE_SUCCESS == CU_set_suite_initfunc(pSuite2, NULL));
- TEST(pSuite1->pInitializeFunc == &sfunc1);
- TEST(pSuite2->pInitializeFunc == NULL);
-
- /* test CU_set_suite_cleanupfunc() */
- TEST(CUE_NOSUITE == CU_set_suite_cleanupfunc(NULL, &sfunc1));
-
- TEST(pSuite1->pCleanupFunc == NULL);
- TEST(pSuite2->pCleanupFunc == NULL);
- TEST(CUE_SUCCESS == CU_set_suite_cleanupfunc(pSuite1, &sfunc1));
- TEST(pSuite1->pCleanupFunc == &sfunc1);
- TEST(pSuite2->pCleanupFunc == NULL);
-
- TEST(CUE_SUCCESS == CU_set_suite_cleanupfunc(pSuite2, &sfunc1));
- TEST(pSuite1->pCleanupFunc == &sfunc1);
- TEST(pSuite2->pCleanupFunc == &sfunc1);
-
- /* clean up */
- CU_cleanup_registry();
-}
-
-static void test_succeed(void) { CU_TEST(CU_TRUE); }
-static void test_fail(void) { CU_TEST(CU_FALSE); }
-static int suite_fail(void) { return 1; }
-
-/*--------------------------------------------------*/
-/* test CU_get_suite()
- * CU_get_suite_at_pos()
- * CU_get_suite_pos()
- * CU_get_suite_pos_by_name()
- */
-static void test_get_suite_functions(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
- CU_pSuite pSuite5 = NULL;
-
- /* error condition - registry not initialized */
- CU_cleanup_registry();
-
- CU_set_error(CUE_SUCCESS);
- TEST(NULL == CU_get_suite("suite1"));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(NULL == CU_get_suite_at_pos(0));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_suite_pos(pSuite1));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_suite_pos_by_name("suite1"));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- /* register some suites and tests */
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- CU_add_test(pSuite1, "test1", test_succeed);
- CU_add_test(pSuite1, "test2", test_fail);
- CU_add_test(pSuite1, "test1", test_succeed); /* duplicate test name */
- CU_add_test(pSuite1, "test4", test_fail);
- CU_add_test(pSuite1, "test1", test_succeed); /* duplicate test name */
- pSuite2 = CU_add_suite("suite2", suite_fail, NULL);
- CU_add_test(pSuite2, "test6", test_succeed);
- CU_add_test(pSuite2, "test7", test_succeed);
- pSuite3 = CU_add_suite("suite1", NULL, NULL); /* duplicate suite name */
- CU_add_test(pSuite3, "test8", test_fail);
- CU_add_test(pSuite3, "test9", test_succeed);
- pSuite4 = CU_add_suite("suite4", NULL, suite_fail);
- CU_add_test(pSuite4, "test10", test_succeed);
-
- /* error condition - invalid parameters */
-
- CU_set_error(CUE_SUCCESS);
- TEST(NULL == CU_get_suite(NULL));
- TEST(CUE_NO_SUITENAME == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_suite_pos(NULL));
- TEST(CUE_NOSUITE == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_suite_pos_by_name(NULL));
- TEST(CUE_NO_SUITENAME == CU_get_error());
-
- /* normal operation - CU_get_suite() */
-
- TEST(NULL == CU_get_suite("")); /* invalid names */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL == CU_get_suite("bad name"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL == CU_get_suite("suite3"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(pSuite1 == CU_get_suite("suite1")); /* valid names */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pSuite2 == CU_get_suite("suite2"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pSuite4 == CU_get_suite("suite4"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- /* normal operation - CU_get_suite_at_pos() */
-
- TEST(NULL == CU_get_suite_at_pos(0)); /* invalid positions */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL == CU_get_suite_at_pos(5));
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(pSuite1 == CU_get_suite_at_pos(1)); /* valid positions */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pSuite2 == CU_get_suite_at_pos(2));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pSuite3 == CU_get_suite_at_pos(3));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pSuite4 == CU_get_suite_at_pos(4));
- TEST(CUE_SUCCESS == CU_get_error());
-
- /* normal operation - CU_get_suite_pos() */
-
- pSuite5 = (CU_pSuite)malloc(sizeof(CU_Suite));
- TEST_FATAL(NULL != pSuite5);
-
- TEST(0 == CU_get_suite_pos(pSuite5)); /* invalid suite */
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(1 == CU_get_suite_pos(pSuite1)); /* valid suites */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_suite_pos(pSuite2));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(3 == CU_get_suite_pos(pSuite3));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(4 == CU_get_suite_pos(pSuite4));
- TEST(CUE_SUCCESS == CU_get_error());
-
- free(pSuite5);
-
- /* normal operation - CU_get_suite_pos_by_name() */
-
- TEST(0 == CU_get_suite_pos_by_name("")); /* invalid names */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(0 == CU_get_suite_pos_by_name("suite3"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(1 == CU_get_suite_pos_by_name("suite1")); /* valid suites */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_suite_pos_by_name("suite2"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(4 == CU_get_suite_pos_by_name("suite4"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- /* clean up */
- CU_cleanup_registry();
-}
-
-/*--------------------------------------------------*/
-/* test CU_add_test()
- * CU_get_test_by_name()
- * CU_get_test_by_index()
- */
-static void test_CU_add_test(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
- CU_pTestRegistry pReg = NULL;
-
- CU_cleanup_registry();
-
- /* error condition - registry not initialized */
- pTest1 = CU_add_test(pSuite1, "test1", test1);
- TEST(CUE_NOREGISTRY == CU_get_error());
- TEST(NULL == pTest1);
-
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- /* error condition - no suite */
- pTest1 = CU_add_test(pSuite1, "test1", test1);
- TEST(CUE_NOSUITE == CU_get_error());
- TEST(NULL == pTest1);
-
- /* error condition - no name */
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_SUCCESS == CU_get_error());
- pTest1 = CU_add_test(pSuite1, NULL, test1);
- TEST(CUE_NO_TESTNAME == CU_get_error());
- TEST(NULL == pTest1);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(0 == pSuite1->uiNumberOfTests);
-
- /* error condition - no test function */
- pTest1 = CU_add_test(pSuite1, "test1", NULL);
- TEST(CUE_NOTEST == CU_get_error());
- TEST(NULL == pTest1);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(0 == pSuite1->uiNumberOfTests);
-
- /* warning condition - duplicate name */
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_SUCCESS == CU_get_error());
- pTest1 = CU_add_test(pSuite1, "test1", test1);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pTest1);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(1 == pReg->uiNumberOfTests);
- TEST(1 == pSuite1->uiNumberOfTests);
- TEST(CU_get_test_by_index(0, pSuite1) == NULL);
- TEST(CU_get_test_by_index(1, pSuite1) == pTest1);
- TEST(CU_get_test_by_index(2, pSuite1) == NULL);
-
- pTest2 = CU_add_test(pSuite1, "test1", test1);
- TEST(CUE_DUP_TEST == CU_get_error());
- TEST(NULL != pTest2);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(2 == pReg->uiNumberOfTests);
- TEST(2 == pSuite1->uiNumberOfTests);
-
- TEST(!strcmp("test1", pTest1->pName));
- TEST(pTest1->fActive == CU_TRUE);
- TEST(pTest1->pNext == pTest2);
- TEST(pTest1->pJumpBuf == NULL);
- TEST(pTest1->pTestFunc == test1);
- TEST(CU_get_test_by_name("test1", pSuite1) == pTest1);
- TEST(CU_get_test_by_index(0, pSuite1) == NULL);
- TEST(CU_get_test_by_index(1, pSuite1) == pTest1);
- TEST(CU_get_test_by_index(2, pSuite1) == pTest2);
- TEST(CU_get_test_by_index(3, pSuite1) == NULL);
-
- TEST(!strcmp("test1", pTest2->pName));
- TEST(pTest2->fActive == CU_TRUE);
- TEST(pTest2->pNext == NULL);
- TEST(pTest2->pJumpBuf == NULL);
- TEST(pTest2->pTestFunc == test1);
- TEST(CU_get_test_by_name("test1", pSuite1) == pTest1);
-
- /* error condition - memory allocation failure */
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_SUCCESS == CU_get_error());
- test_cunit_deactivate_malloc();
- pTest1 = CU_add_test(pSuite1, "test1", test1);
- test_cunit_activate_malloc();
- TEST(CUE_NOMEMORY == CU_get_error());
- TEST(NULL == pTest1);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(0 == pSuite1->uiNumberOfTests);
-
- /* normal creation & cleanup */
- CU_initialize_registry();
- pReg = CU_get_registry();
-
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- TEST(CUE_SUCCESS == CU_get_error());
- pSuite2 = CU_add_suite("suite2", sfunc1, sfunc1);
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(CU_get_test_by_index(0, pSuite1) == NULL);
- TEST(CU_get_test_by_index(1, pSuite1) == NULL);
-
- pTest1 = CU_add_test(pSuite1, "test1", test1);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pTest1);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(1 == pReg->uiNumberOfTests);
- TEST(1 == pSuite1->uiNumberOfTests);
- TEST(0 == pSuite2->uiNumberOfTests);
- TEST(pSuite1->pTest == pTest1);
- TEST(pSuite2->pTest == NULL);
- TEST(CU_get_test_by_index(0, pSuite1) == NULL);
- TEST(CU_get_test_by_index(1, pSuite1) == pTest1);
- TEST(CU_get_test_by_index(2, pSuite1) == NULL);
-
- pTest2 = CU_add_test(pSuite2, "test2", test1);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pTest2);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(2 == pReg->uiNumberOfTests);
- TEST(1 == pSuite1->uiNumberOfTests);
- TEST(1 == pSuite2->uiNumberOfTests);
- TEST(pSuite1->pTest == pTest1);
- TEST(pSuite2->pTest == pTest2);
- TEST(CU_get_test_by_index(0, pSuite2) == NULL);
- TEST(CU_get_test_by_index(1, pSuite2) == pTest2);
- TEST(CU_get_test_by_index(2, pSuite2) == NULL);
-
- pTest3 = CU_add_test(pSuite1, "test3", test1);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pTest3);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(3 == pReg->uiNumberOfTests);
- TEST(2 == pSuite1->uiNumberOfTests);
- TEST(1 == pSuite2->uiNumberOfTests);
- TEST(pSuite1->pTest == pTest1);
- TEST(pSuite2->pTest == pTest2);
- TEST(CU_get_test_by_index(0, pSuite1) == NULL);
- TEST(CU_get_test_by_index(1, pSuite1) == pTest1);
- TEST(CU_get_test_by_index(2, pSuite1) == pTest3);
- TEST(CU_get_test_by_index(3, pSuite1) == NULL);
-
- pTest4 = CU_add_test(pSuite1, "test4", test1);
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL != pTest4);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(4 == pReg->uiNumberOfTests);
- TEST(3 == pSuite1->uiNumberOfTests);
- TEST(1 == pSuite2->uiNumberOfTests);
- TEST(pSuite1->pTest == pTest1);
- TEST(pSuite2->pTest == pTest2);
- TEST(CU_get_test_by_index(0, pSuite1) == NULL);
- TEST(CU_get_test_by_index(1, pSuite1) == pTest1);
- TEST(CU_get_test_by_index(2, pSuite1) == pTest3);
- TEST(CU_get_test_by_index(3, pSuite1) == pTest4);
- TEST(CU_get_test_by_index(4, pSuite1) == NULL);
-
- TEST(!strcmp("test1", pTest1->pName));
- TEST(pTest1->pNext == pTest3);
- TEST(pTest1->pJumpBuf == NULL);
- TEST(pTest1->pTestFunc == test1);
- TEST(CU_get_test_by_name("test1", pSuite1) == pTest1);
- TEST(CU_get_test_by_name("test1", pSuite2) == NULL);
-
- TEST(!strcmp("test2", pTest2->pName));
- TEST(pTest2->pNext == NULL);
- TEST(pTest2->pJumpBuf == NULL);
- TEST(pTest2->pTestFunc == test1);
- TEST(CU_get_test_by_name("test2", pSuite1) == NULL);
- TEST(CU_get_test_by_name("test2", pSuite2) == pTest2);
-
- TEST(!strcmp("test3", pTest3->pName));
- TEST(pTest3->pNext == pTest4);
- TEST(pTest3->pJumpBuf == NULL);
- TEST(pTest3->pTestFunc == test1);
- TEST(CU_get_test_by_name("test3", pSuite1) == pTest3);
- TEST(CU_get_test_by_name("test3", pSuite2) == NULL);
-
- TEST(!strcmp("test4", pTest4->pName));
- TEST(pTest4->pNext == NULL);
- TEST(pTest4->pJumpBuf == NULL);
- TEST(pTest4->pTestFunc == test1);
- TEST(CU_get_test_by_name("test4", pSuite1) == pTest4);
- TEST(CU_get_test_by_name("test4", pSuite2) == NULL);
-
- TEST(0 != test_cunit_get_n_memevents(pSuite1));
- TEST(0 != test_cunit_get_n_memevents(pSuite2));
- TEST(0 != test_cunit_get_n_memevents(pTest1));
- TEST(0 != test_cunit_get_n_memevents(pTest2));
- TEST(0 != test_cunit_get_n_memevents(pTest3));
- TEST(0 != test_cunit_get_n_memevents(pTest4));
-
- TEST(test_cunit_get_n_allocations(pSuite1) != test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) != test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pTest1) != test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) != test_cunit_get_n_deallocations(pTest2));
- TEST(test_cunit_get_n_allocations(pTest3) != test_cunit_get_n_deallocations(pTest3));
- TEST(test_cunit_get_n_allocations(pTest4) != test_cunit_get_n_deallocations(pTest4));
-
- CU_cleanup_registry();
-
- TEST(test_cunit_get_n_allocations(pSuite1) == test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) == test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pTest1) == test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) == test_cunit_get_n_deallocations(pTest2));
- TEST(test_cunit_get_n_allocations(pTest3) == test_cunit_get_n_deallocations(pTest3));
- TEST(test_cunit_get_n_allocations(pTest4) == test_cunit_get_n_deallocations(pTest4));
-}
-
-/*--------------------------------------------------*/
-/* test CU_set_test_active()
- * CU_set_test_name()
- * CU_set_test_func()
- */
-static void test_CU_set_test_attributes(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
-
- /* initialize system */
- CU_initialize_registry();
-
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- TEST_FATAL(NULL != pSuite1);
- pTest1 = CU_add_test(pSuite1, "test1", test2);
- TEST_FATAL(NULL != pTest1);
- pTest2 = CU_add_test(pSuite1, "test2", test1);
- TEST_FATAL(NULL != pTest2);
-
- pSuite2 = CU_add_suite("suite2", sfunc1, NULL); /* add another suite */
- TEST_FATAL(NULL != pSuite2);
- pTest3 = CU_add_test(pSuite2, "test3", test2);
- TEST_FATAL(NULL != pTest3);
- pTest4 = CU_add_test(pSuite2, "test4", test1);
- TEST_FATAL(NULL != pTest4);
-
- /* test CU_set_test_active() */
- TEST(CUE_NOTEST == CU_set_test_active(NULL, CU_FALSE)); /* error - NULL test */
-
- TEST(CU_TRUE == pTest1->fActive); /* tests active on creation */
- TEST(CU_TRUE == pTest2->fActive);
- TEST(CU_TRUE == pTest3->fActive);
- TEST(CU_TRUE == pTest4->fActive);
-
- TEST(CUE_SUCCESS == CU_set_test_active(pTest1, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest2, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest3, CU_FALSE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest4, CU_FALSE));
- TEST(CU_TRUE == pTest1->fActive);
- TEST(CU_TRUE == pTest2->fActive);
- TEST(CU_FALSE == pTest3->fActive);
- TEST(CU_FALSE == pTest4->fActive);
-
- TEST(CUE_SUCCESS == CU_set_test_active(pTest1, CU_FALSE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest2, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest3, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest4, CU_FALSE));
- TEST(CU_FALSE == pTest1->fActive);
- TEST(CU_TRUE == pTest2->fActive);
- TEST(CU_TRUE == pTest3->fActive);
- TEST(CU_FALSE == pTest4->fActive);
-
- TEST(CUE_SUCCESS == CU_set_test_active(pTest1, CU_FALSE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest2, CU_FALSE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest3, CU_FALSE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest4, CU_FALSE));
- TEST(CU_FALSE == pTest1->fActive);
- TEST(CU_FALSE == pTest2->fActive);
- TEST(CU_FALSE == pTest3->fActive);
- TEST(CU_FALSE == pTest4->fActive);
-
- TEST(CUE_SUCCESS == CU_set_test_active(pTest1, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest2, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest3, CU_TRUE));
- TEST(CUE_SUCCESS == CU_set_test_active(pTest4, CU_TRUE));
- TEST(CU_TRUE == pTest1->fActive);
- TEST(CU_TRUE == pTest2->fActive);
- TEST(CU_TRUE == pTest3->fActive);
- TEST(CU_TRUE == pTest4->fActive);
-
- /* test CU_set_test_name() */
- TEST(CUE_NOTEST == CU_set_test_name(NULL, "null test")); /* error - NULL test */
- TEST(CUE_NO_TESTNAME == CU_set_test_name(pTest1, NULL)); /* error - NULL name */
-
- TEST(!strcmp("test1", pTest1->pName));
- TEST(!strcmp("test2", pTest2->pName));
- TEST(!strcmp("test3", pTest3->pName));
- TEST(!strcmp("test4", pTest4->pName));
-
- TEST(CUE_SUCCESS == CU_set_test_name(pTest1, "Aren't I a pretty girl?"));
- TEST(CUE_SUCCESS == CU_set_test_name(pTest2, "Polly want a cracker."));
- TEST(CUE_SUCCESS == CU_set_test_name(pTest3, "@This is utter nonsense@"));
- TEST(CUE_SUCCESS == CU_set_test_name(pTest4, "Yep!"));
-
- TEST(!strcmp("Aren't I a pretty girl?", pTest1->pName));
- TEST(!strcmp("Polly want a cracker.", pTest2->pName));
- TEST(!strcmp("@This is utter nonsense@", pTest3->pName));
- TEST(!strcmp("Yep!", pTest4->pName));
-
- TEST(CUE_SUCCESS == CU_set_test_name(pTest1, "test1"));
- TEST(CUE_SUCCESS == CU_set_test_name(pTest2, "test2"));
- TEST(CUE_SUCCESS == CU_set_test_name(pTest3, "test3"));
- TEST(CUE_SUCCESS == CU_set_test_name(pTest4, "test4"));
-
- TEST(!strcmp("test1", pTest1->pName));
- TEST(!strcmp("test2", pTest2->pName));
- TEST(!strcmp("test3", pTest3->pName));
- TEST(!strcmp("test4", pTest4->pName));
-
- /* test CU_set_test_func() */
- TEST(CUE_NOTEST == CU_set_test_func(NULL, &test1)); /* error - NULL test */
- TEST(CUE_NOTEST == CU_set_test_func(pTest1, NULL)); /* error - NULL test function */
-
- TEST(&test2 == pTest1->pTestFunc);
- TEST(&test1 == pTest2->pTestFunc);
- TEST(&test2 == pTest3->pTestFunc);
- TEST(&test1 == pTest4->pTestFunc);
-
- TEST(CUE_SUCCESS == CU_set_test_func(pTest1, &test1));
- TEST(CUE_SUCCESS == CU_set_test_func(pTest2, &test2));
- TEST(CUE_SUCCESS == CU_set_test_func(pTest3, &test1));
- TEST(CUE_SUCCESS == CU_set_test_func(pTest4, &test2));
-
- TEST(&test1 == pTest1->pTestFunc);
- TEST(&test2 == pTest2->pTestFunc);
- TEST(&test1 == pTest3->pTestFunc);
- TEST(&test2 == pTest4->pTestFunc);
-
- TEST(CUE_SUCCESS == CU_set_test_func(pTest1, &test2));
- TEST(CUE_SUCCESS == CU_set_test_func(pTest2, &test1));
- TEST(CUE_SUCCESS == CU_set_test_func(pTest3, &test2));
- TEST(CUE_SUCCESS == CU_set_test_func(pTest4, &test1));
-
- /* clean up */
- CU_cleanup_registry();
-}
-
-/*--------------------------------------------------*/
-/* test CU_get_test()
- * CU_get_test_at_pos()
- * CU_get_test_pos()
- * CU_get_test_pos_by_name()
- */
-static void test_get_test_functions(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
- CU_pTest pTest5 = NULL;
- CU_pTest pTest6 = NULL;
- CU_pTest pTest7 = NULL;
- CU_pTest pTest8 = NULL;
- CU_pTest pTest9 = NULL;
- CU_pTest pTest10 = NULL;
-
- /* error condition - registry not initialized */
- CU_cleanup_registry();
-
- CU_set_error(CUE_SUCCESS);
- TEST(NULL == CU_get_test(pSuite1, "test1"));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(NULL == CU_get_test_at_pos(pSuite1, 0));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_test_pos(pSuite1, pTest1));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_test_pos_by_name(pSuite1, "test1"));
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- /* register some suites and tests */
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- pTest1 = CU_add_test(pSuite1, "test1", test_succeed);
- pTest2 = CU_add_test(pSuite1, "test2", test_fail);
- pTest3 = CU_add_test(pSuite1, "test1", test_succeed); /* duplicate test name */
- pTest4 = CU_add_test(pSuite1, "test4", test_fail);
- pTest5 = CU_add_test(pSuite1, "test1", test_succeed); /* duplicate test name */
- pSuite2 = CU_add_suite("suite2", suite_fail, NULL);
- pTest6 = CU_add_test(pSuite2, "test6", test_succeed);
- pTest7 = CU_add_test(pSuite2, "test7", test_succeed);
- pSuite3 = CU_add_suite("suite1", NULL, NULL); /* duplicate suite name */
- pTest8 = CU_add_test(pSuite3, "test8", test_fail);
- pTest9 = CU_add_test(pSuite3, "test9", test_succeed);
- pSuite4 = CU_add_suite("suite4", NULL, suite_fail);
- pTest10 = CU_add_test(pSuite4, "test10", test_succeed);
-
- /* error condition - invalid parameters */
-
- CU_set_error(CUE_SUCCESS);
- TEST(NULL == CU_get_test(NULL, "test1")); /* suite NULL */
- TEST(CUE_NOSUITE == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(NULL == CU_get_test(pSuite1, NULL)); /* name NULL */
- TEST(CUE_NO_SUITENAME == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_test_at_pos(NULL, 1)); /* suite NULL */
- TEST(CUE_NOSUITE == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_test_pos(NULL, pTest1)); /* suite NULL */
- TEST(CUE_NOSUITE == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_test_pos(pSuite1, NULL)); /* test NULL */
- TEST(CUE_NOTEST == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_test_pos_by_name(NULL, "test1")); /* suite NULL */
- TEST(CUE_NOSUITE == CU_get_error());
-
- CU_set_error(CUE_SUCCESS);
- TEST(0 == CU_get_test_pos_by_name(pSuite1, NULL)); /* name NULL */
- TEST(CUE_NO_TESTNAME == CU_get_error());
-
- /* normal operation - CU_get_test() */
-
- TEST(NULL == CU_get_test(pSuite1, "")); /* invalid names */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL == CU_get_test(pSuite2, "bad name"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL == CU_get_test(pSuite1, "test3"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(pTest1 == CU_get_test(pSuite1, "test1")); /* valid names */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest6 == CU_get_test(pSuite2, "test6"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest8 == CU_get_test(pSuite3, "test8"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- /* normal operation - CU_get_test_at_pos() */
-
- TEST(NULL == CU_get_test_at_pos(pSuite1, 0)); /* invalid positions */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL == CU_get_test_at_pos(pSuite1, 6));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(NULL == CU_get_test_at_pos(pSuite4, 2));
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(pTest1 == CU_get_test_at_pos(pSuite1, 1)); /* valid positions */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest2 == CU_get_test_at_pos(pSuite1, 2));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest3 == CU_get_test_at_pos(pSuite1, 3));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest4 == CU_get_test_at_pos(pSuite1, 4));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest5 == CU_get_test_at_pos(pSuite1, 5));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest6 == CU_get_test_at_pos(pSuite2, 1));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest7 == CU_get_test_at_pos(pSuite2, 2));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest8 == CU_get_test_at_pos(pSuite3, 1));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest9 == CU_get_test_at_pos(pSuite3, 2));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(pTest10 == CU_get_test_at_pos(pSuite4, 1));
- TEST(CUE_SUCCESS == CU_get_error());
-
- /* normal operation - CU_get_test_pos() */
-
- TEST(0 == CU_get_test_pos(pSuite1, pTest6)); /* invalid tests */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(0 == CU_get_test_pos(pSuite4, pTest6));
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(1 == CU_get_test_pos(pSuite1, pTest1)); /* valid tests */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_test_pos(pSuite1, pTest2));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(3 == CU_get_test_pos(pSuite1, pTest3));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(4 == CU_get_test_pos(pSuite1, pTest4));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(5 == CU_get_test_pos(pSuite1, pTest5));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(1 == CU_get_test_pos(pSuite2, pTest6));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_test_pos(pSuite2, pTest7));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(1 == CU_get_test_pos(pSuite3, pTest8));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_test_pos(pSuite3, pTest9));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(1 == CU_get_test_pos(pSuite4, pTest10));
- TEST(CUE_SUCCESS == CU_get_error());
-
- /* normal operation - CU_get_test_pos_by_name() */
-
- TEST(0 == CU_get_test_pos_by_name(pSuite1, "")); /* invalid names */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(0 == CU_get_test_pos_by_name(pSuite1, "test9"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(0 == CU_get_test_pos_by_name(pSuite2, "test1"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- TEST(1 == CU_get_test_pos_by_name(pSuite1, "test1")); /* valid names */
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_test_pos_by_name(pSuite1, "test2"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(4 == CU_get_test_pos_by_name(pSuite1, "test4"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(1 == CU_get_test_pos_by_name(pSuite2, "test6"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_test_pos_by_name(pSuite2, "test7"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(1 == CU_get_test_pos_by_name(pSuite3, "test8"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(2 == CU_get_test_pos_by_name(pSuite3, "test9"));
- TEST(CUE_SUCCESS == CU_get_error());
- TEST(1 == CU_get_test_pos_by_name(pSuite4, "test10"));
- TEST(CUE_SUCCESS == CU_get_error());
-
- /* clean up */
- CU_cleanup_registry();
-}
-
-/*--------------------------------------------------*/
-static void test_CU_get_registry(void)
-{
- CU_cleanup_registry();
- TEST(NULL == CU_get_registry());
-
- CU_initialize_registry();
- TEST(NULL != CU_get_registry());
- TEST(f_pTestRegistry == CU_get_registry());
-
- CU_cleanup_registry();
-}
-
-/*--------------------------------------------------*/
-static void test_CU_set_registry(void)
-{
- CU_pTestRegistry pReg1 = NULL;
- CU_pTestRegistry pReg2 = NULL;
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
-
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- pSuite2 = CU_add_suite("suite2", NULL, NULL);
-
- CU_add_test(pSuite1, "test1", test1);
- CU_add_test(pSuite1, "test2", test1);
- CU_add_test(pSuite2, "test1", test1);
- CU_add_test(pSuite2, "test2", test1);
-
- pReg1 = CU_get_registry();
-
- TEST(pReg1->pSuite == pSuite1);
- TEST(pReg1->uiNumberOfSuites == 2);
- TEST(pReg1->uiNumberOfTests == 4);
- TEST(0 < test_cunit_get_n_memevents(pReg1));
- TEST(test_cunit_get_n_allocations(pReg1) != test_cunit_get_n_deallocations(pReg1));
-
- CU_set_registry(NULL);
-
- TEST(test_cunit_get_n_allocations(pReg1) != test_cunit_get_n_deallocations(pReg1));
-
- CU_cleanup_registry();
-
- TEST(test_cunit_get_n_allocations(pReg1) != test_cunit_get_n_deallocations(pReg1));
-
- pReg2 = CU_create_new_registry();
- CU_set_registry(pReg2);
-
- TEST(pReg1->pSuite == pSuite1);
- TEST(pReg1->uiNumberOfSuites == 2);
- TEST(pReg1->uiNumberOfTests == 4);
- TEST(test_cunit_get_n_allocations(pReg1) != test_cunit_get_n_deallocations(pReg1));
-
- TEST(CU_get_registry()->pSuite == NULL);
- TEST(CU_get_registry()->uiNumberOfSuites == 0);
- TEST(CU_get_registry()->uiNumberOfTests == 0);
- TEST(0 < test_cunit_get_n_memevents(pReg2));
- TEST(test_cunit_get_n_allocations(pReg2) != test_cunit_get_n_deallocations(pReg2));
-
- CU_cleanup_registry();
-
- TEST(pReg1->pSuite == pSuite1);
- TEST(pReg1->uiNumberOfSuites == 2);
- TEST(pReg1->uiNumberOfTests == 4);
- TEST(test_cunit_get_n_allocations(pReg1) != test_cunit_get_n_deallocations(pReg1));
- TEST(test_cunit_get_n_allocations(pReg2) == test_cunit_get_n_deallocations(pReg2));
-
- CU_set_registry(pReg1);
- CU_cleanup_registry();
- TEST(test_cunit_get_n_allocations(pReg1) == test_cunit_get_n_deallocations(pReg1));
-}
-
-/*--------------------------------------------------*/
-/* test CU_create_new_registry()
- * CU_destroy_existing_registry()
- */
-static void test_CU_create_new_registry(void)
-{
- CU_pTestRegistry pReg = NULL;
- CU_pTestRegistry pRegOld = NULL;
-
- CU_cleanup_registry();
- pReg = CU_create_new_registry();
-
- TEST(NULL != pReg);
- TEST(0 < test_cunit_get_n_memevents(pReg));
- TEST(test_cunit_get_n_allocations(pReg) != test_cunit_get_n_deallocations(pReg));
-
- TEST(pReg->pSuite == NULL);
- TEST(pReg->uiNumberOfSuites == 0);
- TEST(pReg->uiNumberOfTests == 0);
-
- CU_cleanup_registry();
- TEST(test_cunit_get_n_allocations(pReg) != test_cunit_get_n_deallocations(pReg));
-
- pRegOld = pReg;
- CU_destroy_existing_registry(&pReg);
- TEST(test_cunit_get_n_allocations(pRegOld) == test_cunit_get_n_deallocations(pRegOld));
- TEST(NULL == pReg);
-}
-
-/*--------------------------------------------------*/
-static void test_cleanup_test_registry(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
- CU_pTestRegistry pReg = CU_create_new_registry();
-
- TEST_FATAL(NULL != pReg);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
-
- /* create tests to register */
- pTest1 = create_test("test1", test1);
- pTest2 = create_test("test2", NULL);
- pTest3 = create_test("test3", test1);
- pTest4 = create_test("", NULL);
-
- /* create suites to hold tests */
- pSuite1 = create_suite("suite1", NULL, NULL, NULL, NULL);
- pSuite2 = create_suite("suite2", sfunc1, sfunc1, NULL, NULL);
- insert_suite(pReg, pSuite1);
- insert_suite(pReg, pSuite2);
-
- insert_test(pSuite1, pTest1);
- insert_test(pSuite1, pTest2);
- insert_test(pSuite1, pTest3);
- insert_test(pSuite2, pTest4);
-
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests); /* not managed in primitive functions */
- TEST(3 == pSuite1->uiNumberOfTests);
- TEST(1 == pSuite2->uiNumberOfTests);
- TEST(pSuite1->pTest == pTest1);
- TEST(pSuite2->pTest == pTest4);
- TEST(pTest1->pNext == pTest2);
- TEST(pTest1->pPrev == NULL);
- TEST(pTest2->pNext == pTest3);
- TEST(pTest2->pPrev == pTest1);
- TEST(pTest3->pNext == NULL);
- TEST(pTest3->pPrev == pTest2);
- TEST(pTest4->pNext == NULL);
- TEST(pTest4->pPrev == NULL);
-
- TEST(0 != test_cunit_get_n_memevents(pReg));
- TEST(0 != test_cunit_get_n_memevents(pSuite1));
- TEST(0 != test_cunit_get_n_memevents(pSuite2));
- TEST(0 != test_cunit_get_n_memevents(pTest1));
- TEST(0 != test_cunit_get_n_memevents(pTest2));
- TEST(0 != test_cunit_get_n_memevents(pTest3));
- TEST(0 != test_cunit_get_n_memevents(pTest4));
-
- TEST(test_cunit_get_n_allocations(pReg) != test_cunit_get_n_deallocations(pReg));
- TEST(test_cunit_get_n_allocations(pSuite1) != test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) != test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pTest1) != test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) != test_cunit_get_n_deallocations(pTest2));
- TEST(test_cunit_get_n_allocations(pTest3) != test_cunit_get_n_deallocations(pTest3));
- TEST(test_cunit_get_n_allocations(pTest4) != test_cunit_get_n_deallocations(pTest4));
-
- cleanup_test_registry(pReg);
- CU_FREE(pReg);
-
- TEST(test_cunit_get_n_allocations(pReg) == test_cunit_get_n_deallocations(pReg));
- TEST(test_cunit_get_n_allocations(pSuite1) == test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) == test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pTest1) == test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) == test_cunit_get_n_deallocations(pTest2));
- TEST(test_cunit_get_n_allocations(pTest3) == test_cunit_get_n_deallocations(pTest3));
- TEST(test_cunit_get_n_allocations(pTest4) == test_cunit_get_n_deallocations(pTest4));
-}
-
-/*--------------------------------------------------*/
-/* test create_suite()
- * cleanup_suite()
- */
-static void test_create_suite(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
-
- /* error condition - memory allocation failure */
- test_cunit_deactivate_malloc();
- pSuite1 = create_suite("suite1", NULL, NULL, NULL, NULL);
- TEST(NULL == pSuite1);
- test_cunit_activate_malloc();
-
- /* normal creation & cleanup */
- pSuite1 = create_suite("suite1", NULL, NULL, NULL, NULL);
- TEST(NULL != pSuite1);
- TEST(!strcmp("suite1", pSuite1->pName));
- TEST(pSuite1->pTest == NULL); /* no tests added yet */
- TEST(pSuite1->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite1->pInitializeFunc == NULL); /* no init function */
- TEST(pSuite1->pCleanupFunc == NULL); /* no cleanup function */
- TEST(pSuite1->pNext == NULL); /* no more suites added yet */
-
- pSuite2 = create_suite("suite2", sfunc1, NULL, NULL, NULL);
- TEST(NULL != pSuite2);
- TEST(!strcmp("suite2", pSuite2->pName));
- TEST(pSuite2->pTest == NULL); /* no tests added yet */
- TEST(pSuite2->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite2->pInitializeFunc == sfunc1); /* init function */
- TEST(pSuite2->pCleanupFunc == NULL); /* no cleanup function */
- TEST(pSuite2->pNext == NULL); /* no more suites added yet */
-
- pSuite3 = create_suite("suite3", NULL, sfunc1, NULL, NULL);
- TEST(NULL != pSuite3);
- TEST(!strcmp("suite3", pSuite3->pName));
- TEST(pSuite3->pTest == NULL); /* no tests added yet */
- TEST(pSuite3->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite3->pInitializeFunc == NULL); /* no init function */
- TEST(pSuite3->pCleanupFunc == sfunc1); /* cleanup function */
- TEST(pSuite3->pNext == NULL); /* no more suites added yet */
-
- pSuite4 = create_suite("suite4", sfunc1, sfunc1, NULL, NULL);
- TEST(NULL != pSuite4);
- TEST(!strcmp("suite4", pSuite4->pName));
- TEST(pSuite4->pTest == NULL); /* no tests added yet */
- TEST(pSuite4->uiNumberOfTests == 0); /* no tests added yet */
- TEST(pSuite4->pInitializeFunc == sfunc1); /* no init function */
- TEST(pSuite4->pCleanupFunc == sfunc1); /* cleanup function */
- TEST(pSuite4->pNext == NULL); /* no more suites added yet */
-
- TEST(0 != test_cunit_get_n_memevents(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite1) != test_cunit_get_n_deallocations(pSuite1));
- cleanup_suite(pSuite1);
- CU_FREE(pSuite1);
- TEST(test_cunit_get_n_allocations(pSuite1) == test_cunit_get_n_deallocations(pSuite1));
-
- TEST(0 != test_cunit_get_n_memevents(pSuite2));
- TEST(test_cunit_get_n_allocations(pSuite2) != test_cunit_get_n_deallocations(pSuite2));
- cleanup_suite(pSuite2);
- CU_FREE(pSuite2);
- TEST(test_cunit_get_n_allocations(pSuite2) == test_cunit_get_n_deallocations(pSuite2));
-
- TEST(0 != test_cunit_get_n_memevents(pSuite3));
- TEST(test_cunit_get_n_allocations(pSuite3) != test_cunit_get_n_deallocations(pSuite3));
- cleanup_suite(pSuite3);
- CU_FREE(pSuite3);
- TEST(test_cunit_get_n_allocations(pSuite3) == test_cunit_get_n_deallocations(pSuite3));
-
- TEST(0 != test_cunit_get_n_memevents(pSuite4));
- TEST(test_cunit_get_n_allocations(pSuite4) != test_cunit_get_n_deallocations(pSuite4));
- cleanup_suite(pSuite4);
- CU_FREE(pSuite4);
- TEST(test_cunit_get_n_allocations(pSuite4) == test_cunit_get_n_deallocations(pSuite4));
-}
-
-/*--------------------------------------------------*/
-/* test insert_suite()
- * suite_exists()
- */
-static void test_insert_suite(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
- CU_pTestRegistry pReg = CU_create_new_registry();
-
- TEST_FATAL(NULL != pReg);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(NULL == pReg->pSuite);
- TEST(CU_FALSE == suite_exists(pReg, "suite1"));
- TEST(CU_FALSE == suite_exists(pReg, "suite2"));
- TEST(CU_FALSE == suite_exists(pReg, "suite3"));
- TEST(CU_FALSE == suite_exists(pReg, "suite4"));
- TEST(CU_FALSE == suite_exists(pReg, "suite5"));
- TEST(CU_FALSE == suite_exists(pReg, ""));
-
- /* normal creation & cleanup */
- pSuite1 = create_suite("suite1", NULL, NULL, NULL, NULL);
- insert_suite(pReg, pSuite1);
- TEST(1 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(pReg->pSuite == pSuite1);
- TEST(pSuite1->pNext == NULL);
- TEST(CU_TRUE == suite_exists(pReg, "suite1"));
- TEST(CU_FALSE == suite_exists(pReg, "suite2"));
- TEST(CU_FALSE == suite_exists(pReg, "suite3"));
- TEST(CU_FALSE == suite_exists(pReg, "suite4"));
- TEST(CU_FALSE == suite_exists(pReg, "suite5"));
- TEST(CU_FALSE == suite_exists(pReg, ""));
-
- pSuite2 = create_suite("suite2", sfunc1, NULL, NULL, NULL);
- insert_suite(pReg, pSuite2);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(pReg->pSuite == pSuite1);
- TEST(pSuite1->pNext == pSuite2);
- TEST(pSuite2->pNext == NULL);
- TEST(CU_TRUE == suite_exists(pReg, "suite1"));
- TEST(CU_TRUE == suite_exists(pReg, "suite2"));
- TEST(CU_FALSE == suite_exists(pReg, "suite3"));
- TEST(CU_FALSE == suite_exists(pReg, "suite4"));
- TEST(CU_FALSE == suite_exists(pReg, "suite5"));
- TEST(CU_FALSE == suite_exists(pReg, ""));
-
- pSuite3 = create_suite("suite3", NULL, sfunc1, NULL, NULL);
- insert_suite(pReg, pSuite3);
- TEST(3 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(pReg->pSuite == pSuite1);
- TEST(pSuite1->pNext == pSuite2);
- TEST(pSuite2->pNext == pSuite3);
- TEST(pSuite3->pNext == NULL);
- TEST(CU_TRUE == suite_exists(pReg, "suite1"));
- TEST(CU_TRUE == suite_exists(pReg, "suite2"));
- TEST(CU_TRUE == suite_exists(pReg, "suite3"));
- TEST(CU_FALSE == suite_exists(pReg, "suite4"));
- TEST(CU_FALSE == suite_exists(pReg, "suite5"));
- TEST(CU_FALSE == suite_exists(pReg, ""));
-
- pSuite4 = create_suite("suite4", sfunc1, sfunc1, NULL, NULL);
- insert_suite(pReg, pSuite4);
- TEST(4 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
- TEST(pReg->pSuite == pSuite1);
- TEST(pSuite1->pNext == pSuite2);
- TEST(pSuite2->pNext == pSuite3);
- TEST(pSuite3->pNext == pSuite4);
- TEST(pSuite4->pNext == NULL);
- TEST(CU_TRUE == suite_exists(pReg, "suite1"));
- TEST(CU_TRUE == suite_exists(pReg, "suite2"));
- TEST(CU_TRUE == suite_exists(pReg, "suite3"));
- TEST(CU_TRUE == suite_exists(pReg, "suite4"));
- TEST(CU_FALSE == suite_exists(pReg, "suite5"));
- TEST(CU_FALSE == suite_exists(pReg, ""));
-
- TEST(0 != test_cunit_get_n_memevents(pReg));
- TEST(0 != test_cunit_get_n_memevents(pSuite1));
- TEST(0 != test_cunit_get_n_memevents(pSuite2));
- TEST(0 != test_cunit_get_n_memevents(pSuite3));
- TEST(0 != test_cunit_get_n_memevents(pSuite4));
-
- TEST(test_cunit_get_n_allocations(pReg) != test_cunit_get_n_deallocations(pReg));
- TEST(test_cunit_get_n_allocations(pSuite1) != test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) != test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pSuite3) != test_cunit_get_n_deallocations(pSuite3));
- TEST(test_cunit_get_n_allocations(pSuite4) != test_cunit_get_n_deallocations(pSuite4));
-
- cleanup_test_registry(pReg);
- TEST(CU_FALSE == suite_exists(pReg, "suite1"));
- TEST(CU_FALSE == suite_exists(pReg, "suite2"));
- TEST(CU_FALSE == suite_exists(pReg, "suite3"));
- TEST(CU_FALSE == suite_exists(pReg, "suite4"));
- TEST(CU_FALSE == suite_exists(pReg, "suite5"));
- TEST(CU_FALSE == suite_exists(pReg, ""));
- CU_FREE(pReg);
-
- TEST(test_cunit_get_n_allocations(pReg) == test_cunit_get_n_deallocations(pReg));
- TEST(test_cunit_get_n_allocations(pSuite1) == test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) == test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pSuite3) == test_cunit_get_n_deallocations(pSuite3));
- TEST(test_cunit_get_n_allocations(pSuite4) == test_cunit_get_n_deallocations(pSuite4));
-}
-
-/*--------------------------------------------------*/
-static void test_create_test(void)
-{
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
-
- /* error condition - memory allocation failure */
- test_cunit_deactivate_malloc();
- pTest1 = create_test("test1", test1);
- test_cunit_activate_malloc();
- TEST(NULL == pTest1);
-
- /* normal creation & cleanup */
- pTest1 = create_test("test1", test1);
- TEST(NULL != pTest1);
- TEST(pTest1->pTestFunc == test1);
- TEST(!strcmp("test1", pTest1->pName));
- TEST(pTest1->pNext == NULL);
- TEST(pTest1->pPrev == NULL);
- TEST(pTest1->pJumpBuf == NULL);
-
- pTest2= create_test("test2", NULL);
- TEST(NULL != pTest2);
- TEST(pTest2->pTestFunc == NULL);
- TEST(!strcmp("test2", pTest2->pName));
- TEST(pTest2->pNext == NULL);
- TEST(pTest2->pPrev == NULL);
- TEST(pTest2->pJumpBuf == NULL);
-
- TEST(0 != test_cunit_get_n_memevents(pTest1));
- TEST(0 != test_cunit_get_n_memevents(pTest2));
-
- TEST(test_cunit_get_n_allocations(pTest1) != test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) != test_cunit_get_n_deallocations(pTest2));
-
- cleanup_test(pTest1);
- CU_FREE(pTest1);
- cleanup_test(pTest2);
- CU_FREE(pTest2);
-
- TEST(test_cunit_get_n_allocations(pTest1) == test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) == test_cunit_get_n_deallocations(pTest2));
-}
-
-/*--------------------------------------------------*/
-/* test insert_test()
- * test_exists()
- */
-static void test_insert_test(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
-
- /* create tests to register */
- pTest1 = create_test("test1", test1);
- pTest2 = create_test("test2", NULL);
- pTest3 = create_test("test3", test1);
- pTest4 = create_test("", NULL);
-
- /* create suites to hold tests */
- pSuite1 = create_suite("suite1", NULL, NULL, NULL, NULL);
- pSuite2 = create_suite("suite2", sfunc1, sfunc1, NULL, NULL);
-
- TEST(CU_FALSE == test_exists(pSuite1, "test1"));
- TEST(CU_FALSE == test_exists(pSuite1, "test2"));
- TEST(CU_FALSE == test_exists(pSuite1, "test3"));
- TEST(CU_FALSE == test_exists(pSuite1, "test4"));
- TEST(CU_FALSE == test_exists(pSuite1, ""));
- TEST(CU_FALSE == test_exists(pSuite2, "test1"));
- TEST(CU_FALSE == test_exists(pSuite2, "test2"));
- TEST(CU_FALSE == test_exists(pSuite2, "test3"));
- TEST(CU_FALSE == test_exists(pSuite2, "test4"));
- TEST(CU_FALSE == test_exists(pSuite2, ""));
-
- insert_test(pSuite1, pTest1);
- insert_test(pSuite1, pTest2);
- insert_test(pSuite1, pTest3);
- insert_test(pSuite2, pTest4);
-
- TEST(CU_TRUE == test_exists(pSuite1, "test1"));
- TEST(CU_TRUE == test_exists(pSuite1, "test2"));
- TEST(CU_TRUE == test_exists(pSuite1, "test3"));
- TEST(CU_FALSE == test_exists(pSuite1, "test4"));
- TEST(CU_FALSE == test_exists(pSuite1, ""));
- TEST(CU_FALSE == test_exists(pSuite2, "test1"));
- TEST(CU_FALSE == test_exists(pSuite2, "test2"));
- TEST(CU_FALSE == test_exists(pSuite2, "test3"));
- TEST(CU_FALSE == test_exists(pSuite2, "test4"));
- TEST(CU_TRUE == test_exists(pSuite2, ""));
-
- TEST(3 == pSuite1->uiNumberOfTests);
- TEST(1 == pSuite2->uiNumberOfTests);
- TEST(pSuite1->pTest == pTest1);
- TEST(pSuite2->pTest == pTest4);
- TEST(pTest1->pNext == pTest2);
- TEST(pTest1->pPrev == NULL);
- TEST(pTest2->pNext == pTest3);
- TEST(pTest2->pPrev == pTest1);
- TEST(pTest3->pNext == NULL);
- TEST(pTest3->pPrev == pTest2);
- TEST(pTest4->pNext == NULL);
- TEST(pTest4->pPrev == NULL);
-
- TEST(0 != test_cunit_get_n_memevents(pSuite1));
- TEST(0 != test_cunit_get_n_memevents(pSuite2));
- TEST(0 != test_cunit_get_n_memevents(pTest1));
- TEST(0 != test_cunit_get_n_memevents(pTest2));
- TEST(0 != test_cunit_get_n_memevents(pTest3));
- TEST(0 != test_cunit_get_n_memevents(pTest4));
-
- TEST(test_cunit_get_n_allocations(pSuite1) != test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) != test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pTest1) != test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) != test_cunit_get_n_deallocations(pTest2));
- TEST(test_cunit_get_n_allocations(pTest3) != test_cunit_get_n_deallocations(pTest3));
- TEST(test_cunit_get_n_allocations(pTest4) != test_cunit_get_n_deallocations(pTest4));
-
- cleanup_suite(pSuite1);
-
- TEST(CU_FALSE == test_exists(pSuite1, "test1"));
- TEST(CU_FALSE == test_exists(pSuite1, "test2"));
- TEST(CU_FALSE == test_exists(pSuite1, "test3"));
- TEST(CU_FALSE == test_exists(pSuite1, "test4"));
- TEST(CU_FALSE == test_exists(pSuite1, ""));
- TEST(CU_FALSE == test_exists(pSuite2, "test1"));
- TEST(CU_FALSE == test_exists(pSuite2, "test2"));
- TEST(CU_FALSE == test_exists(pSuite2, "test3"));
- TEST(CU_FALSE == test_exists(pSuite2, "test4"));
- TEST(CU_TRUE == test_exists(pSuite2, ""));
-
- cleanup_suite(pSuite2);
-
- TEST(CU_FALSE == test_exists(pSuite1, "test1"));
- TEST(CU_FALSE == test_exists(pSuite1, "test2"));
- TEST(CU_FALSE == test_exists(pSuite1, "test3"));
- TEST(CU_FALSE == test_exists(pSuite1, "test4"));
- TEST(CU_FALSE == test_exists(pSuite1, ""));
- TEST(CU_FALSE == test_exists(pSuite2, "test1"));
- TEST(CU_FALSE == test_exists(pSuite2, "test2"));
- TEST(CU_FALSE == test_exists(pSuite2, "test3"));
- TEST(CU_FALSE == test_exists(pSuite2, "test4"));
- TEST(CU_FALSE == test_exists(pSuite2, ""));
-
- CU_FREE(pSuite1);
- CU_FREE(pSuite2);
-
- TEST(test_cunit_get_n_allocations(pSuite1) == test_cunit_get_n_deallocations(pSuite1));
- TEST(test_cunit_get_n_allocations(pSuite2) == test_cunit_get_n_deallocations(pSuite2));
- TEST(test_cunit_get_n_allocations(pTest1) == test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pTest2) == test_cunit_get_n_deallocations(pTest2));
- TEST(test_cunit_get_n_allocations(pTest3) == test_cunit_get_n_deallocations(pTest3));
- TEST(test_cunit_get_n_allocations(pTest4) == test_cunit_get_n_deallocations(pTest4));
-}
-
-/*--------------------------------------------------*/
-static void test_cleanup_test(void)
-{
- char* pName;
- CU_pTest pTest1 = create_test("test1", NULL);
-
- TEST_FATAL(NULL != pTest1);
-
- pName = pTest1->pName;
- TEST(0 != test_cunit_get_n_memevents(pTest1));
- TEST(0 != test_cunit_get_n_memevents(pName));
-
- TEST(test_cunit_get_n_allocations(pTest1) != test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pName) != test_cunit_get_n_deallocations(pName));
-
- cleanup_test(pTest1);
- CU_FREE(pTest1);
-
- TEST(test_cunit_get_n_allocations(pTest1) == test_cunit_get_n_deallocations(pTest1));
- TEST(test_cunit_get_n_allocations(pName) == test_cunit_get_n_deallocations(pName));
-}
-
-/*--------------------------------------------------*/
-static void group_A_case_1(void)
-{
- CU_ASSERT_TRUE(1);
-}
-
-static void group_A_case_2(void)
-{
- CU_ASSERT_TRUE(2);
-}
-
-static void group_B_case_1(void)
-{
- CU_ASSERT_FALSE(1);
-}
-
-static void group_B_case_2(void)
-{
- CU_ASSERT_FALSE(2);
-}
-
-static CU_TestInfo group_A_test_cases[] = {
- { "1", group_A_case_1 },
- { "2", group_A_case_2 },
- CU_TEST_INFO_NULL,
-};
-
-static CU_TestInfo group_B_test_cases[] = {
- { "1", group_B_case_1 },
- { "2", group_B_case_2 },
- CU_TEST_INFO_NULL,
-};
-
-static CU_TestInfo group_C_test_cases[] = {
- { "1", group_B_case_1 },
- { "1", group_B_case_2 }, /* duplicate test name */
- CU_TEST_INFO_NULL,
-};
-
-static CU_SuiteInfo suites0[] = {
- CU_SUITE_INFO_NULL,
-};
-
-static CU_SuiteInfo suites1[] = {
- { "A1", NULL, NULL, NULL, NULL, group_A_test_cases },
- { "B1", NULL, NULL, NULL, NULL, group_B_test_cases },
- CU_SUITE_INFO_NULL,
-};
-
-static CU_SuiteInfo suites2[] = {
- { "A2", NULL, NULL, NULL, NULL, group_A_test_cases },
- { "B2", NULL, NULL, NULL, NULL, group_B_test_cases },
- CU_SUITE_INFO_NULL,
-};
-
-static CU_SuiteInfo suites3[] = {
- { "A3", NULL, NULL, NULL, NULL, group_A_test_cases },
- { "A3", NULL, NULL, NULL, NULL, group_C_test_cases }, /* duplicate suite name */
- CU_SUITE_INFO_NULL,
-};
-
-static void test_register_suite(void)
-{
- CU_pTestRegistry pReg = NULL;
- CU_ErrorCode status;
-
- if (CU_initialize_registry()) {
- fprintf(stderr, "\nError initializing registry in test_register_suite().");
- return;
- }
-
- pReg = CU_get_registry();
-
- /* test initial condition */
- TEST_FATAL(NULL != pReg);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
-
- /* test CU_register_suites() with NULL */
- status = CU_register_suites(NULL);
- TEST(CUE_SUCCESS == status);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
-
- /* test CU_register_suites() with empty array */
- status = CU_register_suites(suites0);
- TEST(CUE_SUCCESS == status);
- TEST(0 == pReg->uiNumberOfSuites);
- TEST(0 == pReg->uiNumberOfTests);
-
- /* test CU_register_suites() with ok array */
- status = CU_register_suites(suites1);
- TEST(CUE_SUCCESS == status);
- TEST(2 == pReg->uiNumberOfSuites);
- TEST(4 == pReg->uiNumberOfTests);
-
- /* test CU_register_suites() with duplicate suite name */
- status = CU_register_suites(suites1);
- TEST(CUE_SUCCESS == status); /* shaky - depends on order of operation in CU_register_suites() */
- TEST(4 == pReg->uiNumberOfSuites);
- TEST(8 == pReg->uiNumberOfTests);
-
- /* test CU_register_suites() with duplicate test name */
- status = CU_register_suites(suites3);
- TEST(CUE_DUP_TEST == status); /* shaky - depends on order of operation in CU_register_suites() */
- TEST(6 == pReg->uiNumberOfSuites);
- TEST(12 == pReg->uiNumberOfTests);
-
- CU_cleanup_registry();
-
- if (CU_initialize_registry()) {
- fprintf(stderr, "\nError initializing registry in test_register_suite().");
- return;
- }
-
- pReg = CU_get_registry();
-
- /* test CU_register_nsuites() with ok arrays */
- status = CU_register_nsuites(2, suites1, suites2);
- TEST(CUE_SUCCESS == status);
- TEST(4 == pReg->uiNumberOfSuites);
- TEST(8 == pReg->uiNumberOfTests);
-}
-
-/*--------------------------------------------------*/
-void test_cunit_TestDB(void)
-{
- test_cunit_start_tests("TestDB.c");
-
- test_CU_initialize_registry();
- test_CU_cleanup_registry();
- test_CU_add_suite();
- test_CU_set_suite_attributes();
- test_get_suite_functions();
- test_CU_add_test();
- test_CU_set_test_attributes();
- test_get_test_functions();
- test_CU_get_registry();
- test_CU_set_registry();
- test_CU_create_new_registry();
- test_cleanup_test_registry();
- test_create_suite();
- test_insert_suite();
- test_create_test();
- test_cleanup_test();
- test_insert_test();
- test_register_suite();
-
- test_cunit_end_tests();
-}
-
-#endif /* CUNIT_BUILD_TESTS */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Framework/TestRun.c b/tools/taos-tools/deps/CUnit/Sources/Framework/TestRun.c
deleted file mode 100644
index 1a1950372a..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Framework/TestRun.c
+++ /dev/null
@@ -1,3126 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Implementation of Test Run Interface.
- *
- * Aug 2001 Initial implementaion (AK)
- *
- * 19/Aug/2001 Added initial registry/Suite/test framework implementation. (AK)
- *
- * 24/Aug/2001 Changed Data structure from SLL to DLL for all linked lists. (AK)
- *
- * 25/Nov/2001 Added notification for Suite Initialization failure condition. (AK)
- *
- * 5-Aug-2004 New interface, doxygen comments, moved add_failure on suite
- * initialization so called even if a callback is not registered,
- * moved CU_assertImplementation into TestRun.c, consolidated
- * all run summary info out of CU_TestRegistry into TestRun.c,
- * revised counting and reporting of run stats to cleanly
- * differentiate suite, test, and assertion failures. (JDS)
- *
- * 1-Sep-2004 Modified CU_assertImplementation() and run_single_test() for
- * setjmp/longjmp mechanism of aborting test runs, add asserts in
- * CU_assertImplementation() to trap use outside a registered
- * test function during an active test run. (JDS)
- *
- * 22-Sep-2004 Initial implementation of internal unit tests, added nFailureRecords
- * to CU_Run_Summary, added CU_get_n_failure_records(), removed
- * requirement for registry to be initialized in order to run
- * CU_run_suite() and CU_run_test(). (JDS)
- *
- * 30-Apr-2005 Added callback for suite cleanup function failure,
- * updated unit tests. (JDS)
- *
- * 23-Apr-2006 Added testing for suite/test deactivation, changing functions.
- * Moved doxygen comments for public functions into header.
- * Added type marker to CU_FailureRecord.
- * Added support for tracking inactive suites/tests. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- *
- * 02-Jun-2006 Added support for elapsed time. Added handlers for suite
- * start and complete events. Reworked test run routines to
- * better support these features, suite/test activation. (JDS)
- *
- * 16-Avr-2007 Added setup and teardown functions. (CJN)
- *
- */
-
-/** @file
- * Test run management functions (implementation).
- */
-/** @addtogroup Framework
- @{
-*/
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "CUnit/CUnit.h"
-#include "CUnit/MyMem.h"
-#include "CUnit/TestDB.h"
-#include "CUnit/TestRun.h"
-#include "CUnit/MessageHandlers.h"
-#include "CUnit/Util.h"
-#include "CUnit/CUnit_intl.h"
-
-/*=================================================================
- * Global/Static Definitions
- *=================================================================*/
-static CU_BOOL f_bTestIsRunning = CU_FALSE; /**< Flag for whether a test run is in progress */
-static CU_pSuite f_pCurSuite = NULL; /**< Pointer to the suite currently being run. */
-static CU_pTest f_pCurTest = NULL; /**< Pointer to the test currently being run. */
-
-
-/** CU_RunSummary to hold results of each test run. */
-static CU_RunSummary f_run_summary = {"", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-/** CU_pFailureRecord to hold head of failure record list of each test run. */
-static CU_pFailureRecord f_failure_list = NULL;
-
-/** CU_pFailureRecord to hold head of failure record list of each test run. */
-static CU_pFailureRecord f_last_failure = NULL;
-
-/** Flag for whether inactive suites/tests are treated as failures. */
-static CU_BOOL f_failure_on_inactive = CU_TRUE;
-
-/** Variable for storage of start time for test run. */
-static clock_t f_start_time;
-
-
-/*=================================================================
- * Private function forward declarations
- *=================================================================*/
-static void clear_previous_results(CU_pRunSummary pRunSummary, CU_pFailureRecord* ppFailure);
-static void cleanup_failure_list(CU_pFailureRecord* ppFailure);
-static CU_ErrorCode run_single_suite(CU_pSuite pSuite, CU_pRunSummary pRunSummary);
-static CU_ErrorCode run_single_test(CU_pTest pTest, CU_pRunSummary pRunSummary);
-static void add_failure(CU_pFailureRecord* ppFailure,
- CU_pRunSummary pRunSummary,
- CU_FailureType type,
- unsigned int uiLineNumber,
- const char *szCondition,
- const char *szFileName,
- const char *szFunction,
- CU_pSuite pSuite,
- CU_pTest pTest);
-static CU_pFailureRecord get_failure_tail(CU_pFailureRecord pFailureRecord);
-
-/*=================================================================
- * Public Interface functions
- *=================================================================*/
-
-CU_BOOL CU_assertImplementation(CU_BOOL bValue,
- unsigned int uiLine,
- const char *strCondition,
- const char *strFile,
- const char *strFunction,
- CU_BOOL bFatal)
-{
- /* these should always be non-NULL (i.e. a test run is in progress) */
- assert(NULL != f_pCurSuite);
-
- ++f_run_summary.nAsserts;
- if (CU_FALSE == bValue) {
- ++f_run_summary.nAssertsFailed;
- add_failure(&f_failure_list, &f_run_summary, CUF_AssertFailed,
- uiLine, strCondition, strFile, strFunction, f_pCurSuite, f_pCurTest);
-
- if(f_pCurTest) {
- if ((CU_TRUE == bFatal) && (NULL != f_pCurTest->pJumpBuf)) {
- longjmp(*(f_pCurTest->pJumpBuf), 1);
- }
- } else {
- /* this was a setup or teardown assert */
- if (f_pCurSuite->fInSetUp) f_pCurSuite->fSetUpError = CU_TRUE;
- if (f_pCurSuite->fInClean) f_pCurSuite->fCleanupError = CU_TRUE;
- }
- }
-
- return bValue;
-}
-
-void CU_SkipImplementation(CU_BOOL value,
- unsigned int uiLine,
- const char *strCondition,
- const char *strFile,
- const char *strFunction)
-{
- /* these should always be non-NULL (i.e. a test run is in progress) */
- assert(NULL != f_pCurSuite);
-
-
- if (value) {
- /* skip the current test or suite */
-
- if (f_pCurSuite->fInSetUp) {
- ++f_run_summary.nSuitesSkipped;
- /* we are in a suite setup function */
- f_pCurSuite->fSkipped = CU_TRUE;
- f_pCurSuite->fActive = CU_FALSE;
-
- f_pCurSuite->pSkipFunction = strFunction;
- f_pCurSuite->pSkipFile = strFile;
- f_pCurSuite->uiSkipLine = uiLine;
- f_pCurSuite->pSkipReason = strCondition;
- }
-
- if(f_pCurTest) {
- ++f_run_summary.nTestsSkipped;
- f_pCurTest->fSkipped = CU_TRUE;
- f_pCurTest->fActive = CU_FALSE;
- f_pCurTest->pSkipFunction = strFunction;
- f_pCurTest->pSkipFile = strFile;
- f_pCurTest->uiSkipLine = uiLine;
- f_pCurTest->pSkipReason = strCondition;
- /* we are in a test */
- if (NULL != f_pCurTest->pJumpBuf) {
- longjmp(*(f_pCurTest->pJumpBuf), 1);
- }
- }
- }
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_suite_start_handler(CU_SuiteStartMessageHandler pSuiteStartHandler)
-{
- CCU_MessageHandlerFunction func;
- func.suite_start = pSuiteStartHandler;
- CCU_MessageHandler_Set(CUMSG_SUITE_STARTED, func);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_test_start_handler(CU_TestStartMessageHandler pTestStartHandler)
-{
- CCU_MessageHandlerFunction func;
- func.test_started = pTestStartHandler;
- CCU_MessageHandler_Set(CUMSG_TEST_STARTED, func);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_test_complete_handler(CU_TestCompleteMessageHandler pTestCompleteHandler)
-{
- CCU_MessageHandlerFunction func;
- func.test_completed = pTestCompleteHandler;
- CCU_MessageHandler_Set(CUMSG_TEST_COMPLETED, func);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_test_skipped_handler(CU_TestSkippedMessageHandler pTestSkippedHandler)
-{
- CCU_MessageHandlerFunction func;
- func.test_skipped = pTestSkippedHandler;
- CCU_MessageHandler_Set(CUMSG_TEST_SKIPPED, func);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_suite_complete_handler(CU_SuiteCompleteMessageHandler pSuiteCompleteHandler)
-{
- CCU_MessageHandlerFunction func;
- func.suite_completed = pSuiteCompleteHandler;
- CCU_MessageHandler_Set(CUMSG_SUITE_COMPLETED, func);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_all_test_complete_handler(CU_AllTestsCompleteMessageHandler pAllTestsCompleteHandler)
-{
- CCU_MessageHandlerFunction func;
- func.all_completed = pAllTestsCompleteHandler;
- CCU_MessageHandler_Set(CUMSG_ALL_COMPLETED, func);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_suite_init_failure_handler(CU_SuiteInitFailureMessageHandler pSuiteInitFailureHandler)
-{
- CCU_MessageHandlerFunction func;
- func.suite_setup_failed = pSuiteInitFailureHandler;
- CCU_MessageHandler_Set(CUMSG_SUITE_SETUP_FAILED, func);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_set_suite_cleanup_failure_handler(CU_SuiteCleanupFailureMessageHandler pSuiteCleanupFailureHandler)
-{
- CCU_MessageHandlerFunction func;
- func.suite_teardown_failed = pSuiteCleanupFailureHandler;
- CCU_MessageHandler_Set(CUMSG_SUITE_TEARDOWN_FAILED, func);
-}
-
-void CU_set_suite_skipped_handler(CU_SuiteSkippedMessageHandler pSkippedHandler)
-{
- CCU_MessageHandlerFunction func;
- func.suite_skipped = pSkippedHandler;
- CCU_MessageHandler_Set(CUMSG_SUITE_SKIPPED, func);
-}
-
-CU_EXPORT double CU_get_test_duration(CU_pTest pTest) {
- return pTest->dEnded - pTest->dStarted;
-}
-
-CU_EXPORT double CU_get_suite_duration(CU_pSuite pSuite) {
- return pSuite->dEnded - pSuite->dStarted;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_suites_run(void)
-{
- return f_run_summary.nSuitesRun;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_suites_failed(void)
-{
- return f_run_summary.nSuitesFailed;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_suites_inactive(void)
-{
- return f_run_summary.nSuitesInactive;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_tests_run(void)
-{
- return f_run_summary.nTestsRun;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_tests_failed(void)
-{
- return f_run_summary.nTestsFailed;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_tests_inactive(void)
-{
- return f_run_summary.nTestsInactive;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_asserts(void)
-{
- return f_run_summary.nAsserts;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_successes(void)
-{
- return (f_run_summary.nAsserts - f_run_summary.nAssertsFailed);
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_failures(void)
-{
- return f_run_summary.nAssertsFailed;
-}
-
-/*------------------------------------------------------------------------*/
-unsigned int CU_get_number_of_failure_records(void)
-{
- return f_run_summary.nFailureRecords;
-}
-
-/* get the current clock time in seconds */
-static double CU_get_clock_sec(void)
-{
- double nowclock = (double)clock();
- return nowclock / (double)CLOCKS_PER_SEC;
-}
-
-/*------------------------------------------------------------------------*/
-double CU_get_elapsed_time(void)
-{
- if (CU_TRUE == f_bTestIsRunning) {
- return ((double)clock() - (double)f_start_time)/(double)CLOCKS_PER_SEC;
- }
- else {
- return f_run_summary.ElapsedTime;
- }
-}
-
-/*------------------------------------------------------------------------*/
-CU_pFailureRecord CU_get_failure_list(void)
-{
- return f_failure_list;
-}
-
-int CU_count_test_failures(CU_pTest test) {
- int n = 0;
- CU_pFailureRecord failure = NULL;
- if (test) {
- while ((failure = CU_iterate_test_failures(test, failure)))
- n++;
- }
- return n;
-}
-
-int CU_count_suite_tests(CU_pSuite pSuite) {
- int n = 0;
- if (pSuite) {
- CU_pTest t = pSuite->pTest;
- while (t) {
- t = t->pNext;
- n++;
- }
- }
- return n;
-}
-
-int CU_count_suite_failures(CU_pSuite pSuite)
-{
- int n = 0;
- if (pSuite) {
- CU_pTest t = pSuite->pTest;
- while (t) {
- if (CU_iterate_test_failures(t, NULL)) n++;
- t = t->pNext;
- }
- }
- return n;
-}
-
-int CU_count_all_tests(CU_pTestRegistry pRegistry)
-{
- int n = 0;
- if (pRegistry) {
- CU_pSuite s = pRegistry->pSuite;
- while (s) {
- n += CU_count_suite_tests(s);
- s = s->pNext;
- }
- }
- return n;
-}
-
-int CU_count_all_failures(CU_pTestRegistry pRegistry) {
- int n = 0;
- if (pRegistry) {
- CU_pSuite s = pRegistry->pSuite;
- while (s) {
- n += CU_count_suite_failures(s);
- s = s->pNext;
- }
- }
- return n;
-}
-
-
-CU_pFailureRecord CU_iterate_test_failures(CU_pTest test, CU_pFailureRecord previous) {
- CU_pFailureRecord record = CU_get_failure_list();
- if (!previous) {
- /* previous is NULL, return the first failure of this test */
- while (record) {
- if (record->pTest == test) {
- return record;
- }
- record = record->pNext;
- }
- /* if we get here there are not records */
- } else {
- /* caller wants the next record, so start after previous */
- record = previous->pNext;
- }
-
- if (record) {
- /* start here and return the next record for this test (failures may not be in order) */
- /* look for another failure for this test starting here onwards*/
- while (record) {
- if (record->pTest == test) {
- /* found one! */
- return record;
- }
- record = record->pNext;
- }
- }
-
- return NULL;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pRunSummary CU_get_run_summary(void)
-{
- return &f_run_summary;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_run_all_tests(void)
-{
- CU_pTestRegistry pRegistry = CU_get_registry();
- CU_pSuite pSuite = NULL;
- CU_ErrorCode result = CUE_SUCCESS;
- CU_ErrorCode result2;
-
- /* Clear results from the previous run */
- clear_previous_results(&f_run_summary, &f_failure_list);
-
- if (NULL == pRegistry) {
- result = CUE_NOREGISTRY;
- }
- else {
- /* test run is starting - set flag */
- f_bTestIsRunning = CU_TRUE;
- f_start_time = clock();
-
- pSuite = pRegistry->pSuite;
- while ((NULL != pSuite) && ((CUE_SUCCESS == result) || (CU_get_error_action() == CUEA_IGNORE))) {
- result2 = run_single_suite(pSuite, &f_run_summary);
- result = (CUE_SUCCESS == result) ? result2 : result; /* result = 1st error encountered */
- pSuite = pSuite->pNext;
- }
-
- /* test run is complete - clear flag */
- f_bTestIsRunning = CU_FALSE;
- f_run_summary.ElapsedTime = ((double)clock() - (double)f_start_time)/(double)CLOCKS_PER_SEC;
-
- CCU_MessageHandler_Run(CUMSG_ALL_COMPLETED, NULL, NULL, f_failure_list);
- }
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_run_suite(CU_pSuite pSuite)
-{
- CU_ErrorCode result = CUE_NOSUITE;
-
- /* Clear results from the previous run */
- clear_previous_results(&f_run_summary, &f_failure_list);
-
- if (pSuite != NULL)
- {
- /* test run is starting - set flag */
- f_bTestIsRunning = CU_TRUE;
- f_start_time = clock();
-
- result = run_single_suite(pSuite, &f_run_summary);
-
- /* test run is complete - clear flag */
- f_bTestIsRunning = CU_FALSE;
- f_run_summary.ElapsedTime = ((double)clock() - (double)f_start_time)/(double)CLOCKS_PER_SEC;
-
- /* run handler for overall completion, if any */
- CCU_MessageHandler_Run(CUMSG_ALL_COMPLETED, NULL, NULL, f_failure_list);
- }
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-CU_ErrorCode CU_run_test(CU_pSuite pSuite, CU_pTest pTest)
-{
- CU_ErrorCode result = CUE_SUCCESS;
- CU_ErrorCode setupresult = CUE_SUCCESS;
-
- /* Clear results from the previous run */
- clear_previous_results(&f_run_summary, &f_failure_list);
-
- if (NULL == pSuite) {
- result = CUE_NOSUITE;
- }
- else if (NULL == pTest) {
- result = CUE_NOTEST;
- }
- else if (CU_FALSE == pSuite->fActive) {
- f_run_summary.nSuitesInactive++;
- if (CU_FALSE != f_failure_on_inactive) {
- add_failure(&f_failure_list, &f_run_summary, CUF_SuiteInactive,
- 0, _("Suite inactive"), __FILE__, CU_FUNC, pSuite, NULL);
- }
- result = CUE_SUITE_INACTIVE;
- }
- else if ((NULL == pTest->pName) || (NULL == CU_get_test_by_name(pTest->pName, pSuite))) {
- result = CUE_TEST_NOT_IN_SUITE;
- }
- else {
- /* test run is starting - set flag */
- f_bTestIsRunning = CU_TRUE;
- f_start_time = clock();
-
- f_pCurTest = NULL;
- f_pCurSuite = pSuite;
-
- pSuite->uiNumberOfTestsFailed = 0;
- pSuite->uiNumberOfTestsSuccess = 0;
-
- /* run handler for suite start, if any */
- CCU_MessageHandler_Run(CUMSG_SUITE_STARTED, pSuite, NULL, NULL);
-
- /* run the suite initialization function, if any */
- if ((NULL != pSuite->pInitializeFunc) && (0 != (*pSuite->pInitializeFunc)())) {
- /* init function had an error - call handler, if any */
- CCU_MessageHandler_Run(CUMSG_SUITE_SETUP_FAILED, pSuite, NULL, NULL);
- f_run_summary.nSuitesFailed++;
- add_failure(&f_failure_list, &f_run_summary, CUF_SuiteInitFailed, 0,
- _("Suite Initialization failed - Suite Skipped"),
- __FILE__, CU_FUNC, pSuite, NULL);
- result = setupresult = CUE_SINIT_FAILED;
- }
-
- if (setupresult == CUE_SUCCESS) {
- /* reach here if no suite initialization, or if it succeeded */
- result = run_single_test(pTest, &f_run_summary);
- }
-
- if (setupresult == CUE_SUCCESS) {
- /* run the suite cleanup function, if any */
- if ((NULL != pSuite->pCleanupFunc) && (0 != (*pSuite->pCleanupFunc)())) {
- /* cleanup function had an error - call handler, if any */
- CCU_MessageHandler_Run(CUMSG_SUITE_TEARDOWN_FAILED, pSuite, NULL, NULL);
- f_run_summary.nSuitesFailed++;
- add_failure(&f_failure_list, &f_run_summary, CUF_SuiteCleanupFailed,
- 0, _("Suite cleanup failed."), __FILE__, CU_FUNC, pSuite, NULL);
- result = CUE_SCLEAN_FAILED;
- }
- }
-
- /* run handler for suite completion, if any */
- CCU_MessageHandler_Run(CUMSG_SUITE_COMPLETED, pSuite, NULL, NULL);
-
- /* test run is complete - clear flag */
- f_bTestIsRunning = CU_FALSE;
- f_run_summary.ElapsedTime = ((double)clock() - (double)f_start_time)/(double)CLOCKS_PER_SEC;
-
- /* run handler for overall completion, if any */
- CCU_MessageHandler_Run(CUMSG_SUITE_COMPLETED, NULL, NULL, f_failure_list);
-
- f_pCurSuite = NULL;
- }
-
- CU_set_error(result);
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-void CU_clear_previous_results(void)
-{
- clear_previous_results(&f_run_summary, &f_failure_list);
-}
-
-/*------------------------------------------------------------------------*/
-CU_pSuite CU_get_current_suite(void)
-{
- return f_pCurSuite;
-}
-
-/*------------------------------------------------------------------------*/
-CU_pTest CU_get_current_test(void)
-{
- return f_pCurTest;
-}
-
-/*------------------------------------------------------------------------*/
-CU_BOOL CU_is_test_running(void)
-{
- return f_bTestIsRunning;
-}
-
-/*------------------------------------------------------------------------*/
-CU_EXPORT void CU_set_fail_on_inactive(CU_BOOL new_inactive)
-{
- f_failure_on_inactive = new_inactive;
-}
-
-/*------------------------------------------------------------------------*/
-CU_EXPORT CU_BOOL CU_get_fail_on_inactive(void)
-{
- return f_failure_on_inactive;
-}
-
-/*------------------------------------------------------------------------*/
-CU_EXPORT void CU_print_run_results(FILE *file)
-{
- char *summary_string;
-
- assert(NULL != file);
- summary_string = CU_get_run_results_string();
- if (NULL != summary_string) {
- fprintf(file, "%s", summary_string);
- CU_FREE(summary_string);
- }
- else {
- fprintf(file, _("An error occurred printing the run results."));
- }
-}
-
-/*------------------------------------------------------------------------*/
-CU_EXPORT char * CU_get_run_results_string(void)
-
-{
- CU_pRunSummary s = &f_run_summary;
- size_t max_result_len = 8192;
- char *result;
-
- assert(NULL != s);
- assert(NULL != CU_get_registry());
-
- result = CU_MALLOC(max_result_len);
- if (result) {
- char *end = result;
- end += snprintf(end, max_result_len - (end - result),
- "%-18s- %8s %8s %8s %8s\n",
- _("Run Summary"), _("Run"), _("Failed"), _("Inactive"), _("Skipped"));
-
- end += snprintf(end, max_result_len - (end - result),
- " %-13s: %8d %8d %8d %8d\n",
- _("Suites"), s->nSuitesRun, s->nSuitesFailed, s->nSuitesInactive, s->nSuitesSkipped);
-
-
- end += snprintf(end, max_result_len - (end - result),
- " %-13s: %8d %8d %8s %8s\n",
- _("Asserts"), s->nAsserts, s->nAssertsFailed, _("n/a"), _("n/a"));
-
- end += snprintf(end, max_result_len - (end - result),
- " %-13s: %8d %8d %8d %8d\n",
- _("Tests"), s->nTestsRun - s->nTestsSkipped, s->nTestsFailed, s->nTestsInactive, s->nTestsSkipped);
-
-
- end += snprintf(end, max_result_len - (end - result),
- "\n");
- snprintf(end, max_result_len - (end - result),
- "%-10s: %.3f(s)\n", _("Elapsed Time"), s->ElapsedTime);
- }
-
- return result;
-}
-
-/*=================================================================
- * Static Function Definitions
- *=================================================================*/
-/**
- * Records a runtime failure.
- * This function is called whenever a runtime failure occurs.
- * This includes user assertion failures, suite initialization and
- * cleanup failures, and inactive suites/tests when set as failures.
- * This function records the details of the failure in a new
- * failure record in the linked list of runtime failures.
- *
- * @param ppFailure Pointer to head of linked list of failure
- * records to append with new failure record.
- * If it points to a NULL pointer, it will be set
- * to point to the new failure record.
- * @param pRunSummary Pointer to CU_RunSummary keeping track of failure records
- * (ignored if NULL).
- * @param type Type of failure.
- * @param uiLineNumber Line number of the failure, if applicable.
- * @param szCondition Description of failure condition
- * @param szFileName Name of file, if applicable
- * @param szFunction Name of function, if applicable
- * @param pSuite The suite being run at time of failure
- * @param pTest The test being run at time of failure
- */
-static void add_failure(CU_pFailureRecord* ppFailure,
- CU_pRunSummary pRunSummary,
- CU_FailureType type,
- unsigned int uiLineNumber,
- const char *szCondition,
- const char *szFileName,
- const char *szFunction,
- CU_pSuite pSuite,
- CU_pTest pTest)
-{
- CU_pFailureRecord pFailureNew = NULL;
-
- assert(NULL != ppFailure);
-
- pFailureNew = (CU_pFailureRecord)CU_MALLOC(sizeof(CU_FailureRecord));
-
- if (NULL == pFailureNew) {
- return;
- }
-
- pFailureNew->strFileName = NULL;
- pFailureNew->strFunction = NULL;
- pFailureNew->strCondition = NULL;
-
- if (NULL != szFileName) {
- pFailureNew->strFileName = (char*)CU_MALLOC(strlen(szFileName) + 1);
- if(NULL == pFailureNew->strFileName) {
- CU_FREE(pFailureNew);
- return;
- }
- strcpy(pFailureNew->strFileName, szFileName);
- }
-
- if (NULL != szFunction) {
- pFailureNew->strFunction = (char*)CU_MALLOC(strlen(szFunction) + 1);
- if(NULL == pFailureNew->strFunction) {
- if(NULL != pFailureNew->strFileName) {
- CU_FREE(pFailureNew->strFileName);
- }
- CU_FREE(pFailureNew);
- return;
- }
- strcpy(pFailureNew->strFunction, szFunction);
- }
-
- if (NULL != szCondition) {
- pFailureNew->strCondition = (char*)CU_MALLOC(strlen(szCondition) + 1);
- if (NULL == pFailureNew->strCondition) {
- if(NULL != pFailureNew->strFileName) {
- CU_FREE(pFailureNew->strFileName);
- }
- if(NULL != pFailureNew->strFunction) {
- CU_FREE(pFailureNew->strFunction);
- }
- CU_FREE(pFailureNew);
- return;
- }
- strcpy(pFailureNew->strCondition, szCondition);
- }
-
- pFailureNew->type = type;
- pFailureNew->uiLineNumber = uiLineNumber;
- pFailureNew->pTest = pTest;
- pFailureNew->pSuite = pSuite;
- pFailureNew->pNext = NULL;
- pFailureNew->pPrev = NULL;
-
- if (!*ppFailure) {
- /* no existing failures */
- *ppFailure = pFailureNew;
- } else {
- /* append to the list */
- CU_pFailureRecord last = get_failure_tail(*ppFailure);
- pFailureNew->pPrev = last;
- last->pNext = pFailureNew;
- }
-
- if (NULL != pRunSummary) {
- ++(pRunSummary->nFailureRecords);
- }
- f_last_failure = pFailureNew;
-}
-
-/*
- * Local function for result set initialization/cleanup.
- */
-/*------------------------------------------------------------------------*/
-/**
- * Initializes the run summary information in the specified structure.
- * Resets the run counts to zero, and calls cleanup_failure_list() if
- * failures were recorded by the last test run. Calling this function
- * multiple times, while inefficient, will not cause an error condition.
- *
- * @param pRunSummary CU_RunSummary to initialize (non-NULL).
- * @param ppFailure The failure record to clean (non-NULL).
- * @see CU_clear_previous_results()
- */
-static void clear_previous_results(CU_pRunSummary pRunSummary, CU_pFailureRecord* ppFailure)
-{
- assert(NULL != pRunSummary);
- assert(NULL != ppFailure);
-
- pRunSummary->nSuitesRun = 0;
- pRunSummary->nSuitesFailed = 0;
- pRunSummary->nSuitesInactive = 0;
- pRunSummary->nTestsRun = 0;
- pRunSummary->nTestsFailed = 0;
- pRunSummary->nTestsInactive = 0;
- pRunSummary->nAsserts = 0;
- pRunSummary->nAssertsFailed = 0;
- pRunSummary->nFailureRecords = 0;
- pRunSummary->ElapsedTime = 0.0;
-
- if (NULL != *ppFailure) {
- cleanup_failure_list(ppFailure);
- }
-
- f_last_failure = NULL;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Frees all memory allocated for the linked list of test failure
- * records. pFailure is reset to NULL after its list is cleaned up.
- *
- * @param ppFailure Pointer to head of linked list of
- * CU_pFailureRecords to clean.
- * @see CU_clear_previous_results()
- */
-static void cleanup_failure_list(CU_pFailureRecord* ppFailure)
-{
- CU_pFailureRecord pCurFailure = NULL;
- CU_pFailureRecord pNextFailure = NULL;
-
- pCurFailure = *ppFailure;
-
- while (NULL != pCurFailure) {
-
- if (NULL != pCurFailure->strCondition) {
- CU_FREE(pCurFailure->strCondition);
- }
-
- if (NULL != pCurFailure->strFunction) {
- CU_FREE(pCurFailure->strFunction);
- }
-
- if (NULL != pCurFailure->strFileName) {
- CU_FREE(pCurFailure->strFileName);
- }
-
- pNextFailure = pCurFailure->pNext;
- CU_FREE(pCurFailure);
- pCurFailure = pNextFailure;
- }
-
- *ppFailure = NULL;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Runs all tests in a specified suite.
- * Internal function to run all tests in a suite. The suite need
- * not be registered in the test registry to be run. Only
- * suites having their fActive flags set CU_TRUE will actually be
- * run. If the CUnit framework is in an error condition after
- * running a test, no additional tests are run.
- *
- * @param pSuite The suite containing the test (non-NULL).
- * @param pRunSummary The CU_RunSummary to receive the results (non-NULL).
- * @return A CU_ErrorCode indicating the status of the run.
- * @see CU_run_suite() for public interface function.
- * @see CU_run_all_tests() for running all suites.
- */
-static CU_ErrorCode run_single_suite(CU_pSuite pSuite, CU_pRunSummary pRunSummary)
-{
- CU_pTest pTest = NULL;
- unsigned int nStartFailures = 0;
- /* keep track of the last failure BEFORE running the test */
- CU_pFailureRecord pLastFailure = f_last_failure;
- CU_ErrorCode result = CUE_SUCCESS;
- CU_ErrorCode result2 = CUE_SUCCESS;
-
- assert(NULL != pSuite);
- assert(NULL != pRunSummary);
-
- nStartFailures = pRunSummary->nFailureRecords;
-
- f_pCurTest = NULL;
- f_pCurSuite = pSuite;
-
- /* run handler for suite start, if any */
- CCU_MessageHandler_Run(CUMSG_SUITE_STARTED, pSuite, NULL, NULL);
-
- /* run suite if it's active */
- if (CU_FALSE != pSuite->fActive) {
- pSuite->dStarted = CU_get_clock_sec();
- /* run the suite initialization function, if any */
- if (NULL != pSuite->pInitializeFunc) {
- /* we have a suite init function and a "test" for it */
- if (pSuite->pInitializeFuncTest)
- pSuite->pInitializeFuncTest->dStarted = pSuite->dStarted;
- pSuite->fInSetUp = CU_TRUE;
- if ((CUE_SUCCESS != (*pSuite->pInitializeFunc)()) || pSuite->fSetUpError) {
- /* init function returned a failure */
- result = CUE_SINIT_FAILED;
- pSuite->fSetUpError = CU_TRUE;
- }
- if (pSuite->pInitializeFuncTest)
- pSuite->pInitializeFuncTest->dEnded = CU_get_clock_sec();
- pSuite->fInSetUp = CU_FALSE;
-
- if (pSuite->fSkipped == CU_TRUE) {
- /* skipping the whole suite */
- CCU_MessageHandler_Run(CUMSG_SUITE_SKIPPED, pSuite, NULL, NULL);
- return CUE_SUCCESS;
- } else {
- if (result != CUE_SUCCESS) {
- /* init function had an error - call handler, if any */
- CCU_MessageHandler_Run(CUMSG_SUITE_SETUP_FAILED, pSuite, NULL, NULL);
- pRunSummary->nSuitesFailed++;
- add_failure(&f_failure_list, &f_run_summary, CUF_SuiteInitFailed, 0,
- _("Suite Initialization failed - Suite Skipped"),
- __FILE__, CU_FUNC, pSuite, pSuite->pInitializeFuncTest);
- result = CUE_SINIT_FAILED;
- }
- }
- }
-
- if (result == CUE_SUCCESS) {
- /* reach here if no suite initialization, or if it succeeded */
- /* iterate through the tests in this suite */
- pTest = pSuite->pTest;
- while ((NULL != pTest) && ((CUE_SUCCESS == result) || (CU_get_error_action() == CUEA_IGNORE))) {
- if (CU_FALSE != pTest->fActive) {
- unsigned failcount = pTest->uFailedRuns; /* non-zero if the test has been run before and failed */
- result2 = run_single_test(pTest, pRunSummary);
- /* result2 should be CUE_SUCCESS or CUE_TEST_INACTIVE - not test outcome */
- result = (CUE_SUCCESS == result) ? result2 : result;
-
- if (failcount < pTest->uFailedRuns) { /* this test just failed */
- pSuite->uiNumberOfTestsFailed++;
- } else {
- pSuite->uiNumberOfTestsSuccess++;
- }
- }
- else {
- f_run_summary.nTestsInactive++;
- if (CU_FALSE != f_failure_on_inactive) {
- add_failure(&f_failure_list, &f_run_summary, CUF_TestInactive,
- 0, _("Test inactive"), __FILE__, CU_FUNC, pSuite, pTest);
- result = CUE_TEST_INACTIVE;
- } else {
- pSuite->uiNumberOfTestsFailed++;
- }
- CCU_MessageHandler_Run(CUMSG_TEST_SKIPPED, pSuite, pTest, NULL);
- }
- pTest = pTest->pNext;
- }
- pRunSummary->nSuitesRun++;
-
- /* call the suite cleanup function, if any */
- if (NULL != pSuite->pCleanupFunc) {
- if (pSuite->pCleanupFuncTest)
- pSuite->pCleanupFuncTest->dStarted = CU_get_clock_sec();
- pSuite->fInClean = CU_TRUE;
- if ((CUE_SUCCESS != (*pSuite->pCleanupFunc)()) || pSuite->fCleanupError) {
- result = CUE_SCLEAN_FAILED;
- }
- if (pSuite->pCleanupFuncTest)
- pSuite->pCleanupFuncTest->dEnded = CU_get_clock_sec();
- pSuite->fInClean = CU_FALSE;
-
- if (result != CUE_SUCCESS) {
- CCU_MessageHandler_Run(CUMSG_SUITE_TEARDOWN_FAILED, pSuite, NULL, NULL);
- pSuite->fCleanupError = CU_TRUE;
- pRunSummary->nSuitesFailed++;
- add_failure(&f_failure_list, &f_run_summary, CUF_SuiteCleanupFailed,
- 0, _("Suite cleanup failed."), __FILE__, CU_FUNC, pSuite, pSuite->pCleanupFuncTest);
- }
- }
- }
- }
-
- /* otherwise record inactive suite and failure if appropriate */
- else {
- f_run_summary.nSuitesInactive++;
- if (CU_FALSE != f_failure_on_inactive) {
- add_failure(&f_failure_list, &f_run_summary, CUF_SuiteInactive,
- 0, _("Suite inactive"), __FILE__, CU_FUNC, pSuite, NULL);
- result = CUE_SUITE_INACTIVE;
- }
- /* Call the notification function for the tests if there is one */
- CCU_MessageHandler_Run(CUMSG_TEST_SKIPPED, pSuite, NULL, NULL);
- }
-
- /* if additional failures have occurred... */
- if (pRunSummary->nFailureRecords > nStartFailures) {
- pLastFailure = get_failure_tail(f_failure_list);
- }
- else {
- pLastFailure = NULL; /* no additional failure - set to NULL */
- }
-
- /* run handler for suite completion, if any */
- pSuite->dEnded = CU_get_clock_sec();
- CCU_MessageHandler_Run(CUMSG_SUITE_COMPLETED, pSuite, NULL, pLastFailure);
-
- f_pCurSuite = NULL;
- return result;
-}
-
-/*------------------------------------------------------------------------*/
-/**
- * Runs a specific test.
- * Internal function to run a test case. This includes calling
- * any handler to be run before executing the test, running the
- * test's function (if any), and calling any handler to be run
- * after executing a test. Suite initialization and cleanup functions
- * are not called by this function. A current suite must be set and
- * active (checked by assertion).
- *
- * @param pTest The test to be run (non-NULL).
- * @param pRunSummary The CU_RunSummary to receive the results (non-NULL).
- * @return A CU_ErrorCode indicating the status of the run.
- * @see CU_run_test() for public interface function.
- * @see CU_run_all_tests() for running all suites.
- */
-static CU_ErrorCode run_single_test(CU_pTest pTest, CU_pRunSummary pRunSummary)
-{
- volatile unsigned int nStartFailures;
- /* keep track of the last failure BEFORE running the test */
- volatile CU_pFailureRecord pLastFailure = f_last_failure;
- CU_ErrorCode result = CUE_SUCCESS;
- jmp_buf* buf = NULL;
-
- assert(NULL != f_pCurSuite);
- assert(CU_FALSE != f_pCurSuite->fActive);
- assert(NULL != pTest);
- assert(NULL != pRunSummary);
-
- nStartFailures = pRunSummary->nFailureRecords;
-
- f_pCurTest = pTest;
-
-
- if ((pTest->fSuiteCleanup || pTest->fSuiteSetup)) return CUE_TEST_INACTIVE;
-
- CCU_MessageHandler_Run(CUMSG_TEST_STARTED, f_pCurSuite, f_pCurTest, NULL);
-
- /* run test if it is active */
- if (CU_FALSE != pTest->fActive) {
- buf = CU_CALLOC(1, sizeof(*buf));
- assert(buf && "failed to allocate test jmp_buf");
-
- pTest->dStarted = CU_get_clock_sec();
- if (f_pCurSuite->fSkipped != CU_TRUE) {
-
- if (NULL != f_pCurSuite->pSetUpFunc) {
- /* suite as a test setup, so run it */
- f_pCurSuite->fInTestSetup = CU_TRUE;
- (*f_pCurSuite->pSetUpFunc)();
- f_pCurSuite->fInTestSetup = CU_FALSE;
- }
-
- /* check to see if the setup function skipped */
- if (f_pCurTest->fSkipped != CU_TRUE) {
- /* set jmp_buf and run test */
- pTest->pJumpBuf = buf;
- if (0 == setjmp(*buf)) {
- if (NULL != pTest->pTestFunc) {
- (*pTest->pTestFunc)();
- }
- }
- }
-
- if (NULL != f_pCurSuite->pTearDownFunc) {
- if (!f_pCurSuite->fInTestClean) {
- f_pCurSuite->fInTestClean = CU_TRUE;
- (*f_pCurSuite->pTearDownFunc)();
- f_pCurSuite->fInTestClean = CU_FALSE;
- }
- }
- }
- pTest->dEnded = CU_get_clock_sec();
- pRunSummary->nTestsRun++;
-
- CU_FREE(buf);
- pTest->pJumpBuf = NULL;
- }
- else {
- f_run_summary.nTestsInactive++;
-
- if (CU_FALSE != f_failure_on_inactive) {
- add_failure(&f_failure_list, &f_run_summary, CUF_TestInactive,
- 0, _("Test inactive"), __FILE__, CU_FUNC, f_pCurSuite, f_pCurTest);
- }
- result = CUE_TEST_INACTIVE;
- }
-
- /* if additional failures have occurred... */
- if (pRunSummary->nFailureRecords > nStartFailures) {
- pRunSummary->nTestsFailed++;
- f_pCurTest->uFailedRuns++;
- pLastFailure = get_failure_tail(f_failure_list);
- }
- else {
- pLastFailure = NULL; /* no additional failure - set to NULL */
- }
-
- if (f_pCurTest && f_pCurTest->fSkipped) {
- CCU_MessageHandler_Run(CUMSG_TEST_SKIPPED, f_pCurSuite, f_pCurTest, pLastFailure);
- } else {
- CCU_MessageHandler_Run(CUMSG_TEST_COMPLETED, f_pCurSuite, f_pCurTest, pLastFailure);
- }
-
-
- f_pCurTest = NULL;
-
- return result;
-}
-
-static CU_pFailureRecord get_failure_tail(CU_pFailureRecord pFailureRecord) {
- if (pFailureRecord) {
- while (pFailureRecord->pNext)
- pFailureRecord = pFailureRecord->pNext;
- }
- return pFailureRecord;
-}
-
-/** @} */
-
-#ifdef CUNIT_BUILD_TESTS
-#include "test_cunit.h"
-
-/** Types of framework events tracked by test system. */
-typedef enum TET {
- SUITE_START = 1,
- TEST_START,
- TEST_COMPLETE,
- TEST_SKIPPED,
- SUITE_COMPLETE,
- ALL_TESTS_COMPLETE,
- SUITE_INIT_FAILED,
- SUITE_CLEANUP_FAILED
-} TestEventType;
-
-/** Test event structure for recording details of a framework event. */
-typedef struct TE {
- TestEventType type;
- CU_pSuite pSuite;
- CU_pTest pTest;
- CU_pFailureRecord pFailure;
- struct TE * pNext;
-} TestEvent, * pTestEvent;
-
-static int f_nTestEvents = 0;
-static pTestEvent f_pFirstEvent = NULL;
-
-/** Creates & stores a test event record having the specified details. */
-static void add_test_event(TestEventType type, CU_pSuite psuite,
- CU_pTest ptest, CU_pFailureRecord pfailure)
-{
- pTestEvent pNewEvent = (pTestEvent)malloc(sizeof(TestEvent));
- pTestEvent pNextEvent = f_pFirstEvent;
-
- if (NULL == pNewEvent) {
- fprintf(stderr, "Memory allocation failed in add_test_event().");
- exit(1);
- }
-
- pNewEvent->type = type;
- pNewEvent->pSuite = psuite;
- pNewEvent->pTest = ptest;
- pNewEvent->pFailure = pfailure;
- pNewEvent->pNext = NULL;
-
- if (pNextEvent) {
- while (pNextEvent->pNext) {
- pNextEvent = pNextEvent->pNext;
- }
- pNextEvent->pNext = pNewEvent;
- }
- else {
- f_pFirstEvent = pNewEvent;
- }
- ++f_nTestEvents;
-}
-
-/** Deallocates all test event data. */
-static void clear_test_events(void)
-{
- pTestEvent pCurrentEvent = f_pFirstEvent;
- pTestEvent pNextEvent = NULL;
-
- while (pCurrentEvent) {
- pNextEvent = pCurrentEvent->pNext;
- free(pCurrentEvent);
- pCurrentEvent = pNextEvent;
- }
-
- f_pFirstEvent = NULL;
- f_nTestEvents = 0;
-}
-
-static void suite_start_handler(CU_pSuite pSuite)
-{
- TEST(CU_is_test_running());
- TEST(pSuite == CU_get_current_suite());
- TEST(NULL == CU_get_current_test());
-
- add_test_event(SUITE_START, pSuite, NULL, NULL);
-}
-
-static void test_start_handler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- TEST(CU_is_test_running());
- TEST(pSuite == CU_get_current_suite());
- TEST(pTest == CU_get_current_test());
-
- add_test_event(TEST_START, pSuite, pTest, NULL);
-}
-
-static void test_complete_handler(const CU_pTest pTest, const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- TEST(CU_is_test_running());
- TEST(pSuite == CU_get_current_suite());
- TEST(pTest == CU_get_current_test());
-
- add_test_event(TEST_COMPLETE, pSuite, pTest, pFailure);
-}
-
-static void test_skipped_handler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- TEST(pSuite == CU_get_current_suite());
- TEST(NULL == CU_get_current_test());
-
- add_test_event(TEST_SKIPPED, pSuite, pTest, NULL);
-}
-
-static void suite_complete_handler(const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- TEST(CU_is_test_running());
- TEST(pSuite == CU_get_current_suite());
- TEST(NULL == CU_get_current_test());
-
- add_test_event(SUITE_COMPLETE, pSuite, NULL, pFailure);
-}
-
-static void test_all_complete_handler(const CU_pFailureRecord pFailure)
-{
- TEST(!CU_is_test_running());
-
- add_test_event(ALL_TESTS_COMPLETE, NULL, NULL, pFailure);
-}
-
-static void suite_init_failure_handler(const CU_pSuite pSuite)
-{
- TEST(CU_is_test_running());
- TEST(pSuite == CU_get_current_suite());
-
- add_test_event(SUITE_INIT_FAILED, pSuite, NULL, NULL);
-}
-
-static void suite_cleanup_failure_handler(const CU_pSuite pSuite)
-{
- TEST(CU_is_test_running());
- TEST(pSuite == CU_get_current_suite());
-
- add_test_event(SUITE_CLEANUP_FAILED, pSuite, NULL, NULL);
-}
-
-/**
- * Centralize test result testing - we're going to do it a lot!
- * This is messy since we want to report the calling location upon failure.
- *
- * Via calling test functions tests:
- * CU_get_number_of_suites_run()
- * CU_get_number_of_suites_failed()
- * CU_get_number_of_tests_run()
- * CU_get_number_of_tests_failed()
- * CU_get_number_of_asserts()
- * CU_get_number_of_successes()
- * CU_get_number_of_failures()
- * CU_get_number_of_failure_records()
- * CU_get_run_summary()
- */
-static void do_test_results(unsigned int nSuitesRun,
- unsigned int nSuitesFailed,
- unsigned int nSuitesInactive,
- unsigned int nTestsRun,
- unsigned int nTestsFailed,
- unsigned int nTestsInactive,
- unsigned int nAsserts,
- unsigned int nSuccesses,
- unsigned int nFailures,
- unsigned int nFailureRecords,
- const char *file,
- unsigned int line)
-{
- char msg[500] = {0};
- CU_pRunSummary pRunSummary = CU_get_run_summary();
- unsigned actual_suites_run = CU_get_number_of_suites_run();
- unsigned actual_suites_inactive = CU_get_number_of_suites_inactive();
- unsigned actual_suites_failed = CU_get_number_of_suites_failed();
- unsigned actual_tests_run = CU_get_number_of_tests_run();
- unsigned actual_tests_failed = CU_get_number_of_tests_failed();
- unsigned actual_tests_inactive = CU_get_number_of_tests_inactive();
- unsigned actual_asserts = CU_get_number_of_asserts();
- unsigned actual_successes = CU_get_number_of_successes();
- unsigned actual_failures = CU_get_number_of_failures();
- unsigned actual_failure_records = CU_get_number_of_failure_records();
-
- if (nSuitesRun == actual_suites_run) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_suites_run() (called from %s:%u)",
- nSuitesRun, actual_suites_run, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nSuitesInactive == actual_suites_inactive) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_suites_inactive() (called from %s:%u)",
- nSuitesInactive, actual_suites_inactive, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nSuitesFailed == actual_suites_failed) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_suites_failed() (called from %s:%u)",
- nSuitesFailed, actual_suites_failed, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nTestsRun == actual_tests_run) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_tests_run() (called from %s:%u)",
- nTestsRun, actual_tests_run, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nTestsFailed == actual_tests_failed) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_tests_failed() (called from %s:%u)",
- nTestsFailed, actual_tests_failed, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nTestsInactive == actual_tests_inactive) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_tests_inactive() (called from %s:%u)",
- nTestsInactive, actual_tests_inactive, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nAsserts == actual_asserts) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_asserts() (called from %s:%u)",
- nAsserts, actual_asserts, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nSuccesses == actual_successes) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_successes() (called from %s:%u)",
- nSuccesses, actual_successes, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nFailures == actual_failures) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_failures() (called from %s:%u)",
- nFailures, actual_failures, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (nFailureRecords == actual_failure_records) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_failure_records() (called from %s:%u)",
- nFailureRecords, actual_failure_records, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (pRunSummary->nSuitesRun == actual_suites_run) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_suites_run() (called from %s:%u)",
- pRunSummary->nSuitesRun, actual_suites_run, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (pRunSummary->nSuitesFailed == actual_suites_failed) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_suites_failed() (called from %s:%u)",
- pRunSummary->nSuitesFailed, actual_suites_failed, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (pRunSummary->nTestsRun == actual_tests_run) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_tests_run() (called from %s:%u)",
- pRunSummary->nTestsRun, actual_tests_run, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (pRunSummary->nTestsFailed == actual_tests_failed) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_tests_failed() (called from %s:%u)",
- pRunSummary->nTestsFailed, actual_tests_failed, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (pRunSummary->nAsserts == actual_asserts) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_asserts() (called from %s:%u)",
- pRunSummary->nAsserts, actual_asserts, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (pRunSummary->nAssertsFailed == actual_failures) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_failures() (called from %s:%u)",
- pRunSummary->nAssertsFailed, actual_failures, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-
- if (pRunSummary->nFailureRecords == actual_failure_records) {
- PASS();
- } else {
- snprintf(msg, 499, "%u == (%u) CU_get_number_of_failure_records() (called from %s:%u)",
- pRunSummary->nFailureRecords, actual_failure_records, file, line);
- msg[499] = '\0';
- FAIL(msg);
- }
-}
-
-#define test_results(nSuitesRun, nSuitesFailed, nSuitesInactive, nTestsRun, nTestsFailed, \
- nTestsInactive, nAsserts, nSuccesses, nFailures, nFailureRecords) \
- do_test_results(nSuitesRun, nSuitesFailed, nSuitesInactive, nTestsRun, nTestsFailed, \
- nTestsInactive, nAsserts, nSuccesses, nFailures, nFailureRecords, \
- __FILE__, __LINE__)
-
-static void test_succeed(void) { CU_TEST(CU_TRUE); }
-static void test_fail(void) { CU_TEST(CU_FALSE); }
-static int suite_succeed(void) { return CUE_SUCCESS; }
-static int suite_fail(void) { return CUE_NOMEMORY; }
-
-static CU_BOOL SetUp_Passed;
-
-static void test_succeed_if_setup(void) { CU_TEST(SetUp_Passed); }
-static void test_fail_if_not_setup(void) { CU_TEST(SetUp_Passed); }
-
-static void suite_setup(void) { SetUp_Passed = CU_TRUE; }
-static void suite_teardown(void) { SetUp_Passed = CU_FALSE; }
-
-static void assert_msg_handlers_empty(void) {
- int i;
- for (i = 0; i < CUMSG_MAX; i++){
- TEST(NULL == CCU_MessageHandler_Get(i));
- }
-}
-
-/*-------------------------------------------------*/
-/* tests:
- * CU_set_suite_start_handler()
- * CU_set_test_start_handler()
- * CU_set_test_complete_handler()
- * CU_set_test_skipped_handler()
- * CU_set_suite_complete_handler()
- * CU_set_all_test_complete_handler()
- * CU_set_suite_init_failure_handler()
- * CU_set_suite_cleanup_failure_handler()
- * CU_get_suite_start_handler()
- * CU_get_test_start_handler()
- * CU_get_test_complete_handler()
- * CU_get_test_skipped_handler()
- * CU_get_suite_complete_handler()
- * CU_get_all_test_complete_handler()
- * CU_get_suite_init_failure_handler()
- * CU_get_suite_cleanup_failure_handler()
- * CU_is_test_running()
- * via handlers tests:
- * CU_get_current_suite()
- * CU_get_current_test()
- */
-static void test_message_handlers(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest5 = NULL;
- CU_pTest pTest6 = NULL;
- pTestEvent pEvent = NULL;
-
- TEST(!CU_is_test_running());
-
- /* handlers should be NULL on startup */
- assert_msg_handlers_empty();
-
- /* register some suites and tests */
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- pTest1 = CU_add_test(pSuite1, "test1", test_succeed);
- pTest2 = CU_add_test(pSuite1, "test2", test_fail); /* first failure, also causes first suite failure */
- pTest3 = CU_add_test(pSuite1, "test3", test_succeed);
-
- pSuite2 = CU_add_suite("suite2", suite_fail, NULL);
- CU_add_test(pSuite2, "test4", test_succeed); /* should not execute because suite setup fails */
-
- pSuite3 = CU_add_suite("suite3", suite_succeed, suite_fail); /* second suite failure */
- pTest5 = CU_add_test(pSuite3, "test5", test_fail); /* second failure */
- pTest6 = CU_add_test(pSuite3, "test6", test_fail); /* should not execute because it is disabed */
- CU_set_test_active(pTest6, CU_FALSE);
-
- pSuite4 = CU_add_suite("suite4", NULL, NULL);
- CU_set_suite_active(pSuite4, CU_FALSE); /* disabled suite */
- CU_add_test(pSuite4, "test7", test_fail); /* should not execute because suite is disabled */
- TEST_FATAL(CUE_SUCCESS == CU_get_error());
-
- /* first run tests without handlers set */
- clear_previous_results(&f_run_summary, &f_failure_list);
- clear_test_events();
- CU_run_all_tests();
-
- TEST(!pSuite1->fSetUpError);
- TEST(!pSuite1->fCleanupError);
- TEST(3 == pSuite1->uiNumberOfTests);
- TEST(1 == pSuite1->uiNumberOfTestsFailed);
- TEST(2 == pSuite1->uiNumberOfTestsSuccess);
-
- TEST(pSuite2->fSetUpError);
- TEST(1 == pSuite2->uiNumberOfTests);
-
- TEST(pSuite3->fCleanupError);
- TEST(1 == pSuite3->uiNumberOfTestsFailed);
-
- TEST(0 == f_nTestEvents);
- TEST(NULL == f_pFirstEvent);
- test_results(2,2,1,4,2,1,4,2,2,6);
-
- /* set handlers to local functions */
- CU_set_suite_start_handler(&suite_start_handler);
- CU_set_test_start_handler(&test_start_handler);
- CU_set_test_complete_handler(&test_complete_handler);
- CU_set_test_skipped_handler(&test_skipped_handler);
- CU_set_suite_complete_handler(&suite_complete_handler);
- CU_set_all_test_complete_handler(&test_all_complete_handler);
- CU_set_suite_init_failure_handler(&suite_init_failure_handler);
- CU_set_suite_cleanup_failure_handler(&suite_cleanup_failure_handler);
-
- /* confirm handlers set properly */
- TEST(suite_start_handler == CCU_MessageHandler_Get(CUMSG_SUITE_STARTED)->func.suite_start);
- TEST(test_start_handler == CCU_MessageHandler_Get(CUMSG_TEST_STARTED)->func.test_started);
- TEST(test_complete_handler == CCU_MessageHandler_Get(CUMSG_TEST_COMPLETED)->func.test_completed);
- TEST(test_skipped_handler == CCU_MessageHandler_Get(CUMSG_TEST_SKIPPED)->func.test_skipped);
- TEST(suite_complete_handler == CCU_MessageHandler_Get(CUMSG_SUITE_COMPLETED)->func.suite_completed);
- TEST(test_all_complete_handler == CCU_MessageHandler_Get(CUMSG_ALL_COMPLETED)->func.all_completed);
- TEST(suite_init_failure_handler == CCU_MessageHandler_Get(CUMSG_SUITE_SETUP_FAILED)->func.suite_setup_failed);
- TEST(suite_cleanup_failure_handler == CCU_MessageHandler_Get(CUMSG_SUITE_TEARDOWN_FAILED)->func.suite_teardown_failed);
-
- /* run tests again with handlers set */
- clear_previous_results(&f_run_summary, &f_failure_list);
- clear_test_events();
- CU_run_all_tests();
-
- TEST(21 == f_nTestEvents);
- if (21 == f_nTestEvents) {
- pEvent = f_pFirstEvent;
- TEST(SUITE_START == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_START == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(pTest1 == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_COMPLETE == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(pTest1 == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_START == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(pTest2 == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_COMPLETE == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(pTest2 == pEvent->pTest);
- TEST(NULL != pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_START == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(pTest3 == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_COMPLETE == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(pTest3 == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_COMPLETE == pEvent->type);
- TEST(pSuite1 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL != pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_START == pEvent->type);
- TEST(pSuite2 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_INIT_FAILED == pEvent->type);
- TEST(pSuite2 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_COMPLETE == pEvent->type);
- TEST(pSuite2 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL != pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_START == pEvent->type);
- TEST(pSuite3 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_START == pEvent->type);
- TEST(pSuite3 == pEvent->pSuite);
- TEST(pTest5 == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_COMPLETE == pEvent->type);
- TEST(pSuite3 == pEvent->pSuite);
- TEST(pTest5 == pEvent->pTest);
- TEST(NULL != pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_SKIPPED == pEvent->type);
- TEST(pSuite3 == pEvent->pSuite);
- TEST(pTest6 == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_CLEANUP_FAILED == pEvent->type);
- TEST(pSuite3 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_COMPLETE == pEvent->type);
- TEST(pSuite3 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL != pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_START == pEvent->type);
- TEST(pSuite4 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(TEST_SKIPPED == pEvent->type);
- TEST(pSuite4 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL == pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(SUITE_COMPLETE == pEvent->type);
- TEST(pSuite4 == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL != pEvent->pFailure);
-
- pEvent = pEvent->pNext;
- TEST(ALL_TESTS_COMPLETE == pEvent->type);
- TEST(NULL == pEvent->pSuite);
- TEST(NULL == pEvent->pTest);
- TEST(NULL != pEvent->pFailure);
- if (6 == CU_get_number_of_failure_records()) {
- TEST(NULL != pEvent->pFailure->pNext);
- TEST(NULL != pEvent->pFailure->pNext->pNext);
- TEST(NULL != pEvent->pFailure->pNext->pNext->pNext);
- TEST(NULL != pEvent->pFailure->pNext->pNext->pNext->pNext);
- TEST(NULL != pEvent->pFailure->pNext->pNext->pNext->pNext->pNext);
- TEST(NULL == pEvent->pFailure->pNext->pNext->pNext->pNext->pNext->pNext);
- } else {
- FAIL("Could not check failure records list (wrong number of records).");
- }
- TEST(pEvent->pFailure == CU_get_failure_list());
- }
-
- test_results(2,2,1,4,2,1,4,2,2,6);
-
- /* clear handlers and run again */
- CU_set_suite_start_handler(NULL);
- CU_set_test_start_handler(NULL);
- CU_set_test_complete_handler(NULL);
- CU_set_test_skipped_handler(NULL);
- CU_set_suite_complete_handler(NULL);
- CU_set_all_test_complete_handler(NULL);
- CU_set_suite_init_failure_handler(NULL);
- CU_set_suite_cleanup_failure_handler(NULL);
-
- assert_msg_handlers_empty();
-
- clear_previous_results(&f_run_summary, &f_failure_list);
- clear_test_events();
- CU_run_all_tests();
-
- TEST(0 == f_nTestEvents);
- TEST(NULL == f_pFirstEvent);
- test_results(2,2,1,4,2,1,4,2,2,6);
-
- CU_cleanup_registry();
- clear_test_events();
-}
-
-static CU_BOOL f_exit_called = CU_FALSE;
-
-/* intercept exit for testing of CUEA_ABORT action */
-void test_exit(int status)
-{
- CU_UNREFERENCED_PARAMETER(status); /* not used */
- f_exit_called = CU_TRUE;
-}
-
-
-/*-------------------------------------------------*/
-static void test_CU_fail_on_inactive(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
-
- CU_set_error_action(CUEA_IGNORE);
- CU_initialize_registry();
-
- /* register some suites and tests */
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- pTest1 = CU_add_test(pSuite1, "test1", test_succeed);
- pTest2 = CU_add_test(pSuite1, "test2", test_fail);
- pSuite2 = CU_add_suite("suite2", suite_fail, NULL);
- pTest3 = CU_add_test(pSuite2, "test3", test_succeed);
- pTest4 = CU_add_test(pSuite2, "test4", test_succeed);
-
- /* test initial conditions */
- TEST(CU_TRUE == CU_get_fail_on_inactive());
- TEST(CU_TRUE == pSuite1->fActive);
- TEST(CU_TRUE == pSuite2->fActive);
- TEST(CU_TRUE == pTest1->fActive);
- TEST(CU_TRUE == pTest2->fActive);
- TEST(CU_TRUE == pTest3->fActive);
- TEST(CU_TRUE == pTest4->fActive);
-
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CU_TRUE == CU_get_fail_on_inactive());
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* all suites/tests active */
- test_results(1,1,0,2,1,0,2,1,1,2);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CU_FALSE == CU_get_fail_on_inactive());
- TEST(CUE_SINIT_FAILED == CU_run_all_tests());
- test_results(1,1,0,2,1,0,2,1,1,2);
-
- CU_set_suite_active(pSuite1, CU_FALSE);
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_all_tests()); /* all suites inactive */
- test_results(0,0,2,0,0,0,0,0,0,2);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_all_tests());
- test_results(0,0,2,0,0,0,0,0,0,0);
- CU_set_suite_active(pSuite1, CU_TRUE);
- CU_set_suite_active(pSuite2, CU_TRUE);
-
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_all_tests()); /* some suites inactive */
- test_results(1,0,1,2,1,0,2,1,1,2);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_all_tests());
- test_results(1,0,1,2,1,0,2,1,1,1);
- CU_set_suite_active(pSuite2, CU_TRUE);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest3, CU_FALSE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests()); /* all tests inactive */
- test_results(1,1,0,0,0,2,0,0,0,3);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests());
- test_results(1,1,0,0,0,2,0,0,0,1);
- CU_set_test_active(pTest1, CU_TRUE);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest3, CU_TRUE);
- CU_set_test_active(pTest4, CU_TRUE);
-
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests()); /* some tests inactive */
- test_results(1,1,0,1,0,1,1,1,0,2);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests());
- test_results(1,1,0,1,0,1,1,1,0,1);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest4, CU_TRUE);
-
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests()); /* some suites & tests inactive */
- test_results(1,0,1,1,1,1,1,0,1,3);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_all_tests());
- test_results(1,0,1,1,1,1,1,0,1,1);
- CU_set_suite_active(pSuite2, CU_TRUE);
- CU_set_test_active(pTest1, CU_TRUE);
-
- /* clean up */
- CU_cleanup_registry();
-}
-
-/*-------------------------------------------------*/
-static void test_CU_run_all_tests(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
- CU_pTest pTest5 = NULL;
- CU_pTest pTest6 = NULL;
- CU_pTest pTest7 = NULL;
- CU_pTest pTest8 = NULL;
- CU_pTest pTest9 = NULL;
- CU_pTest pTest10 = NULL;
-
- /* error - uninitialized registry (CUEA_IGNORE) */
- CU_cleanup_registry();
- CU_set_error_action(CUEA_IGNORE);
-
- TEST(CUE_NOREGISTRY == CU_run_all_tests());
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- /* error - uninitialized registry (CUEA_FAIL) */
- CU_cleanup_registry();
- CU_set_error_action(CUEA_FAIL);
-
- TEST(CUE_NOREGISTRY == CU_run_all_tests());
- TEST(CUE_NOREGISTRY == CU_get_error());
-
- /* error - uninitialized registry (CUEA_ABORT) */
- CU_cleanup_registry();
- CU_set_error_action(CUEA_ABORT);
-
- f_exit_called = CU_FALSE;
- CU_run_all_tests();
- TEST(CU_TRUE == f_exit_called);
- f_exit_called = CU_FALSE;
-
- /* run with no suites or tests registered */
- CU_initialize_registry();
-
- CU_set_error_action(CUEA_IGNORE);
- TEST(CUE_SUCCESS == CU_run_all_tests());
- test_results(0,0,0,0,0,0,0,0,0,0);
-
- /* register some suites and tests */
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- pTest1 = CU_add_test(pSuite1, "test1", test_succeed);
- pTest2 = CU_add_test(pSuite1, "test2", test_fail);
- pTest3 = CU_add_test(pSuite1, "test1", test_succeed); /* duplicate test name OK */
- pTest4 = CU_add_test(pSuite1, "test4", test_fail);
- pTest5 = CU_add_test(pSuite1, "test1", test_succeed); /* duplicate test name OK */
- pSuite2 = CU_add_suite("suite2", suite_fail, NULL);
- pTest6 = CU_add_test(pSuite2, "test6", test_succeed);
- pTest7 = CU_add_test(pSuite2, "test7", test_succeed);
- pSuite3 = CU_add_suite("suite1", NULL, NULL); /* duplicate suite name OK */
- pTest8 = CU_add_test(pSuite3, "test8", test_fail);
- pTest9 = CU_add_test(pSuite3, "test9", test_succeed);
- pSuite4 = CU_add_suite("suite4", NULL, suite_fail);
- pTest10 = CU_add_test(pSuite4, "test10", test_succeed);
-
- TEST_FATAL(4 == CU_get_registry()->uiNumberOfSuites);
- TEST_FATAL(10 == CU_get_registry()->uiNumberOfTests);
-
- /* run all tests (CUEA_IGNORE) */
- CU_set_error_action(CUEA_IGNORE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* all suites/tests active */
- test_results(3,2,0,8,3,0,8,5,3,5);
-
- CU_set_suite_active(pSuite1, CU_FALSE);
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_suite_active(pSuite3, CU_FALSE);
- CU_set_suite_active(pSuite4, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_all_tests()); /* suites inactive */
- test_results(0,0,4,0,0,0,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_all_tests());
- test_results(0,0,4,0,0,0,0,0,0,4);
-
- CU_set_suite_active(pSuite1, CU_FALSE);
- CU_set_suite_active(pSuite2, CU_TRUE);
- CU_set_suite_active(pSuite3, CU_TRUE);
- CU_set_suite_active(pSuite4, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* some suites inactive */
- test_results(1,1,2,2,1,0,2,1,1,2);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_all_tests());
- test_results(1,1,2,2,1,0,2,1,1,4);
-
- CU_set_suite_active(pSuite1, CU_TRUE);
- CU_set_suite_active(pSuite2, CU_TRUE);
- CU_set_suite_active(pSuite3, CU_TRUE);
- CU_set_suite_active(pSuite4, CU_TRUE);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest3, CU_FALSE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_test_active(pTest5, CU_FALSE);
- CU_set_test_active(pTest6, CU_FALSE);
- CU_set_test_active(pTest7, CU_FALSE);
- CU_set_test_active(pTest8, CU_FALSE);
- CU_set_test_active(pTest9, CU_FALSE);
- CU_set_test_active(pTest10, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* no tests active */
- test_results(3,2,0,0,0,8,0,0,0,2);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests());
- test_results(3,2,0,0,0,8,0,0,0,10);
-
- CU_set_test_active(pTest1, CU_TRUE);
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest3, CU_TRUE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_test_active(pTest5, CU_TRUE);
- CU_set_test_active(pTest6, CU_FALSE);
- CU_set_test_active(pTest7, CU_TRUE);
- CU_set_test_active(pTest8, CU_FALSE);
- CU_set_test_active(pTest9, CU_TRUE);
- CU_set_test_active(pTest10, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* some tests active */
- test_results(3,2,0,4,0,4,4,4,0,2);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests());
- test_results(3,2,0,4,0,4,4,4,0,6);
-
- CU_set_test_active(pTest1, CU_TRUE);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest3, CU_TRUE);
- CU_set_test_active(pTest4, CU_TRUE);
- CU_set_test_active(pTest5, CU_TRUE);
- CU_set_test_active(pTest6, CU_TRUE);
- CU_set_test_active(pTest7, CU_TRUE);
- CU_set_test_active(pTest8, CU_TRUE);
- CU_set_test_active(pTest9, CU_TRUE);
- CU_set_test_active(pTest10, CU_TRUE);
-
- CU_set_suite_initfunc(pSuite1, &suite_fail);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* change a suite init function */
- CU_set_suite_initfunc(pSuite1, NULL);
- test_results(2,3,0,3,1,0,3,2,1,4);
-
- CU_set_suite_cleanupfunc(pSuite4, NULL);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite4, &suite_fail);
- test_results(3,1,0,8,3,0,8,5,3,4);
-
- CU_set_test_func(pTest2, &test_succeed);
- CU_set_test_func(pTest4, &test_succeed);
- CU_set_test_func(pTest8, &test_succeed);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* change a test function */
- CU_set_test_func(pTest2, &test_fail);
- CU_set_test_func(pTest4, &test_fail);
- CU_set_test_func(pTest8, &test_fail);
- test_results(3,2,0,8,0,0,8,8,0,2);
-
- /* run all tests (CUEA_FAIL) */
- CU_set_error_action(CUEA_FAIL);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* all suites active */
- test_results(1,1,0,5,2,0,5,3,2,3);
-
- CU_set_suite_active(pSuite1, CU_TRUE);
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_suite_active(pSuite3, CU_FALSE);
- CU_set_suite_active(pSuite4, CU_TRUE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SCLEAN_FAILED == CU_run_all_tests()); /* some suites inactive */
- test_results(2,1,2,6,2,0,6,4,2,3);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_all_tests());
- test_results(1,0,1,5,2,0,5,3,2,3);
-
- CU_set_suite_active(pSuite1, CU_TRUE);
- CU_set_suite_active(pSuite2, CU_TRUE);
- CU_set_suite_active(pSuite3, CU_TRUE);
- CU_set_suite_active(pSuite4, CU_TRUE);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest3, CU_FALSE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_test_active(pTest5, CU_FALSE);
- CU_set_test_active(pTest6, CU_FALSE);
- CU_set_test_active(pTest7, CU_FALSE);
- CU_set_test_active(pTest8, CU_FALSE);
- CU_set_test_active(pTest9, CU_FALSE);
- CU_set_test_active(pTest10, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* no tests active */
- test_results(1,1,0,0,0,5,0,0,0,1);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests());
- test_results(1,0,0,0,0,1,0,0,0,1);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest3, CU_FALSE);
- CU_set_test_active(pTest4, CU_TRUE);
- CU_set_test_active(pTest5, CU_FALSE);
- CU_set_test_active(pTest6, CU_TRUE);
- CU_set_test_active(pTest7, CU_FALSE);
- CU_set_test_active(pTest8, CU_TRUE);
- CU_set_test_active(pTest9, CU_FALSE);
- CU_set_test_active(pTest10, CU_TRUE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* some tests active */
- test_results(1,1,0,2,2,3,2,0,2,3);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests());
- test_results(1,0,0,0,0,1,0,0,0,1);
-
- CU_set_test_active(pTest1, CU_TRUE);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest3, CU_TRUE);
- CU_set_test_active(pTest4, CU_TRUE);
- CU_set_test_active(pTest5, CU_TRUE);
- CU_set_test_active(pTest6, CU_TRUE);
- CU_set_test_active(pTest7, CU_TRUE);
- CU_set_test_active(pTest8, CU_TRUE);
- CU_set_test_active(pTest9, CU_TRUE);
- CU_set_test_active(pTest10, CU_TRUE);
-
- CU_set_suite_initfunc(pSuite2, NULL);
- TEST(CUE_SCLEAN_FAILED == CU_run_all_tests()); /* change a suite init function */
- CU_set_suite_initfunc(pSuite2, &suite_fail);
- test_results(4,1,0,10,3,0,10,7,3,4);
-
- CU_set_suite_cleanupfunc(pSuite1, &suite_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_all_tests()); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite1, NULL);
- test_results(1,1,0,5,2,0,5,3,2,3);
-
- CU_set_test_func(pTest1, &test_fail);
- CU_set_test_func(pTest3, &test_fail);
- CU_set_test_func(pTest5, &test_fail);
- CU_set_test_func(pTest9, &test_fail);
- CU_set_test_func(pTest10, &test_fail);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* change a test function */
- CU_set_test_func(pTest1, &test_succeed);
- CU_set_test_func(pTest3, &test_succeed);
- CU_set_test_func(pTest5, &test_succeed);
- CU_set_test_func(pTest9, &test_succeed);
- CU_set_test_func(pTest10, &test_succeed);
- test_results(1,1,0,5,5,0,5,0,5,6);
-
- /* run all tests (CUEA_ABORT) */
- f_exit_called = CU_FALSE;
- CU_set_error_action(CUEA_ABORT);
- CU_set_suite_active(pSuite1, CU_TRUE);
- CU_set_suite_active(pSuite2, CU_TRUE);
- CU_set_suite_active(pSuite3, CU_TRUE);
- CU_set_suite_active(pSuite4, CU_TRUE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* all suites active */
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,5,2,0,5,3,2,3);
-
- CU_set_suite_active(pSuite1, CU_FALSE);
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_suite_active(pSuite3, CU_FALSE);
- CU_set_suite_active(pSuite4, CU_FALSE);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_all_tests()); /* no suites active, so no abort() */
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,4,0,0,0,0,0,0,0);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_all_tests());
- TEST(CU_TRUE == f_exit_called);
- test_results(0,0,1,0,0,0,0,0,0,1);
-
- CU_set_suite_active(pSuite1, CU_TRUE);
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_suite_active(pSuite3, CU_TRUE);
- CU_set_suite_active(pSuite4, CU_TRUE);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SCLEAN_FAILED == CU_run_all_tests()); /* some suites active */
- TEST(CU_TRUE == f_exit_called);
- test_results(3,1,1,8,3,0,8,5,3,4);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_all_tests());
- TEST(CU_TRUE == f_exit_called);
- test_results(1,0,1,5,2,0,5,3,2,3);
-
- CU_set_suite_active(pSuite1, CU_TRUE);
- CU_set_suite_active(pSuite2, CU_TRUE);
- CU_set_suite_active(pSuite3, CU_TRUE);
- CU_set_suite_active(pSuite4, CU_TRUE);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest3, CU_FALSE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_test_active(pTest5, CU_FALSE);
- CU_set_test_active(pTest6, CU_FALSE);
- CU_set_test_active(pTest7, CU_FALSE);
- CU_set_test_active(pTest8, CU_FALSE);
- CU_set_test_active(pTest9, CU_FALSE);
- CU_set_test_active(pTest10, CU_FALSE);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* no tests active */
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,0,0,5,0,0,0,1);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests());
- TEST(CU_TRUE == f_exit_called);
- test_results(1,0,0,0,0,1,0,0,0,1);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest3, CU_FALSE);
- CU_set_test_active(pTest4, CU_TRUE);
- CU_set_test_active(pTest5, CU_FALSE);
- CU_set_test_active(pTest6, CU_TRUE);
- CU_set_test_active(pTest7, CU_FALSE);
- CU_set_test_active(pTest8, CU_TRUE);
- CU_set_test_active(pTest9, CU_FALSE);
- CU_set_test_active(pTest10, CU_TRUE);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* some tests active */
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,2,2,3,2,0,2,3);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_all_tests());
- TEST(CU_TRUE == f_exit_called);
- test_results(1,0,0,0,0,1,0,0,0,1);
-
- CU_set_test_active(pTest1, CU_TRUE);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest3, CU_TRUE);
- CU_set_test_active(pTest4, CU_TRUE);
- CU_set_test_active(pTest5, CU_TRUE);
- CU_set_test_active(pTest6, CU_TRUE);
- CU_set_test_active(pTest7, CU_TRUE);
- CU_set_test_active(pTest8, CU_TRUE);
- CU_set_test_active(pTest9, CU_TRUE);
- CU_set_test_active(pTest10, CU_TRUE);
-
- f_exit_called = CU_FALSE;
- CU_set_suite_initfunc(pSuite1, &suite_fail);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* change a suite init function */
- CU_set_suite_initfunc(pSuite1, NULL);
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- f_exit_called = CU_FALSE;
- CU_set_suite_cleanupfunc(pSuite1, &suite_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_all_tests()); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite1, NULL);
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,5,2,0,5,3,2,3);
-
- f_exit_called = CU_FALSE;
- CU_set_test_func(pTest1, &test_fail);
- CU_set_test_func(pTest3, &test_fail);
- CU_set_test_func(pTest5, &test_fail);
- CU_set_test_func(pTest9, &test_fail);
- CU_set_test_func(pTest10, &test_fail);
- TEST(CUE_SINIT_FAILED == CU_run_all_tests()); /* change a test function */
- CU_set_test_func(pTest1, &test_succeed);
- CU_set_test_func(pTest3, &test_succeed);
- CU_set_test_func(pTest5, &test_succeed);
- CU_set_test_func(pTest9, &test_succeed);
- CU_set_test_func(pTest10, &test_succeed);
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,5,5,0,5,0,5,6);
-
- /* clean up after testing */
- CU_set_error_action(CUEA_IGNORE);
- CU_cleanup_registry();
-}
-
-
-/*-------------------------------------------------*/
-static void test_CU_run_suite(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pSuite pSuite4 = NULL;
- CU_pSuite pSuite5 = NULL;
- CU_pSuite pSuite6 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
- CU_pTest pTest5 = NULL;
- CU_pTest pTest8 = NULL;
- CU_pTest pTest9 = NULL;
-
- /* error - NULL suite (CUEA_IGNORE) */
- CU_set_error_action(CUEA_IGNORE);
-
- TEST(CUE_NOSUITE == CU_run_suite(NULL));
- TEST(CUE_NOSUITE == CU_get_error());
-
- /* error - NULL suite (CUEA_FAIL) */
- CU_set_error_action(CUEA_FAIL);
-
- TEST(CUE_NOSUITE == CU_run_suite(NULL));
- TEST(CUE_NOSUITE == CU_get_error());
-
- /* error - NULL suite (CUEA_ABORT) */
- CU_set_error_action(CUEA_ABORT);
-
- f_exit_called = CU_FALSE;
- CU_run_suite(NULL);
- TEST(CU_TRUE == f_exit_called);
- f_exit_called = CU_FALSE;
-
- /* register some suites and tests */
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- pTest1 = CU_add_test(pSuite1, "test1", test_succeed);
- pTest2 = CU_add_test(pSuite1, "test2", test_fail);
- pTest3 = CU_add_test(pSuite1, "test3", test_succeed);
- pTest4 = CU_add_test(pSuite1, "test4", test_fail);
- pTest5 = CU_add_test(pSuite1, "test5", test_succeed);
- pSuite2 = CU_add_suite("suite1", suite_fail, NULL); /* duplicate suite name OK */
- CU_add_test(pSuite2, "test6", test_succeed);
- CU_add_test(pSuite2, "test7", test_succeed);
- pSuite3 = CU_add_suite("suite3", NULL, suite_fail);
- pTest8 = CU_add_test(pSuite3, "test8", test_fail);
- pTest9 = CU_add_test(pSuite3, "test8", test_succeed); /* duplicate test name OK */
- pSuite4 = CU_add_suite("suite4", NULL, NULL);
- pSuite5 = CU_add_suite_with_setup_and_teardown("suite5", NULL, NULL, suite_setup, suite_teardown);
- CU_add_test(pSuite5, "test10", test_succeed_if_setup);
- pSuite6 = CU_add_suite("suite6", NULL, NULL);
- CU_add_test(pSuite6, "test11", test_fail_if_not_setup);
-
- TEST_FATAL(6 == CU_get_registry()->uiNumberOfSuites);
- TEST_FATAL(11 == CU_get_registry()->uiNumberOfTests);
-
- /* run each suite (CUEA_IGNORE) */
- CU_set_error_action(CUEA_IGNORE);
-
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* suites/tests active */
- test_results(1,0,0,5,2,0,5,3,2,2);
-
- TEST(CUE_SINIT_FAILED == CU_run_suite(pSuite2));
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3));
- test_results(1,1,0,2,1,0,2,1,1,2);
-
- TEST(CUE_SUCCESS == CU_run_suite(pSuite4));
- test_results(1,0,0,0,0,0,0,0,0,0);
-
- TEST(CUE_SUCCESS == CU_run_suite(pSuite5));
- test_results(1,0,0,1,0,0,1,1,0,0);
-
- TEST(CUE_SUCCESS == CU_run_suite(pSuite6));
- test_results(1,0,0,1,1,0,1,0,1,1);
-
- CU_set_suite_active(pSuite3, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite3)); /* suite inactive */
- test_results(0,0,1,0,0,0,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_suite(pSuite3));
- test_results(0,0,1,0,0,0,0,0,0,1);
- CU_set_suite_active(pSuite3, CU_TRUE);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest3, CU_FALSE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_test_active(pTest5, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* all tests inactive */
- test_results(1,0,0,0,0,5,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_suite(pSuite1));
- test_results(1,0,0,0,0,5,0,0,0,5);
-
- CU_set_test_active(pTest1, CU_TRUE);
- CU_set_test_active(pTest2, CU_FALSE);
- CU_set_test_active(pTest3, CU_TRUE);
- CU_set_test_active(pTest4, CU_FALSE);
- CU_set_test_active(pTest5, CU_TRUE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* some tests inactive */
- test_results(1,0,0,3,0,2,3,3,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_suite(pSuite1));
- test_results(1,0,0,3,0,2,3,3,0,2);
- CU_set_test_active(pTest2, CU_TRUE);
- CU_set_test_active(pTest4, CU_TRUE);
-
- CU_set_suite_initfunc(pSuite1, &suite_fail);
- TEST(CUE_SINIT_FAILED == CU_run_suite(pSuite1)); /* change a suite init function */
- CU_set_suite_initfunc(pSuite1, NULL);
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- CU_set_suite_cleanupfunc(pSuite1, &suite_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite1)); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite1, NULL);
- test_results(1,1,0,5,2,0,5,3,2,3);
-
- CU_set_test_func(pTest1, &test_fail);
- CU_set_test_func(pTest3, &test_fail);
- CU_set_test_func(pTest5, &test_fail);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* change a test function */
- CU_set_test_func(pTest1, &test_succeed);
- CU_set_test_func(pTest3, &test_succeed);
- CU_set_test_func(pTest5, &test_succeed);
- test_results(1,0,0,5,5,0,5,0,5,5);
-
- /* run each suite (CUEA_FAIL) */
- CU_set_error_action(CUEA_FAIL);
-
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* suite active */
- test_results(1,0,0,5,2,0,5,3,2,2);
-
- TEST(CUE_SINIT_FAILED == CU_run_suite(pSuite2));
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3));
- test_results(1,1,0,2,1,0,2,1,1,2);
-
- TEST(CUE_SUCCESS == CU_run_suite(pSuite4));
- test_results(1,0,0,0,0,0,0,0,0,0);
-
- CU_set_suite_active(pSuite1, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* suite inactive */
- test_results(0,0,1,0,0,0,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_suite(pSuite1));
- test_results(0,0,1,0,0,0,0,0,0,1);
- CU_set_suite_active(pSuite1, CU_TRUE);
-
- CU_set_test_active(pTest8, CU_FALSE);
- CU_set_test_active(pTest9, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3)); /* all tests inactive */
- test_results(1,1,0,0,0,2,0,0,0,1);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3));
- test_results(1,1,0,0,0,1,0,0,0,2);
-
- CU_set_test_active(pTest8, CU_TRUE);
- CU_set_test_active(pTest9, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3)); /* some tests inactive */
- test_results(1,1,0,1,1,1,1,0,1,2);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3));
- test_results(1,1,0,1,1,1,1,0,1,3);
- CU_set_test_active(pTest9, CU_TRUE);
-
- CU_set_suite_initfunc(pSuite2, NULL);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite2)); /* change a suite init function */
- CU_set_suite_initfunc(pSuite2, &suite_fail);
- test_results(1,0,0,2,0,0,2,2,0,0);
-
- CU_set_suite_cleanupfunc(pSuite1, &suite_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite1)); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite1, NULL);
- test_results(1,1,0,5,2,0,5,3,2,3);
-
- CU_set_test_func(pTest2, &test_succeed);
- CU_set_test_func(pTest4, &test_succeed);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* change a test function */
- CU_set_test_func(pTest2, &test_fail);
- CU_set_test_func(pTest4, &test_fail);
- test_results(1,0,0,5,0,0,5,5,0,0);
-
- /* run each suite (CUEA_ABORT) */
- CU_set_error_action(CUEA_ABORT);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SUCCESS == CU_run_suite(pSuite1)); /* suite active */
- TEST(CU_FALSE == f_exit_called);
- test_results(1,0,0,5,2,0,5,3,2,2);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SINIT_FAILED == CU_run_suite(pSuite2));
- TEST(CU_TRUE == f_exit_called);
- f_exit_called = CU_FALSE;
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3));
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,2,1,0,2,1,1,2);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SUCCESS == CU_run_suite(pSuite4));
- TEST(CU_FALSE == f_exit_called);
- test_results(1,0,0,0,0,0,0,0,0,0);
-
- CU_set_suite_active(pSuite2, CU_FALSE);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUCCESS == CU_run_suite(pSuite2)); /* suite inactive, but not a failure */
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,1,0,0,0,0,0,0,0);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_suite(pSuite2));
- TEST(CU_TRUE == f_exit_called);
- test_results(0,0,1,0,0,0,0,0,0,1);
- CU_set_suite_active(pSuite2, CU_TRUE);
-
- CU_set_test_active(pTest8, CU_FALSE);
- CU_set_test_active(pTest9, CU_FALSE);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3)); /* all tests inactive */
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,0,0,2,0,0,0,1);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3));
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,0,0,1,0,0,0,2);
-
- CU_set_test_active(pTest8, CU_FALSE);
- CU_set_test_active(pTest9, CU_TRUE);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3)); /* some tests inactive */
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,1,0,1,1,1,0,1);
- f_exit_called = CU_FALSE;
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3));
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,0,0,1,0,0,0,2);
- CU_set_test_active(pTest8, CU_TRUE);
-
- f_exit_called = CU_FALSE;
- CU_set_suite_initfunc(pSuite1, &suite_fail);
- TEST(CUE_SINIT_FAILED == CU_run_suite(pSuite1)); /* change a suite init function */
- CU_set_suite_initfunc(pSuite1, NULL);
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- f_exit_called = CU_FALSE;
- CU_set_suite_cleanupfunc(pSuite1, &suite_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite1)); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite1, NULL);
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,5,2,0,5,3,2,3);
-
- f_exit_called = CU_FALSE;
- CU_set_test_func(pTest8, &test_succeed);
- CU_set_test_func(pTest9, &test_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_suite(pSuite3)); /* change a test function */
- CU_set_test_func(pTest8, &test_fail);
- CU_set_test_func(pTest9, &test_succeed);
- TEST(CU_TRUE == f_exit_called);
- test_results(1,1,0,2,1,0,2,1,1,2);
-
- /* clean up after testing */
- CU_set_error_action(CUEA_IGNORE);
- CU_cleanup_registry();
-}
-
-/*-------------------------------------------------*/
-static void test_CU_run_test(void)
-{
- CU_pSuite pSuite1 = NULL;
- CU_pSuite pSuite2 = NULL;
- CU_pSuite pSuite3 = NULL;
- CU_pTest pTest1 = NULL;
- CU_pTest pTest2 = NULL;
- CU_pTest pTest3 = NULL;
- CU_pTest pTest4 = NULL;
- CU_pTest pTest5 = NULL;
- CU_pTest pTest6 = NULL;
- CU_pTest pTest7 = NULL;
- CU_pTest pTest8 = NULL;
- CU_pTest pTest9 = NULL;
-
- /* register some suites and tests */
- CU_initialize_registry();
- pSuite1 = CU_add_suite("suite1", NULL, NULL);
- pTest1 = CU_add_test(pSuite1, "test1", test_succeed);
- pTest2 = CU_add_test(pSuite1, "test2", test_fail);
- pTest3 = CU_add_test(pSuite1, "test3", test_succeed);
- pTest4 = CU_add_test(pSuite1, "test4", test_fail);
- pTest5 = CU_add_test(pSuite1, "test5", test_succeed);
- pSuite2 = CU_add_suite("suite2", suite_fail, NULL);
- pTest6 = CU_add_test(pSuite2, "test6", test_succeed);
- pTest7 = CU_add_test(pSuite2, "test7", test_succeed);
- pSuite3 = CU_add_suite("suite2", NULL, suite_fail); /* duplicate suite name OK */
- pTest8 = CU_add_test(pSuite3, "test8", test_fail);
- pTest9 = CU_add_test(pSuite3, "test8", test_succeed); /* duplicate test name OK */
-
- TEST_FATAL(3 == CU_get_registry()->uiNumberOfSuites);
- TEST_FATAL(9 == CU_get_registry()->uiNumberOfTests);
-
- /* error - NULL suite (CUEA_IGNORE) */
- CU_set_error_action(CUEA_IGNORE);
-
- TEST(CUE_NOSUITE == CU_run_test(NULL, pTest1));
- TEST(CUE_NOSUITE == CU_get_error());
-
- /* error - NULL suite (CUEA_FAIL) */
- CU_set_error_action(CUEA_FAIL);
-
- TEST(CUE_NOSUITE == CU_run_test(NULL, pTest1));
- TEST(CUE_NOSUITE == CU_get_error());
-
- /* error - NULL test (CUEA_ABORT) */
- CU_set_error_action(CUEA_ABORT);
-
- f_exit_called = CU_FALSE;
- CU_run_test(NULL, pTest1);
- TEST(CU_TRUE == f_exit_called);
- f_exit_called = CU_FALSE;
-
- /* error - NULL test (CUEA_IGNORE) */
- CU_set_error_action(CUEA_IGNORE);
-
- TEST(CUE_NOTEST == CU_run_test(pSuite1, NULL));
- TEST(CUE_NOTEST == CU_get_error());
-
- /* error - NULL test (CUEA_FAIL) */
- CU_set_error_action(CUEA_FAIL);
-
- TEST(CUE_NOTEST == CU_run_test(pSuite1, NULL));
- TEST(CUE_NOTEST == CU_get_error());
-
- /* error - NULL test (CUEA_ABORT) */
- CU_set_error_action(CUEA_ABORT);
-
- f_exit_called = CU_FALSE;
- CU_run_test(pSuite1, NULL);
- TEST(CU_TRUE == f_exit_called);
- f_exit_called = CU_FALSE;
-
- /* error - test not in suite (CUEA_IGNORE) */
- CU_set_error_action(CUEA_IGNORE);
-
- TEST(CUE_TEST_NOT_IN_SUITE == CU_run_test(pSuite3, pTest1));
- TEST(CUE_TEST_NOT_IN_SUITE == CU_get_error());
-
- /* error - NULL test (CUEA_FAIL) */
- CU_set_error_action(CUEA_FAIL);
-
- TEST(CUE_TEST_NOT_IN_SUITE == CU_run_test(pSuite3, pTest1));
- TEST(CUE_TEST_NOT_IN_SUITE == CU_get_error());
-
- /* error - NULL test (CUEA_ABORT) */
- CU_set_error_action(CUEA_ABORT);
-
- f_exit_called = CU_FALSE;
- CU_run_test(pSuite3, pTest1);
- TEST(CU_TRUE == f_exit_called);
- f_exit_called = CU_FALSE;
-
- /* run each test (CUEA_IGNORE) */
- CU_set_error_action(CUEA_IGNORE);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest1)); /* all suite/tests active */
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest2));
- test_results(0,0,0,1,1,0,1,0,1,1);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest3));
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest4));
- test_results(0,0,0,1,1,0,1,0,1,1);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest5));
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest6));
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest7));
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest8));
- test_results(0,1,0,1,1,0,1,0,1,2);
-
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest9));
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- CU_set_suite_active(pSuite1, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUITE_INACTIVE == CU_run_test(pSuite1, pTest1)); /* suite inactive */
- test_results(0,0,1,0,0,0,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_test(pSuite1, pTest1));
- test_results(0,0,1,0,0,0,0,0,0,1);
- CU_set_suite_active(pSuite1, CU_TRUE);
-
- CU_set_test_active(pTest1, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_TEST_INACTIVE == CU_run_test(pSuite1, pTest1)); /* test inactive */
- test_results(0,0,0,0,0,1,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_TEST_INACTIVE == CU_run_test(pSuite1, pTest1));
- test_results(0,0,0,0,1,1,0,0,0,1);
- CU_set_test_active(pTest1, CU_TRUE);
-
- CU_set_suite_initfunc(pSuite1, &suite_fail);
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite1, pTest1)); /* change a suite init function */
- CU_set_suite_initfunc(pSuite1, NULL);
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- CU_set_suite_cleanupfunc(pSuite1, &suite_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite1, pTest1)); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite1, NULL);
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- CU_set_test_func(pTest8, &test_succeed);
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest8)); /* change a test function */
- CU_set_test_func(pTest8, &test_fail);
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- /* run each test (CUEA_FAIL) */
- CU_set_error_action(CUEA_FAIL);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest1)); /* suite/test active */
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest2));
- test_results(0,0,0,1,1,0,1,0,1,1);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest3));
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest4));
- test_results(0,0,0,1,1,0,1,0,1,1);
-
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest5));
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest6));
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest7));
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest8));
- test_results(0,1,0,1,1,0,1,0,1,2);
-
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest9));
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SUITE_INACTIVE == CU_run_test(pSuite2, pTest7)); /* suite inactive */
- test_results(0,0,1,0,0,0,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SUITE_INACTIVE == CU_run_test(pSuite2, pTest7));
- test_results(0,0,1,0,0,0,0,0,0,1);
- CU_set_suite_active(pSuite2, CU_TRUE);
-
- CU_set_test_active(pTest7, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest7)); /* test inactive */
- test_results(0,1,0,0,0,0,0,0,0,1);
- CU_set_fail_on_inactive(CU_TRUE);
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest7));
- test_results(0,1,0,0,0,0,0,0,0,1);
- CU_set_test_active(pTest7, CU_TRUE);
-
- CU_set_suite_initfunc(pSuite2, NULL);
- TEST(CUE_SUCCESS == CU_run_test(pSuite2, pTest6)); /* change a suite init function */
- CU_set_suite_initfunc(pSuite2, &suite_fail);
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- CU_set_suite_cleanupfunc(pSuite3, NULL);
- TEST(CUE_SUCCESS == CU_run_test(pSuite3, pTest8)); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite3, &suite_fail);
- test_results(0,0,0,1,1,0,1,0,1,1);
-
- CU_set_test_func(pTest8, &test_succeed);
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest8)); /* change a test function */
- CU_set_test_func(pTest8, &test_fail);
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- /* run each test (CUEA_ABORT) */
- CU_set_error_action(CUEA_ABORT);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest1));
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest2));
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,0,1,1,0,1,0,1,1);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest3));
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest4));
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,0,1,1,0,1,0,1,1);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SUCCESS == CU_run_test(pSuite1, pTest5));
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest6));
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest7));
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,0,0,0,0,0,0,1);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest8));
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,1,1,0,1,0,1,2);
-
- f_exit_called = CU_FALSE;
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest9));
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- CU_set_suite_active(pSuite2, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- f_exit_called = CU_FALSE;
- TEST(CUE_SUITE_INACTIVE == CU_run_test(pSuite2, pTest6)); /* suite inactive */
- TEST(CU_TRUE == f_exit_called);
- test_results(0,0,1,0,0,0,0,0,0,0);
- CU_set_fail_on_inactive(CU_TRUE);
- f_exit_called = CU_FALSE;
- TEST(CUE_SUITE_INACTIVE == CU_run_test(pSuite2, pTest6));
- TEST(CU_TRUE == f_exit_called);
- test_results(0,0,1,0,0,0,0,0,0,1);
- CU_set_suite_active(pSuite2, CU_TRUE);
-
- CU_set_test_active(pTest6, CU_FALSE);
- CU_set_fail_on_inactive(CU_FALSE);
- f_exit_called = CU_FALSE;
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest6)); /* test inactive */
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,0,0,0,0,0,0,1);
- CU_set_fail_on_inactive(CU_TRUE);
- f_exit_called = CU_FALSE;
- TEST(CUE_SINIT_FAILED == CU_run_test(pSuite2, pTest6));
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,0,0,0,0,0,0,1);
- CU_set_test_active(pTest6, CU_TRUE);
-
- f_exit_called = CU_FALSE;
- CU_set_suite_initfunc(pSuite2, NULL);
- TEST(CUE_SUCCESS == CU_run_test(pSuite2, pTest6)); /* change a suite init function */
- CU_set_suite_initfunc(pSuite2, &suite_fail);
- TEST(CU_FALSE == f_exit_called);
- test_results(0,0,0,1,0,0,1,1,0,0);
-
- f_exit_called = CU_FALSE;
- CU_set_suite_cleanupfunc(pSuite1, &suite_fail);
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite1, pTest1)); /* change a suite cleanup function */
- CU_set_suite_cleanupfunc(pSuite1, NULL);
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- f_exit_called = CU_FALSE;
- CU_set_test_func(pTest8, &test_succeed);
- TEST(CUE_SCLEAN_FAILED == CU_run_test(pSuite3, pTest8)); /* change a test function */
- CU_set_test_func(pTest8, &test_fail);
- TEST(CU_TRUE == f_exit_called);
- test_results(0,1,0,1,0,0,1,1,0,1);
-
- /* clean up after testing */
- CU_set_error_action(CUEA_IGNORE);
- CU_cleanup_registry();
-}
-
-/*-------------------------------------------------*/
-/* tests CU_assertImplementation()
- * CU_get_failure_list()
- * CU_clear_previous_results()
- */
-static void test_CU_assertImplementation(void)
-{
- CU_Test dummy_test;
- CU_Suite dummy_suite;
- CU_pFailureRecord pFailure1 = NULL;
- CU_pFailureRecord pFailure2 = NULL;
- CU_pFailureRecord pFailure3 = NULL;
- CU_pFailureRecord pFailure4 = NULL;
- CU_pFailureRecord pFailure5 = NULL;
- CU_pFailureRecord pFailure6 = NULL;
-
- CU_clear_previous_results();
-
- TEST(NULL == CU_get_failure_list());
- TEST(0 == CU_get_number_of_asserts());
- TEST(0 == CU_get_number_of_failures());
- TEST(0 == CU_get_number_of_failure_records());
-
- /* fool CU_assertImplementation into thinking test run is in progress */
- f_pCurTest = &dummy_test;
- f_pCurSuite = &dummy_suite;
-
- /* asserted value is CU_TRUE*/
- TEST(CU_TRUE == CU_assertImplementation(CU_TRUE, 100, "Nothing happened 0.", "dummy0.c", "dummy_func0", CU_FALSE));
-
- TEST(NULL == CU_get_failure_list());
- TEST(1 == CU_get_number_of_asserts());
- TEST(0 == CU_get_number_of_failures());
- TEST(0 == CU_get_number_of_failure_records());
-
- TEST(CU_TRUE == CU_assertImplementation(CU_TRUE, 101, "Nothing happened 1.", "dummy1.c", "dummy_func1", CU_FALSE));
-
- TEST(NULL == CU_get_failure_list());
- TEST(2 == CU_get_number_of_asserts());
- TEST(0 == CU_get_number_of_failures());
- TEST(0 == CU_get_number_of_failure_records());
-
- /* asserted value is CU_FALSE */
- TEST(CU_FALSE == CU_assertImplementation(CU_FALSE, 102, "Something happened 2.", "dummy2.c", "dummy_func2", CU_FALSE));
-
- TEST(NULL != CU_get_failure_list());
- TEST(3 == CU_get_number_of_asserts());
- TEST(1 == CU_get_number_of_failures());
- TEST(1 == CU_get_number_of_failure_records());
-
- TEST(CU_FALSE == CU_assertImplementation(CU_FALSE, 103, "Something happened 3.", "dummy3.c", "dummy_func3", CU_FALSE));
-
- TEST(NULL != CU_get_failure_list());
- TEST(4 == CU_get_number_of_asserts());
- TEST(2 == CU_get_number_of_failures());
- TEST(2 == CU_get_number_of_failure_records());
-
- TEST(CU_FALSE == CU_assertImplementation(CU_FALSE, 104, "Something happened 4.", "dummy4.c", "dummy_func4", CU_FALSE));
-
- TEST(NULL != CU_get_failure_list());
- TEST(5 == CU_get_number_of_asserts());
- TEST(3 == CU_get_number_of_failures());
- TEST(3 == CU_get_number_of_failure_records());
-
- if (3 == CU_get_number_of_failure_records()) {
- pFailure1 = CU_get_failure_list();
- TEST(102 == pFailure1->uiLineNumber);
- TEST(!strcmp("dummy2.c", pFailure1->strFileName));
- TEST(!strcmp("dummy_func2", pFailure1->strFunction));
- TEST(!strcmp("Something happened 2.", pFailure1->strCondition));
- TEST(&dummy_test == pFailure1->pTest);
- TEST(&dummy_suite == pFailure1->pSuite);
- TEST(NULL != pFailure1->pNext);
- TEST(NULL == pFailure1->pPrev);
-
- pFailure2 = pFailure1->pNext;
- TEST(103 == pFailure2->uiLineNumber);
- TEST(!strcmp("dummy3.c", pFailure2->strFileName));
- TEST(!strcmp("dummy_func3", pFailure2->strFunction));
- TEST(!strcmp("Something happened 3.", pFailure2->strCondition));
- TEST(&dummy_test == pFailure2->pTest);
- TEST(&dummy_suite == pFailure2->pSuite);
- TEST(NULL != pFailure2->pNext);
- TEST(pFailure1 == pFailure2->pPrev);
-
- pFailure3 = pFailure2->pNext;
- TEST(104 == pFailure3->uiLineNumber);
- TEST(!strcmp("dummy4.c", pFailure3->strFileName));
- TEST(!strcmp("dummy_func4", pFailure3->strFunction));
- TEST(!strcmp("Something happened 4.", pFailure3->strCondition));
- TEST(&dummy_test == pFailure3->pTest);
- TEST(&dummy_suite == pFailure3->pSuite);
- TEST(NULL == pFailure3->pNext);
- TEST(pFailure2 == pFailure3->pPrev);
- }
- else
- FAIL("Unexpected number of failure records.");
-
- /* confirm destruction of failure records */
- pFailure4 = pFailure1;
- pFailure5 = pFailure2;
- pFailure6 = pFailure3;
- TEST(0 != test_cunit_get_n_memevents(pFailure4));
- TEST(test_cunit_get_n_allocations(pFailure4) != test_cunit_get_n_deallocations(pFailure4));
- TEST(0 != test_cunit_get_n_memevents(pFailure5));
- TEST(test_cunit_get_n_allocations(pFailure5) != test_cunit_get_n_deallocations(pFailure5));
- TEST(0 != test_cunit_get_n_memevents(pFailure6));
- TEST(test_cunit_get_n_allocations(pFailure6) != test_cunit_get_n_deallocations(pFailure6));
-
- CU_clear_previous_results();
- TEST(0 != test_cunit_get_n_memevents(pFailure4));
- TEST(test_cunit_get_n_allocations(pFailure4) == test_cunit_get_n_deallocations(pFailure4));
- TEST(0 != test_cunit_get_n_memevents(pFailure5));
- TEST(test_cunit_get_n_allocations(pFailure5) == test_cunit_get_n_deallocations(pFailure5));
- TEST(0 != test_cunit_get_n_memevents(pFailure6));
- TEST(test_cunit_get_n_allocations(pFailure6) == test_cunit_get_n_deallocations(pFailure6));
- TEST(0 == CU_get_number_of_asserts());
- TEST(0 == CU_get_number_of_successes());
- TEST(0 == CU_get_number_of_failures());
- TEST(0 == CU_get_number_of_failure_records());
-
- f_pCurTest = NULL;
- f_pCurSuite = NULL;
-}
-
-/*-------------------------------------------------*/
-static void test_add_failure(void)
-{
- CU_Test test1;
- CU_Suite suite1;
- CU_pFailureRecord pFailure1 = NULL;
- CU_pFailureRecord pFailure2 = NULL;
- CU_pFailureRecord pFailure3 = NULL;
- CU_pFailureRecord pFailure4 = NULL;
- CU_RunSummary run_summary = {"", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
- /* test under memory exhaustion */
- test_cunit_deactivate_malloc();
- add_failure(&pFailure1, &run_summary, CUF_AssertFailed, 100, "condition 0", "file0.c", "func0", &suite1, &test1);
- TEST(NULL == pFailure1);
- TEST(0 == run_summary.nFailureRecords);
- test_cunit_activate_malloc();
-
- /* normal operation */
- add_failure(&pFailure1, &run_summary, CUF_AssertFailed, 101, "condition 1", "file1.c", "func1", &suite1, &test1);
- TEST(1 == run_summary.nFailureRecords);
- if (TEST(NULL != pFailure1)) {
- TEST(101 == pFailure1->uiLineNumber);
- TEST(!strcmp("condition 1", pFailure1->strCondition));
- TEST(!strcmp("file1.c", pFailure1->strFileName));
- TEST(!strcmp("func1", pFailure1->strFunction));
- TEST(&test1 == pFailure1->pTest);
- TEST(&suite1 == pFailure1->pSuite);
- TEST(NULL == pFailure1->pNext);
- TEST(NULL == pFailure1->pPrev);
- TEST(pFailure1 == f_last_failure);
- TEST(0 != test_cunit_get_n_memevents(pFailure1));
- TEST(test_cunit_get_n_allocations(pFailure1) != test_cunit_get_n_deallocations(pFailure1));
- }
-
- add_failure(&pFailure1, &run_summary, CUF_AssertFailed, 102, "condition 2", "file2.c", "func2", NULL, &test1);
- TEST(2 == run_summary.nFailureRecords);
- if (TEST(NULL != pFailure1)) {
- TEST(101 == pFailure1->uiLineNumber);
- TEST(!strcmp("condition 1", pFailure1->strCondition));
- TEST(!strcmp("file1.c", pFailure1->strFileName));
- TEST(!strcmp("func1", pFailure1->strFunction));
- TEST(&test1 == pFailure1->pTest);
- TEST(&suite1 == pFailure1->pSuite);
- TEST(NULL != pFailure1->pNext);
- TEST(NULL == pFailure1->pPrev);
- TEST(pFailure1 != f_last_failure);
- TEST(0 != test_cunit_get_n_memevents(pFailure1));
- TEST(test_cunit_get_n_allocations(pFailure1) != test_cunit_get_n_deallocations(pFailure1));
-
- if (TEST(NULL != (pFailure2 = pFailure1->pNext))) {
- TEST(102 == pFailure2->uiLineNumber);
- TEST(!strcmp("condition 2", pFailure2->strCondition));
- TEST(!strcmp("file2.c", pFailure2->strFileName));
- TEST(!strcmp("func2", pFailure2->strFunction));
- TEST(&test1 == pFailure2->pTest);
- TEST(NULL == pFailure2->pSuite);
- TEST(NULL == pFailure2->pNext);
- TEST(pFailure1 == pFailure2->pPrev);
- TEST(pFailure2 == f_last_failure);
- TEST(0 != test_cunit_get_n_memevents(pFailure2));
- TEST(test_cunit_get_n_allocations(pFailure2) != test_cunit_get_n_deallocations(pFailure2));
- }
- }
-
- pFailure3 = pFailure1;
- pFailure4 = pFailure2;
- clear_previous_results(&run_summary, &pFailure1);
-
- TEST(0 == run_summary.nFailureRecords);
- TEST(0 != test_cunit_get_n_memevents(pFailure3));
- TEST(test_cunit_get_n_allocations(pFailure3) == test_cunit_get_n_deallocations(pFailure3));
- TEST(0 != test_cunit_get_n_memevents(pFailure4));
- TEST(test_cunit_get_n_allocations(pFailure4) == test_cunit_get_n_deallocations(pFailure4));
-}
-
-/*-------------------------------------------------*/
-void test_cunit_TestRun(void)
-{
- test_cunit_start_tests("TestRun.c");
-
- test_message_handlers();
- test_CU_fail_on_inactive();
- test_CU_run_all_tests();
- test_CU_run_suite();
- test_CU_run_test();
- test_CU_assertImplementation();
- test_add_failure();
-
- test_cunit_end_tests();
-}
-
-#endif /* CUNIT_BUILD_TESTS */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Framework/Util.c b/tools/taos-tools/deps/CUnit/Sources/Framework/Util.c
deleted file mode 100644
index edd59423f7..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Framework/Util.c
+++ /dev/null
@@ -1,646 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004-2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Generic (internal) utility functions used across CUnit.
- * These were originally distributed across the other CUnit
- * source files, but were consolidated here for consistency.
- *
- * 13/Oct/2001 Initial implementation (AK)
- *
- * 26/Jul/2003 Added a function to convert a string containing special
- * characters into escaped character for XML/HTML usage. (AK)
- *
- * 16-Jul-2004 New interface, doxygen comments. (JDS)
- *
- * 17-Apr-2006 Added CU_translated_strlen() and CU_number_width().
- * Fixed off-by-1 error in CU_translate_special_characters(),
- * modifying implementation & results in some cases. User can
- * now tell if conversion failed. (JDS)
- */
-
-/** @file
- * Utility functions (implementation).
- */
-/** @addtogroup Framework
- @{
-*/
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include
-#include
-#include
-#include
-#include "CUnit/Util.h"
-
-
-/*------------------------------------------------------------------------*/
-/**
- * Structure containing mappings of special characters to xml entity codes.
- * special_char's in the CU_bindings array will be translated during calls
- * to CU_translate_special_characters(). Add additional chars/replacements
- * or modify existing ones to change the behavior upon translation.
- */
-static const struct bindings {
- const char special_char; /**< Special character. */
- const char *replacement; /**< Entity code for special character. */
-} CU_bindings [] = {
- {'&', "&"},
- {'>', ">"},
- {'<', "<"},
- {'"', """}
-};
-
-/*------------------------------------------------------------------------*/
-/**
- * Checks whether a character is a special xml character.
- * This function performs a lookup of the specified character in
- * the CU_bindings structure. If it is a special character, its
- * index into the CU_bindings array is returned. If not, -1 is returned.
- *
- * @param ch The character to check
- * @return Index into CU_bindings if a special character, -1 otherwise.
- */
-static int get_index(const char ch)
-{
- int length = sizeof(CU_bindings)/sizeof(CU_bindings[0]);
- int counter;
-
- for (counter = 0; counter < length && CU_bindings[counter].special_char != ch; ++counter) {
- ;
- }
-
- return (counter < length ? counter : -1);
-}
-
-size_t CU_translate_special_characters(const char *szSrc, char *szDest, size_t maxlen)
-{
-/* old implementation
- size_t count = 0;
- size_t src = 0;
- size_t dest = 0;
- size_t length = 0;
- int conv_index;
-
- assert(NULL != szSrc);
- assert(NULL != szDest);
-
- length = strlen(szSrc);
- memset(szDest, 0, maxlen);
- while ((dest < maxlen) && (src < length)) {
-
- if ((-1 != (conv_index = get_index(szSrc[src]))) &&
- ((dest + strlen(CU_bindings[conv_index].replacement)) < maxlen)) {
- strcat(szDest, CU_bindings[conv_index].replacement);
- dest += strlen(CU_bindings[conv_index].replacement);
- ++count;
- } else {
- szDest[dest++] = szSrc[src];
- }
-
- ++src;
- }
-
- return count;
-*/
- size_t count = 0;
- size_t repl_len;
- int conv_index;
- char *dest_start = szDest;
-
- assert(NULL != szSrc);
- assert(NULL != szDest);
-
- /* only process if destination buffer not 0-length */
- if (maxlen > 0) {
-
- while ((maxlen > 0) && (*szSrc != '\0')) {
- conv_index = get_index(*szSrc);
- if (-1 != conv_index) {
- if (maxlen > (repl_len = strlen(CU_bindings[conv_index].replacement))) {
- memcpy(szDest, CU_bindings[conv_index].replacement, repl_len);
- szDest += repl_len;
- maxlen -= repl_len;
- ++count;
- } else {
- maxlen = 0; /* ran out of room - abort conversion */
- break;
- }
- } else {
- *szDest++ = *szSrc;
- --maxlen;
- }
- ++szSrc;
- }
-
- if (0 == maxlen) {
- *dest_start = '\0'; /* ran out of room - return empty string in szDest */
- count = 0;
- } else {
- *szDest = '\0'; /* had room - make sure szDest has a terminating \0 */
- }
- }
- return count;
-}
-
-/*------------------------------------------------------------------------*/
-size_t CU_translated_strlen(const char* szSrc)
-{
- size_t count = 0;
- int conv_index;
-
- assert(NULL != szSrc);
-
- while (*szSrc != '\0') {
- if (-1 != (conv_index = get_index(*szSrc))) {
- count += strlen(CU_bindings[conv_index].replacement);
- } else {
- ++count;
- }
- ++szSrc;
- }
- return count;
-}
-
-/*------------------------------------------------------------------------*/
-int CU_compare_strings(const char* szSrc, const char* szDest)
-{
- assert(NULL != szSrc);
- assert(NULL != szDest);
-
- while (('\0' != *szSrc) && ('\0' != *szDest) && (toupper(*szSrc) == toupper(*szDest))) {
- szSrc++;
- szDest++;
- }
-
- return (int)(*szSrc - *szDest);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_trim(char* szString)
-{
- CU_trim_left(szString);
- CU_trim_right(szString);
-}
-
-/*------------------------------------------------------------------------*/
-void CU_trim_left(char* szString)
-{
- int nOffset = 0;
- char* szSrc = szString;
- char* szDest = szString;
-
- assert(NULL != szString);
-
- /* Scan for the spaces in the starting of string. */
- for (; '\0' != *szSrc; szSrc++, nOffset++) {
- if (!isspace(*szSrc)) {
- break;
- }
- }
-
- for(; (0 != nOffset) && ('\0' != (*szDest = *szSrc)); szSrc++, szDest++) {
- ;
- }
-}
-
-/*------------------------------------------------------------------------*/
-void CU_trim_right(char* szString)
-{
- size_t nLength;
- char* szSrc = szString;
-
- assert(NULL != szString);
- nLength = strlen(szString);
- /*
- * Scan for specs in the end of string.
- */
- for (; (0 != nLength) && isspace(*(szSrc + nLength - 1)); nLength--) {
- ;
- }
-
- *(szSrc + nLength) = '\0';
-}
-
-/*------------------------------------------------------------------------*/
-size_t CU_number_width(int number)
-{
- char buf[33];
-
- snprintf(buf, 33, "%d", number);
- buf[32] = '\0';
- return (strlen(buf));
-}
-
-#ifdef WIN32
-static char _exename_buf[_MAX_PATH];
-#endif
-
-const char* CU_get_basename(const char* path)
-{
- size_t path_len;
- size_t i;
- assert(path && "expected a nul terminated path string");
- path_len = strlen(path);
-
-#ifdef WIN32
- (void) i;
- /* use _splitpath to strip the file extension */
- assert(path_len < _MAX_PATH);
- _splitpath(path, NULL, NULL, _exename_buf, NULL);
- return _exename_buf;
-#else
- /* start at the end and find the first path character (/ or \) */
- for (i = path_len - 1; path_len ; i--) {
- switch(path[i]) {
- case '/':
- return path + i + 1;
- case '\\':
- return path + i + 1;
- default:
- break;
- }
- if (!i) break;
- }
-
- /* there were not path components at all, probably this was on PATH */
- return path;
-#endif
-}
-
-/** @} */
-
-#ifdef CUNIT_BUILD_TESTS
-#include "test_cunit.h"
-
-/* Keep BUF_LEN even or trouble ensues below... */
-#define BUF_LEN 1000
-#define MAX_LEN BUF_LEN/2
-
-static void test_CU_translate_special_characters(void)
-{
- char dest_buf[BUF_LEN];
- char *dest = dest_buf + MAX_LEN;
- char ref_buf[BUF_LEN];
- const int mask_char = 0x01; /* char written to buffer */
-
- /* set up reference buffer for testing of translated strings */
- memset(ref_buf, mask_char, BUF_LEN);
-
- /* empty src */
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("", dest, MAX_LEN));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+1), ref_buf, MAX_LEN-1));
-
- /* 1 char src */
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("#", dest, 0));
- TEST(!strncmp(dest_buf, ref_buf, BUF_LEN));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("#", dest, 1));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+1), ref_buf, MAX_LEN-1));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("&", dest, 2));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+2), ref_buf, MAX_LEN-2));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("&", dest, 4));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+4), ref_buf, MAX_LEN-4));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("&", dest, 5));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+5), ref_buf, MAX_LEN-5));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(1 == CU_translate_special_characters("&", dest, 6));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "&\0", 6));
- TEST(!strncmp((dest+6), ref_buf, MAX_LEN-6));
-
- /* maxlen=0 */
- memset(dest_buf, mask_char, BUF_LEN);
- strcpy(dest, "random initialized string");
- TEST(0 == CU_translate_special_characters("some <", dest, 0));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strcmp(dest, "random initialized string"));
- TEST(!strncmp(dest+strlen(dest)+1, ref_buf, MAX_LEN-strlen(dest)-1));
-
- /* maxlen < len(converted szSrc) */
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 1));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+1), ref_buf, MAX_LEN-1));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 2));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+2), ref_buf, MAX_LEN-2));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 5));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+5), ref_buf, MAX_LEN-5));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 10));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+10), ref_buf, MAX_LEN-10));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 20));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+20), ref_buf, MAX_LEN-20));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 24));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+24), ref_buf, MAX_LEN-24));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 25));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+25), ref_buf, MAX_LEN-25));
-
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some <", dest, 37));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "\0", 1));
- TEST(!strncmp((dest+37), ref_buf, MAX_LEN-37));
-
- /* maxlen > len(converted szSrc) */
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(4 == CU_translate_special_characters("some <", dest, 38));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "some <<string & another>\0", 38));
- TEST(!strncmp((dest+38), ref_buf, MAX_LEN-38));
-
- /* maxlen > len(converted szSrc) */
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(4 == CU_translate_special_characters("some <", dest, MAX_LEN));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "some <<string & another>\0", 38));
-
- /* no special characters */
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(0 == CU_translate_special_characters("some string or another", dest, MAX_LEN));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strncmp(dest, "some string or another\0", 23));
-
- /* only special characters */
- memset(dest_buf, mask_char, BUF_LEN);
- TEST(11 == CU_translate_special_characters("<><><<>>&&&", dest, MAX_LEN));
- TEST(!strncmp(dest_buf, ref_buf, MAX_LEN));
- TEST(!strcmp(dest, "<><><<>>&&&"));
-}
-
-static void test_CU_translated_strlen(void)
-{
- /* empty src */
- TEST(0 == CU_translated_strlen(""));
-
- /* 1 char src */
- TEST(1 == CU_translated_strlen("#"));
- TEST(5 == CU_translated_strlen("&"));
- TEST(4 == CU_translated_strlen("<"));
- TEST(4 == CU_translated_strlen(">"));
- TEST(1 == CU_translated_strlen("?"));
-
- /* 2 char src */
- TEST(2 == CU_translated_strlen("#@"));
- TEST(10 == CU_translated_strlen("&&"));
- TEST(9 == CU_translated_strlen(">&"));
-
- /* longer src */
- TEST(37 == CU_translated_strlen("some <"));
- TEST(22 == CU_translated_strlen("some string or another"));
- TEST(47 == CU_translated_strlen("<><><<>>&&&"));
-}
-
-static void test_CU_compare_strings(void)
-{
- TEST(0 == CU_compare_strings("",""));
- TEST(0 == CU_compare_strings("@","@"));
- TEST(0 == CU_compare_strings("D","d"));
- TEST(0 == CU_compare_strings("s1","s1"));
- TEST(0 == CU_compare_strings("s1","S1"));
- TEST(0 != CU_compare_strings("s1","s12"));
- TEST(0 == CU_compare_strings("this is string 1","tHIS iS sTRING 1"));
- TEST(0 == CU_compare_strings("i have \t a tab!","I have \t a tab!"));
- TEST(0 != CU_compare_strings("not the same"," not the same"));
-}
-
-static void test_CU_trim(void)
-{
- char string[MAX_LEN];
-
- strcpy(string, "");
- CU_trim(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " ");
- CU_trim(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " ");
- CU_trim(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " b");
- CU_trim(string);
- TEST(!strcmp("b", string));
-
- strcpy(string, " B");
- CU_trim(string);
- TEST(!strcmp("B", string));
-
- strcpy(string, "s ");
- CU_trim(string);
- TEST(!strcmp("s", string));
-
- strcpy(string, "S ");
- CU_trim(string);
- TEST(!strcmp("S", string));
-
- strcpy(string, " 5 ");
- CU_trim(string);
- TEST(!strcmp("5", string));
-
- strcpy(string, "~ & ^ ( ^ ");
- CU_trim(string);
- TEST(!strcmp("~ & ^ ( ^", string));
-
- strcpy(string, " ~ & ^ ( ^");
- CU_trim(string);
- TEST(!strcmp("~ & ^ ( ^", string));
-
- strcpy(string, " ~ & ^ ( ^ ");
- CU_trim(string);
- TEST(!strcmp("~ & ^ ( ^", string));
-}
-
-static void test_CU_trim_left(void)
-{
- char string[MAX_LEN];
-
- strcpy(string, "");
- CU_trim_left(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " ");
- CU_trim_left(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " ");
- CU_trim_left(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " b");
- CU_trim_left(string);
- TEST(!strcmp("b", string));
-
- strcpy(string, " B");
- CU_trim_left(string);
- TEST(!strcmp("B", string));
-
- strcpy(string, "s ");
- CU_trim_left(string);
- TEST(!strcmp("s ", string));
-
- strcpy(string, "S ");
- CU_trim_left(string);
- TEST(!strcmp("S ", string));
-
- strcpy(string, " 5 ");
- CU_trim_left(string);
- TEST(!strcmp("5 ", string));
-
- strcpy(string, "~ & ^ ( ^ ");
- CU_trim_left(string);
- TEST(!strcmp("~ & ^ ( ^ ", string));
-
- strcpy(string, " ~ & ^ ( ^");
- CU_trim_left(string);
- TEST(!strcmp("~ & ^ ( ^", string));
-
- strcpy(string, " ~ & ^ ( ^ ");
- CU_trim_left(string);
- TEST(!strcmp("~ & ^ ( ^ ", string));
-}
-
-static void test_CU_trim_right(void)
-{
- char string[MAX_LEN];
-
- strcpy(string, "");
- CU_trim_right(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " ");
- CU_trim_right(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " ");
- CU_trim_right(string);
- TEST(!strcmp("", string));
-
- strcpy(string, " b");
- CU_trim_right(string);
- TEST(!strcmp(" b", string));
-
- strcpy(string, " B");
- CU_trim_right(string);
- TEST(!strcmp(" B", string));
-
- strcpy(string, "s ");
- CU_trim_right(string);
- TEST(!strcmp("s", string));
-
- strcpy(string, "S ");
- CU_trim_right(string);
- TEST(!strcmp("S", string));
-
- strcpy(string, " 5 ");
- CU_trim_right(string);
- TEST(!strcmp(" 5", string));
-
- strcpy(string, "~ & ^ ( ^ ");
- CU_trim_right(string);
- TEST(!strcmp("~ & ^ ( ^", string));
-
- strcpy(string, " ~ & ^ ( ^");
- CU_trim_right(string);
- TEST(!strcmp(" ~ & ^ ( ^", string));
-
- strcpy(string, " ~ & ^ ( ^ ");
- CU_trim_right(string);
- TEST(!strcmp(" ~ & ^ ( ^", string));
-}
-
-static void test_CU_number_width(void)
-{
- TEST(1 == CU_number_width(0));
- TEST(1 == CU_number_width(1));
- TEST(2 == CU_number_width(-1));
- TEST(4 == CU_number_width(2346));
- TEST(7 == CU_number_width(-257265));
- TEST(9 == CU_number_width(245723572));
- TEST(9 == CU_number_width(-45622572));
-}
-
-void test_cunit_Util(void)
-{
-
- test_cunit_start_tests("Util.c");
-
- test_CU_translate_special_characters();
- test_CU_translated_strlen();
- test_CU_compare_strings();
- test_CU_trim();
- test_CU_trim_left();
- test_CU_trim_right();
- test_CU_number_width();
-
- test_cunit_end_tests();
-}
-
-#endif /* CUNIT_BUILD_TESTS */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/Makefile.am
deleted file mode 100644
index e540f28a03..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Makefile.am
+++ /dev/null
@@ -1,80 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-BASIC_OBJECTS_SHARED = Basic/Basic.lo
-AUTOMATED_OBJECTS_SHARED = Automated/Automated.lo
-CONSOLE_OBJECTS_SHARED = Console/Console.lo
-CURSES_OBJECTS_SHARED = Curses/Curses.lo
-FRAMEWORK_OBJECTS_SHARED = \
- Framework/CUError.lo \
- Framework/MyMem.lo \
- Framework/TestDB.lo \
- Framework/TestRun.lo \
- Framework/Util.lo
-
-FRAMEWORK_OBJECT_FILES_SHARED = $(FRAMEWORK_OBJECTS_SHARED)
-FRAMEWORK_COMPILE_DIRS = Framework
-
-if ENABLE_AUTOMATED
-AUTOMATED_OBJECT_FILES_SHARED = $(AUTOMATED_OBJECTS_SHARED)
-AUTOMATED_COMPILE_DIRS = Automated
-endif
-
-if ENABLE_BASIC
-BASIC_OBJECT_FILES_SHARED = $(BASIC_OBJECTS_SHARED)
-BASIC_COMPILE_DIRS = Basic
-endif
-
-if ENABLE_CONSOLE
-CONSOLE_OBJECT_FILES_SHARED = $(CONSOLE_OBJECTS_SHARED)
-CONSOLE_COMPILE_DIRS = Console
-endif
-
-if ENABLE_CURSES
-CURSES_OBJECT_FILES_SHARED = $(CURSES_OBJECTS_SHARED)
-CURSES_COMPILE_DIRS = Curses
-endif
-
-if ENABLE_TEST
-TEST_OBJECT_FILES = \
- Framework/CUError_test.o \
- Framework/MyMem_test.o \
- Framework/TestDB_test.o \
- Framework/TestRun_test.o \
- Framework/Util_test.o
-TEST_COMPILE_DIRS = Test
-endif
-
-COMPILE_DIRS = \
- $(FRAMEWORK_COMPILE_DIRS) \
- $(AUTOMATED_COMPILE_DIRS) \
- $(BASIC_COMPILE_DIRS) \
- $(CONSOLE_COMPILE_DIRS) \
- $(CURSES_COMPILE_DIRS) \
- . \
- $(TEST_COMPILE_DIRS)
-OBJECT_FILES_SHARED = \
- $(FRAMEWORK_OBJECT_FILES_SHARED) \
- $(AUTOMATED_OBJECT_FILES_SHARED) \
- $(BASIC_OBJECT_FILES_SHARED) \
- $(CONSOLE_OBJECT_FILES_SHARED) \
- $(CURSES_OBJECT_FILES_SHARED)
-TEST_OBJECTS = $(TEST_OBJECT_FILES)
-
-
-SUBDIRS = $(COMPILE_DIRS)
-
-
-lib_LTLIBRARIES = libcunit.la
-libcunit_la_SOURCES =
-libcunit_la_LIBADD = $(OBJECT_FILES_SHARED)
-if ENABLE_CURSES
-libcunit_la_LIBADD += -l$(CURSES_LIB)
-endif
-libcunit_la_LDFLAGS = -version-info @LIBTOOL_CURRENT@:@LIBTOOL_REVISION@:@LIBTOOL_AGE@
-
-
-if ENABLE_TEST
-noinst_LIBRARIES = libcunit_test.a
-libcunit_test_a_SOURCES =
-libcunit_test_a_LIBADD = $(TEST_OBJECTS)
-endif
diff --git a/tools/taos-tools/deps/CUnit/Sources/Test/Jamfile b/tools/taos-tools/deps/CUnit/Sources/Test/Jamfile
deleted file mode 100644
index c6825283b7..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Test/Jamfile
+++ /dev/null
@@ -1,107 +0,0 @@
-#
-# Jamfile to build CUnit - internal testing
-# (see http://www.freetype.org/jam/index.html)
-#
-# Copyright (C) 2004-2006 Jerry St.Clair
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#---------------------------------------------------------------------------
-
-SubDir TOP CUnit Sources Test ;
-
-TEST_PROG = test_cunit ;
-
-SubDirHdrs $(CUNIT_HDR_DIR) ;
-SubDirCcFlags
- -I$(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Test
- -DCUNIT_BUILD_TESTS
- -DCUNIT_DO_NOT_DEFINE_UNLESS_BUILDING_TESTS
- -DMEMTRACE ;
-
-# set location for target, source, and temporary files
-LOCATE_TARGET = $(BUILD_DIR)$(SLASH)CUnit$(SLASH)test ;
-
-SEARCH_SOURCE +=
- $(TOP)$(SLASH)CUnit
- $(TOP)$(SLASH)CUnit$(SLASH)Headers
- $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Framework
- ;
-
-SOURCES =
- test_cunit.c
- CUError.c
- MyMem.c
- TestDB.c
- TestRun.c
- Util.c
- ;
-
-if $(BUILD_AUTOMATED)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Automated ;
- SOURCES += Automated.c ;
-}
-if $(BUILD_BASIC)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Basic ;
- SOURCES += Basic.c ;
-}
-if $(BUILD_CONSOLE)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Console ;
- SOURCES += Console.c ;
-}
-if $(BUILD_CURSES)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Curses ;
- SOURCES += Curses.c ;
-}
-if $(BUILD_WINDOWS)
-{
- SEARCH_SOURCE += $(TOP)$(SLASH)CUnit$(SLASH)Sources$(SLASH)Win ;
- SOURCES += Win.c ;
-}
-
-# extra symbolic targets for building test program
-DEPENDS test : $(TEST_PROG)$(SUFEXE) ;
-NOTFILE test ;
-
-
-if $(BUILD_TEST)
-{
- Main $(TEST_PROG) : $(SOURCES) ;
- MakeLocate $(TEST_PROG)$(SUFEXE) : $(BUILD_DIR) ;
- LINKLIBS on $(TEST_PROG)$(SUFEXE) = $(SYS_LIBS) ;
-
- if $(NT)
- {
- if ($(BCCROOT) || ($(TOOLSET) = BORLANDC))
- {
- # need to fix Borland to include library location
- LINKFLAGS on $(TEST_PROG)$(SUFEXE) += -L$(STDLIBPATH) -tWC ;
- }
- else if $(MSVCNT) || $(TOOLSET) = VISUALC)
- {
- # VC won't allow use of local exit() without link flag
- LINKFLAGS on $(TEST_PROG)$(SUFEXE) += /FORCE:MULTIPLE ;
- }
- }
-
- if $(INSTALL_TEST_DIR)
- {
- InstallCUnitBin $(INSTALL_TEST_DIR) : $(TEST_PROG)$(SUFEXE) ;
- }
-}
-
diff --git a/tools/taos-tools/deps/CUnit/Sources/Test/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/Test/Makefile.am
deleted file mode 100644
index ccf28ce969..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Test/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-if ENABLE_TEST
-AM_CPPFLAGS = -I$(top_srcdir)/CUnit/Headers
-testdir=${datadir}/@PACKAGE@/Test
-
-test_PROGRAMS = test_cunit
-test_cunit_SOURCES = test_cunit.c
-test_cunit_LDADD = ../libcunit_test.a
-test_cunit_LDFLAGS = -L..
-
-INCLUDES = -DMEMTRACE -DCUNIT_BUILD_TESTS -DCUNIT_DO_NOT_DEFINE_UNLESS_BUILDING_TESTS
-endif
diff --git a/tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.c b/tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.c
deleted file mode 100644
index 70f5cc0ba8..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2004-2006 Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Support for unit tests of CUnit framework
- *
- * 12-Aug-2004 Initial implementation. (JDS)
- *
- * 02-May-2006 Added internationalization hooks. (JDS)
- */
-
-/** @file
- * CUnit internal testingfunctions (implementation).
- */
-/** @addtogroup Internal
- @{
-*/
-
-#include
-#include
-#include
-#include
-#include
-
-#include "CUnit/CUnit.h"
-#include "CUnit/MyMem.h"
-#include "CUnit/Util.h"
-#include "CUnit/CUnit_intl.h"
-#include "test_cunit.h"
-
-static unsigned int f_nTests = 0;
-static unsigned int f_nFailures = 0;
-static unsigned int f_nTests_stored = 0;
-static unsigned int f_nFails_stored = 0;
-static clock_t f_start_time;
-
-static void test_cunit_initialize(void);
-static void test_cunit_report_results(void);
-
-int main(int argc, char** argv)
-{
- /* No line buffering. */
- setvbuf(stdout, NULL, _IONBF, 0);
-
- test_cunit_initialize();
- fprintf(stdout, "\n%s", _("Testing CUnit internals..."));
-
- /* individual module test functions go here */
- test_cunit_CUError();
- test_cunit_MyMem();
- test_cunit_TestDB();
- test_cunit_TestRun();
- test_cunit_Util();
-
- test_cunit_report_results();
- CU_cleanup_registry();
-
- return test_cunit_failure_count() > 0;
-}
-
-void test_cunit_start_tests(const char* strName)
-{
- fprintf(stdout, _("\n testing %s ... "), strName);
- f_nTests_stored = f_nTests;
- f_nFails_stored = f_nFailures;
-}
-
-void test_cunit_end_tests(void)
-{
- fprintf(stdout, _("%d assertions, %d failures"),
- f_nTests - f_nTests_stored,
- f_nFailures - f_nFails_stored);
-}
-
-void test_cunit_add_test(void)
-{
- ++f_nTests;
-}
-
-void test_cunit_add_failure(void)
-{
- ++f_nFailures;
-}
-
-unsigned int test_cunit_test_count(void)
-{
- return f_nTests;
-}
-
-unsigned int test_cunit_failure_count(void)
-{
- return f_nFailures;
-}
-
-void test_cunit_initialize(void)
-{
- f_nTests = 0;
- f_nFailures = 0;
- f_start_time = clock();
-}
-
-void test_cunit_report_results(void)
-{
- fprintf(stdout,
- "\n\n---------------------------"
- "\n%s"
- "\n---------------------------"
- "\n %s%d"
- "\n %s%d"
- "\n %s%d"
- "\n\n%s%8.3f%s\n",
- _("CUnit Internal Test Results"),
- _("Total Number of Assertions: "),
- f_nTests,
- _("Successes: "),
- f_nTests-f_nFailures,
- _("Failures: "),
- f_nFailures,
- _("Total test time = "),
- ((double)clock() - (double)f_start_time)/(double)CLOCKS_PER_SEC,
- _(" seconds."));
-}
-
-CU_BOOL test_cunit_assert_impl(CU_BOOL value,
- const char* condition,
- const char* file,
- unsigned int line)
-{
- test_cunit_add_test();
- if (CU_FALSE == value) {
- test_cunit_add_failure();
- printf(_("\nTEST FAILED: File '%s', Line %d, Condition '%s.'\n"),
- file, line, condition);
- }
- return value;
-}
-
-
-
diff --git a/tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.h b/tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.h
deleted file mode 100644
index e73461058c..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Test/test_cunit.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2004-2006 Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Unit test for CUnit framework
- *
- * 12-Aug-2004 Initial implementation. (JDS)
- * 14-Apr-2006 Added PASS(). (JDS)
- */
-
-/** @file
- * Interface for CUnit internal testing functions.
- * Because the CUnit framework cannot be modified during a test
- * run, CUnit cannot be used directly to test itself. That is,
- * individual functions could set up and initiate CUnit test runs,
- * but the functions themselves cannot be run as CUnit test functions.
- *
- * The approach taken here is to set up a mimimal test framework to
- * keep track of logical tests. The various unit test functions are
- * then free to use the CUnit framework as needed.
- */
-/** @addtogroup Internal
- @{
-*/
-
-#ifndef CUNIT_TEST_CUNIT_H_SEEN
-#define CUNIT_TEST_CUNIT_H_SEEN
-
-#include "CUnit/CUnit.h"
-
-#ifdef CUNIT_BUILD_TESTS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Notify the test system that a set of tests is starting.
- * Optional - for reporting purposes only.
- * @param strName Name to use to designate this set of tests.
- */
-void test_cunit_start_tests(const char* strName);
-
-/** Notify the test system that a set of tests is complete.
- * Optional - for reporting purposes only.
- */
-void test_cunit_end_tests(void);
-
-void test_cunit_add_test(void); /**< Register running a test (assertion). */
-void test_cunit_add_failure(void); /**< Register failure of a test. */
-unsigned int test_cunit_test_count(void); /**< Retrieve the number of tests run. */
-unsigned int test_cunit_failure_count(void); /**< Retrieve the number of failed tests. */
-
-/** Implementation of test assertion. */
-CU_BOOL test_cunit_assert_impl(CU_BOOL value,
- const char* condition,
- const char* file,
- unsigned int line);
-
-/** Test a logical condition.
- * Use of this macro allows clients to register a tested
- * assertion with automatic recordkeeping and reporting
- * of failures and run counts. The return value is a CU_BOOL
- * having the same value as the logical condition tested.
- * As such, it may be used in logial expressions itself.
- */
-#define TEST(x) test_cunit_assert_impl((x), #x, __FILE__, __LINE__)
-
-/** Test a logical condition with return on failure.
- * This macro is the same as the TEST() macro, except that it
- * issues a return
statement on failure.
- * It should not be used as a logical condition itself.
- */
-#define TEST_FATAL(x) if (!test_cunit_assert_impl((x), #x, __FILE__, __LINE__)) return
-
-/** Record a success. */
-#define PASS() test_cunit_add_test()
-
-/** Record a failure. */
-#define FAIL(cond_str) test_cunit_assert_impl(CU_FALSE, cond_str, __FILE__, __LINE__)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CUNIT_BUILD_TESTS */
-
-#endif /* CUNIT_TEST_CUNIT_H_SEEN */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Win/Win.c b/tools/taos-tools/deps/CUnit/Sources/Win/Win.c
deleted file mode 100644
index c55860a02e..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Win/Win.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2001 Anil Kumar
- * Copyright (C) 2004,2005,2006 Anil Kumar, Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * >>> UNDER CONSTRUCTION <<<
- *
- * Contains implementation of windows interface.
- *
- * 2001 Initial implementation. (AK)
- *
- * 18-Jul-2004 New interface. (JDS)
- */
-
-#include
-
-#include "Win.h"
-#include "resource.h"
-
-#include "CUnit/CUnit.h"
-
-static LRESULT CALLBACK DialogMessageHandler(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- CU_UNREFERENCED_PARAMETER(hDlg); /* not used at this point */
- CU_UNREFERENCED_PARAMETER(message);
- CU_UNREFERENCED_PARAMETER(lParam);
-
- switch((int)wParam) {
- default: break;
- }
- return 0;
-}
-
-void CU_win_run_tests(void)
-{
- HWND hWndDlg = CreateDialog(NULL, (LPCTSTR)IDD_MAIN, NULL, (DLGPROC)DialogMessageHandler);
- (void) hWndDlg;
-}
-
diff --git a/tools/taos-tools/deps/CUnit/Sources/Win/Win.h b/tools/taos-tools/deps/CUnit/Sources/Win/Win.h
deleted file mode 100644
index 5c08c3e39d..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Win/Win.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2004 Jerry D. St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * >>> UNDER CONSTRUCTION <<<
- *
- * Contains function definitions for windows programs.
- *
- * Created By : Jerry St.Clair on 5-Jul-2004
- * Last Modified : 18-Jul-2004
- * Comment : This file was missing from the 1-1.1 distribtion, new interface
- * EMail : jds2@users.sourceforge.net
- *
- */
-
-#ifndef CUNIT_WIN_H_SEEN
-#define CUNIT_WIN_H_SEEN
-
-#include "CUnit/CUnit.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CU_EXPORT extern void CU_win_run_tests(void);
-
-#ifdef USE_DEPRECATED_CUNIT_NAMES
-#define win_run_tests() CU_win_run_tests()
-#endif /* USE_DEPRECATED_CUNIT_NAMES */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* CUNIT_WIN_H_SEEN */
diff --git a/tools/taos-tools/deps/CUnit/Sources/Win/resource.h b/tools/taos-tools/deps/CUnit/Sources/Win/resource.h
deleted file mode 100644
index 80779defc5..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/Win/resource.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*{{NO_DEPENDENCIES}}
- Microsoft Developer Studio generated include file.
- Used by CUnit.rc
-*/
-#define IDD_DIALOG1 101
-#define IDD_MAIN 101
-
-/* Next default values for new objects */
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 102
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1000
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/Makefile.am b/tools/taos-tools/deps/CUnit/Sources/wxWidget/Makefile.am
deleted file mode 100644
index 3f1527b591..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AM_CPPFLAGS = -I$(top_srcdir)/CUnit/Headers
-noinst_LTLIBRARIES = libcunitconsole.la
-libcunitconsole_la_SOURCES = \
- Console.c
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active.xpm
deleted file mode 100644
index 22e334093d..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active.xpm
+++ /dev/null
@@ -1,76 +0,0 @@
-/* XPM */
-static char * icon_suite_active_xpm[] = {
-"32 32 41 1",
-" c None",
-". c #2D59A3",
-"+ c #295193",
-"@ c #6E96D8",
-"# c #638ED5",
-"$ c #2F5DA9",
-"% c #305FAC",
-"& c #3161B1",
-"* c #3263B4",
-"= c #3366B9",
-"- c #3467BC",
-"; c #356AC1",
-"> c #9FB9E5",
-", c #AAC1E8",
-"' c #B3C8EB",
-") c #B9CDED",
-"! c #BED0EE",
-"~ c #C6D6F0",
-"{ c #CBD9F1",
-"] c #D2DFF4",
-"^ c #DAE5F6",
-"/ c #E1E9F7",
-"( c #E5EDF9",
-"_ c #EAF0FA",
-": c #EDF2FB",
-"< c #F0F5FC",
-"[ c #F5F8FD",
-"} c #FAFCFE",
-"| c #FDFEFF",
-"1 c #98B5E4",
-"2 c #90AFE2",
-"3 c #AEC5EA",
-"4 c #F7F9FD",
-"5 c #89A9DF",
-"6 c #7FA2DD",
-"7 c #779DDB",
-"8 c #5D89D3",
-"9 c #5584D1",
-"0 c #4A7CCE",
-"a c #4075CC",
-"b c #3A70CA",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ......+ ",
-" .@@@@@#$ ",
-" .@@@@@@@. ",
-" .$%%%&&*==-----;;;;. ",
-" .>,')!~{]^/(_:<[}||. ",
-" .1>,')!~{]^/(_:<[}|. ",
-" .21>,3)!~{]^/(_:<[4. ",
-" .521>,3)!~{]^/(_:<[. ",
-" .6521>,3)!~{]^/(_:<. ",
-" .76521>,3)!~{]^/(_:. ",
-" .@76521>,3)!~{]^/(_. ",
-" .#@76521>,3'!~{]^/(. ",
-" .8#@76521>,3'!~{]^/. ",
-" .98#@76521>,3'!~{]^. ",
-" .098#@76521>,3'!~{]. ",
-" .a098#@76521>,3'!~{. ",
-" .ba098#@76521>,3'!~. ",
-" ...................& ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active_open.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active_open.xpm
deleted file mode 100644
index db93c78f34..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_active_open.xpm
+++ /dev/null
@@ -1,76 +0,0 @@
-/* XPM */
-static char * icon_suite_active_open_xpm[] = {
-"32 32 41 1",
-" c None",
-". c #274D8B",
-"+ c #295193",
-"@ c #6E96D8",
-"# c #5D89D3",
-"$ c #3569BF",
-"% c #2D59A3",
-"& c #2F5DA9",
-"* c #5584D1",
-"= c #305FAC",
-"- c #779DDB",
-"; c #7FA2DD",
-"> c #85A7DF",
-", c #89A9DF",
-"' c #90AFE2",
-") c #B3C8EB",
-"! c #D2DFF4",
-"~ c #DAE5F6",
-"{ c #E1E9F7",
-"] c #E5EDF9",
-"^ c #EAF0FA",
-"/ c #F0F5FC",
-"( c #F5F8FD",
-"_ c #FAFCFE",
-": c #FDFEFF",
-"< c #3161B1",
-"[ c #98B5E4",
-"} c #9FB9E5",
-"| c #AAC1E8",
-"1 c #B9CDED",
-"2 c #BED0EE",
-"3 c #C6D6F0",
-"4 c #CEDCF2",
-"5 c #4075CC",
-"6 c #356AC1",
-"7 c #638ED5",
-"8 c #E7EEF9",
-"9 c #3366B9",
-"0 c #4A7CCE",
-"a c #CBD9F1",
-"b c #214279",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ......+ ",
-" +@@@@@#. ",
-" +@@@@@@$. ",
-" +@@@@@@@%++++++++++& ",
-" +@@@@@@@@@@@@@@@@@@& ",
-" +@@@@@@@@@@@@@@@@@@& ",
-" +@@*&&&&&&&&&&&&&&&&&&& ",
-" +@@=#-;>,')!~{]^/((_::< ",
-" +@@+[}|)1234!~{]^/((_1& ",
-" +@56'[}|)1234!~{]^/((& ",
-" +@=7,'[}|)1234!~{8^/(& ",
-" +@+-;,'[}|)1234!~{8^4& ",
-" +59@-;,'[}|)1234!~{8& ",
-" +=07@-;,'[}|)1234!~{& ",
-" ++*#7@-;,'[}|)1234!a& ",
-" b=0*#7@-;,'[}|)1234& ",
-" b$50*#7@-;,'[}|)123& ",
-" b..................& ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive.xpm
deleted file mode 100644
index faa0227179..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive.xpm
+++ /dev/null
@@ -1,40 +0,0 @@
-/* XPM */
-static char * icon_suite_inactive_xpm[] = {
-"32 32 5 1",
-" c None",
-". c #000000",
-"+ c #8DA0B9",
-"@ c #8399B4",
-"# c #800000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ....... ",
-" .+++++@. ",
-" .+++++++. ",
-" .................... ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .##################. ",
-" .................... ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive_open.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive_open.xpm
deleted file mode 100644
index 49ca7490f2..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_suite_inactive_open.xpm
+++ /dev/null
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon_suite_inactive_open_xpm[] = {
-"32 32 4 1",
-" c None",
-". c #000000",
-"+ c #8DA0B9",
-"@ c #800000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ....... ",
-" .+++++.. ",
-" .++++++.. ",
-" .+++++++............ ",
-" .++++++++++++++++++. ",
-" .++++++++++++++++++. ",
-" .++.................... ",
-" .++.@@@@@@@@@@@@@@@@@@. ",
-" .++.@@@@@@@@@@@@@@@@@@. ",
-" .+..@@@@@@@@@@@@@@@@@.. ",
-" .+.@@@@@@@@@@@@@@@@@@. ",
-" .+.@@@@@@@@@@@@@@@@@@. ",
-" ...@@@@@@@@@@@@@@@@@.. ",
-" ..@@@@@@@@@@@@@@@@@@. ",
-" ..@@@@@@@@@@@@@@@@@@. ",
-" ..@@@@@@@@@@@@@@@@@.. ",
-" .@@@@@@@@@@@@@@@@@@. ",
-" .................... ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active.xpm
deleted file mode 100644
index ccf9d0a65d..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active.xpm
+++ /dev/null
@@ -1,76 +0,0 @@
-/* XPM */
-static char * icon_test_active_xpm[] = {
-"32 32 41 1",
-" c None",
-". c #4B82A8",
-"+ c #74A1BD",
-"@ c #6B97B6",
-"# c #5896BE",
-"$ c #538BB1",
-"% c #4388B4",
-"& c #4381AA",
-"* c #D7E0E9",
-"= c #7FA6C0",
-"- c #D1E5F5",
-"; c #CAE1F3",
-"> c #C3DDF1",
-", c #BCD9EF",
-"' c #AFD1EC",
-") c #A5CCEA",
-"! c #97C4E7",
-"~ c #85BBE2",
-"{ c #71B2DE",
-"] c #71A8D1",
-"^ c #4B8EBF",
-"/ c #E6EAF1",
-"( c #DAEAF7",
-"_ c #619BC4",
-": c #F1F4F7",
-"< c #DEEDF8",
-"[ c #87ABC3",
-"} c #E5F0F9",
-"| c #76BAE2",
-"1 c #63B3DE",
-"2 c #54A6D8",
-"3 c #E9F3FA",
-"4 c #FAFCFE",
-"5 c #EFF6FC",
-"6 c #7AC4E5",
-"7 c #8FB0C3",
-"8 c #F4F9FD",
-"9 c #B6D5EE",
-"0 c #F7FBFD",
-"a c #FDFDFE",
-"b c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" ",
-" .+++@@##$$%&* ",
-" =-;>,')!!~{]^/ ",
-" =(-;>,')!!~]!_: ",
-" =<(-;>,')!!];!_: ",
-" [}<||111121]3;!+ ",
-" [3}<(-;>,')]43;![ ",
-" [53}<(-;>,']]]]]& ",
-" [556|||1111122!~$ ",
-" 78553}<(-;>,9)!!$ ",
-" 708553}<(-;>,9)!# ",
-" 7006666|||11119)# ",
-" 74008553}<(-;>,9@ ",
-" 744008553}<(-;>,@ ",
-" 7a46666666|||1;>+ ",
-" 7aa44008553}<(-;+ ",
-" 7baa44008553}<(-+ ",
-" 7bb6666666666|<(= ",
-" 7bbbaa44008553}<= ",
-" 7bbbbaa44008553}= ",
-" 7bbbbbaa44008553[ ",
-" 7bbbbbbaa4400855[ ",
-" 77777777777777[[7 ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active_suite_inactive.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active_suite_inactive.xpm
deleted file mode 100644
index 3340c56385..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_active_suite_inactive.xpm
+++ /dev/null
@@ -1,75 +0,0 @@
-/* XPM */
-static char * icon_test_active_suite_inactive_xpm[] = {
-"32 32 40 1",
-" c None",
-". c #000000",
-"+ c #4B82A8",
-"@ c #74A1BD",
-"# c #6B97B6",
-"$ c #5896BE",
-"% c #538BB1",
-"& c #4388B4",
-"* c #4381AA",
-"= c #D7E0E9",
-"- c #7FA6C0",
-"; c #D1E5F5",
-"> c #CAE1F3",
-", c #C3DDF1",
-"' c #BCD9EF",
-") c #AFD1EC",
-"! c #A5CCEA",
-"~ c #97C4E7",
-"{ c #85BBE2",
-"] c #71B2DE",
-"^ c #71A8D1",
-"/ c #4B8EBF",
-"( c #E6EAF1",
-"_ c #DAEAF7",
-": c #619BC4",
-"< c #F1F4F7",
-"[ c #76BAE2",
-"} c #63B3DE",
-"| c #54A6D8",
-"1 c #E9F3FA",
-"2 c #87ABC3",
-"3 c #FAFCFE",
-"4 c #EFF6FC",
-"5 c #8FB0C3",
-"6 c #F4F9FD",
-"7 c #F7FBFD",
-"8 c #B6D5EE",
-"9 c #7AC4E5",
-"0 c #FDFDFE",
-"a c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" . . ",
-" ... +@@@##$$%%&*= ... ",
-" ...-;>,')!~~{]^/( ... ",
-" ..._;>,')!~~{^~:< ... ",
-" ..._;>,')!~~^>~:... ",
-" ...[[}}}}|}^1>... ",
-" 2..._;>,')!^3...2 ",
-" 24..._;>,')^...^* ",
-" 244...[}}}}...~{% ",
-" 5644..._;>...!~~% ",
-" 57644..._...'8!~$ ",
-" 577999.....}}}8!$ ",
-" 5377644..._;>,'8# ",
-" 533776....._;>,'# ",
-" 50399...9...[}>,@ ",
-" 5003...644..._;>@ ",
-" 5a0...77644..._;@ ",
-" 5a...9999999..._- ",
-" 5...003377644...- ",
-" ...aa003377644... ",
-" ...aaaa003377644... ",
-" ...aaaaaa003377644... ",
-" ...55555555555555225... ",
-" ... ... ",
-" . . ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive.xpm
deleted file mode 100644
index 8d3100c8bc..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive.xpm
+++ /dev/null
@@ -1,50 +0,0 @@
-/* XPM */
-static char * icon_test_inactive_xpm[] = {
-"32 32 15 1",
-" c None",
-". c #000000",
-"+ c #C00000",
-"@ c #4B8EBF",
-"# c #97C4E7",
-"$ c #619BC4",
-"% c #CAE1F3",
-"& c #76BAE2",
-"* c #63B3DE",
-"= c #54A6D8",
-"- c #E9F3FA",
-"; c #74A1BD",
-"> c #FAFCFE",
-", c #87ABC3",
-"' c #7AC4E5",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ............. ",
-" .++++++++++.@. ",
-" .++++++++++.#$. ",
-" .++++++++++.%#$. ",
-" .++&&****=*.-%#; ",
-" .++++++++++.>-%#, ",
-" .++++++++++...... ",
-" .++'&&&*****==++. ",
-" .+++++++++++++++. ",
-" .+++++++++++++++. ",
-" .++''''&&&****++. ",
-" .+++++++++++++++. ",
-" .+++++++++++++++. ",
-" .++'''''''&&&*++. ",
-" .+++++++++++++++. ",
-" .+++++++++++++++. ",
-" .++''''''''''&++. ",
-" .+++++++++++++++. ",
-" .+++++++++++++++. ",
-" .+++++++++++++++. ",
-" .+++++++++++++++. ",
-" ................. ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive_suite_inactive.xpm b/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive_suite_inactive.xpm
deleted file mode 100644
index 8527afdc03..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/icon_test_inactive_suite_inactive.xpm
+++ /dev/null
@@ -1,48 +0,0 @@
-/* XPM */
-static char * icon_test_inactive_suite_inactive_xpm[] = {
-"32 32 13 1",
-" c None",
-". c #000000",
-"+ c #C00000",
-"@ c #4B8EBF",
-"# c #97C4E7",
-"$ c #619BC4",
-"% c #CAE1F3",
-"& c #76BAE2",
-"* c #63B3DE",
-"= c #54A6D8",
-"- c #E9F3FA",
-"; c #87ABC3",
-"> c #7AC4E5",
-" ",
-" ",
-" ",
-" . . ",
-" ... ... ",
-" ................ ... ",
-" ...++++++++++.@. ... ",
-" ...+++++++++.#$.... ",
-" ...++++++++.%#... ",
-" ....&****=*.-... ",
-" .+...++++++....#; ",
-" .++...+++++...... ",
-" .++>...***...=++. ",
-" .++++...+...++++. ",
-" .+++++.....+++++. ",
-" .++>>>>...****++. ",
-" .+++++.....+++++. ",
-" .++++...+...++++. ",
-" .++>...>>>...*++. ",
-" .++...+++++...++. ",
-" .+...+++++++...+. ",
-" ....>>>>>>>>>.... ",
-" ...+++++++++++... ",
-" ...+++++++++++++... ",
-" ...+++++++++++++++... ",
-" ....+++++++++++++++.... ",
-" ... ................. ... ",
-" . . ",
-" ",
-" ",
-" ",
-" "};
diff --git a/tools/taos-tools/deps/CUnit/Sources/wxWidget/wxWidget.cpp b/tools/taos-tools/deps/CUnit/Sources/wxWidget/wxWidget.cpp
deleted file mode 100644
index 965574a0c6..0000000000
--- a/tools/taos-tools/deps/CUnit/Sources/wxWidget/wxWidget.cpp
+++ /dev/null
@@ -1,1604 +0,0 @@
-/*
- * CUnit - A Unit testing framework library for C.
- * Copyright (C) 2006 Jerry St.Clair
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Implementation of the wxWidgets Test Interface.
- *
- * May 2006 Initial implementation (JDS)
- */
-
-/** @file
- * wxWidgets gui test interface (implementation).
- */
-/** @addtogroup wxWidgets
- @{
-*/
-
-// For compilers that support precompilation, includes "wx.h".
-#include
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-// Include your minimal set of headers here, or wx.h
-#include
-#endif
-#include
-#include
-#include
-#include
-#include
-
-#include "icon_suite_active.xpm"
-#include "icon_suite_active_open.xpm"
-#include "icon_suite_inactive.xpm"
-#include "icon_suite_inactive_open.xpm"
-#include "icon_test_active.xpm"
-#include "icon_test_inactive.xpm"
-#include "icon_test_active_suite_inactive.xpm"
-#include "icon_test_inactive_suite_inactive.xpm"
-
-#include "CUnit.h"
-#include "TestDB.h"
-#include "Util.h"
-#include "TestRun.h"
-#include "MyMem.h"
-#include "wxWidget.h"
-#include "CUnit_intl.h" // include after wx.h to customize gettext macros set in wx.h
-
-
-//* New application type for the CUnit wxWidgets interface.
-class CUnitApp: public wxApp
-{
-public:
- virtual bool OnInit(); //< Initializes the application.
-};
-
-//* Main window for the CUnit wxWidgets interface
-class TopFrame: public wxFrame
-{
-public:
- TopFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
- void SetActiveTopFrame(TopFrame *frame);
-
- enum {
- TreeCtrlIcon_SuiteActive,
- TreeCtrlIcon_SuiteActiveOpen,
- TreeCtrlIcon_SuiteInactive,
- TreeCtrlIcon_SuiteInactiveOpen,
- TreeCtrlIcon_TestActive,
- TreeCtrlIcon_TestInactive,
- TreeCtrlIcon_TestActiveSuiteInactive,
- TreeCtrlIcon_TestInactiveSuiteInactive,
- };
-
- // callback functions for running tests
- static void SuiteStartMessageHandler(const CU_pSuite pSuite);
- static void TestStartMessageHandler(const CU_pTest pTest, const CU_pSuite pSuite);
- static void TestCompleteMessageHandler(const CU_pTest pTest,
- const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure);
- static void SuiteCompleteMessageHandler(const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure);
-
-protected:
- void ClearPreviousStats(void);
- wxTreeItemId FindSuite(CU_pSuite pSuite);
- wxTreeItemId FindTest(CU_pSuite pSuite, CU_pTest pTest);
- void ActivateSuiteInfo(void);
- void DeactivateSuiteInfo(void);
- void ActivateTestInfo(void);
- void DeactivateTestInfo(void);
- void ActivateRunResultInfo(void);
- void DeactivateRunResultInfo(void);
- void WriteFailureRecords(wxTextCtrl *textctrl,
- unsigned int nFailures,
- CU_pFailureRecord pFailure,
- bool reset = false);
-
- // event procedures
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- void OnTreeSelectionChanged(wxTreeEvent &event);
- void OnTreeExpandAll(wxCommandEvent& event);
- void OnTreeCollapseAll(wxCommandEvent& event);
- void OnActivateSelected(wxCommandEvent& event);
- void OnDeactivateSelected(wxCommandEvent& event);
- void OnActivateAllSuites(wxCommandEvent& event);
- void OnDeactivateAllSuites(wxCommandEvent& event);
- void OnActivateAll(wxCommandEvent& event);
- void OnDeactivateAll(wxCommandEvent& event);
- void OnOptionColorizeTreeItems(wxCommandEvent& event);
- void OnOptionFailOnInactive(wxCommandEvent& event);
- void OnRunAll(wxCommandEvent& event);
- void OnCloseWindow(wxCloseEvent& event);
- void OnSuiteActiveCheckbox(wxCommandEvent& event);
- void OnTestActiveCheckbox(wxCommandEvent& event);
-
- void OnTreeSelChanged(wxTreeEvent& event);
-
-private:
- // controls needing persistent hooks
- wxTreeCtrl *m_treectrl; //< wxTreeCtrl holding suite & test references.
- wxStaticBox *m_suite_info_box;
- wxStaticText *m_suite_name_label;
- wxTextCtrl *m_suite_name_text;
- wxStaticText *m_suite_init_label;
- wxStaticText *m_suite_init_text;
- wxStaticText *m_suite_clean_label;
- wxStaticText *m_suite_clean_text;
- wxCheckBox *m_suite_active_box;
- wxStaticBox *m_test_info_box;
- wxStaticText *m_test_name_label;
- wxTextCtrl *m_test_name_text;
- wxCheckBox *m_test_active_box;
- wxStaticBox *m_result_box;
- wxStaticText *m_result_ntests_label;
- wxTextCtrl *m_result_ntests_text;
- wxStaticText *m_result_nasserts_label;
- wxTextCtrl *m_result_nasserts_text;
- wxStaticText *m_result_nfailures_label;
- wxTextCtrl *m_result_nfailures_text;
- wxStaticBox *m_failure_listing_box;
- wxTextCtrl *m_failure_listing_text;
- wxSizer *m_page2sizer;
- wxStaticText *m_run_summary_text;
- wxTextCtrl *m_all_failure_listing_text;
-
- bool m_suite_info_active;
- bool m_test_info_active;
- bool m_result_info_active;
- bool m_failure_info_active;
-
- static TopFrame *m_ActiveTopFrame; //< The active TopFrame, used in test run event handlers.
- CU_RunSummary m_RunSummary_suite; //< For storing intermediate test run results.
- CU_RunSummary m_RunSummary_test; //< For storing intermediate test run results.
- bool m_option_colorize_tree_items; //< Flag for menu option.
- bool m_option_fail_on_inactive; //< Flag for menu option.
- bool m_test_run_complete; //< Flag for whether a test run has been completed
-
- DECLARE_EVENT_TABLE()
-};
-
-IMPLEMENT_APP(CUnitApp)
-
-enum
-{
- menu_FileExit = 1,
- menu_ViewExpandAll,
- menu_ViewCollapseAll,
- menu_ViewColorizeTreeItems,
- menu_OptionActivate,
- menu_OptionActivateSelected,
- menu_OptionActivateAllSuites,
- menu_OptionActivateAll,
- menu_OptionDeactivate,
- menu_OptionDeactivateSelected,
- menu_OptionDeactivateAllSuites,
- menu_OptionDeactivateAll,
- menu_OptionFailOnInactive,
- menu_RunRunAll,
- menu_HelpAbout,
-
- checkbox_SuiteActive,
- checkbox_TestActive,
- tree_Listing,
-};
-
-BEGIN_EVENT_TABLE(TopFrame, wxFrame)
- EVT_MENU(menu_FileExit, TopFrame::OnQuit)
- EVT_MENU(menu_ViewExpandAll, TopFrame::OnTreeExpandAll)
- EVT_MENU(menu_ViewCollapseAll, TopFrame::OnTreeCollapseAll)
- EVT_MENU(menu_OptionActivateSelected, TopFrame::OnActivateSelected)
- EVT_MENU(menu_OptionActivateAllSuites, TopFrame::OnActivateAllSuites)
- EVT_MENU(menu_OptionActivateAll, TopFrame::OnActivateAll)
- EVT_MENU(menu_OptionDeactivateSelected, TopFrame::OnDeactivateSelected)
- EVT_MENU(menu_OptionDeactivateAllSuites, TopFrame::OnDeactivateAllSuites)
- EVT_MENU(menu_OptionDeactivateAll, TopFrame::OnDeactivateAll)
- EVT_MENU(menu_ViewColorizeTreeItems, TopFrame::OnOptionColorizeTreeItems)
- EVT_MENU(menu_OptionFailOnInactive, TopFrame::OnOptionFailOnInactive)
- EVT_MENU(menu_RunRunAll, TopFrame::OnRunAll)
- EVT_MENU(menu_HelpAbout, TopFrame::OnAbout)
-
- EVT_CLOSE( TopFrame::OnCloseWindow)
- EVT_CHECKBOX(checkbox_SuiteActive, TopFrame::OnSuiteActiveCheckbox)
- EVT_CHECKBOX(checkbox_TestActive, TopFrame::OnTestActiveCheckbox)
- EVT_TREE_SEL_CHANGED(tree_Listing, TopFrame::OnTreeSelectionChanged)
-END_EVENT_TABLE()
-
-// wxTreeItemData descendent to hold a run data for a CU_pSuite or CU_pTest
-// The pointer is only held and is never deleted by this class.
-// This is just a data container, so make all members public.
-class TreeCUnitRunData : public wxTreeItemData
-{
-public:
- TreeCUnitRunData(void)
- : nAsserts(0), nFailures(0), pFirstFailure(NULL) {}
-
- unsigned long nAsserts;
- unsigned long nFailures;
- CU_pFailureRecord pFirstFailure;
-};
-
-// wxTreeItemData descendent to hold a CU_pSuite pointer
-// The pointer is only held and is never deleted by this class.
-// This is just a data container, so make all members public.
-class TreeSuiteData : public TreeCUnitRunData
-{
-public:
- TreeSuiteData(CU_pSuite pSuite)
- : pSuite(pSuite), nTestsRun(0) {}
-
- CU_pSuite pSuite;
- unsigned long nTestsRun;
-};
-
-// wxTreeItemData descendent to hold a CU_pTest pointer
-// The pointer is only held and is never deleted by this class.
-// This is just a data container, so make all members public.
-class TreeTestData : public TreeCUnitRunData
-{
-public:
- TreeTestData(CU_pTest pTest)
- : pTest(pTest) {}
-
- CU_pTest pTest;
-};
-
-// Test whether an item is a suite (only has parent, not grandparent)
-static bool isSuite(wxTreeCtrl *tree, wxTreeItemId &item)
-{
- bool result = false;
- wxTreeItemId parent = tree->GetItemParent(item);
- if ((true == parent.IsOk()) &&
- (false == tree->GetItemParent(parent).IsOk())) {
- result = true;
- }
- return result;
-}
-
-// Test whether an item is a test (has both parent and grandparent)
-static bool isTest(wxTreeCtrl *tree, wxTreeItemId &item)
-{
- bool result = false;
- wxTreeItemId parent = tree->GetItemParent(item);
- if ((true == parent.IsOk()) &&
- (true == tree->GetItemParent(parent).IsOk())) {
- result = true;
- }
- return result;
-}
-
-// Format a suite tree item
-static void FormatTreeItem_Suite(wxTreeCtrl *tree, wxTreeItemId &item, bool isActive)
-{
- assert(true == isSuite(tree, item));
- if (true == isActive) {
- tree->SetItemTextColour(item, wxColour("BLACK"));
- tree->SetItemImage(item,
- ((true == tree->IsExpanded(item))
- ? TopFrame::TreeCtrlIcon_SuiteActiveOpen
- : TopFrame::TreeCtrlIcon_SuiteActive),
- wxTreeItemIcon_Normal);
- }
- else {
- tree->SetItemTextColour(item, wxColour("FIREBRICK"));
- tree->SetItemImage(item,
- ((true == tree->IsExpanded(item))
- ? TopFrame::TreeCtrlIcon_SuiteInactiveOpen
- : TopFrame::TreeCtrlIcon_SuiteInactive),
- wxTreeItemIcon_Normal);
- }
-}
-
-// Format a test tree item
-static void FormatTreeItem_Test(wxTreeCtrl *tree,
- wxTreeItemId &item,
- bool isActiveTest,
- bool isActiveSuite)
-{
- if (true == isActiveTest) {
- tree->SetItemTextColour(item, wxColour("BLACK"));
- tree->SetItemImage(item,
- ((true == isActiveSuite)
- ? TopFrame::TreeCtrlIcon_TestActive
- : TopFrame::TreeCtrlIcon_TestActiveSuiteInactive),
- wxTreeItemIcon_Normal);
- }
- else {
- tree->SetItemTextColour(item, wxColour("FIREBRICK"));
- tree->SetItemImage(item,
- ((true == isActiveSuite)
- ? TopFrame::TreeCtrlIcon_TestInactive
- : TopFrame::TreeCtrlIcon_TestInactiveSuiteInactive),
- wxTreeItemIcon_Normal);
- }
-}
-
-//* Base class for functors operating on a wxTreeCtrl element
-struct TreeItemFunctorBase
-{
- //* Function returning true on success, false on failure
- virtual bool func(wxTreeCtrl *WXUNUSED(tree), wxTreeItemId &WXUNUSED(item)) = 0;
-};
-
-//* Apply a functor to each suite in a wxTreeCtrl
-static void ForEachSuite(wxTreeCtrl *tree, TreeItemFunctorBase &functor)
-{
- assert(NULL != tree);
-
- wxTreeItemId item = tree->GetRootItem();
- wxTreeItemIdValue cookie;
- item = tree->GetFirstChild(item, cookie);
- while (true == item.IsOk()) {
- functor.func(tree, item);
- item = tree->GetNextSibling(item);
- }
-}
-
-//* Apply a functor to each test in the specified suite item in a wxTreeCtrl
-static void ForEachTestInSuite(wxTreeCtrl *tree,
- wxTreeItemId &suite_item,
- TreeItemFunctorBase &test_functor)
-{
- assert(NULL != tree);
- if (true == isSuite(tree, suite_item)) {
- wxTreeItemIdValue cookie;
- wxTreeItemId test_item = tree->GetFirstChild(suite_item, cookie);
- while (true == test_item.IsOk()) {
- test_functor.func(tree, test_item);
- test_item = tree->GetNextChild(suite_item, cookie);
- }
- }
-}
-
-//* Apply a functor to each item in a wxTreeCtrl
-static void ForEachSuiteAndTest(wxTreeCtrl *tree,
- TreeItemFunctorBase &suite_functor,
- TreeItemFunctorBase &test_functor)
-{
- assert(NULL != tree);
-
- wxTreeItemId suite_item = tree->GetRootItem(); // note - not a suite yet, but will be
- wxTreeItemIdValue cookie;
- suite_item = tree->GetFirstChild(suite_item, cookie);
- while (true == suite_item.IsOk()) {
- suite_functor.func(tree, suite_item);
- wxTreeItemId test_item = tree->GetFirstChild(suite_item, cookie);
- while (true == test_item.IsOk()) {
- test_functor.func(tree, test_item);
- test_item = tree->GetNextChild(suite_item, cookie);
- }
- suite_item = tree->GetNextSibling(suite_item);
- }
-}
-
-// Tree item functor - expands node
-struct TreeItemFunctor_Expand : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- assert(NULL != tree);
- tree->Expand(item);
- return true;
- }
-};
-static TreeItemFunctor_Expand f_expand_item_functor;
-
-// Tree item functor - collapses node
-struct TreeItemFunctor_Collapse : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- assert(NULL != tree);
- tree->Collapse(item);
- return true;
- }
-};
-static TreeItemFunctor_Collapse f_collapse_item_functor;
-
-// Tree item functor - activates a node if it is a suite
-struct TreeItemFunctor_ActivateSuite : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- TreeSuiteData *data = dynamic_cast(tree->GetItemData(item));
- if (NULL != data) {
- // activate the suite
- data->pSuite->fActive = CU_TRUE;
- // format the suite item in the tree
- FormatTreeItem_Suite(tree, item, true);
-
- // format each test item in the suite
- wxTreeItemIdValue cookie;
- wxTreeItemId test_item = tree->GetFirstChild(item, cookie);
- while (true == test_item.IsOk()) {
- TreeTestData *data = dynamic_cast(tree->GetItemData(test_item));
- FormatTreeItem_Test(tree, test_item,
- ((NULL != data) ? (CU_TRUE == data->pTest->fActive) : true),
- true);
- test_item = tree->GetNextChild(item, cookie);
- }
-
- return true;
- }
- else {
- return false;
- }
- }
-};
-static TreeItemFunctor_ActivateSuite f_activate_suite_item_functor;
-
-// Tree item functor - deactivates a node if it is a suite
-struct TreeItemFunctor_DeactivateSuite : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- TreeSuiteData *data = dynamic_cast(tree->GetItemData(item));
- if (NULL != data) {
- // deactivate the suite
- data->pSuite->fActive = CU_FALSE;
- // format the suite item in the tree
- FormatTreeItem_Suite(tree, item, false);
-
- // format each test item in the suite
- wxTreeItemIdValue cookie;
- wxTreeItemId test_item = tree->GetFirstChild(item, cookie);
- while (true == test_item.IsOk()) {
- TreeTestData *data = dynamic_cast(tree->GetItemData(test_item));
- FormatTreeItem_Test(tree, test_item,
- ((NULL != data) ? (CU_TRUE == data->pTest->fActive) : true),
- false);
- test_item = tree->GetNextChild(item, cookie);
- }
-
- return true;
- }
- else {
- return false;
- }
- }
-};
-static TreeItemFunctor_DeactivateSuite f_deactivate_suite_item_functor;
-
-// Tree item functor - activates a node if it is a test
-struct TreeItemFunctor_ActivateTest : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- TreeTestData *data = dynamic_cast(tree->GetItemData(item));
- if (NULL != data) {
- // activate the test
- data->pTest->fActive = CU_TRUE;
- // format the test item in the tree
- TreeSuiteData *suitedata = dynamic_cast(tree->GetItemData(tree->GetItemParent(item)));
- FormatTreeItem_Test(tree, item, true,
- ((NULL != suitedata) ? (CU_TRUE == suitedata->pSuite->fActive) : true));
- return true;
- }
- else {
- return false;
- }
- }
-};
-static TreeItemFunctor_ActivateTest f_activate_test_item_functor;
-
-// Tree item functor - deactivates a node if it is a test
-struct TreeItemFunctor_DeactivateTest : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- TreeTestData *data = dynamic_cast(tree->GetItemData(item));
- if (NULL != data) {
- // deactivate the test
- data->pTest->fActive = CU_FALSE;
- // format the test item in the tree
- TreeSuiteData *suitedata = dynamic_cast(tree->GetItemData(tree->GetItemParent(item)));
- FormatTreeItem_Test(tree, item, false,
- ((NULL != suitedata) ? (CU_TRUE == suitedata->pSuite->fActive) : true));
- return true;
- }
- else {
- return false;
- }
- }
-};
-static TreeItemFunctor_DeactivateTest f_deactivate_test_item_functor;
-
-// Tree item functor - clears the run stats for a node if it is a suite
-struct TreeItemFunctor_ClearSuiteStats : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- TreeSuiteData *data = dynamic_cast(tree->GetItemData(item));
- if (NULL != data) {
- data->nTestsRun = 0;
- data->nAsserts = 0;
- data->nFailures = 0;
- data->pFirstFailure = NULL;
- return true;
- }
- else {
- return false;
- }
- }
-};
-static TreeItemFunctor_ClearSuiteStats f_clear_suite_stats_functor;
-
-// Tree item functor - clears the run stats for a node if it is a test
-struct TreeItemFunctor_ClearTestStats : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- TreeTestData *data = dynamic_cast(tree->GetItemData(item));
- if (NULL != data) {
- data->nAsserts = 0;
- data->nFailures = 0;
- data->pFirstFailure = NULL;
- return true;
- }
- else {
- return false;
- }
- }
-};
-static TreeItemFunctor_ClearTestStats f_clear_test_stats_functor;
-
-// Tree item functor - colorize the background color based on failure status
-struct TreeItemFunctor_ColorizeItemBackground : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- TreeCUnitRunData *data = dynamic_cast(tree->GetItemData(item));
- assert(NULL != data);
- tree->SetItemBackgroundColour(item, wxColour((data->nFailures > 0) ? "RED" : "GREEN"));
- return true;
- }
-};
-static TreeItemFunctor_ColorizeItemBackground f_colorize_item_background;
-
-// Tree item functor - resets the background color to white
-struct TreeItemFunctor_ResetItemBackgroundColor : public TreeItemFunctorBase
-{
- virtual bool func(wxTreeCtrl *tree, wxTreeItemId &item)
- {
- tree->SetItemBackgroundColour(item, wxColour("WHITE"));
- return true;
- }
-};
-static TreeItemFunctor_ResetItemBackgroundColor f_reset_item_background_color;
-
-bool CUnitApp::OnInit()
-{
- TopFrame *frame = new TopFrame(_("CUnit Testing - wxWidgets Interface"),
- wxPoint(50,50),
- wxSize(450,340));
- frame->CenterOnScreen();
- frame->Show(true);
- SetTopWindow(frame);
- return true;
-}
-
-TopFrame *TopFrame::m_ActiveTopFrame = NULL;
-
-void TopFrame::ClearPreviousStats(void)
-{
- CU_RunSummary initialized_summary = {0,0,0,0,0,0,0,0,0};
-
- ForEachSuiteAndTest(m_treectrl, f_clear_suite_stats_functor, f_clear_test_stats_functor);
- if (true == m_option_colorize_tree_items) {
- ForEachSuiteAndTest(m_treectrl, f_reset_item_background_color, f_reset_item_background_color);
- }
- m_RunSummary_suite = initialized_summary;
- m_RunSummary_test = initialized_summary;
-}
-
-void TopFrame::SetActiveTopFrame(TopFrame *frame)
-{
- m_ActiveTopFrame = frame;
-}
-
-wxTreeItemId TopFrame::FindSuite(CU_pSuite pSuite)
-{
- TreeSuiteData *data;
- wxTreeItemIdValue cookie;
- wxTreeItemId suite_item;
-
- suite_item = m_treectrl->GetFirstChild(m_treectrl->GetRootItem(), cookie);
- while (true == suite_item.IsOk()) {
- data = dynamic_cast(m_treectrl->GetItemData(suite_item));
- if (data->pSuite == pSuite) {
- break;
- }
- suite_item = m_treectrl->GetNextSibling(suite_item);
- }
- return suite_item;
-}
-
-wxTreeItemId TopFrame::FindTest(CU_pSuite pSuite, CU_pTest pTest)
-{
- TreeTestData *data;
- wxTreeItemIdValue cookie;
- wxTreeItemId suite_item;
- wxTreeItemId test_item;
-
- suite_item = FindSuite(pSuite);
- if (!suite_item.IsOk()) {
- return suite_item;
- }
-
- test_item = m_treectrl->GetFirstChild(suite_item, cookie);
- while (true == test_item.IsOk()) {
- data = dynamic_cast(m_treectrl->GetItemData(test_item));
- if (data->pTest == pTest) {
- break;
- }
- test_item = m_treectrl->GetNextChild(suite_item, cookie);
- }
- return test_item;
-
-}
-
-void TopFrame::DeactivateSuiteInfo(void)
-{
- if (true == m_suite_info_active) {
- m_suite_info_box->SetForegroundColour("LIGHT GRAY");
- m_suite_info_box->Refresh();
-
- m_suite_name_label->SetForegroundColour("LIGHT GRAY");
- m_suite_name_label->Refresh();
-
- m_suite_name_text->SetForegroundColour("LIGHT GRAY");
- m_suite_name_text->Refresh();
- m_suite_name_text->SetValue(_("n/a"));
-
- m_suite_init_label->SetForegroundColour("LIGHT GRAY");
- m_suite_init_label->Refresh();
-
- m_suite_init_text->SetForegroundColour("LIGHT GRAY");
- m_suite_init_text->Refresh();
- m_suite_init_text->SetLabel(_("n/a"));
-
- m_suite_clean_label->SetForegroundColour("LIGHT GRAY");
- m_suite_clean_label->Refresh();
-
- m_suite_clean_text->SetForegroundColour("LIGHT GRAY");
- m_suite_clean_text->Refresh();
- m_suite_clean_text->SetLabel(_("n/a"));
-
- m_suite_active_box->SetForegroundColour("LIGHT GRAY");
- m_suite_active_box->Refresh();
- m_suite_active_box->Set3StateValue(wxCHK_UNDETERMINED);
-
- m_suite_info_active = false;
- }
-}
-
-void TopFrame::ActivateSuiteInfo(void)
-{
- if (false == m_suite_info_active) {
- m_suite_info_box->SetForegroundColour("BLACK");
- m_suite_info_box->Refresh();
-
- m_suite_name_label->SetForegroundColour("BLACK");
- m_suite_name_label->Refresh();
-
- m_suite_name_text->SetForegroundColour("BLACKY");
- m_suite_name_text->Refresh();
-
- m_suite_init_label->SetForegroundColour("BLACK");
- m_suite_init_label->Refresh();
-
- m_suite_init_text->SetForegroundColour("BLACK");
- m_suite_init_text->Refresh();
-
- m_suite_clean_label->SetForegroundColour("BLACK");
- m_suite_clean_label->Refresh();
-
- m_suite_clean_text->SetForegroundColour("BLACK");
- m_suite_clean_text->Refresh();
-
- m_suite_active_box->SetForegroundColour("BLACK");
- m_suite_active_box->Refresh();
-
- m_suite_info_active = true;
- }
-}
-
-void TopFrame::DeactivateTestInfo(void)
-{
- if (true == m_test_info_active) {
- m_test_info_box->SetForegroundColour("LIGHT GRAY");
- m_test_info_box->Refresh();
-
- m_test_name_label->SetForegroundColour("LIGHT GRAY");
- m_test_name_label->Refresh();
-
- m_test_name_text->SetForegroundColour("LIGHT GRAY");
- m_test_name_text->Refresh();
- m_test_name_text->SetLabel(_("n/a"));
-
- m_test_active_box->SetForegroundColour("LIGHT GRAY");
- m_test_active_box->Refresh();
-
- m_test_info_active = false;
- }
-}
-
-void TopFrame::ActivateTestInfo(void)
-{
- if (false == m_test_info_active) {
- m_test_info_box->SetForegroundColour("BLACK");
- m_test_info_box->Refresh();
-
- m_test_name_label->SetForegroundColour("BLACK");
- m_test_name_label->Refresh();
-
- m_test_name_text->SetForegroundColour("BLACK");
- m_test_name_text->Refresh();
-
- m_test_active_box->SetForegroundColour("BLACK");
- m_test_active_box->Refresh();
- m_test_active_box->Set3StateValue(wxCHK_UNDETERMINED);
-
- m_test_info_active = true;
- }
-}
-
-void TopFrame::DeactivateRunResultInfo(void)
-{
- if (true == m_result_info_active) {
- m_result_box->SetForegroundColour("LIGHT GRAY");
- m_result_box->Refresh();
-
- m_result_ntests_label->SetForegroundColour("LIGHT GRAY");
- m_result_ntests_label->Refresh();
-
- m_result_ntests_text->SetForegroundColour("LIGHT GRAY");
- m_result_ntests_text->Refresh();
- m_result_ntests_text->SetValue(_("n/a"));
-
- m_result_nasserts_label->SetForegroundColour("LIGHT GRAY");
- m_result_nasserts_label->Refresh();
-
- m_result_nasserts_text->SetForegroundColour("LIGHT GRAY");
- m_result_nasserts_text->Refresh();
- m_result_nasserts_text->SetValue(_("n/a"));
-
- m_result_nfailures_label->SetForegroundColour("LIGHT GRAY");
- m_result_nfailures_label->Refresh();
-
- m_result_nfailures_text->SetForegroundColour("LIGHT GRAY");
- m_result_nfailures_text->Refresh();
- m_result_nfailures_text->SetValue(_("n/a"));
-
- m_result_info_active = false;
- }
-
- if (true == m_failure_info_active) {
- m_failure_listing_box->SetForegroundColour("LIGHT GRAY");
- m_failure_listing_box->Refresh();
-
- m_failure_info_active = false;
- }
-}
-
-void TopFrame::ActivateRunResultInfo(void)
-{
- if (false == m_result_info_active) {
- m_result_box->SetForegroundColour("BLACK");
- m_result_box->Refresh();
-
- m_result_ntests_label->SetForegroundColour("BLACK");
- m_result_ntests_label->Refresh();
-
- m_result_ntests_text->SetForegroundColour("BLACK");
- m_result_ntests_text->Refresh();
-
- m_result_nasserts_label->SetForegroundColour("BLACK");
- m_result_nasserts_label->Refresh();
-
- m_result_nasserts_text->SetForegroundColour("BLACK");
- m_result_nasserts_text->Refresh();
-
- m_result_nfailures_label->SetForegroundColour("BLACK");
- m_result_nfailures_label->Refresh();
-
- m_result_nfailures_text->SetForegroundColour("BLACK");
- m_result_nfailures_text->Refresh();
-
- m_result_info_active = true;
- }
-
- if (false == m_failure_info_active) {
- m_failure_listing_box->SetForegroundColour("BLACK");
- m_failure_listing_box->Refresh();
-
- m_failure_info_active = true;
- }
-}
-
-void TopFrame::WriteFailureRecords(wxTextCtrl *textctrl,
- unsigned int nFailures,
- CU_pFailureRecord pFailure,
- bool reset)
-{
- static long failure_number = 0;
-
- assert(NULL != textctrl);
-
- if (true == reset) {
- textctrl->Clear();
- failure_number = 0;
- }
-
- for (unsigned int i=0 ; istrCondition) ? pFailure->strCondition : _(""))
- << "\n" << _("Suite: ")
- << (((NULL != pFailure->pSuite) &&
- (NULL != pFailure->pSuite->pName)) ? pFailure->pSuite->pName : "")
- << "\n" << _("Test: ")
- << (((NULL != pFailure->pTest) &&
- (NULL != pFailure->pTest->pName)) ? pFailure->pTest->pName : "")
- << "\n" << _("Source: ")
- << ((NULL != pFailure->strFunction) ? pFailure->strFunction : "")
- << ":" << ((NULL != pFailure->strFileName) ? pFailure->strFileName : "")
- << ":" << (long)(pFailure->uiLineNumber) << "\n\n";
- pFailure = pFailure->pNext;
- }
- }
- textctrl->ShowPosition(0);
-}
-
-TopFrame::TopFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
-: wxFrame((wxFrame *)NULL, -1, title, pos, size, wxDEFAULT_FRAME_STYLE),
- m_option_colorize_tree_items(true),
- m_option_fail_on_inactive(true),
- m_test_run_complete(false),
- m_suite_info_active(true), // set true so will be properly deactivated during function
- m_test_info_active(true),
- m_result_info_active(true),
- m_failure_info_active(true)
-{
- wxBusyCursor wait;
-
- // INITIALIZE THE MENU SYSTEM
- // File menu
- wxMenu *menuFile = new wxMenu;
-
- menuFile->Append(menu_FileExit, _("E&xit"), _("Exit the program"));
-
- // View menu
- wxMenu *menuView = new wxMenu;
-
- menuView->Append(menu_ViewExpandAll, _("Ex&pand all\tCtrl+P"), _("Expand all suite nodes"));
- menuView->Append(menu_ViewCollapseAll, _("C&ollapse all\tCtrl+O"), _("Collapse all suite nodes"));
- menuView->AppendSeparator();
- menuView->AppendCheckItem(menu_ViewColorizeTreeItems,
- _("Use &color"),
- _("Change background colors to indicate run results."));
- menuView->Check(menu_ViewColorizeTreeItems, true);
-
- // Option menu
- wxMenu *menuOption = new wxMenu;
-
- menuOption->AppendCheckItem(menu_OptionFailOnInactive,
- _("Fail on &Inactive"),
- _("Generate failure events when an inactive suite or test is run."));
-
- menuOption->Check(menu_OptionFailOnInactive, true);
- menuOption->AppendSeparator();
-
- wxMenu *menuOptionActivate = new wxMenu;
-
- menuOptionActivate->Append(menu_OptionActivateSelected, _("&Item\tCtrl+A"), _("Activate the selected item"));
- menuOptionActivate->Append(menu_OptionActivateAllSuites, _("&Suites"), _("Activate all suites"));
- menuOptionActivate->Append(menu_OptionActivateAll, _("&All\tCtrl+Shift+A"), _("Activate all suites and tests"));
-
- wxMenu *menuOptionDeactivate = new wxMenu;
-
- menuOptionDeactivate->Append(menu_OptionDeactivateSelected, _("&Item\tCtrl+D"), _("Deactivate the selected item"));
- menuOptionDeactivate->Append(menu_OptionDeactivateAllSuites, _("&Suites"), _("Deactivate all suites"));
- menuOptionDeactivate->Append(menu_OptionDeactivateAll, _("&All\tCtrl+Shift+D"), _("Deactivate all suites and tests"));
-
- menuOption->Append(menu_OptionActivateSelected, _("&Activate"), menuOptionActivate);
- menuOption->Append(menu_OptionDeactivateSelected, _("&Deactivate"), menuOptionDeactivate);
-
- // Run menu
- wxMenu *menuRun = new wxMenu;
-
- menuRun->Append(menu_RunRunAll, _("&Run all\tCtrl+r"), _("Run all registered suites"));
-
- // Help menu
- wxMenu *menuHelp = new wxMenu;
-
- menuHelp->AppendSeparator();
- menuHelp->Append(menu_HelpAbout, _("&About..."), _("About CUnit"));
-
- // Apply menu bar to frame
- wxMenuBar *menuBar = new wxMenuBar;
- menuBar->Append(menuFile, _("&File"));
- menuBar->Append(menuView, _("&View"));
- menuBar->Append(menuOption, _("&Option"));
- menuBar->Append(menuRun, _("&Run"));
- menuBar->Append(menuHelp, _("&Help"));
-
- SetMenuBar( menuBar );
-
- // CREATE && INITIALIZE THE STATUS BAR
- CreateStatusBar();
- SetStatusText(_("Welcome to CUnit!"));
-
- // CREATE & INITIALIZE IMAGE LIST FOR LISTING ICONS
- wxImageList *images = new wxImageList(16, 16, true);
-
- // should correspond to TreeCtrlIcon_xxx enum
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_suite_active_xpm)).ConvertToImage().Rescale(16, 16)));
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_suite_active_open_xpm)).ConvertToImage().Rescale(16, 16)));
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_suite_inactive_xpm)).ConvertToImage().Rescale(16, 16)));
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_suite_inactive_open_xpm)).ConvertToImage().Rescale(16, 16)));
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_test_active_xpm)).ConvertToImage().Rescale(16, 16)));
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_test_inactive_xpm)).ConvertToImage().Rescale(16, 16)));
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_test_active_suite_inactive_xpm)).ConvertToImage().Rescale(16, 16)));
- images->Add(wxBitmap(wxBitmap(wxIcon(icon_test_inactive_suite_inactive_xpm)).ConvertToImage().Rescale(16, 16)));
-
- // CREATE CONTROLS
- wxSizer *topsizer = new wxBoxSizer(wxHORIZONTAL);
-
- // create tree for suite & test listing and add to sizer
- m_treectrl = new wxTreeCtrl(this,
- tree_Listing,
- wxDefaultPosition,
- wxDefaultSize,
- wxTR_DEFAULT_STYLE | wxTR_HIDE_ROOT );
- m_treectrl->AssignImageList(images);
- topsizer->Add(m_treectrl, 2, wxEXPAND | wxALL, 10);
-
- // create a sizer to manage page 1 of the notebook
- wxBoxSizer *page1sizer = new wxBoxSizer(wxVERTICAL);
-
- wxNotebook *notebook = new wxNotebook(this, -1);
- wxPanel *panelinfo = new wxPanel(notebook, -1);
-
- this->SetBackgroundColour(notebook->GetBackgroundColour());
-
- // create controls for suite information
- m_suite_info_box = new wxStaticBox(panelinfo, -1, _("Suite Information"));
- wxSizer *suiteinfosizer = new wxStaticBoxSizer(m_suite_info_box, wxVERTICAL);
-
- wxSizer *bsizerH = new wxBoxSizer(wxHORIZONTAL);
- m_suite_name_label = new wxStaticText(panelinfo, -1, _("Name:"),
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_RIGHT);
- bsizerH->Add(m_suite_name_label, 0, wxEXPAND | wxALL, 2);
- m_suite_name_text = new wxTextCtrl(panelinfo, -1, _("n/a"),
- wxDefaultPosition,
- wxDefaultSize,
- wxNO_BORDER | wxTE_READONLY);
- m_suite_name_text->SetBackgroundColour(panelinfo->GetBackgroundColour());
- bsizerH->Add(m_suite_name_text, 1, wxEXPAND | wxALL, 2);
- suiteinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- m_suite_init_label = new wxStaticText(panelinfo, -1, _("Init Func?"),
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_RIGHT);
- bsizerH->Add(m_suite_init_label, 0, wxEXPAND | wxALL, 2);
- m_suite_init_text = new wxStaticText(panelinfo, -1, _("n/a"),
- wxDefaultPosition,
- wxDefaultSize,
- wxST_NO_AUTORESIZE);
- bsizerH->Add(m_suite_init_text, 1, wxEXPAND | wxALL, 2);
- suiteinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- m_suite_clean_label = new wxStaticText(panelinfo, -1, _("Cleanup Func?"),
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_RIGHT);
- bsizerH->Add(m_suite_clean_label, 0, wxEXPAND | wxALL, 2);
- m_suite_clean_text = new wxStaticText(panelinfo, -1, _("n/a"),
- wxDefaultPosition,
- wxDefaultSize,
- wxST_NO_AUTORESIZE);
- bsizerH->Add(m_suite_clean_text, 1, wxEXPAND | wxALL, 2);
- suiteinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- bsizerH->Add(25, 5, 0, wxGROW | wxALL, 2); // spacer
- m_suite_active_box = new wxCheckBox(panelinfo,
- checkbox_SuiteActive,
- _("Active?"),
- wxDefaultPosition,
- wxDefaultSize,
- wxCHK_3STATE | wxALIGN_RIGHT);
- bsizerH->Add(m_suite_active_box, 0, wxALIGN_LEFT | wxEXPAND | wxALL, 1);
- suiteinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- page1sizer->Add(suiteinfosizer, 0, wxEXPAND | wxALL, 1);
-
- // create controls for test information
- m_test_info_box = new wxStaticBox(panelinfo, -1, _("Test Information"));
- wxSizer *testinfosizer = new wxStaticBoxSizer(m_test_info_box, wxVERTICAL);
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- m_test_name_label = new wxStaticText(panelinfo, -1, _("Name:"),
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_RIGHT);
- bsizerH->Add(m_test_name_label, 0, wxEXPAND | wxALL, 2);
- m_test_name_text = new wxTextCtrl(panelinfo, -1, _("n/a"),
- wxDefaultPosition,
- wxDefaultSize,
- wxNO_BORDER | wxTE_READONLY);
- m_test_name_text->SetBackgroundColour(panelinfo->GetBackgroundColour());
- bsizerH->Add(m_test_name_text, 1, wxEXPAND | wxALL, 2);
- testinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- bsizerH->Add(25, 5, 0, wxGROW | wxALL, 1); // spacer
- m_test_active_box = new wxCheckBox(panelinfo,
- checkbox_TestActive,
- _("Active?"),
- wxDefaultPosition,
- wxDefaultSize,
- wxCHK_3STATE | wxALIGN_RIGHT);
- bsizerH->Add(m_test_active_box, 0, wxALIGN_LEFT | wxEXPAND | wxALL, 1);
- testinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- page1sizer->Add(testinfosizer, 0, wxEXPAND | wxALL, 1);
-
- // create controls for run result information
- m_result_box = new wxStaticBox(panelinfo, -1, _("Run Result Information"));
- wxSizer *resultinfosizer = new wxStaticBoxSizer(m_result_box, wxVERTICAL);
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- m_result_ntests_label = new wxStaticText(panelinfo, -1, _("# Tests:"),
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_RIGHT);
- bsizerH->Add(m_result_ntests_label, 0, wxEXPAND | wxALL, 2);
- m_result_ntests_text = new wxTextCtrl(panelinfo, -1, _("n/a"),
- wxDefaultPosition,
- wxDefaultSize,
- wxNO_BORDER | wxTE_READONLY);
- m_result_ntests_text->SetBackgroundColour(panelinfo->GetBackgroundColour());
- bsizerH->Add(m_result_ntests_text, 1, wxEXPAND | wxALL, 2);
- resultinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- m_result_nasserts_label = new wxStaticText(panelinfo, -1, _("# Asserts:"),
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_RIGHT);
- bsizerH->Add(m_result_nasserts_label, 0, wxEXPAND | wxALL, 2);
- m_result_nasserts_text = new wxTextCtrl(panelinfo, -1, _("n/a"),
- wxDefaultPosition,
- wxDefaultSize,
- wxNO_BORDER | wxTE_READONLY);
- m_result_nasserts_text->SetBackgroundColour(panelinfo->GetBackgroundColour());
- bsizerH->Add(m_result_nasserts_text, 1, wxEXPAND | wxALL, 2);
- resultinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
-
- bsizerH = new wxBoxSizer(wxHORIZONTAL);
- m_result_nfailures_label = new wxStaticText(panelinfo, -1, _("# Failures:"),
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_RIGHT);
- bsizerH->Add(m_result_nfailures_label, 0, wxEXPAND | wxALL, 2);
- m_result_nfailures_text = new wxTextCtrl(panelinfo, -1, _("n/a"),
- wxDefaultPosition,
- wxDefaultSize,
- wxNO_BORDER | wxTE_READONLY);
- m_result_nfailures_text->SetBackgroundColour(panelinfo->GetBackgroundColour());
- bsizerH->Add(m_result_nfailures_text, 1, wxEXPAND | wxALL, 2);
- resultinfosizer->Add(bsizerH, 0, wxEXPAND | wxALL, 1);
-
- page1sizer->Add(resultinfosizer, 0, wxEXPAND | wxALL, 1);
-
- // create controls for failure listing
- m_failure_listing_box = new wxStaticBox(panelinfo, -1, _("Failure Listing"));
- wxSizer *failurelistingsizer = new wxStaticBoxSizer(m_failure_listing_box, wxVERTICAL);
-
- m_failure_listing_text = new wxTextCtrl(panelinfo, -1, "",
- wxDefaultPosition,
- wxDefaultSize,
- wxTE_MULTILINE | wxTE_READONLY);
- failurelistingsizer->Add(m_failure_listing_text, 1, wxEXPAND | wxALL, 1);
-
- page1sizer->Add(failurelistingsizer, 1, wxEXPAND | wxALL, 1);
-
- // add panelinfo to notebook
- panelinfo->SetSizer(page1sizer);
- notebook->AddPage(panelinfo, _("Info"), true);
-
- // create a sizer to manage page 2 of the notebook
- m_page2sizer = new wxBoxSizer(wxVERTICAL);
- wxPanel *panelrunsummary = new wxPanel(notebook, -1);
-
- // create controls to display run summary & failure listing
- m_run_summary_text = new wxStaticText(panelrunsummary, -1, "",
- wxDefaultPosition,
- wxSize(75,-1),
- wxALIGN_LEFT);
- m_run_summary_text->SetFont(wxFont(notebook->GetFont().GetPointSize(),
- wxFONTFAMILY_MODERN,
- wxFONTSTYLE_NORMAL,
- wxFONTWEIGHT_NORMAL));
- m_page2sizer->Add(m_run_summary_text, 0, wxEXPAND | wxALL, 20);
-
- wxSizer *allfailurelistingsizer = new wxStaticBoxSizer(wxVERTICAL, panelrunsummary, _("Failure Listing"));
-
- m_all_failure_listing_text = new wxTextCtrl(panelrunsummary, -1, "",
- wxDefaultPosition,
- wxDefaultSize,
- wxTE_MULTILINE | wxTE_READONLY);
- allfailurelistingsizer->Add(m_all_failure_listing_text, 1, wxEXPAND | wxALL, 1);
-
- m_page2sizer->Add(allfailurelistingsizer, 1, wxEXPAND | wxALL, 1);
-
- // add panelrunsummary to notebook
- panelrunsummary->SetSizer(m_page2sizer);
- notebook->AddPage(panelrunsummary, _("Run Summary"), false);
-
-
- // add notebook to topsizer
- topsizer->Add(notebook, 3, wxEXPAND | wxALL, 10);
-
- SetSizer(topsizer); // use the sizer for layout
-
- topsizer->SetSizeHints(this); // set size hints to honour minimum size
-
- DeactivateSuiteInfo();
- DeactivateTestInfo();
- DeactivateRunResultInfo();
-
- // CREATE TESTS AND FILL IN TREE LISTING
- if (CU_TRUE == create_tests()) {
-
- CU_pTestRegistry pRegistry = CU_get_registry();
- assert(NULL != pRegistry);
-
- wxTreeItemId root_item = m_treectrl->AddRoot(_("Test Registry"));
- CU_pSuite pSuite = pRegistry->pSuite;
- while (NULL != pSuite) {
- wxTreeItemId suite_item = m_treectrl->AppendItem(root_item,
- pSuite->pName,
- -1,
- -1,
- new TreeSuiteData(pSuite));
-
- FormatTreeItem_Suite(m_treectrl, suite_item, (CU_TRUE == pSuite->fActive));
-
- CU_pTest pTest = pSuite->pTest;
- while (NULL != pTest) {
- wxTreeItemId test_item = m_treectrl->AppendItem(suite_item,
- pTest->pName,
- -1,
- -1,
- new TreeTestData(pTest));
- FormatTreeItem_Test(m_treectrl,
- test_item,
- (CU_TRUE == pTest->fActive),
- (CU_TRUE == pSuite->fActive));
-
- pTest = pTest->pNext;
- }
- pSuite = pSuite->pNext;
- }
- }
- else {
- wxMessageBox(_("Tests creation failed!"),
- _("Test Creation Report"),
- wxOK | wxICON_EXCLAMATION);
- }
-
- // MAKE SURE CUNIT OPTIONS COORDINATED WITH INTERFACE
- CU_set_fail_on_inactive((true == m_option_fail_on_inactive) ? CU_TRUE : CU_FALSE);
-}
-
-void TopFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
-{
- Close(true);
-}
-
-void TopFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
-{
- if (CU_FALSE == destroy_tests()) {
- wxMessageBox(_("Tests destruction failed!"),
- _("Test Destruction Report"),
- wxOK | wxICON_EXCLAMATION);
- }
-
- this->Destroy();
-}
-
-void TopFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
-{
- static wxString msg;
-
- if (msg.Len() == 0) {
- msg << _("CUnit - A Unit Testing Framework for C") << "\n"
- << _("http://cunit.sourceforge.net/") << "\n\n"
- << _("Copyright (c) 2001-2006 Anil Kumar, Jerry St.Clair") << "\n\n"
- << _("Made with wxWidgets:") << "\n"
- << _("http://www.wxwidgets.org");
- }
-
- wxMessageBox(msg, _("About CUnit"), wxOK | wxICON_INFORMATION);
-}
-
-void TopFrame::OnTreeExpandAll(wxCommandEvent& WXUNUSED(event))
-{
- ForEachSuite(m_treectrl, f_expand_item_functor);
-}
-
-void TopFrame::OnTreeCollapseAll(wxCommandEvent& WXUNUSED(event))
-{
- ForEachSuite(m_treectrl, f_collapse_item_functor);
-}
-
-void TopFrame::OnTreeSelectionChanged(wxTreeEvent& event)
-{
- wxTreeItemId suite_item = event.GetItem();
- wxTreeItemId test_item;
-
- if (false == suite_item.IsOk()) {
- DeactivateSuiteInfo();
- DeactivateTestInfo();
- DeactivateRunResultInfo();
- return;
- }
-
- // Action depends on whether the item selected is a suite or test
- if (isTest(m_treectrl, suite_item)) {
- test_item = suite_item;
- suite_item = m_treectrl->GetItemParent(test_item);
- }
-
- // fill in suite info
- TreeSuiteData *data = dynamic_cast(m_treectrl->GetItemData(suite_item));
- CU_pSuite pSuite = data->pSuite;
-
- ActivateSuiteInfo();
- m_suite_name_text->SetValue(pSuite->pName);
- m_suite_init_text->SetLabel(wxString(((NULL != pSuite->pInitializeFunc) ? _("Yes") : _("No"))));
- m_suite_clean_text->SetLabel(wxString(((NULL != pSuite->pCleanupFunc) ? _("Yes") : _("No"))));
- m_suite_active_box->SetValue((CU_FALSE == pSuite->fActive) ? false : true);
-
- if (false == m_test_run_complete) {
- DeactivateRunResultInfo();
- }
- else {
- ActivateRunResultInfo();
- }
-
- if (true == test_item.IsOk()) {
- // selected item is a test - fill in test info
- TreeTestData *data = dynamic_cast(m_treectrl->GetItemData(test_item));
- CU_pTest pTest = data->pTest;
- ActivateTestInfo();
-
- // update test information
- m_test_name_text->SetValue(pTest->pName);
- m_test_active_box->SetValue((CU_FALSE == pTest->fActive) ? false : true);
- // update run result information
- if (true == m_test_run_complete) {
- m_result_ntests_label->SetForegroundColour("LIGHT GRAY");
- m_result_ntests_label->Refresh();
- m_result_ntests_text->SetForegroundColour("LIGHT GRAY");
- m_result_ntests_text->Refresh();
- m_result_ntests_text->SetValue(_("n/a"));
-
- wxString text;
- text << data->nAsserts;
- m_result_nasserts_text->SetValue(text);
- text.Clear();
- text << data->nFailures;
- m_result_nfailures_text->SetValue(text);
-
- if (0 == data->nFailures) {
- m_failure_listing_text->SetValue("No failures.");
- }
- else {
- WriteFailureRecords(m_failure_listing_text, data->nFailures, data->pFirstFailure, true);
- }
- }
- }
- else {
- // a suite is selected - inactivate test information
- DeactivateTestInfo();
-
- // update result information for the suite
- if (true == m_test_run_complete) {
- m_result_ntests_label->SetForegroundColour("BLACK");
- m_result_ntests_label->Refresh();
- m_result_ntests_text->SetForegroundColour("BLACK");
- m_result_ntests_text->Refresh();
-
- wxString text;
- text << data->nTestsRun;
- m_result_ntests_text->SetValue(text);
- text.Clear();
- text << data->nAsserts;
- m_result_nasserts_text->SetValue(text);
- text.Clear();
- text << data->nFailures;
- m_result_nfailures_text->SetValue(text);
-
- if (0 == data->nFailures) {
- m_failure_listing_text->SetValue("No failures.");
- }
- else {
- WriteFailureRecords(m_failure_listing_text, data->nFailures, data->pFirstFailure, true);
- }
- }
- }
-}
-
-void TopFrame::OnActivateSelected(wxCommandEvent& WXUNUSED(event))
-{
- wxTreeItemId item = m_treectrl->GetSelection();
- if (item.IsOk()) {
- if (isSuite(m_treectrl, item)) {
- f_activate_suite_item_functor.func(m_treectrl, item);
- }
- else {
- f_activate_test_item_functor.func(m_treectrl, item);
- }
- m_treectrl->SelectItem(item); // re-select item to make sure display is updated
- }
-}
-
-void TopFrame::OnDeactivateSelected(wxCommandEvent& WXUNUSED(event))
-{
- wxTreeItemId item = m_treectrl->GetSelection();
- if (item.IsOk()) {
- if (isSuite(m_treectrl, item)) {
- f_deactivate_suite_item_functor.func(m_treectrl, item);
- }
- else {
- f_deactivate_test_item_functor.func(m_treectrl, item);
- }
- m_treectrl->SelectItem(item); // re-select item to make sure display is updated
- }
-}
-
-void TopFrame::OnActivateAllSuites(wxCommandEvent& WXUNUSED(event))
-{
- ForEachSuite(m_treectrl, f_activate_suite_item_functor);
- m_treectrl->SelectItem(m_treectrl->GetSelection()); // make sure display is updated
-}
-
-void TopFrame::OnDeactivateAllSuites(wxCommandEvent& WXUNUSED(event))
-{
- ForEachSuite(m_treectrl, f_deactivate_suite_item_functor);
- m_treectrl->SelectItem(m_treectrl->GetSelection()); // make sure display is updated
-}
-
-void TopFrame::OnActivateAll(wxCommandEvent& WXUNUSED(event))
-{
- ForEachSuiteAndTest(m_treectrl,
- f_activate_suite_item_functor,
- f_activate_test_item_functor);
- m_treectrl->SelectItem(m_treectrl->GetSelection()); // make sure display is updated
-}
-
-void TopFrame::OnDeactivateAll(wxCommandEvent& WXUNUSED(event))
-{
- ForEachSuiteAndTest(m_treectrl,
- f_deactivate_suite_item_functor,
- f_deactivate_test_item_functor);
- m_treectrl->SelectItem(m_treectrl->GetSelection()); // make sure display is updated
-}
-
-void TopFrame::OnRunAll(wxCommandEvent& WXUNUSED(event))
-{
- // set up CUnit test run message handlers
- CU_set_suite_start_handler(&TopFrame::SuiteStartMessageHandler);
- CU_set_test_start_handler(&TopFrame::TestStartMessageHandler);
- CU_set_test_complete_handler(&TopFrame::TestCompleteMessageHandler);
- CU_set_suite_complete_handler(&TopFrame::SuiteCompleteMessageHandler);
- // this is the active TopFrame to be updated with run results
- m_ActiveTopFrame = this;
-
- // clear previous stats and run tests
- ClearPreviousStats();
- CU_run_all_tests();
- m_test_run_complete = true;
- m_treectrl->SelectItem(m_treectrl->GetSelection()); // trigger updating the results info
-
- // fill in run summary results
- char *summary_cstring = CU_get_run_results_string();
- wxString summary_string(summary_cstring);
- summary_string << "\n" << _("Failure count = ") << CU_get_number_of_failure_records();
- CU_FREE(summary_cstring);
-
- m_run_summary_text->SetLabel(summary_string);
- if (0 == CU_get_number_of_failure_records()) {
- m_all_failure_listing_text->SetValue("No failures.");
- }
- else {
- WriteFailureRecords(m_all_failure_listing_text,
- CU_get_number_of_failure_records(),
- CU_get_failure_list(),
- true);
- }
- m_page2sizer->Layout();
-}
-
-void TopFrame::OnOptionColorizeTreeItems(wxCommandEvent& event)
-{
- if (event.IsChecked() && (false == m_option_colorize_tree_items)) {
- m_option_colorize_tree_items = true;
- if (m_test_run_complete) {
- ForEachSuiteAndTest(m_treectrl, f_colorize_item_background, f_colorize_item_background);
- }
- }
- else if (!event.IsChecked() && (true == m_option_colorize_tree_items)) {
- m_option_colorize_tree_items = false;
- if (m_test_run_complete) {
- ForEachSuiteAndTest(m_treectrl, f_reset_item_background_color, f_reset_item_background_color);
- }
- }
-}
-
-void TopFrame::OnOptionFailOnInactive(wxCommandEvent& event)
-{
- if (event.IsChecked() && (false == m_option_fail_on_inactive)) {
- m_option_fail_on_inactive = true;
- CU_set_fail_on_inactive(CU_TRUE);
- }
- else if (!event.IsChecked() && (true == m_option_colorize_tree_items)) {
- m_option_fail_on_inactive = false;
- CU_set_fail_on_inactive(CU_FALSE);
- }
-}
-
-void TopFrame::OnSuiteActiveCheckbox(wxCommandEvent& event)
-{
- wxTreeItemId suite_item = m_treectrl->GetSelection();
-
- if ((true == m_suite_info_active) && (true == suite_item.IsOk())) {
-
- // If a test is selected, act on it's suite
- if (isTest(m_treectrl, suite_item)) {
- suite_item = m_treectrl->GetItemParent(suite_item);
- }
-
- CU_pSuite pSuite = dynamic_cast(m_treectrl->GetItemData(suite_item))->pSuite;
- pSuite->fActive = (true == event.IsChecked()) ? CU_TRUE : CU_FALSE;
- }
- else {
- m_suite_active_box->Set3StateValue(wxCHK_UNDETERMINED);
- }
-}
-
-void TopFrame::OnTestActiveCheckbox(wxCommandEvent& event)
-{
- wxTreeItemId test_item = m_treectrl->GetSelection();
-
- if ((true == m_test_info_active) && (true == test_item.IsOk())) {
- CU_pTest pTest = dynamic_cast(m_treectrl->GetItemData(test_item))->pTest;
- pTest->fActive = (true == event.IsChecked()) ? CU_TRUE : CU_FALSE;
- }
- else {
- m_test_active_box->Set3StateValue(wxCHK_UNDETERMINED);
- }
-}
-
-void TopFrame::SuiteStartMessageHandler(const CU_pSuite pSuite)
-{
- CU_UNREFERENCED_PARAMETER(pSuite);
-
- assert(NULL != m_ActiveTopFrame);
- m_ActiveTopFrame->m_RunSummary_suite = *(CU_get_run_summary());
-}
-
-void TopFrame::TestStartMessageHandler(const CU_pTest pTest, const CU_pSuite pSuite)
-{
- CU_UNREFERENCED_PARAMETER(pTest);
- CU_UNREFERENCED_PARAMETER(pSuite);
-
- assert(NULL != m_ActiveTopFrame);
- m_ActiveTopFrame->m_RunSummary_test = *(CU_get_run_summary());
-}
-
-void TopFrame::TestCompleteMessageHandler(const CU_pTest pTest,
- const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- assert(NULL != m_ActiveTopFrame);
-
- wxTreeItemId test_item = m_ActiveTopFrame->FindTest(pSuite, pTest);
-
- if (test_item.IsOk()) {
- TopFrame *frame = m_ActiveTopFrame;
- wxTreeCtrl *tree = frame->m_treectrl;
- TreeTestData *data = dynamic_cast(tree->GetItemData(test_item));
- data->nAsserts = CU_get_number_of_asserts() - frame->m_RunSummary_test.nAsserts;
- data->nFailures = CU_get_number_of_failure_records() - frame->m_RunSummary_test.nFailureRecords;
- data->pFirstFailure = pFailure;
-
- if (true == frame->m_option_colorize_tree_items) {
- f_colorize_item_background.func(tree, test_item);
- }
- }
-}
-
-void TopFrame::SuiteCompleteMessageHandler(const CU_pSuite pSuite,
- const CU_pFailureRecord pFailure)
-{
- assert(NULL != m_ActiveTopFrame);
-
- wxTreeItemId suite_item = m_ActiveTopFrame->FindSuite(pSuite);
-
- if (suite_item.IsOk()) {
- TopFrame *frame = m_ActiveTopFrame;
- wxTreeCtrl *tree = frame->m_treectrl;
- TreeSuiteData *data = dynamic_cast(tree->GetItemData(suite_item));
- data->nTestsRun = CU_get_number_of_tests_run() - frame->m_RunSummary_suite.nTestsRun;
- data->nAsserts = CU_get_number_of_asserts() - frame->m_RunSummary_suite.nAsserts;
- data->nFailures = CU_get_number_of_failure_records() - frame->m_RunSummary_suite.nFailureRecords;
- data->pFirstFailure = pFailure;
-
- if (true == frame->m_option_colorize_tree_items) {
- f_colorize_item_background.func(tree, suite_item);
- }
- }
-}
-
-/*
-void TopFrame::OnButtonOk(wxCommandEvent& WXUNUSED(event))
-{
- wxString report;
- wxTreeItemId item = m_treectrl->GetSelection();
-
- if (isSuite(m_treectrl, item)) {
- TreeSuiteData *data = dynamic_cast(m_treectrl->GetItemData(item));
- report << "Suite run summany:\n\n"
- << "Suite name: " << data->pSuite->pName << "\n"
- << "# Tests run: " << data->nTestsRun << "\n"
- << "# Asserts: " << data->nAsserts << "\n"
- << "# Failures: " << data->nFailures;
- }
- else if (isTest(m_treectrl, item)) {
- TreeTestData *data = dynamic_cast(m_treectrl->GetItemData(item));
- report << "Test run summany:\n\n"
- << "Test name: " << data->pTest->pName << "\n"
- << "# Asserts: " << data->nAsserts << "\n"
- << "# Failures: " << data->nFailures;
- }
-
- wxMessageBox(report, "Run summary for selected node", wxOK);
-}
-
-void TopFrame::OnButtonCancel(wxCommandEvent& WXUNUSED(event))
-{
-}
-*/
-
-/** @} */