Remove outermost loop parameter.
[official-gcc/graphite-test-results.git] / libpcp / pcp_tester.h
blob7e2abc15b0857d089d4371b413135ed8160fd0a5
1 // Copyright (C) 2009 Free Software Foundation, Inc.
2 // Contributed by Jan Sjodin <jan.sjodin@amd.com>.
4 // This file is part of the Polyhedral Compilation Package Library (libpcp).
6 // Libpcp is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU Lesser General Public License as published by
8 // the Free Software Foundation; either version 2.1 of the License, or
9 // (at your option) any later version.
11 // Libpcp is distributed in the hope that it will be useful, but WITHOUT ANY
12 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
14 // more details.
16 // You should have received a copy of the GNU Lesser General Public License
17 // along with libpcp; see the file COPYING.LIB. If not, write to the
18 // Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 // MA 02110-1301, USA.
21 // As a special exception, if you link this library with other files, some
22 // of which are compiled with GCC, to produce an executable, this library
23 // does not by itself cause the resulting executable to be covered by the
24 // GNU General Public License. This exception does not however invalidate
25 // any other reasons why the executable file might be covered by the GNU
26 // General Public License.
28 #ifndef _PCP_TESTER_H_
29 #define _PCP_TESTER_H_
31 #include "pcp_dynamic_array.h"
33 class PcpTester
35 protected:
37 class PcpTest
39 public:
40 virtual bool run(const char* filename) = 0;
41 virtual const char* getFlagName() = 0;
42 virtual const char* getDescription() = 0;
43 virtual bool isHelp();
46 class PcpTestHelp : public PcpTest
48 protected:
49 PcpArray<PcpTest*>* tests;
51 virtual void setTests(PcpArray<PcpTest*>* tests);
52 virtual PcpArray<PcpTest*>* getTests();
54 public:
55 virtual bool run(const char* filename);
56 virtual const char* getFlagName();
57 virtual const char* getDescription();
58 PcpTestHelp(PcpArray<PcpTest*>* tests);
59 virtual bool isHelp();
62 class PcpTestIdentity : public PcpTest
64 protected:
65 bool compareScopStrings(const char* str1,
66 const char* str2);
68 public:
69 virtual bool run(const char* filename);
70 virtual const char* getFlagName();
71 virtual const char* getDescription();
72 PcpTestIdentity();
75 class PcpTestScalarOrder : public PcpTest
77 public:
78 virtual bool run(const char* filename);
79 virtual const char* getFlagName();
80 virtual const char* getDescription();
81 PcpTestScalarOrder();
84 class PcpTestExprCanonicalize : public PcpTest
86 public:
87 virtual bool run(const char* filename);
88 virtual const char* getFlagName();
89 virtual const char* getDescription();
90 PcpTestExprCanonicalize();
93 class PcpTestBuildDomain : public PcpTest
95 public:
96 bool run(const char* filename);
97 const char* getFlagName();
98 const char* getDescription();
99 PcpTestBuildDomain();
102 class PcpTestBuildScattering : public PcpTest
104 public:
105 bool run(const char* filename);
106 const char* getFlagName();
107 const char* getDescription();
108 PcpTestBuildScattering();
112 PcpArray<PcpTest*>* tests;
114 void setTests(PcpArray<PcpTest*>* tests);
115 PcpArray<PcpTest*>* getTests();
118 // Report expected command syntax.
119 void reportCommandLineInfo();
121 // Return true if STRING is an option string (starting with '--')
122 bool isOptionString(const char* string);
124 // Parse option.
125 PcpTest* parseOption(const char* optionString);
127 // Parse options.
128 PcpArray<PcpTest*>* parseOptions(int argc, char** argv);
130 // Parse file name
131 const char* parseFileName(int arc, char** argv);
133 // Compare strings
134 bool compareScopStrings(const char* str1, const char* str2);
136 // Start the tester.
137 bool start(const char* filename, PcpArray<PcpTest*>* options);
139 public:
141 // Entry point to the tester.
142 bool run(int argc, char** argv);
144 // Constructor
145 PcpTester();
148 #endif // _PCP_TESTER_H_