martanne / vis-test

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Testing Infrastructure for Vis

This repository contains testing infrastructure for the vis editor. It is expected to be cloned into a sub directory of the vis source tree.

There exist 5 different kinds of tests:

  • core are C unit tests for core data structures used by vis
  • fuzz infrastructure for automated fuzzing
  • vim tests vim compatibility
  • sam tests sam compatibility of the command language
  • vis contains tests for vis specific behavior/features
  • lua contains tests for the vis specific lua api

Run make to execute all test suites.

Writing good tests

Each sub directory contains a README with further information about the specific test method.

Coming up with good and exhaustive tests is often non-trivial, below are some recommendations:

  • Make sure you understand what the expected behavior you want to test is. Think about possible error conditions.

  • Test something specific, but keep the overall context in mind.

    For vi(m) frontend related tests consider behavior when given a count or when the command is repeated (using .).

    For example the motions f, F, t, T also influence ; and ,. Similar, * and # affect n and N.

  • Test special cases, these often reveal interesting behavior.

    Continuing the motion example these might be: empty lines, single letter words, no matches, consecutive matches, over-specified counts, etc.

  • Test systematically and strive for high test coverage.

    It is preferable to have a small set of tests which cover a specific functionality exhaustively, rather than lots of half-baked tests which only test the basics.

    A good first indication of the completeness of your tests is the achieved code coverage. Ideally a test should primarily exercise a small set of functions which should achieve high path coverage.

About

License:ISC License


Languages

Language:C 75.4%Language:Roff 8.2%Language:Lua 7.2%Language:Makefile 4.3%Language:Shell 4.2%Language:Batchfile 0.8%