test.py: modify to return:
0: on success
1: on failure
2: on partial success
updated description to explain and give example.
topic_common:
fixed a couple of typos in comments
modified illegal_arg routine to save error in failuer rather than display
the message.
the message will be display later by "show_all_failures".
Signed-off-by: Raymond Spear <[email protected]>
---
cli/atest.py | 36 +++++++++++++++++++++++++++++++++++-
cli/topic_common.py | 11 ++++++++---
2 files changed, 43 insertions(+), 4 deletions(-)
diff --git a/cli/atest.py b/cli/atest.py
index 57dd847..1b31ec2 100644
--- a/cli/atest.py
+++ b/cli/atest.py
@@ -12,6 +12,32 @@ on the command line and imports the site_<topic> or <topic>
module.
It then creates a <topic>_<action> object, and calls it parses),
execute() and output() methods.
+
+There are three return values possible:
+0: the operation requested succeeded
+1: the operation requested failed
+2: the operation requested worked partially
+
+EXAMPLE:
+
+(1) host list goodsys badsys
+goodsys exists and its info is displayed
+badsys does not exist and a "host not found" message is displayed.
+
+this will exit with a value of 2.
+
+(2) host list badsys
+badsys does not exist and a "host not found" message is displayed.
+
+this will exit with a value of 1.
+
+(3) host list goodsys
+goodsys exists and its info is displayed
+
+this will exit 0
+
+(4) host list pattern
+this will exit 0 whether pattern displays anything or not
"""
__author__ = '[email protected] (Jean-Marc Eurin)'
@@ -107,4 +133,12 @@ def main():
except Exception:
traceback.print_exc()
finally:
- return action_obj.show_all_failures()
+ # set rtn = 0 if there were no errors
+ # set rtn = 1 if there were only errors
+ # set rtn = 2 if there was both output and error
+ rtn = action_obj.show_all_failures()
+ if ( results ):
+ if ( rtn ):
+ # we had errors and output
+ rtn = 2
+ return rtn
diff --git a/cli/topic_common.py b/cli/topic_common.py
index 6021574..dc057bf 100644
--- a/cli/topic_common.py
+++ b/cli/topic_common.py
@@ -50,7 +50,7 @@ High Level Algorithm:
should return results.
4. Output
- The child output() method is called with the execute() resutls as a
+ The child output() method is called with the execute() results as a
parameter. This is child-specific, but should leverage the
atest.print_*() methods.
"""
@@ -113,7 +113,7 @@ FAIL_TAG = '<XYZ>'
UPLOAD_SOCKET_TIMEOUT = 60*30
-# Convertion functions to be called for printing,
+# Conversion functions to be called for printing,
# e.g. to print True/False for booleans.
def __convert_platform(field):
if field is None:
@@ -253,7 +253,12 @@ class atest(object):
if self.kill_on_failure:
self.invalid_syntax(header + rest)
else:
- print >> sys.stderr, header + rest
+ #don't print the message here.
+ # It will be displayed later by "show_all_failures"
+ # header ends with ":\n"
+ # so, strip it off
+ msg = header.rstrip().rstrip(":")
+ self.failure(rest, item="", what_failed=msg)
def invalid_syntax(self, msg):
--
1.7.7.6
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest