class TestCase:
+ api = 'gl'
max_frames = None
-
trace_file = None
def __init__(self, name, args, cwd=None, build=None, results = '.'):
if p.returncode:
self.skip('application returned code %i' % p.returncode)
+ api_map = {
+ 'gl': 'gl',
+ 'egl': 'egl',
+ 'gles1': 'egl',
+ 'gles2': 'egl',
+ }
+
def trace(self):
if self.trace_file is None:
self.trace_file = os.path.abspath(os.path.join(self.results, self.name + '.trace'))
apitrace = _get_build_program('apitrace')
cmd = [
apitrace, 'trace',
- '-o', self.trace_file,
+ '--api', self.api_map[self.api],
+ '--output', self.trace_file,
'--'
] + cmd
if self.max_frames is not None:
ref_line = ref.readline().rstrip()
for line in p.stdout:
line = line.rstrip()
+ print line
mo = self.call_re.match(line)
- assert mo
if mo:
call_no = int(mo.group(1))
function_name = mo.group(2)
if function_name in ('glFlush', 'glFinish'):
flushes += 1
src_line = line[mo.start(2):]
- if ref_line:
- if src_line == ref_line:
- sys.stdout.write(src_line + '\n')
- ref_line = ref.readline().rstrip()
- src_lines = []
- else:
- src_lines.append(src_line)
+ else:
+ src_line = line
+ if ref_line:
+ if src_line == ref_line:
+ sys.stdout.write(src_line + '\n')
+ ref_line = ref.readline().rstrip()
+ src_lines = []
+ else:
+ src_lines.append(src_line)
p.wait()
if p.returncode != 0:
optparser = optparse.OptionParser(
usage='\n\t%prog [options] -- program [args] ...',
version='%%prog')
+ optparser.add_option(
+ '-a', '--api', metavar='API',
+ type='string', dest='api', default='gl',
+ help='api to trace')
optparser.add_option(
'-B', '--build', metavar='PATH',
type='string', dest='build', default='..',
build = options.build,
results = options.results,
)
+ test.api = options.api
test.ref_dump = options.ref_dump
test.run()