Add more structure constructor tests.
[piglit/hramrach.git] / generate-glean-tests.py
blobc0e49796043ccbb0955b87ddc60c56977a54baaf
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
4 # Copyright © 2010 Intel Corporation
6 # Permission is hereby granted, free of charge, to any person obtaining a
7 # copy of this software and associated documentation files (the "Software"),
8 # to deal in the Software without restriction, including without limitation
9 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 # and/or sell copies of the Software, and to permit persons to whom the
11 # Software is furnished to do so, subject to the following conditions:
13 # The above copyright notice and this permission notice (including the next
14 # paragraph) shall be included in all copies or substantial portions of the
15 # Software.
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 # IN THE SOFTWARE.
25 # Authors:
26 # Eric Anholt <eric@anholt.net>
28 from getopt import getopt, GetoptError
30 import os
31 import re
32 import sys
34 def usage():
35 USAGE = """\
36 Usage %(progName) [cppfile] [add_prefix]
38 cppfile: path to glean cppfile to parse
39 add_suffix: prefix to have in test name i.e. glsl1 -> add_glsl1
40 """
41 print USAGE % {'progName':sys.argv[0]}
42 sys.exit(1)
44 def main():
46 try:
47 options, args = getopt(sys.argv[1:], "hdt:n:x:", [ "help", "dry-run", "tests=", "name=", "exclude-tests=" ])
48 except GetoptError:
49 usage()
51 if len(args) != 2:
52 usage()
54 suffix = args[1]
56 fileIN = open(args[0], 'r')
57 line = fileIN.readline()
58 next_is_name = False
60 while line:
61 if next_is_name:
62 name = line.lstrip(" \",")
63 name = name.rstrip("\n")
64 if re.match(r'GLint stat', name):
65 break
66 if not re.match(r'//', name):
67 name = re.sub(r'".*',
68 r'',
69 name)
70 print "add_" + suffix + "('" + name + "')"
71 next_is_name = False
72 if line == " {\n":
73 next_is_name = True
74 line = fileIN.readline()
76 if __name__ == "__main__":
77 main()