From a0815fe2c0f90190a2ae97c93a669ec33b46763c Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 23 Dec 2013 00:02:41 +0000 Subject: Add rough implementation, simple test suite --- yarns/010-tests.yarn | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 yarns/010-tests.yarn (limited to 'yarns/010-tests.yarn') diff --git a/yarns/010-tests.yarn b/yarns/010-tests.yarn new file mode 100644 index 0000000..72020c0 --- /dev/null +++ b/yarns/010-tests.yarn @@ -0,0 +1,70 @@ +% copyright-statement-lint test suite + +Introduction +============ + +`copyright-statement-lint` checks source files for copyright +statements, and checks that their copyright year matches the +latest git commit. As such, this test suite needs to verify several +different cases: no copyright statement, wrong year, multiple +statements, etc. Also various forms of copyright statements. + +All of these are fairly simple, however. The test creates a file with +a suitable statement, runs the tool against the file, and checks that +the output of the tool is as expected. + +Scenarios +========= + +Simple case: no copyright file. + + SCENARIO no copyright file + GIVEN an empty file FOOBAR + WHEN copyright-statement-lint is run against FOOBAR + THEN exit code is 1 + AND stderr contains "FOOBAR.*no copyright statement" + +Implementations +=============== + +File creation +------------- + +These are all pretty straightforward. Any files are created +in `$DATADIR` using names given by the user. + + IMPLEMENTS GIVEN an empty file (\S+) + touch "$DATADIR/$MATCH_1" + +Running and checking the results of `copyright-statement-lint` +-------------------------------------------------------------- + +We only have this one way of running the tool. We capture stdout, +stderr, and the exit code. Note: we do not fail the step even if the +tool fails. + + IMPLEMENTS WHEN copyright-statement-lint is run against (\S+) + # Given set -e, we need to use an if to capture non-zero exit + # code. Don't want to turn set -e off, so we capture other errors. + if "$SRCDIR/copyright-statement-lint" \ + --no-default-config "$DATADIR/$MATCH_1" \ + > "$DATADIR/stdout" \ + 2> "$DATADIR/stderr" + then + exit=0 + else + exit=$? + fi + echo "$exit" > "$DATADIR/exit" + +Exit code checking. Since we don't fail the running of the tool, +every scenario is expected to check the exit code. + + IMPLEMENTS THEN exit code is (\d+) + cat "$DATADIR/exit" + grep -Fx "$MATCH_1" "$DATADIR/exit" + +Check stdout/stderr. + + IMPLEMENTS THEN (\S+) contains "(.*)" + grep "$MATCH_2" "$DATADIR/$MATCH_1" -- cgit v1.2.1