**seq**(1) acceptance tests

By: The Subplot project

2022-03-12 12:51

Table of Contents


title: "seq(1) acceptance tests" author: The Subplot project bindings:

  • lib/runcmd.yaml
  • seq-extras.yaml impls: rust:
    • seq-extras.rs ...

1 Introduction

seq(1) is a Unix command line tool that produces numbers 1, 2, etc, up until a count given by the user. For example, if the user runs seq 3, the output has the numbers 1, 2, and 3, one per line.

2 No arguments

Requirement: If seq is run without arguments, it reports an error.

when I try to run seq
then exit code is 1

3 No numbers

Requirement: If seq is run with the argument 0, it writes nothing.

when I run seq 0
then stdout is exactly ""
then stderr is exactly ""

4 One number

Requirement: If seq is run with the argument 1, it writes one line, with the number 1.

when I run seq 1
then stdout is exactly "1\n"
then stderr is exactly ""

5 More than one number

Requirement: If seq is run with the argument 3, it writes three lines, one with the number 1, one with 2, and one with 3.

when I run seq 3
then stdout has 3 lines
then stdout is exactly "1\n2\n3\n"
then stderr is exactly ""

6 Not a number

Requirement: If seq is run with a non-numerical argument, it writes nothing to stdout, and an error message to stderr.

when I try to run seq fish
then command fails
then stdout is exactly ""
then stderr says fish is invalid