Initial import
[glmemperf] / test.h
1 /**
2  * OpenGL ES 2.0 memory performance estimator
3  * Copyright (C) 2009 Nokia
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  * \author Sami Kyöstilä <sami.kyostila@nokia.com>
20  *
21  * Test base class
22  */
23 #ifndef TEST_H
24 #define TEST_H
25
26 #include <string>
27
28 class Test
29 {
30 public:
31     explicit Test()
32     {
33     }
34
35     virtual ~Test()
36     {
37     }
38
39     /**
40      *  Make the test ready to be executed
41      */
42     virtual void prepare()
43     {
44     }
45
46     /**
47      *  Render a single frame of the test
48      *  
49      *  @param frame            Frame number
50      */
51     virtual void operator()(int frame) = 0;
52
53
54     /**
55      *  Release any resources allocated by prepare()
56      */
57     virtual void teardown()
58     {
59     }
60
61     /**
62      *  @returns a name for the test
63      */
64     virtual std::string name() const = 0;
65
66 protected:
67     /**
68      *  Abort a test
69      */
70     void fail(const std::string& reason);
71 };
72
73 #endif // TEST_H