[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241121145957.145700-5-gmonaco@redhat.com>
Date: Thu, 21 Nov 2024 15:59:57 +0100
From: Gabriele Monaco <gmonaco@...hat.com>
To: linux-trace-kernel@...r.kernel.org,
linux-kernel@...r.kernel.org,
Steven Rostedt <rostedt@...dmis.org>
Cc: Tomas Glozar <tglozar@...hat.com>,
John Kacur <jkacur@...hat.com>,
Gabriele Monaco <gmonaco@...hat.com>
Subject: [PATCH 4/4] verification/dot2k: Add support for name and description options
The dot2k command allows specifying a model name with -n and a
description with -D, however those are not used in practice.
This patch allows to specify a custom model name (by default the name of
the dot file without extension) and a description which overrides the
one in the C file.
Signed-off-by: Gabriele Monaco <gmonaco@...hat.com>
---
tools/verification/dot2/automata.py | 4 ++--
tools/verification/dot2/dot2c.py | 4 ++--
tools/verification/dot2/dot2k | 6 +-----
tools/verification/dot2/dot2k.py | 6 ++++--
tools/verification/dot2/dot2k_templates/main.c | 2 +-
5 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/tools/verification/dot2/automata.py b/tools/verification/dot2/automata.py
index bdeb98baa8b0..2c4639a73474 100644
--- a/tools/verification/dot2/automata.py
+++ b/tools/verification/dot2/automata.py
@@ -19,9 +19,9 @@ class Automata:
invalid_state_str = "INVALID_STATE"
- def __init__(self, file_path):
+ def __init__(self, file_path, model_name=None):
self.__dot_path = file_path
- self.name = self.__get_model_name()
+ self.name = model_name if model_name is not None else self.__get_model_name()
self.__dot_lines = self.__open_dot()
self.states, self.initial_state, self.final_states = self.__get_state_variables()
self.events = self.__get_event_variables()
diff --git a/tools/verification/dot2/dot2c.py b/tools/verification/dot2/dot2c.py
index 87d8a1e1470c..fa2816ac7b61 100644
--- a/tools/verification/dot2/dot2c.py
+++ b/tools/verification/dot2/dot2c.py
@@ -22,8 +22,8 @@ class Dot2c(Automata):
struct_automaton_def = "automaton"
var_automaton_def = "aut"
- def __init__(self, file_path):
- super().__init__(file_path)
+ def __init__(self, file_path, model_name=None):
+ super().__init__(file_path, model_name)
self.line_length = 100
def __buff_to_string(self, buff):
diff --git a/tools/verification/dot2/dot2k b/tools/verification/dot2/dot2k
index d4d7e52d549e..2d580f26d7c0 100644
--- a/tools/verification/dot2/dot2k
+++ b/tools/verification/dot2/dot2k
@@ -25,16 +25,12 @@ if __name__ == '__main__':
print("Opening and parsing the dot file %s" % params.dot_file)
try:
- monitor=dot2k(params.dot_file, params.monitor_type)
+ monitor=dot2k(params.dot_file, params.monitor_type, params.model_name, params.description)
except Exception as e:
print('Error: '+ str(e))
print("Sorry : :-(")
sys.exit(1)
- # easier than using argparse action.
- if params.model_name != None:
- print(params.model_name)
-
print("Writing the monitor into the directory %s" % monitor.name)
monitor.print_files()
print("Almost done, checklist")
diff --git a/tools/verification/dot2/dot2k.py b/tools/verification/dot2/dot2k.py
index c88b3c011706..f5f829a03f84 100644
--- a/tools/verification/dot2/dot2k.py
+++ b/tools/verification/dot2/dot2k.py
@@ -17,8 +17,8 @@ class dot2k(Dot2c):
monitor_templates_dir = "dot2/dot2k_templates/"
monitor_type = "per_cpu"
- def __init__(self, file_path, MonitorType):
- super().__init__(file_path)
+ def __init__(self, file_path, MonitorType, model_name=None, description=None):
+ super().__init__(file_path, model_name)
self.monitor_type = self.monitor_types.get(MonitorType)
if self.monitor_type is None:
@@ -28,6 +28,7 @@ class dot2k(Dot2c):
self.__fill_rv_templates_dir()
self.main_c = self.__open_file(self.monitor_templates_dir + "main.c")
self.enum_suffix = "_%s" % self.name
+ self.description = description if description is not None else self.name
def __fill_rv_templates_dir(self):
@@ -114,6 +115,7 @@ class dot2k(Dot2c):
main_c = main_c.replace("%%TRACEPOINT_HANDLERS_SKEL%%", tracepoint_handlers)
main_c = main_c.replace("%%TRACEPOINT_ATTACH%%", tracepoint_attach)
main_c = main_c.replace("%%TRACEPOINT_DETACH%%", tracepoint_detach)
+ main_c = main_c.replace("%%DESCRIPTION%%", self.description)
return main_c
diff --git a/tools/verification/dot2/dot2k_templates/main.c b/tools/verification/dot2/dot2k_templates/main.c
index 4a05fef7f3c7..0987c5e56ec8 100644
--- a/tools/verification/dot2/dot2k_templates/main.c
+++ b/tools/verification/dot2/dot2k_templates/main.c
@@ -88,4 +88,4 @@ module_exit(unregister_%%MODEL_NAME%%);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("dot2k: auto-generated");
-MODULE_DESCRIPTION("%%MODEL_NAME%%");
+MODULE_DESCRIPTION("%%DESCRIPTION%%");
--
2.47.0
Powered by blists - more mailing lists