diff options
author | Lars Wirzenius <liw@liw.fi> | 2013-12-23 00:02:41 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2013-12-23 00:02:41 +0000 |
commit | a0815fe2c0f90190a2ae97c93a669ec33b46763c (patch) | |
tree | 87720301fddf14db18a1290ac31561857bd62d99 /yarns | |
parent | 113c56cc0ccaff0022a318e4894744cf8fb44278 (diff) | |
download | copyright-statement-lint-a0815fe2c0f90190a2ae97c93a669ec33b46763c.tar.gz |
Add rough implementation, simple test suite
Diffstat (limited to 'yarns')
-rw-r--r-- | yarns/010-tests.yarn | 70 |
1 files changed, 70 insertions, 0 deletions
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" |