MB-20054: Regression test - bucket is deleted with DCPBackfill running
[ep-engine.git] / tests / module_tests / ep_unit_tests_main.cc
1 /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /*
3  *     Copyright 2016 Couchbase, Inc
4  *
5  *   Licensed under the Apache License, Version 2.0 (the "License");
6  *   you may not use this file except in compliance with the License.
7  *   You may obtain a copy of the License at
8  *
9  *       http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *   Unless required by applicable law or agreed to in writing, software
12  *   distributed under the License is distributed on an "AS IS" BASIS,
13  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *   See the License for the specific language governing permissions and
15  *   limitations under the License.
16  */
17
18 /*
19  * Main function & globals for the ep_unit_test target.
20  */
21
22 #include <memcached/extension_loggers.h>
23 #include "programs/engine_testapp/mock_server.h"
24
25 #include <getopt.h>
26 #include <gtest/gtest.h>
27
28 #include "configuration.h"
29 #include "stored-value.h"
30
31
32 int main(int argc, char **argv) {
33     bool log_to_stderr = false;
34     // Parse command-line options.
35     int cmd;
36     bool invalid_argument = false;
37     while (!invalid_argument &&
38            (cmd = getopt(argc, argv, "v")) != EOF) {
39         switch (cmd) {
40         case 'v':
41             log_to_stderr = true;
42             break;
43         default:
44             std::cerr << "Usage: " << argv[0] << " [-v] [gtest_options...]" << std::endl
45                       << std::endl
46                       << "  -v Verbose - Print verbose output to stderr."
47                       << std::endl << std::endl;
48             invalid_argument = true;
49             break;
50         }
51     }
52
53     init_mock_server(log_to_stderr);
54     get_mock_server_api()->log->set_level(EXTENSION_LOG_DEBUG);
55
56     if (memcached_initialize_stderr_logger(get_mock_server_api) != EXTENSION_SUCCESS) {
57         std::cerr << argv[0] << ": Failed to initialize log system" << std::endl;
58         return 1;
59     }
60
61
62     // Default number of hashtable locks is too large for TSan to
63     // track. Use the value in configuration.json (47 at time of
64     // writing).
65     HashTable::setDefaultNumLocks(Configuration().getHtLocks());
66
67     ::testing::InitGoogleTest(&argc, argv);
68     return RUN_ALL_TESTS();
69 }