1 //--------------------------------------------------------------------------
2 // Copyright (C) 2015-2021 Cisco and/or its affiliates. All rights reserved.
3 //
4 // This program is free software; you can redistribute it and/or modify it
5 // under the terms of the GNU General Public License Version 2 as published
6 // by the Free Software Foundation.  You may not use, modify or distribute
7 // this program under any other version of the GNU General Public License.
8 //
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 // General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License along
15 // with this program; if not, write to the Free Software Foundation, Inc.,
16 // 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 //--------------------------------------------------------------------------
18 // piglet_runner.h author Joel Cornett <jocornet@cisco.com>
19 
20 #ifndef PIGLET_RUNNER_H
21 #define PIGLET_RUNNER_H
22 
23 // Test runner
24 
25 #include <vector>
26 
27 namespace Piglet
28 {
29 struct Chunk;
30 struct Test;
31 struct Output;
32 
33 struct Summary
34 {
35     unsigned passed = 0;
36     unsigned failed = 0;
37     unsigned errors = 0;
38 
totalSummary39     inline unsigned total() const
40     { return passed + failed + errors; }
41 };
42 
43 class Runner
44 {
45 public:
46     static bool run_all(const struct Output&);
47 
48     // FIXIT-L this method should be hidden
49     static bool run_all(const struct Output&, const std::vector<Chunk>&);
50 
51 private:
52     static void run(const struct Output&, Test&, unsigned);
53 };
54 } // namespace Piglet
55 
56 #endif
57 
58