From 75e083ae46361dd2443b140b949c292ada04382c Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Tue, 3 Mar 2020 11:04:05 +0100 Subject: [PATCH] find tests and commands --- python/scripts/cmd_python.py | 3 ++- python/scripts/list_tested_cmd.py | 29 +++++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/python/scripts/cmd_python.py b/python/scripts/cmd_python.py index a76812c82..ad7395f44 100644 --- a/python/scripts/cmd_python.py +++ b/python/scripts/cmd_python.py @@ -4,10 +4,11 @@ out = subprocess.run(['g', 'list'], stdout = subprocess.PIPE, encoding=locale.ge cmd = out.stdout.splitlines() cmd.pop(0) -from sls_detector import Detector, Eiger, Ctb +from slsdet import Detector, Eiger, Ctb pycmd = dir(Detector)+dir(Eiger)+dir(Ctb) +#Add commands that we should not expect as direct commands in python pycmd += ['vrf', 'vtr', 'vrs', 'vtgstv', 'vsvn', 'vtrim', 'vsvp', 'vth1', 'vth2', 'vth3', 'vshaper', 'vshaperneg', 'rxb_rb', 'rxb_lb', 'vref_prech', 'vref_rstore', 'vref_cds', diff --git a/python/scripts/list_tested_cmd.py b/python/scripts/list_tested_cmd.py index 74ebbc8be..4e4cbe6c8 100644 --- a/python/scripts/list_tested_cmd.py +++ b/python/scripts/list_tested_cmd.py @@ -1,11 +1,19 @@ +""" +Utility to find and list which command line functions have tests and +where the tests are located +""" +#local import for for parsing c++ import parse -from pathlib import Path + +#General python stuff import os import locale import argparse -path = Path('../../slsDetectorSoftware/tests/') import subprocess +from pathlib import Path +#Realative path from this dir +path = Path('../../slsDetectorSoftware/tests/') parser = argparse.ArgumentParser() parser.add_argument("-s", "--startswith", help="for filter", type = str, default=None) args = parser.parse_args() @@ -15,15 +23,12 @@ tested = [] for fname in files: with open(path/fname) as f: data = f.read() - data = parse.remove_comments(data) data = data.splitlines() - - for line in data: if 'TEST_CASE' in line or 'SECTION' in line: cmd = line.split("\"")[1] - tested.append(cmd) + tested.append([cmd, fname]) out = subprocess.run(['g', 'list'], stdout = subprocess.PIPE, encoding=locale.getpreferredencoding()) all_cmd = out.stdout.splitlines() @@ -33,18 +38,18 @@ all_cmd.pop(0) if args.startswith is not None: all_cmd = [cmd for cmd in all_cmd if cmd.startswith(args.startswith)] - tested = [cmd for cmd in tested if cmd.startswith(args.startswith)] + tested = [cmd for cmd in tested if cmd[0].startswith(args.startswith)] +tn = [cmd[0] for cmd in tested] - -not_tested = [cmd for cmd in all_cmd if cmd not in tested] -misnamed = [cmd for cmd in tested if cmd not in all_cmd] -tested = [cmd for cmd in tested if cmd in all_cmd] +not_tested = [cmd for cmd in all_cmd if cmd not in tn] +misnamed = [cmd for cmd in tn if cmd not in all_cmd] +tested = [cmd for cmd in tested if cmd[0] in all_cmd] print("\nThe following commands are tested:") for cmd in tested: - print(cmd) + print(f'{cmd[0]:>18} : {cmd[1]}') print("\nThe following commands are NOT tested:") for cmd in not_tested: