Fix argument string ownership
This commit is contained in:
parent
d8b66d0967
commit
a9e2dea97e
@ -24,7 +24,7 @@ public:
|
||||
};
|
||||
|
||||
TEST_F(CliTest_IntegrityCheck, givenIncorrectFilesystemId_thenFails) {
|
||||
vector<const char*> args {basedir.string().c_str(), mountdir.string().c_str(), "--cipher", "aes-256-gcm", "-f"};
|
||||
vector<string> args {basedir.string().c_str(), mountdir.string().c_str(), "--cipher", "aes-256-gcm", "-f"};
|
||||
//TODO Remove "-f" parameter, once EXPECT_RUN_SUCCESS can handle that
|
||||
EXPECT_RUN_SUCCESS(args, mountdir);
|
||||
modifyFilesystemId();
|
||||
@ -36,7 +36,7 @@ TEST_F(CliTest_IntegrityCheck, givenIncorrectFilesystemId_thenFails) {
|
||||
}
|
||||
|
||||
TEST_F(CliTest_IntegrityCheck, givenIncorrectFilesystemKey_thenFails) {
|
||||
vector<const char*> args {basedir.string().c_str(), mountdir.string().c_str(), "--cipher", "aes-256-gcm", "-f"};
|
||||
vector<string> args {basedir.string().c_str(), mountdir.string().c_str(), "--cipher", "aes-256-gcm", "-f"};
|
||||
//TODO Remove "-f" parameter, once EXPECT_RUN_SUCCESS can handle that
|
||||
EXPECT_RUN_SUCCESS(args, mountdir);
|
||||
modifyFilesystemKey();
|
||||
|
@ -52,15 +52,15 @@ public:
|
||||
);
|
||||
}
|
||||
|
||||
vector<const char*> args() {
|
||||
vector<const char*> result = {basedir.string().c_str(), mountdir.string().c_str()};
|
||||
vector<string> args() {
|
||||
vector<string> result = {basedir.string(), mountdir.string()};
|
||||
if (GetParam().externalConfigfile) {
|
||||
result.push_back("--config");
|
||||
result.push_back(configfile.path().string().c_str());
|
||||
result.push_back(configfile.path().string());
|
||||
}
|
||||
if (GetParam().logIsNotStderr) {
|
||||
result.push_back("--logfile");
|
||||
result.push_back(logfile.path().string().c_str());
|
||||
result.push_back(logfile.path().string());
|
||||
}
|
||||
if (GetParam().runningInForeground) {
|
||||
result.push_back("-f");
|
||||
|
@ -41,12 +41,12 @@ public:
|
||||
return std::move(httpClient);
|
||||
}
|
||||
|
||||
int run(std::vector<const char*> args) {
|
||||
int run(const std::vector<std::string>& args) {
|
||||
std::vector<const char*> _args;
|
||||
_args.reserve(args.size() + 1);
|
||||
_args.push_back("cryfs");
|
||||
for (const char *arg : args) {
|
||||
_args.push_back(arg);
|
||||
_args.emplace_back("cryfs");
|
||||
for (const std::string& arg : args) {
|
||||
_args.emplace_back(arg.c_str());
|
||||
}
|
||||
auto &keyGenerator = cpputils::Random::PseudoRandom();
|
||||
ON_CALL(*console, askPassword(testing::StrEq("Password: "))).WillByDefault(testing::Return("pass"));
|
||||
@ -55,18 +55,18 @@ public:
|
||||
return cryfs::Cli(keyGenerator, cpputils::SCrypt::TestSettings, console).main(_args.size(), _args.data(), _httpClient());
|
||||
}
|
||||
|
||||
void EXPECT_EXIT_WITH_HELP_MESSAGE(std::vector<const char*> args, const std::string &message, cryfs::ErrorCode errorCode) {
|
||||
void EXPECT_EXIT_WITH_HELP_MESSAGE(const std::vector<std::string>& args, const std::string &message, cryfs::ErrorCode errorCode) {
|
||||
EXPECT_RUN_ERROR(args, (".*Usage:.*"+message).c_str(), errorCode);
|
||||
}
|
||||
|
||||
void EXPECT_RUN_ERROR(std::vector<const char*> args, const char* message, cryfs::ErrorCode errorCode) {
|
||||
void EXPECT_RUN_ERROR(const std::vector<std::string>& args, const char* message, cryfs::ErrorCode errorCode) {
|
||||
cpputils::CaptureStderrRAII capturedStderr;
|
||||
int exit_code = run(args);
|
||||
capturedStderr.EXPECT_MATCHES(message);
|
||||
EXPECT_EQ(exitCode(errorCode), exit_code);
|
||||
}
|
||||
|
||||
void EXPECT_RUN_SUCCESS(std::vector<const char*> args, const boost::filesystem::path &mountDir) {
|
||||
void EXPECT_RUN_SUCCESS(const std::vector<std::string>& args, const boost::filesystem::path &mountDir) {
|
||||
//TODO Make this work when run in background
|
||||
ASSERT(std::find(args.begin(), args.end(), string("-f")) != args.end(), "Currently only works if run in foreground");
|
||||
bool unmount_success = false;
|
||||
|
Loading…
Reference in New Issue
Block a user