MCPcopy Create free account
hub / github.com/Kitware/VTK / TestSQLDatabaseSchema

Function TestSQLDatabaseSchema

IO/SQL/Testing/Cxx/TestSQLDatabaseSchema.cxx:14–258  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12#include <set>
13
14int TestSQLDatabaseSchema(int /*argc*/, char* /*argv*/[])
15{
16 bool status = true;
17
18 // 1. Create the schema
19 DatabaseSchemaWith2Tables schema;
20
21 // 2. Check the schema
22
23 // Define the correct (reference) columns and types
24 std::set<std::string> preNames;
25 preNames.insert(std::string("dropplpgsql"));
26 preNames.insert(std::string("loadplpgsql"));
27 preNames.insert(std::string("createsomefunction"));
28 std::multiset<std::string> preBackends;
29 preBackends.insert(std::string(VTK_SQL_POSTGRESQL));
30 preBackends.insert(std::string(VTK_SQL_POSTGRESQL));
31 preBackends.insert(std::string(VTK_SQL_POSTGRESQL));
32
33 // Loop over all preambles
34 int numPre = schema->GetNumberOfPreambles();
35 if (numPre != 3)
36 {
37 std::cerr << "Read " << numPre << " != 3 preamble in test schema.\n";
38 status = false;
39 }
40
41 for (int preHandle = 0; preHandle < numPre; ++preHandle)
42 {
43 std::string preName = schema->GetPreambleNameFromHandle(preHandle);
44 std::cerr << "Preamble name: " << preName << "\n";
45
46 std::set<std::string>::iterator sit = preNames.find(preName);
47 if (sit != preNames.end())
48 {
49 preNames.erase(sit);
50 }
51 else
52 {
53 std::cerr << "Could not retrieve preamble name " << preName << " from test schema.\n";
54 status = false;
55 }
56
57 std::string preBackend = schema->GetPreambleBackendFromHandle(preHandle);
58 std::cerr << "Preamble backend: " << preBackend << "\n";
59
60 std::multiset<std::string>::iterator mit = preBackends.find(preBackend);
61 if (mit != preBackends.end())
62 {
63 preBackends.erase(mit);
64 }
65 else
66 {
67 std::cerr << "Could not retrieve preamble backend " << preBackend << " from test schema.\n";
68 status = false;
69 }
70 }
71

Callers

nothing calls this directly

Tested by

no test coverage detected