diff options
Diffstat (limited to 'meson/test cases/common/227 very long commmand line/name_gen.py')
-rwxr-xr-x | meson/test cases/common/227 very long commmand line/name_gen.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/meson/test cases/common/227 very long commmand line/name_gen.py b/meson/test cases/common/227 very long commmand line/name_gen.py new file mode 100755 index 000000000..84352984a --- /dev/null +++ b/meson/test cases/common/227 very long commmand line/name_gen.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +""" +generate sequence of filename that does not exceed MAX_LEN=260 +for Python < 3.6 and Windows without modified registry +""" + +import sys +import string + +name_len = 260 - len(sys.argv[2]) - 4 - 39 - 4 - 2 +if name_len < 1: + raise ValueError('The meson build directory pathname is so long ' + 'that we cannot generate filenames within 260 characters.') +# leave room for suffix and file separators, and meson generated text +# e.g. ".c.obj.d" and other decorators added by Meson at configuration +# for intermediate files + +base = string.ascii_letters * 5 # 260 characters +max_num_len = len(str(sys.argv[1])) +base = base[: name_len - max_num_len] + +for i in range(int(sys.argv[1])): + print("{base}{i:0{max_num_len}d}".format(base=base, max_num_len=max_num_len, i=i)) |