summaryrefslogtreecommitdiff
path: root/test/script/expression.et
blob: c92a09b72f1faa21b5ba6ea9c71ce6dad33243f2 (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
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
module expression

import common

asset scripts:
    path: ../asset/run


test WatchTagList:
    node n
    shell on n as git_init:
        git -c init.defaultBranch=master init -q
        git -c user.name=test -c user.email=test commit -q --allow-empty -m 'initial commit'
        cp "${scripts.path}/single.yaml" minici.yaml
        git add minici.yaml
        git -c user.name=test -c user.email=test commit -q -m 'minici.yaml'
        git rev-parse HEAD

        touch a
        git add a
        git -c user.name=test -c user.email=test commit -q -m a
        git rev-parse HEAD
        git rev-parse HEAD^{tree}

        touch b
        git add b
        git -c user.name=test -c user.email=test commit -q -m b
        git rev-parse HEAD
        git rev-parse HEAD^{tree}

        touch c
        git add c
        git -c user.name=test -c user.email=test commit -q -m c
        git rev-parse HEAD
        git rev-parse HEAD^{tree}

        touch d
        git add d
        git -c user.name=test -c user.email=test commit -q -m d
        git rev-parse HEAD
        git rev-parse HEAD^{tree}

        touch e
        git add e
        git -c user.name=test -c user.email=test commit -q -m e
        git rev-parse HEAD
        git rev-parse HEAD^{tree}

        git reset --hard HEAD~5
        git rev-parse HEAD

    expect /([0-9a-f]+)/ from git_init capture c_init
    expect /([0-9a-f]+)/ from git_init capture ca
    expect /([0-9a-f]+)/ from git_init capture ta
    expect /([0-9a-f]+)/ from git_init capture cb
    expect /([0-9a-f]+)/ from git_init capture tb
    expect /([0-9a-f]+)/ from git_init capture cc
    expect /([0-9a-f]+)/ from git_init capture tc
    expect /([0-9a-f]+)/ from git_init capture cd
    expect /([0-9a-f]+)/ from git_init capture td
    expect /([0-9a-f]+)/ from git_init capture ce
    expect /([0-9a-f]+)/ from git_init capture te
    expect /([0-9a-f]+)/ from git_init capture c_end

    guard (c_init == c_end)

    shell on n:
        git -c user.name=test -c user.email=test tag -a -m . v1 $ca
        git -c user.name=test -c user.email=test tag -a -m . x1 $cb

    local:
        spawn on n as p args [ "run", "--rerun-all", "tags(v*)" ]
        expect from p:
            /job-enqueue $ta:single/
            /job-start $ta:single/
            /job-finish $ta:single done/
        expect /(.*)/ from p capture finish
        guard (finish == "run-finish")

    local:
        spawn on n as p args [ "run", "--rerun-all", "watch(tags(v*))" ] killwith SIGINT
        expect from p:
            /job-enqueue $ta:single/
            /job-start $ta:single/
            /job-finish $ta:single done/

        shell on n:
            git -c user.name=test -c user.email=test tag -a -m . v2 $cc

        expect from p:
            /job-enqueue $tc:single/
            /job-start $tc:single/
            /job-finish $tc:single done/

        shell on n:
            git -c user.name=test -c user.email=test tag -a -m . x2 $cd

        shell on n:
            git -c user.name=test -c user.email=test tag -a -m . v3 $ce

        local:
            expect from p /job-enqueue ([0-9a-f]+):single/ capture tid
            guard (tid == te)
        expect from p:
            /job-start $te:single/
            /job-finish $te:single done/