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 viable settings.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 the easy API (curl_easy_setopt(3)) manpage includes each CURLOPT* options documented in docs/libcurl/opts is mentioned in docs/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 the multi 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 in configureArgs, and they are always built by make all in this case. Correctly declared automake tests would only be built when make check is run, and would not require a configuration flag like --enable-debug
  • Since they are not correctly declared as check_PROGRAMS, but as noinst_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 in Palette/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 (see configure --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