gitlab-ci: Check the Mesa version used for tracie tests
[mesa.git] / .gitlab-ci / tracie / traceutil.py
1 # Copyright (c) 2019 Collabora Ltd
2 # Copyright © 2019-2020 Valve Corporation.
3 #
4 # Permission is hereby granted, free of charge, to any person obtaining a
5 # copy of this software and associated documentation files (the "Software"),
6 # to deal in the Software without restriction, including without limitation
7 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 # and/or sell copies of the Software, and to permit persons to whom the
9 # Software is furnished to do so, subject to the following conditions:
10 #
11 # The above copyright notice and this permission notice shall be included
12 # in all copies or substantial portions of the Software.
13 #
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 # OTHER DEALINGS IN THE SOFTWARE.
21 #
22 # SPDX-License-Identifier: MIT
23
24 import os
25 from pathlib import Path
26 from enum import Enum, auto
27
28 class TraceType(Enum):
29 UNKNOWN = auto()
30 APITRACE = auto()
31 APITRACE_DXGI = auto()
32 RENDERDOC = auto()
33 GFXRECONSTRUCT = auto()
34 TESTTRACE = auto()
35
36 _trace_type_info_map = {
37 TraceType.APITRACE : ("apitrace", ".trace"),
38 TraceType.APITRACE_DXGI : ("apitrace-dxgi", ".trace-dxgi"),
39 TraceType.RENDERDOC : ("renderdoc", ".rdc"),
40 TraceType.GFXRECONSTRUCT : ("gfxreconstruct", ".gfxr"),
41 TraceType.TESTTRACE : ("testtrace", ".testtrace")
42 }
43
44 def all_trace_type_names():
45 s = []
46 for t,(name, ext) in _trace_type_info_map.items():
47 if t != TraceType.UNKNOWN:
48 s.append(name)
49 return s
50
51 def trace_type_from_name(tt_name):
52 for t,(name, ext) in _trace_type_info_map.items():
53 if tt_name == name:
54 return t
55
56 return TraceType.UNKNOWN
57
58 def trace_type_from_filename(trace_file):
59 for t,(name, ext) in _trace_type_info_map.items():
60 if trace_file.endswith(ext):
61 return t
62
63 return TraceType.UNKNOWN