summaryrefslogtreecommitdiff
path: root/yarns/print-architecture.yarn
blob: c2496147f5dfe1092bbb1277e416973631f4642d (plain)
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
"morph print-architecture" tests
================================

This is short and simple. Morph can print the name for the current
architecture, and we verify not that it is correct, but that exactly
one line is printed to the standard output. The reason we're not
checking it's correct is because that would require the test code
to duplicate the architecture name list that is in the code already,
and that wouldn't help with tests. However, verifying there's exactly
one line in stdout (and nothing in stderr) means the plugin does at
least something sensible.

Oh, and the one line should contain no spaces, either.

    SCENARIO morph print-architecture prints out a single word
    WHEN morph print-architecture is run
    THEN stdout contains a single line
    AND stdout contains no spaces
    AND stderr is empty

    IMPLEMENTS WHEN morph print-architecture is run
    set +x
    run_morph print-architecture > "$DATADIR/stdout" 2> "$DATADIR/stderr"

    IMPLEMENTS THEN stdout contains a single line
    n=$(wc -l < "$DATADIR/stdout")
    if [ "$n" != 1 ]
    then
        die "stdout contains $n lines, not 1"
    fi

    IMPLEMENTS THEN stdout contains no spaces
    n=$(tr < "$DATADIR/stdout" -cd ' ' | wc -c)
    if [ "$n" != 0 ]
    then
        die "stdout contains spaces"
    fi

    IMPLEMENTS THEN stderr is empty
    if [ -s "$DATADIR/stderr" ]
    then
        die "stderr is not empty"
    fi