Mercurial > hg > orthanc-databases
diff MySQL/UnitTests/UnitTestsMain.cpp @ 22:1e9bad493475
prevent running unit tests on a non-existing db
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 11 Jul 2018 14:39:59 +0200 |
parents | 54ea251aed70 |
children | b2ff1cd2907a |
line wrap: on
line diff
--- a/MySQL/UnitTests/UnitTestsMain.cpp Tue Jul 10 14:33:05 2018 +0200 +++ b/MySQL/UnitTests/UnitTestsMain.cpp Wed Jul 11 14:39:59 2018 +0200 @@ -145,28 +145,50 @@ return -1; } - if (argc == 5) + std::vector<std::string> args; + for (int i = 1; i < argc; i++) { - // UNIX - globalParameters_.SetUnixSocket(argv[1]); - globalParameters_.SetUsername(argv[2]); - globalParameters_.SetPassword(argv[3]); - globalParameters_.SetDatabase(argv[4]); + // Ignore arguments beginning with "-" to allow passing arguments + // to Google Test such as "--gtest_filter=" + if (argv[i] != NULL && + argv[i][0] != '-') + { + args.push_back(std::string(argv[i])); + } } - else - { - // Windows - globalParameters_.SetHost(argv[1]); - globalParameters_.SetPort(boost::lexical_cast<unsigned int>(argv[2])); - globalParameters_.SetUsername(argv[3]); - globalParameters_.SetPassword(argv[4]); - globalParameters_.SetDatabase(argv[5]); - } - + ::testing::InitGoogleTest(&argc, argv); Orthanc::Logging::Initialize(); Orthanc::Logging::EnableInfoLevel(true); Orthanc::Logging::EnableTraceLevel(true); + + if (args.size() == 4) + { + // UNIX flavor + globalParameters_.SetUnixSocket(args[0]); + globalParameters_.SetUsername(args[1]); + globalParameters_.SetPassword(args[2]); + globalParameters_.SetDatabase(args[3]); + } + else if (args.size() == 5) + { + // Windows flavor + globalParameters_.SetHost(args[0]); + globalParameters_.SetPort(boost::lexical_cast<unsigned int>(args[1])); + globalParameters_.SetUsername(args[2]); + globalParameters_.SetPassword(args[3]); + globalParameters_.SetDatabase(args[4]); + } + else + { + LOG(ERROR) << "Bad number of arguments"; + return -1; + } + + Json::Value config; + globalParameters_.Format(config); + std::cout << "Parameters of the MySQL connection: " << std::endl + << config.toStyledString() << std::endl; int result = RUN_ALL_TESTS();