Implement keep-going (-k) option.
[goals.git] / tests / 20-option-keep-going.gl
1 # Goals test.
2 # Copyright (C) 2020 Richard W.M. Jones
3 # Copyright (C) 2020 Red Hat Inc.
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License along
16 # with this program; if not, write to the Free Software Foundation, Inc.,
17 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
19 # This tests the behaviour of the keep-going (-k) option.  This
20 # should build as many targets as possible.  The tree of goals
21 # looks like this:
22 #
23 #              fail3
24 #             /
25 #        fail1           good3       good6
26 #      /                 /           /
27 #  all  --- good1 --- good2 --- fail2
28 #      \                             \
29 #        good4 --- good5             good7 -- good8..20
30 #
31 # The following goals should run:
32 #   fail2, fail3, good3, good4, good5, good6, good7, good8..20
33 # The following goals should NOT run:
34 #   all, fail1, good1, good2
35
36 goal all   = : fail1, good1, good4 { echo ALL }
37 goal fail1 = : fail3        { echo FAIL1; exit 1 }
38 goal fail2 = : good6, good7 { echo FAIL2; exit 1 }
39 goal fail3 =                { echo FAIL3; exit 1 }
40 goal good1 = : good2        { echo GOOD1 }
41 goal good2 = : good3, fail2 { echo GOOD2 }
42 goal good3 =                { echo GOOD3 }
43 goal good4 = : good5        { echo GOOD4 }
44 goal good5 =                { echo GOOD5 }
45 goal good6 =                { echo GOOD6 }
46 goal good7 = : good8        { echo GOOD7 }
47 goal good8 = : good9        { echo GOOD8 }
48 goal good9 = : good10       { echo GOOD9 }
49 goal good10 = : good11      { echo GOOD10 }
50 goal good11 = : good12      { echo GOOD11 }
51 goal good12 = : good13      { echo GOOD12 }
52 goal good13 = : good14      { echo GOOD13 }
53 goal good14 = : good15      { echo GOOD14 }
54 goal good15 = : good16      { echo GOOD15 }
55 goal good16 = : good17      { echo GOOD16 }
56 goal good17 = : good18      { echo GOOD17 }
57 goal good18 = : good19      { echo GOOD18 }
58 goal good19 = : good20      { echo GOOD19 }
59 goal good20 =               { echo GOOD20 }