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
# Common files used by test programs
UTILS_C = memptr.c testutil.c testtrace.c
-UTILS_H = test.h testutil.h testtrace.h
+UTILS_H = test.h testutil.h testtrace.h unitcheck.h
CURLX_C = \
../../lib/curlx/warnless.c \
extern const struct entry_s s_entries[];
+extern int unitfail; /* for unittests */
+
#include <curlx/curlx.h>
#endif /* HEADER_LIBTEST_FIRST_H */
extern char *hexdump(const unsigned char *buffer, size_t len);
-extern int unitfail;
-
/*
** TEST_ERR_* values must within the CURLcode range to not cause compiler
** errors.
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "test.h"
+#include "first.h"
/* The fail macros mark the current test step as failed, and continue */
#define fail_if(expr, msg) \
"${PROJECT_BINARY_DIR}/lib" # for "curl_config.h"
"${PROJECT_SOURCE_DIR}/lib" # for "curl_setup.h", curlx
"${PROJECT_SOURCE_DIR}/src" # for tool headers
- "${PROJECT_SOURCE_DIR}/tests/libtest" # for "first.h"
- "${PROJECT_SOURCE_DIR}/tests/unit" # for "curlcheck.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}")
-I$(top_srcdir)/lib \
-I$(top_srcdir)/src \
-I$(top_srcdir)/tests/libtest \
- -I$(top_srcdir)/tests/unit \
-I$(srcdir)
# Get BUNDLE, FIRST_C, TESTS_C variables
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "tool_getparam.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "tool_cfgable.h"
#include "tool_doswin.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "tool_xattr.h"
#
###########################################################################
-# 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")
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}")
-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@
# 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 \
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 */
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 */
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "llist.h"
#include "unitprotos.h"
* 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 {
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "connect.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "netrc.h"
#include "memdebug.h" /* LAST include file */
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "curl_fnmatch.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "splay.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
-
-#include <curlx/timeval.h>
+#include "unitcheck.h"
static CURLcode test_unit1323(char *arg)
{
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "memdebug.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "memdebug.h"
#include "unitprotos.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
static CURLcode t1396_setup(void)
{
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "vtls/hostcheck.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
#pragma GCC diagnostic push
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "progress.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "curl_ntlm_core.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "curl_md5.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "hash.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "hash.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "llist.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "speedcheck.h"
#include "urldata.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "connect.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "hostip.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "connect.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "curl_sha256.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "curl_md4.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "curl_hmac.h"
#include "curl_md5.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "noproxy.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "curl_sha512_256.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "uint-hash.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "url.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
-
-#include <curlx/dynbuf.h>
+#include "unitcheck.h"
#include "doh.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "vtls/x509asn1.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "sendf.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "curl/urlapi.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "altsvc.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "doh.h" /* from the lib dir */
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "vtls/x509asn1.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "vtls/x509asn1.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "doh.h" /* from the lib dir */
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "hsts.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "bufref.h"
#include "memdebug.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#include <netinet/in6.h>
#endif
-#include <curlx/strparse.h>
-
#include "memdebug.h" /* LAST include file */
static CURLcode t1664_setup(void)
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
-
-#include <curlx/dynbuf.h>
+#include "unitcheck.h"
#include "http_aws_sigv4.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
-
-#include <curlx/dynbuf.h>
+#include "unitcheck.h"
#include "http_aws_sigv4.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
-
-#include <curlx/curlx.h>
+#include "unitcheck.h"
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "bufq.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
-
-#include <curlx/dynbuf.h>
+#include "unitcheck.h"
#include "urldata.h"
#include "dynhds.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "http.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "vssh/curl_path.h"
#include "memdebug.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "curl_get_line.h"
#include "memdebug.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "vtls/cipher_suite.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "uint-bset.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "uint-table.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"
#include "uint-spbset.h"
* SPDX-License-Identifier: curl
*
***************************************************************************/
-#include "curlcheck.h"
+#include "unitcheck.h"
#include "urldata.h"