brbzull0 commented on code in PR #13861:
URL: https://github.com/apache/trafficserver/pull/13861#discussion_r4326557060


##########
include/tscore/ArgParser.h:
##########
@@ -364,6 +364,14 @@ class ArgParser
   // Enable test mode - makes do_exit() throw instead of calling exit() for 
unit testing
   static void set_test_mode(bool test = true);
 
+  /** Clear the parser-wide state held at file scope in ArgParser.cc.
+
+      Test-only. A program builds one parser and never reuses the state, but a 
unit test binary
+      runs many parsers in sequence, and set_default_command() or 
Command::set_default() would
+      otherwise leak default_command into every later test.
+  */
+  static void reset_global_state();

Review Comment:
   No change, as in 
https://github.com/apache/trafficserver/pull/13861#discussion_r4314314492: 
`reset_global_state()` is declared under the `protected:` label of `ArgParser` 
(the one above `do_exit()` and `set_test_mode()`), not public, and `tscore` 
headers are not installed; tests reach it through a derived `Access` struct.



##########
src/traffic_ctl/traffic_ctl.cc:
##########
@@ -173,8 +173,9 @@ main([[maybe_unused]] int argc, const char **argv)
     .add_option("--data", "-d", "Inline config data (@file, @- for stdin, or 
yaml string)", "", MORE_THAN_ZERO_ARG_N, "")
     .add_option("--directive", "-D", "Pass a reload directive to a config 
handler (format: config_key.directive_key=value)", "",
                 MORE_THAN_ZERO_ARG_N, "")
+    // No short form: -w is the global --watch.
     .add_option(
-      "--initial-wait", "-w",
+      "--initial-wait", "",
       "Initial wait before first poll, giving the server time to schedule all 
handlers (seconds). Accepts fractional values", "", 1,
       "2")

Review Comment:
   No change, as in 
https://github.com/apache/trafficserver/pull/13861#discussion_r4314315542: 
`add_option` takes the short form as `std::string const &`, an empty string is 
never added to the short-option map, and `""` is how the other long-only 
options in this file are declared.



##########
src/tscore/ArgParser.cc:
##########
@@ -39,11 +44,23 @@ std::string default_command;
 // by default return EX_USAGE(64) when usage is called.
 // if -h or --help is called specifically, return 0
 int usage_return_code = EX_USAGE;
+} // namespace
 
 namespace ts
 {
 bool ArgParser::_test_mode = false;
 
+// protected method for testing
+/*static*/ void
+ArgParser::reset_global_state()
+{
+  global_usage.clear();
+  description.clear();
+  parser_program_name.clear();
+  default_command.clear();
+  usage_return_code = EX_USAGE;
+}

Review Comment:
   No change: the declaration is in the `protected:` section of `ArgParser` in 
`include/tscore/ArgParser.h`, so the comment matches; see 
https://github.com/apache/trafficserver/pull/13861#discussion_r4314314492.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to