core: command-line: char* buffers fixups
This commit is contained in:
committed by
Gabriel Ferreira
parent
8a0eba7c03
commit
0157675e40
@@ -84,9 +84,8 @@ main(int argc, char* argv[])
|
||||
const std::string attrPath = attrClass + "::" + attrName;
|
||||
|
||||
// char* buffer option
|
||||
const int bufsize = 10;
|
||||
char* charbuf = new char[bufsize];
|
||||
std::strncpy(charbuf, "charstar", bufsize);
|
||||
constexpr int CHARBUF_SIZE = 10;
|
||||
char charbuf[CHARBUF_SIZE] = "charstar";
|
||||
|
||||
// Non-option arguments
|
||||
int nonOpt1 = 1;
|
||||
@@ -119,7 +118,7 @@ main(int argc, char* argv[])
|
||||
cmd.AddValue("strArg", "a string argument", strArg);
|
||||
cmd.AddValue("anti", attrPath);
|
||||
cmd.AddValue("cbArg", "a string via callback", MakeCallback(SetCbArg));
|
||||
cmd.AddValue("charbuf", "a char* buffer", charbuf, bufsize);
|
||||
cmd.AddValue("charbuf", "a char* buffer", charbuf, CHARBUF_SIZE);
|
||||
cmd.AddNonOption("nonOpt1", "first non-option", nonOpt1);
|
||||
cmd.AddNonOption("nonOpt2", "second non-option", nonOpt2);
|
||||
cmd.Parse(argc, argv);
|
||||
|
||||
@@ -747,7 +747,7 @@ CommandLine::AddValue(const std::string& name,
|
||||
std::size_t num)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << name << help << value << num);
|
||||
std::shared_ptr<CharStarItem> item{new CharStarItem()};
|
||||
auto item = std::make_shared<CharStarItem>();
|
||||
item->m_name = name;
|
||||
item->m_help = help;
|
||||
item->m_buffer = value;
|
||||
|
||||
@@ -540,18 +540,16 @@ void
|
||||
CommandLineCharStarTestCase::DoRun()
|
||||
{
|
||||
// char* buffer option
|
||||
const int bufsize = 10;
|
||||
char* charbuf = new char[bufsize];
|
||||
std::strncpy(charbuf, "charstar", bufsize);
|
||||
constexpr int CHARBUF_SIZE = 10;
|
||||
char charbuf[CHARBUF_SIZE] = "charstar";
|
||||
|
||||
CommandLine cmd;
|
||||
cmd.AddValue("charbuf", "a char* buffer", charbuf, bufsize);
|
||||
cmd.AddValue("charbuf", "a char* buffer", charbuf, CHARBUF_SIZE);
|
||||
Parse(cmd, 1, "--charbuf=deadbeef");
|
||||
|
||||
std::string value{charbuf};
|
||||
|
||||
NS_TEST_ASSERT_MSG_EQ(value, "deadbeef", "CommandLine did not correctly set a char* buffer");
|
||||
delete[] charbuf;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -7,7 +7,7 @@ boolArg: false true
|
||||
strArg: "strArg default" "deadbeef"
|
||||
anti: "false" "true"
|
||||
cbArg: cbArg default beefstew
|
||||
charbuf: "charstar" "charstar"
|
||||
charbuf: "charstar" "stewmeat"
|
||||
nonOpt1: 1 3
|
||||
nonOpt2: 1 4
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ CommandLineExampleTestCase::CommandLineExampleTestCase()
|
||||
"command-line-example",
|
||||
NS_TEST_SOURCEDIR,
|
||||
"--intArg=2 --boolArg --strArg=deadbeef --anti=t "
|
||||
"--cbArg=beefstew 3 4 extraOne extraTwo")
|
||||
"--cbArg=beefstew --charbuf=stewmeat 3 4 extraOne extraTwo")
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user