buffet: Allow tests to pass in a path to search for command definitions

This allows us to dynamically generate commands to test Buffet with at
runtime.  The read only nature of the file system makes this difficult
with just the statically configured files.

BUG=brillo:172
TEST=unittests, buffet_Registration passes with this change.

Change-Id: I54a92edadbb5c8a5ebad63b8464d87bb21ba5aa2
Reviewed-on: https://chromium-review.googlesource.com/249440
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
diff --git a/buffet/commands/command_manager.h b/buffet/commands/command_manager.h
index 88b551a..f176cad 100644
--- a/buffet/commands/command_manager.h
+++ b/buffet/commands/command_manager.h
@@ -70,10 +70,13 @@
                     chromeos::ErrorPtr* error);
 
   // Startup method to be called by buffet daemon at startup.
-  // Initializes the object and loads the standard GCD command
-  // dictionary as well as static vendor-provided command definitions for
-  // the current device.
-  void Startup();
+  // Initializes the object and reads files in |definitions_path| to load
+  //   1) the standard GCD command dictionary
+  //   2) static vendor-provided command definitions
+  // If |test_definitions_path| is not empty, we'll also look there for
+  // additional commands.
+  void Startup(const base::FilePath& definitions_path,
+               const base::FilePath& test_definitions_path);
 
   // Adds a new command to the command queue.
   void AddCommand(std::unique_ptr<CommandInstance> command_instance);