55.0 Never Let Me Go

The Avocado team is proud to present another release: Avocado version 55.0, aka, “Never Let Me Go” is now available!

Release documentation: Avocado 55.0

The major changes introduced on this version are listed below, roughly categorized into major topics and intended audience:

Users/Test Writers

  • Improvements in the serialization of TestIDs allow test result directories to be properly stored and accessed on Windows based filesystems.

  • Support for listing and running golang tests has been introduced. Avocado can now discover tests written in Go, and if Go is properly installed, Avocado can run them.

  • The support for test data files has been improved to support more specific sources of data. For instance, when a test file used to contain more than one test, all of them shared the same datadir property value, thus the same directory which contained data files. Now, tests should use the newly introduced get_data() API, which will attempt to locate data files specific to the variant (if used), test name, and finally file name. For more information, please refer to the section Accessing test data files.

  • The output check feature will now use the to the most specific data source location available, which is a consequence of the switch to the use of the get_data() API discussed previously. This means that two tests in a single file can generate different output, generate different stdout.expected or stderr.expected.

  • When the output check feature finds a mismatch between expected and actual output, will now produce a unified diff of those, instead of printing out their full content. This makes it a lot easier to read the logs and quickly spot the differences and possibly the failure cause(s).

  • Sysinfo collection can now be enabled on a test level basis.

  • Progress towards Python 3 support. Avocado can now run most commands on a Python 3 environment, including listing and running tests. The goal is to make Python 3 a “top tier” environment in the next release, being supported in the same way that Python 2 is.

Bug Fixes

  • Avocado logs its own version as part of a job log. In some situations Avocado could log the version of a source repository, if the current working directory was an Avocado git source repo. That means that even when running, say, from RPM packages, the version number based on the source code would be registered.

  • The output check record feature used to mistakenly add a newline to the end of the record stdout/stderr files.

  • Problems with newline based buffering prevented Avocado from properly recording test stdout/stderr. If no newline was given at the end of a line, it would never show up in the stdout/stderr files.

Internal Changes

  • The reference to examples/*.yaml, which isn’t a valid set of files, was removed from the package manifest.

  • The flexmock library requirement, used on some unittests, has been removed. Those tests were rewritten using mock, which is standard on Python 3 (unittest.mock) and available on Python 2 as a standalone module.

For more information, please check out the complete Avocado changelog.

Release Meeting

The Avocado release meetings are now open to the community via Hangouts on Air. The meetings are recorded and made available on the Avocado Test Framework YouTube channel.

For this release, you can watch the meeting on this link.