MCPcopy Create free account
hub / github.com/SqliteModernCpp/sqlite_modern_cpp / main

Function main

tests/variant.cc:7–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5using namespace std;
6
7int main()
8{
9#ifdef MODERN_SQLITE_STD_VARIANT_SUPPORT
10 try
11 {
12 database db(":memory:");
13
14 db << "CREATE TABLE foo (a);";
15 std::variant<std::string, int, std::optional<float>> v;
16 v = 1;
17 db << "INSERT INTO foo VALUES (?)" << v;
18 v = "a";
19 db << "INSERT INTO foo VALUES (?)" << v;
20
21 db << "SELECT a FROM foo WHERE a=?;" << 1 >> v;
22
23 if(v.index() != 1 || std::get<1>(v) != 1)
24 {
25 cout << "Bad result on line " << __LINE__ << endl;
26 exit(EXIT_FAILURE);
27 }
28
29 db << "SELECT NULL" >> v;
30 if(std::get<2>(v)) {
31 cout << "Bad result on line " << __LINE__ << endl;
32 exit(EXIT_FAILURE);
33 }
34
35 db << "SELECT 0.0" >> v;
36 if(!std::get<2>(v)) {
37 cout << "Bad result on line " << __LINE__ << endl;
38 exit(EXIT_FAILURE);
39 }
40 }
41 catch(sqlite_exception e)
42 {
43 cout << "Unexpected error " << e.what() << endl;
44 exit(EXIT_FAILURE);
45 }
46 catch(...)
47 {
48 cout << "Unknown error\n";
49 exit(EXIT_FAILURE);
50 }
51
52 cout << "OK\n";
53 exit(EXIT_SUCCESS);
54#else
55 exit(42);
56#endif
57}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected