Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix --notestendpt handling #86

Merged
merged 4 commits into from
Apr 14, 2016
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions test/daplink_firmware.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,19 @@ class ProjectFirmwareBundle(firmware.FirmwareBundle):
def __init__(self, directory, tool):
tool_dir = os.path.abspath(directory + os.sep + 'projectfiles' +
os.sep + tool)
errmsg = "Error: DAPLink projects are missing. Did " \
"you forget to generate them by running " \
"'progen generate -t %s'?\nExpecting them at %s" % (tool, tool_dir)

if not os.path.exists(tool_dir):
print (errmsg)
exit(-1)

project_dir_list = os.listdir(tool_dir)
if not project_dir_list:
print (errmsg)
exit(-1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be better to raise and exception here or add a 'vaild' field rather than calling exit. That way the script using this is able to recover from an error rather than exiting

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about that but then noticed there are a number of exit(-1) calls in run_test.py. I was trying to be consistent. Are you saying to throw an exception so the calling function can continue if it wishes to?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By script I meant run_test.py. Currently everything which uses exit() resides in run_test.py and isn't meant to be used outside that script. This is more of a nitpick so don't feel like it needs to change. If the need arises in the future to make this case recoverable then it can be changed later.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good. I will leave it as is. Doesn't seem like a recoverable error condition. Like you said, we can change that as needed

John

On Apr 14, 2016, at 3:34 PM, Russ Butler [email protected] wrote:

In test/daplink_firmware.py:

     project_dir_list = os.listdir(tool_dir)
  •    if not project_dir_list:
    
  •        print (errmsg)
    
  •        exit(-1) 
    
    By script I meant run_test.py. Currently everything which uses exit() resides in run_test.py and isn't meant to be used outside that script. This is more of a nitpick so don't feel like it needs to change. If the need arises in the future to make this case recoverable then it can be changed later.


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub


firmware_list = []
for name in project_dir_list:
build_dir = tool_dir + os.sep + name + os.sep + 'build'
Expand Down
34 changes: 21 additions & 13 deletions test/run_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ def build_test_configurations(self, parent_test):

# Get target
target = None
target_required = not self._test_ep and not self._test_daplink
target_required = self._test_ep
if board_id in board_id_to_target:
target = board_id_to_target[board_id]
elif target_required:
Expand Down Expand Up @@ -573,25 +573,32 @@ def main():
use_prebuilt = args.targetdir is not None
use_compile_api = args.user is not None and args.password is not None

test_info = TestInfo('DAPLink')

# Validate args

# See if user wants to test endpoints. If yes and he didn't provide
# target test binaries, use the Compile API to build them
all_targets = None
if not args.notestendpt:
if not use_prebuilt and not use_compile_api:
print("Endpoint test requires target test images.")
print(" Directory with pre-build target test images")
print(" Directory with pre-built target test images")
print(" must be specified with '--targetdir'")
print("OR")
print(" Mbed login credentials '--user' and '--password' must")
print(" be specified so test images can be built with")
print(" the compile API.")
exit(-1)

firmware_explicitly_specified = len(args.firmware) != 0
test_info = TestInfo('DAPLink')
if args.targetdir is not None:
target_dir = args.targetdir
else:
target_dir = daplink_dir + os.sep + 'tmp'
build_target_bundle(target_dir, args.user, args.password, test_info)

if args.targetdir is not None:
target_dir = args.targetdir
else:
target_dir = daplink_dir + os.sep + 'tmp'
build_target_bundle(target_dir, args.user, args.password, test_info)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick - trailing whitespace on line 579, 593 and 599

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good nitpick. I found four other lines with trailing whitespace. Cleanup pushed

target_bundle = load_target_bundle(target_dir)
all_targets = target_bundle.get_target_list()

if os.path.exists(args.logdir):
if args.force:
Expand All @@ -606,10 +613,9 @@ def main():
firmware_bundle = load_bundle_from_project()
else:
firmware_bundle = load_bundle_from_release(args.firmwaredir)
target_bundle = load_target_bundle(target_dir)

all_firmware = firmware_bundle.get_firmware_list()
all_boards = get_all_attached_daplink_boards()
all_targets = target_bundle.get_target_list()

for board in all_boards:
if board.get_mode() == board.MODE_BL:
Expand All @@ -620,6 +626,7 @@ def main():
print('Unable to switch mode on board: %s' % board.unique_id)

# Make sure firmware is present
firmware_explicitly_specified = len(args.firmware) != 0
if firmware_explicitly_specified:
all_firmware_names = set(fw.name for fw in all_firmware)
firmware_missing = False
Expand All @@ -635,7 +642,8 @@ def main():
tester = TestManager()
tester.add_firmware(all_firmware)
tester.add_boards(all_boards)
tester.add_targets(all_targets)
if all_targets is not None:
tester.add_targets(all_targets)
if firmware_explicitly_specified:
tester.set_firmware_filter(args.firmware)

Expand Down