diff options
Diffstat (limited to 'testscript')
-rwxr-xr-x | testscript/main.py | 58 |
1 files changed, 57 insertions, 1 deletions
diff --git a/testscript/main.py b/testscript/main.py index 013ab99..fddc3a3 100755 --- a/testscript/main.py +++ b/testscript/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # _*_ coding=utf-8 _*_ import argparse @@ -6,6 +6,24 @@ import subprocess import os import sys +test_files = ["/home/bloodstalker/extra/cgrep/cgrep.cpp"] + +cgrep_test_args = [ + "-A 1 -B 1 --func --var --regex n[aA]m", + "-A 1 -B 1 --func --var --awk --regex n[aA]m", + "-A 1 -B 1 --func --declrefexpr --regex n[aA]m --nocolor", + "-A 1 -B 1 --func --declrefexpr --memfunc --call --cxxcall --var --regex run", + "-A 1 -B 1 --macro --header --regex n[aA]m", + "-A 1 -B 1 --class --regex and", + "-A 1 -B 1 --struct --union --regex n[aA]m", + "-A 1 -B 1 --nameddecl --regex n[aA]m", + "-A 1 -B 1 --cxxcall --call --regex add", + "-A 1 -B 1 --cfield --regex ite", + "--union --regex [Uu]nion ./test/main.cpp", + "--struct --regex [sS]truct ./test/main.cpp", + "--dir ./ --regex run --func",] + + class Argparser(object): def __init__(self): parser = argparse.ArgumentParser() @@ -13,8 +31,46 @@ class Argparser(object): parser.add_argument("--bool", action="store_true", help="bool", default=False) self.args = parser.parse_args() + +def call_from_shell(command, *command_args): + command_list = [arg for arg in command_args] + command_list.insert(0, command) + if sys.version_info < (3, 7): + return subprocess.run(command_list, stdout=subprocess.PIPE) + else: + return subprocess.run(command_list, capture_output=True) + + +def call_from_shell_list(command_list): + if sys.version_info < (3, 7): + return subprocess.run(command_list, stdout=subprocess.PIPE) + else: + return subprocess.run(command_list, capture_output=True) + + +def call_from_shell_pprint(command, *command_args): + print(call_from_shell(command, *command_args).stdout.decode("utf-8")) + + +def call_from_shell_list_pprint(command_list): + print(call_from_list_shell(command_list).stdout.decode("utf-8")) + + def main(): argparser = Argparser() + cgrep_exe = "cgrep" + os.chdir("../") + print(os.getcwd()) + for cgrep_test_arg in cgrep_test_args: + arg_list = cgrep_test_arg.split() + arg_list.insert(0, cgrep_exe) + arg_list.append(test_files[0]) + print(arg_list) + ret = call_from_shell_list(arg_list) + #print("ret:", ret.returncode) + print("ret:", ret.stdout.decode("utf-8"), end="") + print("ret:", ret.stderr.decode("utf-8"), end="") + if __name__ == "__main__": main() |