# Goals test. # Copyright (C) 2020 Richard W.M. Jones # Copyright (C) 2020 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # This tests the behaviour of the keep-going (-k) option. This # should build as many targets as possible. The tree of goals # looks like this: # # fail3 # / # fail1 good3 good6 # / / / # all --- good1 --- good2 --- fail2 # \ \ # good4 --- good5 good7 -- good8..20 # # The following goals should run: # fail2, fail3, good3, good4, good5, good6, good7, good8..20 # The following goals should NOT run: # all, fail1, good1, good2 goal all = : fail1, good1, good4 { echo ALL } goal fail1 = : fail3 { echo FAIL1; exit 1 } goal fail2 = : good6, good7 { echo FAIL2; exit 1 } goal fail3 = { echo FAIL3; exit 1 } goal good1 = : good2 { echo GOOD1 } goal good2 = : good3, fail2 { echo GOOD2 } goal good3 = { echo GOOD3 } goal good4 = : good5 { echo GOOD4 } goal good5 = { echo GOOD5 } goal good6 = { echo GOOD6 } goal good7 = : good8 { echo GOOD7 } goal good8 = : good9 { echo GOOD8 } goal good9 = : good10 { echo GOOD9 } goal good10 = : good11 { echo GOOD10 } goal good11 = : good12 { echo GOOD11 } goal good12 = : good13 { echo GOOD12 } goal good13 = : good14 { echo GOOD13 } goal good14 = : good15 { echo GOOD14 } goal good15 = : good16 { echo GOOD15 } goal good16 = : good17 { echo GOOD16 } goal good17 = : good18 { echo GOOD17 } goal good18 = : good19 { echo GOOD18 } goal good19 = : good20 { echo GOOD19 } goal good20 = { echo GOOD20 }