blob: dbcaf3d17b82e335dab44828dd1367cb61b785b6 [file] [log] [blame]
#!/usr/bin/env python
#
# Copyright (c) 2016-2017 Nest Labs, Inc.
# All rights reserved.
#
# 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.
#
#
# @file
# A Happy command line utility that tests Weave Wdm Next among Weave nodes.
#
# The command is executed by instantiating and running WeaveWdmNext class.
#
import getopt
import sys
import set_test_path
from happy.Utils import *
import plugin.WeaveWdmNext as WeaveWdmNext
helpstring = \
"""
weave-wdm-next [-h --help] [-q --quiet] [-o --origin <NAME>] [-s --server <NAME>] [-t --tap <TAP_INTERFACE>]
[-w --wdm_option <wdm_option>] [-t --test_case <test_case>] [--test_client_case <case_id>] [--total_client_count <count>):
[--final_client_status <status>][--timer_client_period <period>] [--enable_client_stop][--test_client_iterations <iterations>]
[--test_client_delay <delay_time>] [--enable_client_flip][--save_client_perf][--test_server_case <case_id>]
[--total_server_count <count>][--final_server_status <status>]
[--timer_server_period] <period>[--enable_server_stop][--test_server_iterations <iterations>]
[--test_server_delay <delay_time>][--enable_server_flip][--save_server_perf][--test_focus_client]
[--case][--case_cert_path <path>][--case_key_path <path>][--group_enc][--group_enc_key_id <key>]
return:
True or False for test
"""
if __name__ == "__main__":
options = WeaveWdmNext.option()
try:
opts, args = getopt.getopt(sys.argv[1:], "ho:s:qt:w:",
["help", "origin=", "server=", "quiet", "tap=", "wdm_option=",
"test_client_case=", "total_client_count=", "final_client_status=", "timer_client_period=",
"enable_client_stop=", "test_client_iterations=", "test_client_delay=","enable_client_flip=",
"save_client_perf="
"test_server_case=", "total_server_count=", "final_server_status=", "timer_server_period=",
"enable_server_stop=", "test_server_iterations=", "test_server_delay=", "enable_server_flip=",
"save_server_perf=", "swap_role=", "case", "case_cert_path=", "case_key_path=", "group_enc", "group_enc_key_id="])
except getopt.GetoptError as err:
print WeaveWdmNext.WeaveWdmNext.__doc__
print hred(str(err))
sys.exit(hred("%s: Failed server parse arguments." % (__file__)))
for o, a in opts:
if o in ("-h", "--help"):
print helpstring
sys.exit(0)
elif o in ("-q", "--quiet"):
options["quiet"] = True
elif o in ("-o", "--origin"):
options["client"] = a
elif o in ("-s", "--server"):
options["server"] = a
elif o in ("-t", "--tap"):
options["tap"] = a
elif o in ("-w", "--wdm_option"):
options["wdm_option"] = a
elif o in ("--test_client_case"):
options["test_client_case"] = int(a)
elif o in ("--total_client_count"):
options["total_client_count"] = int(a)
elif o in ("--final_client_status"):
options["final_client_status"] = int(a)
elif o in ("--timer_client_period"):
options["timer_client_period"] = int(a)
elif o in ("--enable_client_stop"):
options["enable_client_stop"] = int(a)
elif o in ("--test_client_iterations"):
options["test_client_iterations"] = int(a)
elif o in ("--test_client_delay"):
options["test_client_delay"] = int(a)
elif o in ("--enable_client_flip"):
options["enable_client_flip"] = int(a)
elif o in ("--save_client_perf"):
options["save_client_perf"] = int(a)
elif o in ("--test_server_case"):
options["test_server_case"] = int(a)
elif o in ("--total_server_count"):
options["total_server_count"] = int(a)
elif o in ("--final_server_status"):
options["final_server_status"] = int(a)
elif o in ("--timer_server_period"):
options["timer_server_period"] = int(a)
elif o in ("--enable_server_stop"):
options["enable_server_stop"] = int(a)
elif o in ("--test_server_iterations"):
options["test_server_iterations"] = int(a)
elif o in ("--test_server_delay"):
options["test_server_delay"] = int(a)
elif o in ("--enable_server_flip"):
options["enable_server_flip"] = int(a)
elif o in ("--save_server_perf"):
options["save_server_perf"] = int(a)
elif o in ("--test_focus_client"):
options["swap_role"] = int(a)
elif o in ("--case"):
options["case"] = True
elif o in ("--case_cert_path"):
options["case_cert_path"] = a
elif o in ("--case_key_path"):
options["case_key_path"] = a
elif o in ("--group_enc"):
options["group_enc"] = True
elif o in ("--group_enc_key_id"):
options["group_enc_key_id"] = a
else:
print hred(str(o) + " cannot be recognized")
assert False, "unhandled option"
if len(args) == 1:
options["origin"] = args[0]
if len(args) == 2:
options["client"] = args[0]
options["server"] = args[1]
cmd = WeaveWdmNext.WeaveWdmNext(options)
cmd.start()