summaryrefslogtreecommitdiff
path: root/yarns/010-tests.yarn
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2013-12-23 00:02:41 +0000
committerLars Wirzenius <liw@liw.fi>2013-12-23 00:02:41 +0000
commita0815fe2c0f90190a2ae97c93a669ec33b46763c (patch)
tree87720301fddf14db18a1290ac31561857bd62d99 /yarns/010-tests.yarn
parent113c56cc0ccaff0022a318e4894744cf8fb44278 (diff)
downloadcopyright-statement-lint-a0815fe2c0f90190a2ae97c93a669ec33b46763c.tar.gz
Add rough implementation, simple test suite
Diffstat (limited to 'yarns/010-tests.yarn')
-rw-r--r--yarns/010-tests.yarn70
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"