VOL-4805
This script is an inital attempt at capturing and documenting testing
resources for interactive and programatic retrieval. Command line
arguments and eventual filesystem based detection will hints for a
suite of tests to run to evaluate VOLTHA code changes.
make check: run python unit tests
usage:
% flog.py --help
% flog.py --usage
% flog.py --type regression
% flog.py --attr olt
Recreate patch: start over
o approval given by: daf & torsten
o a cycle of squashing roaches reported by lint checking resulted
in multiple conflicting patches in gerrit. Abandon the mess and
submit a clean patch.
o Only delta introduced is using the updated standard copyright notice.
o git merge to get branch and master back in sync.
Change-Id: I24292f2b72d134879939f43a84b31ab153d10fa9
diff --git a/scripts/flog.py b/scripts/flog.py
new file mode 100755
index 0000000..9fb5fd3
--- /dev/null
+++ b/scripts/flog.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python
+'''This script is an aggregate for testing resources.'''
+
+# -----------------------------------------------------------------------
+# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# -----------------------------------------------------------------------
+
+##-------------------##
+##---] GLOBALS [---##
+##-------------------##
+
+##-------------------##
+##---] IMPORTS [---##
+##-------------------##
+import sys
+import pprint
+
+from flog.main import utils as main_utils
+from flog.main import argparse as main_getopt
+
+# from flog.meta import onos
+from flog.meta import voltha
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+def process():
+ '''Perform actions based on command line args.'''
+
+ argv = main_getopt.get_argv()
+ debug = argv['debug']
+ trace = argv['trace']
+
+ todos = []
+
+ ## -----------------------------
+ ## Accumulate tests by attribute
+ ## -----------------------------
+ for attr in argv['attr']:
+ if debug:
+ print('** ATTR: %s' % attr)
+ todos += voltha.Utils().get([attr])
+
+ ## ------------------------
+ ## Accumulate tests by type
+ ## ------------------------
+ for test_type in argv['type']:
+ if debug:
+ print('** TYPE: %s' % test_type)
+ todos += voltha.Utils().get([test_type])
+
+ ## ---------------------------------------
+ ## Append an explicit list of tests to run
+ ## ---------------------------------------
+ for incl in argv['incl']:
+ if debug:
+ print('** INCL: %s' % incl)
+ todos += [incl]
+
+ ## -------------------------------------
+ ## Filter results by substring or config
+ ## -------------------------------------
+ # if len(argv['excl']) > 1:
+ # for excl in argv['excl']:
+ # if any([excl in val for val in todos]):
+ # continue
+ #
+
+ todos = list(set(todos)) # unique
+
+ # -------------------------------------
+ # Err on the side of testing everything
+ # -------------------------------------
+ if len(todos) == 0:
+ todos += voltha.Utils().get(['all'])
+
+ for todo in todos:
+ print(todo)
+
+ return
+
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+def main(argv_raw):
+ '''Here we go.'''
+
+ main_getopt.getopts(argv_raw)
+ process()
+ sys.exit(0)
+
+##----------------##
+##---] MAIN [---##
+##----------------##
+if __name__ == "__main__":
+ main(sys.argv[1:]) # NOSONAR
+
+# [EOF]