Regression

There is now a, more or less, fully automated regression. I setup a regression directory like this:

- regression     (static)
  |- regress.sh

- regression     (dynamic)
  |- tarballs
  |- srcs
  |- 3.4.7
  |- ...
  |- 3.7.0b2
  |- libedit
  |- gawk (optional)

The regress.sh script implements a vast amount of functionality all in POSIX /bin/sh – for portability. I had run into various issue trying to get gmake and bmake to agree on a Makefile, then gave up. The shell-script now does even more than the preceeding Makefiles with some dependency checks.

The process goes like this:

  1. ./regress.sh fetch - downloads a tarball of each Python release (3.X) to test, along with libedit and tools. It also extracts the tarballs into srcs.
  2. ./regress.sh venvs - builds Python versions and all virtual-envs
  3. ./regress.sh install - installs pyeditline via PIP into each virtual-env
  4. script test.log - log the console. This is necessary because the extension must run in a TTY – redirections fail miserably
  5. ./regress.sh check - runs the unittest on every virtual-env
  6. exit - End the script session.

Configurations

The regress.sh script mainly looks at environment-variables for configuration. Overriding these can be helpful to do specific testing.

VER - Sets the versions of Python to work with. (Quote it for multiple.) CFG - Sets the configurations to test – default: “dist builtin custom”

Have a look at:

regress.sh help

to gain more insight into the commands and usage. For those of you who are hard-core – read the source.