| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /// Container for all information needed to invoke and run a test, paired with |
| /// any warning information the user needs to see. |
| class CommandTokens { |
| /// Complete list of items needed to invoke and run a test. |
| final List<String> tokens; |
| |
| /// Optional warning to display to the user. |
| /// |
| /// This is a great place to put deprecation warnings or non-fatal malformed |
| /// test issues. |
| final String? warning; |
| |
| CommandTokens(this.tokens, {this.warning}); |
| CommandTokens.empty() |
| : tokens = [], |
| warning = null; |
| |
| String get command => tokens.first; |
| List<String> get args => tokens.sublist(1); |
| String get fullCommand => tokens.join(' ').trim(); |
| |
| /// Same as [fullCommand], minus the absolute path to fx, and with any |
| /// last-second flags added in. |
| String fullCommandDisplay([List<String>? extraArgs]) { |
| var _tokens = List<String>.from(tokens); |
| if (extraArgs != null) { |
| _tokens.addAll(extraArgs); |
| } |
| return _tokens.join(' '); |
| } |
| |
| @override |
| String toString() => fullCommand; |
| } |