Curl
Versions
7.77.0
- As of commit
curl-7_76_1-48-g68d89f242
motivated by PR 6897,configure
does not include a default build configuration, as it no longer tries to find a TLS library. Explicitly selecting a TLS library is required (eg, one of--with-openssl
,--with-gnutls
, etc. is required). Sample minimum viablesettings.json
:
{
"autotools.configurations": [
{
"name": "Release w/openssl",
"top_builddir": "build/Release-openssl",
"configureArgs": [
"--with-openssl"
]
}
]
}
Building Notes
- Versions 7.77.0+ require explicit TLS configuration. See above
- Extracting build tasks works correctly.
Building using the generated tasks works correctly.
- Intellisense will be configured correctly once configuration is successful.
Testing Notes
Test Suite organization
Many tests exist, but they do not use automake test infrastructure; instead they use curl-specific test infrastructure (scripts/checksrc.pl
and others); they won’t appear in the Testing UI.
Notably, two tests exist that appear to use automake testing, but they do not correctly do so:
- Test Suite:
docs/libcurl
check-easy.log
- checks that theeasy
API (curl_easy_setopt(3)
) manpage includes each CURLOPT* options documented in docs/libcurl/opts is mentioned indocs/libcurl/curl_easy_setopt.3
. All these files are source files, edited by the maintainer. The purpose of the test is to check that the documentation included with the project has a minimum of consistency.check-multi.log
- same logic as above, but for themulti
API
The two tests are implemented such that running ‘make check’ does not re-test the documentation, but merely output the last cached result.
Building tests
- Unit tests are only built if
--enable-debug
is given inconfigureArgs
, and they are always built bymake all
in this case. Correctly declared automake tests would only be built whenmake check
is run, and would not require a configuration flag like--enable-debug
- Since they are not correctly declared as
check_PROGRAMS
, but asnoinst_PROGRAMS
, the extension detects them as regular build targets, as opposed to test programs. Build tasks such as “autotools: build 'unit3200' in tests/unit
” are created inPalette/Run Tasks/
build
for these mis-declared tests.
Config Fail
- The configuration (Prepare build directory) task will fail if
configureArgs
does not contain a TLS option. See version 7.77.0 above
Dry Run
- Dry-running only succeeds if
configureArgs
includes a TLS selection (seeconfigure --help
) - Once configured, dry-running correctly extracts Intellisense Info and build targets.
TODO
- Implement a Pull Request to the curl project to implement automake parallel test in the various tests/* directories