Imported Upstream version 3.4.0
[platform/upstream/harfbuzz.git] / test / subset / repack_test.py
1 #!/usr/bin/env python3
2
3 import os
4
5 # Parses a single repacking test file. The first line of the file is
6 # the name of the font to use and the remaining lines define the set of
7 # codepoints in the subset.
8 class RepackTest:
9
10         def __init__(self, test_path, definition):
11                 self.test_path = test_path
12                 self.font_name = None
13                 self.codepoints = set ()
14                 self._parse(definition)
15
16         def font_path(self):
17                 return os.path.join (self._base_path (), "fonts", self.font_name)
18
19         def codepoints_string (self):
20                 return ",".join (self.codepoints)
21
22         def _base_path(self):
23                 return os.path.join(
24                     os.path.dirname(self.test_path),
25                     "../")
26
27
28         def _parse(self, definition):
29                 lines = definition.splitlines ()
30                 self.font_name = lines.pop (0)
31                 for line in lines:
32                         line = line.strip()
33                         if not line:
34                                 continue
35
36                         self.codepoints.add (line)