diff --git a/cli/upload/upload.go b/cli/upload/upload.go index c9b2300b665..c5a735add97 100644 --- a/cli/upload/upload.go +++ b/cli/upload/upload.go @@ -54,8 +54,6 @@ func NewCommand() *cobra.Command { uploadCommand.Flags().BoolVarP(&verify, "verify", "t", false, "Verify uploaded binary after the upload.") uploadCommand.Flags().BoolVarP(&verbose, "verbose", "v", false, "Optional, turns on verbose mode.") - uploadCommand.MarkFlagRequired("port") - return uploadCommand } diff --git a/test/test_upload.py b/test/test_upload.py index 8a8125a4528..bb44b8dbe58 100644 --- a/test/test_upload.py +++ b/test/test_upload.py @@ -38,9 +38,35 @@ def test_upload(run_command, data_dir, detected_boards): fqbn=board.fqbn, sketch_path=sketch_path ) ) + # Upload without port must fail + result = run_command( + "upload -b {fqbn} {sketch_path}".format( + sketch_path=sketch_path, fqbn=board.fqbn, port=board.address + ) + ) + assert result.failed # Upload assert run_command( "upload -b {fqbn} -p {port} {sketch_path}".format( sketch_path=sketch_path, fqbn=board.fqbn, port=board.address ) ) + + +def test_upload_after_attach(run_command, data_dir, detected_boards): + # Init the environment explicitly + assert run_command("core update-index") + + for board in detected_boards: + # Download core + assert run_command("core install {}".format(board.core)) + # Create a sketch + sketch_path = os.path.join(data_dir, "foo") + assert run_command("sketch new {}".format(sketch_path)) + assert run_command( + "board attach serial://{port} {sketch_path}".format(port=board.address, sketch_path=sketch_path) + ) + # Build sketch + assert run_command("compile {sketch_path}".format(sketch_path=sketch_path)) + # Upload + assert run_command("upload {sketch_path}".format(sketch_path=sketch_path))