tests: move curlcheck.h to libtest as unitcheck.h

To simplify dependencies, and sync tunits and units builds further.

`curlcheck.h` already depended on logic implemented within libtests:
it referenced a global variable (`unitfail`) defined in `first.c` and
declared in `test.h`.

Also:
- rename to `unitcheck.h` to indicate it's meant for unit tests.
- make `unitcheck.h` include `first.h` instead of `test.h`.
  This brings header use closer to libtests. It also includes
  `curlx/curlx.h` for all unit tests by default now.
- move `unitfail` declaration from `test.h` to `first.h`.
  To match its definition in `first.c`.
- drop now redundant per-test curlx header includes.

Closes #17868
This commit is contained in:
Viktor Szakats 2025-07-09 00:43:44 +02:00
parent 9db9137066
commit 784c17b7d9
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
69 changed files with 70 additions and 90 deletions

View file

@ -22,7 +22,7 @@
#
###########################################################################
# Get BUNDLE, FIRST_C, UTILS_H, TESTS_C variables
# Get BUNDLE, FIRST_C, TESTS_C variables
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
@ -41,7 +41,7 @@ target_link_libraries(${BUNDLE} curlu)
target_include_directories(${BUNDLE} PRIVATE
"${PROJECT_BINARY_DIR}/lib" # for "curl_config.h", "unitprotos.h"
"${PROJECT_SOURCE_DIR}/lib" # for "curl_setup.h", curlx
"${PROJECT_SOURCE_DIR}/tests/libtest" # for "first.h"
"${PROJECT_SOURCE_DIR}/tests/libtest" # for "first.h", "unitcheck.h"
"${CMAKE_CURRENT_SOURCE_DIR}" # for the generated bundle source to find included test sources
)
set_property(TARGET ${BUNDLE} APPEND PROPERTY COMPILE_DEFINITIONS "${CURL_DEBUG_MACROS}")

View file

@ -39,10 +39,10 @@ AM_CPPFLAGS = -I$(top_srcdir)/include \
-I$(top_srcdir)/tests/libtest \
-I$(srcdir)
# Get BUNDLE, FIRST_C, UTILS_H, TESTS_C variables
# Get BUNDLE, FIRST_C, TESTS_C variables
include Makefile.inc
EXTRA_DIST = CMakeLists.txt README.md $(UTILS_H) $(TESTS_C)
EXTRA_DIST = CMakeLists.txt README.md $(TESTS_C)
CFLAGS += @CURL_CFLAG_EXTRAS@

View file

@ -28,9 +28,6 @@ BUNDLE = units
# Files referenced from the bundle source
FIRST_C = ../libtest/first.c
# Common files used by test programs
UTILS_H = curlcheck.h
# All unit test programs
TESTS_C = \
unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c \

View file

@ -45,7 +45,7 @@ and the `tests/FILEFORMAT.md` documentation.
For the actual C file, here's a simple example:
~~~c
#include "curlcheck.h"
#include "unitcheck.h"
#include "a libcurl header.h" /* from the lib dir */
@ -66,7 +66,7 @@ For the actual C file, here's a simple example:
Here's an example using optional initialization and cleanup:
~~~c
#include "curlcheck.h"
#include "unitcheck.h"
#include "a libcurl header.h" /* from the lib dir */

View file

