Curl
Versions
7.77.0
- As of commit
curl-7_76_1-48-g68d89f242motivated by PR 6897,configuredoes 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/libcurlcheck-easy.log- checks that theeasyAPI (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 themultiAPI
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-debugis given inconfigureArgs, and they are always built bymake allin this case. Correctly declared automake tests would only be built whenmake checkis 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/buildfor these mis-declared tests.
Config Fail
- The configuration (Prepare build directory) task will fail if
configureArgsdoes not contain a TLS option. See version 7.77.0 above
Dry Run
- Dry-running only succeeds if
configureArgsincludes 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