comparison 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
comparison
equal deleted inserted replaced
21:2e5d2c69d4f9 22:1e9bad493475
143 << "Example (Windows): " << argv[0] << " localhost 3306 root root orthanctest" 143 << "Example (Windows): " << argv[0] << " localhost 3306 root root orthanctest"
144 << std::endl << std::endl; 144 << std::endl << std::endl;
145 return -1; 145 return -1;
146 } 146 }
147 147
148 if (argc == 5) 148 std::vector<std::string> args;
149 { 149 for (int i = 1; i < argc; i++)
150 // UNIX 150 {
151 globalParameters_.SetUnixSocket(argv[1]); 151 // Ignore arguments beginning with "-" to allow passing arguments
152 globalParameters_.SetUsername(argv[2]); 152 // to Google Test such as "--gtest_filter="
153 globalParameters_.SetPassword(argv[3]); 153 if (argv[i] != NULL &&
154 globalParameters_.SetDatabase(argv[4]); 154 argv[i][0] != '-')
155 } 155 {
156 else 156 args.push_back(std::string(argv[i]));
157 { 157 }
158 // Windows 158 }
159 globalParameters_.SetHost(argv[1]); 159
160 globalParameters_.SetPort(boost::lexical_cast<unsigned int>(argv[2]));
161 globalParameters_.SetUsername(argv[3]);
162 globalParameters_.SetPassword(argv[4]);
163 globalParameters_.SetDatabase(argv[5]);
164 }
165
166 ::testing::InitGoogleTest(&argc, argv); 160 ::testing::InitGoogleTest(&argc, argv);
167 Orthanc::Logging::Initialize(); 161 Orthanc::Logging::Initialize();
168 Orthanc::Logging::EnableInfoLevel(true); 162 Orthanc::Logging::EnableInfoLevel(true);
169 Orthanc::Logging::EnableTraceLevel(true); 163 Orthanc::Logging::EnableTraceLevel(true);
164
165 if (args.size() == 4)
166 {
167 // UNIX flavor
168 globalParameters_.SetUnixSocket(args[0]);
169 globalParameters_.SetUsername(args[1]);
170 globalParameters_.SetPassword(args[2]);
171 globalParameters_.SetDatabase(args[3]);
172 }
173 else if (args.size() == 5)
174 {
175 // Windows flavor
176 globalParameters_.SetHost(args[0]);
177 globalParameters_.SetPort(boost::lexical_cast<unsigned int>(args[1]));
178 globalParameters_.SetUsername(args[2]);
179 globalParameters_.SetPassword(args[3]);
180 globalParameters_.SetDatabase(args[4]);
181 }
182 else
183 {
184 LOG(ERROR) << "Bad number of arguments";
185 return -1;
186 }
187
188 Json::Value config;
189 globalParameters_.Format(config);
190 std::cout << "Parameters of the MySQL connection: " << std::endl
191 << config.toStyledString() << std::endl;
170 192
171 int result = RUN_ALL_TESTS(); 193 int result = RUN_ALL_TESTS();
172 194
173 Orthanc::Logging::Finalize(); 195 Orthanc::Logging::Finalize();
174 196