MyNixOS website logo
Description

Runs system tests of applications.

System Test is a Haskell application which allows you to specify and run system tests of applications. Tests are defined in JSON files, whereby each test has a name, command, and expected output.

System Test Travis CI Status

System Test is a Haskell application which allows you to specify and run system tests of applications.

System tests can be defined in json files with the following format, see examples/ for more examples:

[
  {
    "name": "Hello World Test",
    "command": "echo 'Hello, World!'",
    "expectedOutput": "Hello, World!"
  },
  {
    "name": "GoodBye World Test",
    "command": "echo 'GoodBye, World!'",
    "expectedOutput": "Hello, World!"
  }
]

Note: System Test does not run the test commands in sandboxes, so be careful of running system tests that may cause harm to your system.

Usage

The System Test executable file should be run with all of the files containing system tests being passed in as arguments.

system-test test1.txt test2.txt
system-test tests/*.txt

Test File Structure

The system test files are formatted using JSON. The file should contain a list of Tests, each of which should have Strings for the test name, command, and expected output.

[
  {
    "name": "Hello World Test",
    "command": "echo 'Hello, World!'",
    "expectedOutput": "Hello, World!"
  },
  {
    "name": "GoodBye World Test",
    "command": "echo 'GoodBye, World!'",
    "expectedOutput": "Hello, World!"
  },
  {
    "name": "MultiLine Test",
    "command": "echo '1' && echo '2'",
    "expectedOutput": "1\n2"
  }
]

License

System Test is available under the MIT License, see LICENSE for more information.

Metadata

Version

0.1.2

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows