1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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"
|