wic: Return error code when wic fails to invoke command

Return 1 if command doesn't exist or wic is called without
any commmand.
Return result of invoke_command as wic return code.

Added tests for unsupported command and no command.

Fixed typo in test case test02_createhelp spotted by this fix.

[YOCTO #7856]

(From OE-Core rev: ebd9f7b1da8ed556e98aab4d5f4e81707ac44b27)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ed Bartosh 2015-06-16 14:19:49 +03:00 committed by Richard Purdie
parent 5daadf85ed
commit 40764a309d
3 changed files with 13 additions and 2 deletions

View File

@ -52,7 +52,7 @@ class Wic(oeSelfTest):
def test02_createhelp(self):
"""Test wic create --help"""
self.assertEqual(0, runCmd('wic creat --help').status)
self.assertEqual(0, runCmd('wic create --help').status)
def test03_listhelp(self):
"""Test wic list --help"""
@ -82,3 +82,12 @@ class Wic(oeSelfTest):
self.assertEqual(0, runCmd("wic create directdisk-gpt "
"--image-name core-image-minimal").status)
self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
def test07_unsupported_subcommand(self):
"""Test unsupported subcommand"""
self.assertEqual(1, runCmd('wic unsupported',
ignore_status=True).status)
def test08_no_command(self):
"""Test wic without command"""
self.assertEqual(1, runCmd('wic', ignore_status=True).status)

View File

@ -81,11 +81,13 @@ def invoke_subcommand(args, parser, main_command_usage, subcommands):
if not args:
logging.error("No subcommand specified, exiting")
parser.print_help()
return 1
elif args[0] == "help":
wic_help(args, main_command_usage, subcommands)
elif args[0] not in subcommands:
logging.error("Unsupported subcommand %s, exiting\n" % (args[0]))
parser.print_help()
return 1
else:
usage = subcommands.get(args[0], subcommand_error)[1]
subcommands.get(args[0], subcommand_error)[0](args[1:], usage)

View File

@ -305,7 +305,7 @@ def main(argv):
parser.print_help()
sys.exit(1)
hlp.invoke_subcommand(args, parser, hlp.wic_help_usage, subcommands)
return hlp.invoke_subcommand(args, parser, hlp.wic_help_usage, subcommands)
if __name__ == "__main__":