|
@@ -21,7 +21,7 @@
|
|
|
#include <dhcp/iface_mgr.h>
|
|
|
#include <exceptions/exceptions.h>
|
|
|
|
|
|
-#include "../command_options.h"
|
|
|
+#include "command_options_helper.h"
|
|
|
|
|
|
using namespace std;
|
|
|
using namespace isc;
|
|
@@ -48,16 +48,7 @@ protected:
|
|
|
/// \param cmdline Command line to parse
|
|
|
/// \throws std::bad allocation if tokenization failed
|
|
|
void process(const std::string& cmdline) {
|
|
|
- CommandOptions& opt = CommandOptions::instance();
|
|
|
- int argc = 0;
|
|
|
- char** argv = tokenizeString(cmdline, &argc);
|
|
|
- opt.reset();
|
|
|
- opt.parse(argc, argv);
|
|
|
- for(int i = 0; i < argc; ++i) {
|
|
|
- free(argv[i]);
|
|
|
- argv[i] = NULL;
|
|
|
- }
|
|
|
- free(argv);
|
|
|
+ CommandOptionsHelper::process(cmdline);
|
|
|
}
|
|
|
|
|
|
/// \brief Check default initialized values
|
|
@@ -143,42 +134,6 @@ protected:
|
|
|
EXPECT_EQ("", opt.getWrapped());
|
|
|
EXPECT_EQ("192.168.0.1", opt.getServerName());
|
|
|
}
|
|
|
-
|
|
|
- /// \brief Split string to array of C-strings
|
|
|
- ///
|
|
|
- /// \param s String to split (tokenize)
|
|
|
- /// \param num Number of tokens returned
|
|
|
- /// \return array of C-strings (tokens)
|
|
|
- char** tokenizeString(const std::string& text_to_split, int* num) const {
|
|
|
- char** results = NULL;
|
|
|
- // Tokenization with std streams
|
|
|
- std::stringstream text_stream(text_to_split);
|
|
|
- // Iterators to be used for tokenization
|
|
|
- std::istream_iterator<std::string> text_iterator(text_stream);
|
|
|
- std::istream_iterator<std::string> text_end;
|
|
|
- // Tokenize string (space is a separator) using begin and end iteratos
|
|
|
- std::vector<std::string> tokens(text_iterator, text_end);
|
|
|
-
|
|
|
- if (tokens.size() > 0) {
|
|
|
- // Allocate array of C-strings where we will store tokens
|
|
|
- results = static_cast<char**>(malloc(tokens.size() * sizeof(char*)));
|
|
|
- if (results == NULL) {
|
|
|
- throw std::bad_alloc();
|
|
|
- }
|
|
|
- // Store tokens in C-strings array
|
|
|
- for (int i = 0; i < tokens.size(); ++i) {
|
|
|
- char* cs = static_cast<char*>(malloc(tokens[i].length() + 1));
|
|
|
- strcpy(cs, tokens[i].c_str());
|
|
|
- results[i] = cs;
|
|
|
- }
|
|
|
- // Return number of tokens to calling function
|
|
|
- if (num != NULL) {
|
|
|
- *num = tokens.size();
|
|
|
- }
|
|
|
- }
|
|
|
- return results;
|
|
|
- }
|
|
|
-
|
|
|
};
|
|
|
|
|
|
TEST_F(CommandOptionsTest, Defaults) {
|