Build Testing

Perform tests on the code

Before making a release, it’s important to perform a wide variety of test builds.

Repos needed:


The simplest way to test the code is to create a [release] branch in the neomutt repo.

git push --force --set-upstream origin release

Tests performed:

  • Build Source:
    • Using defaults
    • Include everything
    • Using slang
    • Using curses
  • Test install
  • Test uninstall
  • Translations:
    • Check POTFILES
    • Check po files for validity
    • Test make update-po
  • Test docs are valid
  • Test config variables:
    • Check for new/deleted config
    • Check for changed default values
  • Run unit tests
  • Test Doxygen docs build
  • Test whitespace
    • Check for trailing whitespace
    • Check for tabs in code
    • Check for space-tab
  • Test out-of-tree
    • Build using curses
    • Test install
    • Test uninstall

Running locally

To run this script locally, you’ll need to define a few functions. These are part of Travis’ machinery.

function travis_fold() { echo -e "\\e[1;32m================================================================================\\e[0m"; }
function travis_time_start() { :; }
function travis_time_finish() { :; }
export -f travis_fold travis_time_start travis_time_finish  

Extra tests

  • Tidy the source code (but not the header files) clang-format

  • Static analysis of the code scan-build

  • Check the #includes are correct (and minimal) iwyu

  • Check the spelling in the source codespell

  • Parallel builds parallel ../management/build/ gcc {} :::: ../management/build/build-parallel.txt

For more details, see: Analyze NeoMutt

Search by Algolia