Line data Source code
1 : #define BOOST_TEST_DYN_LINK
2 : #define BOOST_TEST_MODULE (MarkReadonly test)
3 :
4 : #include <boost/test/unit_test.hpp>
5 :
6 : #include <cstdlib>
7 : #include <ctime>
8 : #include <iostream>
9 : #include <memory>
10 : #include <string>
11 :
12 : #include "../DatabaseConfigurationInterface.h"
13 :
14 : using namespace ots;
15 :
16 : struct MarkReadonlyTestData {
17 2 : MarkReadonlyTestData() {
18 2 : srand(time(nullptr));
19 2 : baseVersion = rand() % 99999 + 100000;
20 2 : std::cout << "=== MARK READONLY TEST SUITE ===\n";
21 2 : std::cout << "Base version: " << baseVersion << "\n\n";
22 2 : }
23 :
24 2 : ~MarkReadonlyTestData() { std::cout << "\n=== TEST SUITE COMPLETE ===\n"; }
25 :
26 : int baseVersion;
27 : };
28 :
29 : MarkReadonlyTestData fixture;
30 :
31 : BOOST_AUTO_TEST_SUITE(mark_readonly_test)
32 :
33 4 : BOOST_AUTO_TEST_CASE(mark_readonly_nonexistent_version) {
34 2 : std::cout << "\n=== TEST 1: Mark readonly nonexistent version ===\n";
35 :
36 2 : auto ifc = DatabaseConfigurationInterface();
37 :
38 2 : std::shared_ptr<ConfigurationBase> cfg = std::make_shared<TestConfiguration001>();
39 2 : cfg->getView().version = 999999998;
40 :
41 2 : auto result = ifc.markActiveVersionReadonly(cfg.get());
42 2 : std::cout << "Step 1: markActiveVersionReadonly on nonexistent version returned " << result << "\n";
43 :
44 2 : BOOST_CHECK_NE(result, 0);
45 2 : std::cout << " Verified: Marking nonexistent version returns error\n";
46 2 : }
47 :
48 : BOOST_AUTO_TEST_SUITE_END()
|