mirror of
https://github.com/apache/impala.git
synced 2026-01-07 09:02:19 -05:00
Python tests and infra scripts will now use "python" from the virtualenv via $IMPALA_HOME/bin/impala-python. Some scripts could be simplified now that python 2.6 and a dependable set of third-party libraries are available but that is not done as part of this commit. Change-Id: If1cf96898d6350e78ea107b9026b12ba63a4162f Reviewed-on: http://gerrit.cloudera.org:8080/603 Reviewed-by: Taras Bobrovytsky <tbobrovytsky@cloudera.com> Tested-by: Internal Jenkins
43 lines
1.4 KiB
Python
Executable File
43 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env impala-python
|
|
# Copyright (c) 2015 Cloudera, Inc. All rights reserved.
|
|
|
|
# Functions for generating test files with specific length, and ended with all
|
|
# permutation (with replacement) of items in suffix_list.
|
|
|
|
from shutil import rmtree
|
|
from optparse import OptionParser
|
|
from contextlib import contextmanager
|
|
from itertools import product
|
|
import os
|
|
|
|
parser = OptionParser()
|
|
parser.add_option("--table_dir", dest="table_dir", default=None)
|
|
parser.add_option("--only_newline", dest="only_newline", default=False, action="store_true")
|
|
parser.add_option("--file_len", dest="file_len", type="int")
|
|
|
|
def generate_testescape_files(table_location, only_newline, file_len):
|
|
data = ''.join(["1234567890" for _ in xrange(1 + file_len / 10)])
|
|
|
|
suffix_list = ["\\", ",", "a"]
|
|
if only_newline:
|
|
suffix_list.append("\n")
|
|
else:
|
|
suffix_list.append("\r\n")
|
|
|
|
if os.path.exists(table_location):
|
|
rmtree(table_location)
|
|
|
|
os.mkdir(table_location)
|
|
for count, p in enumerate(product(suffix_list, repeat=len(suffix_list))):
|
|
ending = ''.join(p)
|
|
content = data[:file_len - len(ending)] + ending
|
|
with open(os.path.join(table_location, str(count)), 'w') as f:
|
|
f.write(content)
|
|
|
|
if __name__ == "__main__":
|
|
(options, args) = parser.parse_args()
|
|
if not options.table_dir:
|
|
parser.error("--table_dir option must be specified")
|
|
|
|
generate_testescape_files(options.table_dir, options.only_newline, options.file_len)
|