@ -1,118 +0,0 @@
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "test.h"
/* The fail macros mark the current test step as failed, and continue */
#define fail_if(expr, msg) \
do { \
if(expr) { \
curl_mfprintf(stderr, "%s:%d FAILED Assertion '%s' met: %s\n", \
__FILE__, __LINE__, #expr, msg); \
unitfail++; \
} \
} while(0)
#define fail_unless(expr, msg) \
do { \
if(!(expr)) { \
curl_mfprintf(stderr, "%s:%d Assertion '%s' FAILED: %s\n", \
__FILE__, __LINE__, #expr, msg); \
unitfail++; \
} \
} while(0)
#define verify_memory(dynamic, check, len) \
do { \
if(dynamic && memcmp(dynamic, check, len)) { \
curl_mfprintf(stderr, "%s:%d Memory buffer FAILED match size %d. " \
"'%s' is not\n", __FILE__, __LINE__, len, \
hexdump((const unsigned char *)check, len)); \
curl_mfprintf(stderr, "%s:%d the same as '%s'\n", __FILE__, __LINE__, \
hexdump((const unsigned char *)dynamic, len)); \
unitfail++; \
} \
} while(0)
/* fail() is for when the test case figured out by itself that a check
proved a failure */
#define fail(msg) do { \
curl_mfprintf(stderr, "%s:%d test FAILED: '%s'\n", \
__FILE__, __LINE__, msg); \
unitfail++; \
} while(0)
/* The abort macros mark the current test step as failed, and exit the test */
#define abort_if(expr, msg) \
do { \
if(expr) { \
curl_mfprintf(stderr, "%s:%d ABORT assertion '%s' met: %s\n", \
__FILE__, __LINE__, #expr, msg); \
unitfail++; \
goto unit_test_abort; \
} \
} while(0)
#define abort_unless(expr, msg) \
do { \
if(!(expr)) { \
curl_mfprintf(stderr, "%s:%d ABORT assertion '%s' failed: %s\n", \
__FILE__, __LINE__, #expr, msg); \
unitfail++; \
goto unit_test_abort; \
} \
} while(0)
#define unittest_abort(msg) \
do { \
curl_mfprintf(stderr, "%s:%d test ABORTED: '%s'\n", \
__FILE__, __LINE__, msg); \
unitfail++; \
goto unit_test_abort; \
} while(0)
#define UNITTEST_BEGIN_SIMPLE \
(void)arg; \
{
#define UNITTEST_END_SIMPLE \
goto unit_test_abort; /* avoid warning */ \
} \
unit_test_abort: \
return (CURLcode)unitfail;
#define UNITTEST_BEGIN(setupfunc) \
(void)arg; \
if(setupfunc) { \
fail("unit_setup() FAILURE"); \
return (CURLcode)unitfail; \
} \
{
#define UNITTEST_END(stopfunc) \
goto unit_test_abort; /* avoid warning */ \
} \
unit_test_abort: \
stopfunc; \
return (CURLcode)unitfail;

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "llist.h"
#include "unitprotos.h"

View file

@ -21,11 +21,10 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "url.h" /* for Curl_safefree */
#include <curlx/base64.h>
#include "memdebug.h" /* LAST include file */
struct etest {

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "connect.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "netrc.h"
#include "memdebug.h" /* LAST include file */

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "curl_fnmatch.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "splay.h"

View file

@ -21,9 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include <curlx/timeval.h>
#include "unitcheck.h"
static CURLcode test_unit1323(char *arg)
{

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "memdebug.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "memdebug.h"
#include "unitprotos.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
static CURLcode t1396_setup(void)
{

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "vtls/hostcheck.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
#pragma GCC diagnostic push

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "progress.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "curl_ntlm_core.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "curl_md5.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "hash.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "hash.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "llist.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "speedcheck.h"
#include "urldata.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "connect.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "hostip.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "connect.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "curl_sha256.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "curl_md4.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "curl_hmac.h"
#include "curl_md5.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "noproxy.h"

View file

@ -22,7 +22,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "curl_sha512_256.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "uint-hash.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "url.h"

View file

@ -21,9 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include <curlx/dynbuf.h>
#include "unitcheck.h"
#include "doh.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "vtls/x509asn1.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "sendf.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "curl/urlapi.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "altsvc.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "doh.h" /* from the lib dir */

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "vtls/x509asn1.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "vtls/x509asn1.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "doh.h" /* from the lib dir */

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "hsts.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "bufref.h"
#include "memdebug.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
@ -30,8 +30,6 @@
#include <netinet/in6.h>
#endif
#include <curlx/strparse.h>
#include "memdebug.h" /* LAST include file */
static CURLcode t1664_setup(void)

View file

@ -21,9 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include <curlx/dynbuf.h>
#include "unitcheck.h"
#include "http_aws_sigv4.h"

View file

@ -21,9 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include <curlx/dynbuf.h>
#include "unitcheck.h"
#include "http_aws_sigv4.h"

View file

@ -21,9 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include <curlx/curlx.h>
#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "bufq.h"

View file

@ -21,9 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include <curlx/dynbuf.h>
#include "unitcheck.h"
#include "urldata.h"
#include "dynhds.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "http.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "vssh/curl_path.h"
#include "memdebug.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "curl_get_line.h"
#include "memdebug.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "vtls/cipher_suite.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "uint-bset.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "uint-table.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"
#include "uint-spbset.h"

View file

@ -21,7 +21,7 @@
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "curlcheck.h"
#include "unitcheck.h"
#include "urldata.h"