Skip to content

Commit

Permalink
Migrate many over to clang-compatible
Browse files Browse the repository at this point in the history
  • Loading branch information
johnmlee101 committed Jul 16, 2024
1 parent 05a6038 commit 21c3f9e
Show file tree
Hide file tree
Showing 59 changed files with 5,872 additions and 3,847 deletions.
8 changes: 8 additions & 0 deletions libstuff/STime.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#include "libstuff.h"

#include <cstring>
#include <sys/time.h>

uint64_t STimeNow() {
Expand All @@ -19,6 +20,13 @@ string SComposeTime(const string& format, uint64_t when) {
return string(buf, length);
}

uint64_t STimestampToEpoch(const string& format, const string& timestamp) {
struct tm time;
memset(&time, 0, sizeof(struct tm));
strptime(timestamp.c_str(), format.c_str(), &time);
return mktime(&time);
}

int SDaysInMonth(int year, int month) {
// 30 days hath September...
if (month == 4 || month == 6 || month == 9 || month == 11) {
Expand Down
1 change: 1 addition & 0 deletions libstuff/libstuff.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ uint64_t STimeNow();
uint64_t STimeThisMorning(); // Timestamp for this morning at midnight GMT
int SDaysInMonth(int year, int month);
string SComposeTime(const string& format, uint64_t when);
uint64_t STimestampToEpoch(const string& format, const string& timestamp);
timeval SToTimeval(uint64_t when);
string SFirstOfMonth(const string& timeStamp, const int64_t& offset = 0);

Expand Down
8,736 changes: 5,346 additions & 3,390 deletions libstuff/sqlite3.c

Large diffs are not rendered by default.

114 changes: 91 additions & 23 deletions libstuff/sqlite3.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION "3.45.2"
#define SQLITE_VERSION_NUMBER 3045002
#define SQLITE_SOURCE_ID "2024-07-03 20:30:31 0bb306eb70ef1df7734326d30359da7a15397171d3e25ab644633ef3ee1428ec"
#define SQLITE_VERSION "3.46.0"
#define SQLITE_VERSION_NUMBER 3046000
#define SQLITE_SOURCE_ID "2024-07-05 10:08:34 2a07caad4ab1bf5f53049e71b9814cc722bcd8549d6db3e8e1fbe9eb39ed5338"

/*
** CAPI3REF: Run-Time Library Version Numbers
Expand Down Expand Up @@ -764,11 +764,11 @@ struct sqlite3_file {
** </ul>
** xLock() upgrades the database file lock. In other words, xLock() moves the
** database file lock in the direction NONE toward EXCLUSIVE. The argument to
** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never
** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never
** SQLITE_LOCK_NONE. If the database file lock is already at or above the
** requested lock, then the call to xLock() is a no-op.
** xUnlock() downgrades the database file lock to either SHARED or NONE.
* If the lock is already at or below the requested lock state, then the call
** If the lock is already at or below the requested lock state, then the call
** to xUnlock() is a no-op.
** The xCheckReservedLock() method checks whether any database connection,
** either in this process or in some other process, is holding a RESERVED,
Expand Down Expand Up @@ -2143,6 +2143,22 @@ struct sqlite3_mem_methods {
** configuration setting is never used, then the default maximum is determined
** by the [SQLITE_MEMDB_DEFAULT_MAXSIZE] compile-time option. If that
** compile-time option is not set, then the default maximum is 1073741824.
**
** [[SQLITE_CONFIG_ROWID_IN_VIEW]]
** <dt>SQLITE_CONFIG_ROWID_IN_VIEW
** <dd>The SQLITE_CONFIG_ROWID_IN_VIEW option enables or disables the ability
** for VIEWs to have a ROWID. The capability can only be enabled if SQLite is
** compiled with -DSQLITE_ALLOW_ROWID_IN_VIEW, in which case the capability
** defaults to on. This configuration option queries the current setting or
** changes the setting to off or on. The argument is a pointer to an integer.
** If that integer initially holds a value of 1, then the ability for VIEWs to
** have ROWIDs is activated. If the integer initially holds zero, then the
** ability is deactivated. Any other initial value for the integer leaves the
** setting unchanged. After changes, if any, the integer is written with
** a 1 or 0, if the ability for VIEWs to have ROWIDs is on or off. If SQLite
** is compiled without -DSQLITE_ALLOW_ROWID_IN_VIEW (which is the usual and
** recommended case) then the integer is always filled with zero, regardless
** if its initial value.
** </dl>
*/
#define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */
Expand Down Expand Up @@ -2174,6 +2190,7 @@ struct sqlite3_mem_methods {
#define SQLITE_CONFIG_SMALL_MALLOC 27 /* boolean */
#define SQLITE_CONFIG_SORTERREF_SIZE 28 /* int nByte */
#define SQLITE_CONFIG_MEMDB_MAXSIZE 29 /* sqlite3_int64 */
#define SQLITE_CONFIG_ROWID_IN_VIEW 30 /* int* */

/*
** CAPI3REF: Database Connection Configuration Options
Expand Down Expand Up @@ -3288,8 +3305,8 @@ SQLITE_API int sqlite3_set_authorizer(
#define SQLITE_RECURSIVE 33 /* NULL NULL */

/*
** CAPI3REF: Tracing And Profiling Functions
** METHOD: sqlite3
** CAPI3REF: Deprecated Tracing And Profiling Functions
** DEPRECATED
**
** These routines are deprecated. Use the [sqlite3_trace_v2()] interface
** instead of the routines described here.
Expand Down Expand Up @@ -6870,6 +6887,12 @@ SQLITE_API int sqlite3_autovacuum_pages(
** The exceptions defined in this paragraph might change in a future
** release of SQLite.
**
** Whether the update hook is invoked before or after the
** corresponding change is currently unspecified and may differ
** depending on the type of change. Do not rely on the order of the
** hook call with regards to the final result of the operation which
** triggers the hook.
**
** The update hook implementation must not do anything that will modify
** the database connection that invoked the update hook. Any actions
** to modify the database connection must be deferred until after the
Expand Down Expand Up @@ -8340,7 +8363,7 @@ SQLITE_API int sqlite3_test_control(int op, ...);
** The sqlite3_keyword_count() interface returns the number of distinct
** keywords understood by SQLite.
**
** The sqlite3_keyword_name(N,Z,L) interface finds the N-th keyword and
** The sqlite3_keyword_name(N,Z,L) interface finds the 0-based N-th keyword and
** makes *Z point to that keyword expressed as UTF8 and writes the number
** of bytes in the keyword into *L. The string that *Z points to is not
** zero-terminated. The sqlite3_keyword_name(N,Z,L) routine returns
Expand Down Expand Up @@ -9919,24 +9942,45 @@ SQLITE_API const char *sqlite3_vtab_collation(sqlite3_index_info*,int);
** <li value="2"><p>
** ^(If the sqlite3_vtab_distinct() interface returns 2, that means
** that the query planner does not need the rows returned in any particular
** order, as long as rows with the same values in all "aOrderBy" columns
** are adjacent.)^ ^(Furthermore, only a single row for each particular
** combination of values in the columns identified by the "aOrderBy" field
** needs to be returned.)^ ^It is always ok for two or more rows with the same
** values in all "aOrderBy" columns to be returned, as long as all such rows
** are adjacent. ^The virtual table may, if it chooses, omit extra rows
** that have the same value for all columns identified by "aOrderBy".
** ^However omitting the extra rows is optional.
** order, as long as rows with the same values in all columns identified
** by "aOrderBy" are adjacent.)^ ^(Furthermore, when two or more rows
** contain the same values for all columns identified by "colUsed", all but
** one such row may optionally be omitted from the result.)^
** The virtual table is not required to omit rows that are duplicates
** over the "colUsed" columns, but if the virtual table can do that without
** too much extra effort, it could potentially help the query to run faster.
** This mode is used for a DISTINCT query.
** <li value="3"><p>
** ^(If the sqlite3_vtab_distinct() interface returns 3, that means
** that the query planner needs only distinct rows but it does need the
** rows to be sorted.)^ ^The virtual table implementation is free to omit
** rows that are identical in all aOrderBy columns, if it wants to, but
** it is not required to omit any rows. This mode is used for queries
** ^(If the sqlite3_vtab_distinct() interface returns 3, that means the
** virtual table must return rows in the order defined by "aOrderBy" as
** if the sqlite3_vtab_distinct() interface had returned 0. However if
** two or more rows in the result have the same values for all columns
** identified by "colUsed", then all but one such row may optionally be
** omitted.)^ Like when the return value is 2, the virtual table
** is not required to omit rows that are duplicates over the "colUsed"
** columns, but if the virtual table can do that without
** too much extra effort, it could potentially help the query to run faster.
** This mode is used for queries
** that have both DISTINCT and ORDER BY clauses.
** </ol>
**
** <p>The following table summarizes the conditions under which the
** virtual table is allowed to set the "orderByConsumed" flag based on
** the value returned by sqlite3_vtab_distinct(). This table is a
** restatement of the previous four paragraphs:
**
** <table border=1 cellspacing=0 cellpadding=10 width="90%">
** <tr>
** <td valign="top">sqlite3_vtab_distinct() return value
** <td valign="top">Rows are returned in aOrderBy order
** <td valign="top">Rows with the same value in all aOrderBy columns are adjacent
** <td valign="top">Duplicates over all colUsed columns may be omitted
** <tr><td>0<td>yes<td>yes<td>no
** <tr><td>1<td>no<td>yes<td>no
** <tr><td>2<td>no<td>yes<td>yes
** <tr><td>3<td>yes<td>yes<td>yes
** </table>
**
** ^For the purposes of comparing virtual table output values to see if the
** values are same value for sorting purposes, two NULL values are considered
** to be the same. In other words, the comparison operator is "IS"
Expand Down Expand Up @@ -12128,6 +12172,30 @@ SQLITE_API int sqlite3changegroup_schema(sqlite3_changegroup*, sqlite3*, const c
*/
SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData);

/*
** CAPI3REF: Add A Single Change To A Changegroup
** METHOD: sqlite3_changegroup
**
** This function adds the single change currently indicated by the iterator
** passed as the second argument to the changegroup object. The rules for
** adding the change are just as described for [sqlite3changegroup_add()].
**
** If the change is successfully added to the changegroup, SQLITE_OK is
** returned. Otherwise, an SQLite error code is returned.
**
** The iterator must point to a valid entry when this function is called.
** If it does not, SQLITE_ERROR is returned and no change is added to the
** changegroup. Additionally, the iterator must not have been opened with
** the SQLITE_CHANGESETAPPLY_INVERT flag. In this case SQLITE_ERROR is also
** returned.
*/
SQLITE_API int sqlite3changegroup_add_change(
sqlite3_changegroup*,
sqlite3_changeset_iter*
);



/*
** CAPI3REF: Obtain A Composite Changeset From A Changegroup
** METHOD: sqlite3_changegroup
Expand Down Expand Up @@ -12932,8 +13000,8 @@ struct Fts5PhraseIter {
** EXTENSION API FUNCTIONS
**
** xUserData(pFts):
** Return a copy of the context pointer the extension function was
** registered with.
** Return a copy of the pUserData pointer passed to the xCreateFunction()
** API when the extension function was registered.
**
** xColumnTotalSize(pFts, iCol, pnToken):
** If parameter iCol is less than zero, set output variable *pnToken
Expand Down
Binary file added test/br_sync_dbuSbrn4-shm
Binary file not shown.
Empty file added test/br_sync_dbuSbrn4-wal
Empty file.
Empty file added test/br_sync_dbuSbrn4-wal2
Empty file.
7 changes: 4 additions & 3 deletions test/clustertest/tests/BadCommandTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
#include <test/clustertest/BedrockClusterTester.h>

struct BadCommandTest : tpunit::TestFixture {
BadCommandTest()
: tpunit::TestFixture("BadCommand", TEST(BadCommandTest::test)) { }
BadCommandTest() : tpunit::TestFixture("BadCommand") {
registerTests(TEST(BadCommandTest::test));
}

void test()
{
Expand Down Expand Up @@ -46,7 +47,7 @@ struct BadCommandTest : tpunit::TestFixture {
// This tests cases where keeping leader alive isn't feasible.
bool testFailed = false;
for (auto commandName : {"generatesegfaultpeek", "generateassertpeek", "generatesegfaultprocess"}) {

// Create the command with the current userID.
userID++;
SData command(commandName);
Expand Down
9 changes: 4 additions & 5 deletions test/clustertest/tests/BroadcastTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@
#include <test/clustertest/BedrockClusterTester.h>

struct BroadcastCommandTest : tpunit::TestFixture {
BroadcastCommandTest()
: tpunit::TestFixture("BroadcastCommand",
BEFORE_CLASS(BroadcastCommandTest::setup),
BroadcastCommandTest() : tpunit::TestFixture("BroadcastCommand") {
registerTests(BEFORE_CLASS(BroadcastCommandTest::setup),
AFTER_CLASS(BroadcastCommandTest::teardown),
TEST(BroadcastCommandTest::test)
) { }
TEST(BroadcastCommandTest::test));
}

BedrockClusterTester* tester;

Expand Down
11 changes: 5 additions & 6 deletions test/clustertest/tests/ClusterUpgradeTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
#include <test/clustertest/BedrockClusterTester.h>

struct ClusterUpgradeTest : tpunit::TestFixture {
ClusterUpgradeTest()
: tpunit::TestFixture("ClusterUpgrade",
BEFORE_CLASS(ClusterUpgradeTest::setup),
AFTER_CLASS(ClusterUpgradeTest::teardown),
TEST(ClusterUpgradeTest::test)
) { }
ClusterUpgradeTest() : tpunit::TestFixture("ClusterUpgrade") {
registerTests(BEFORE_CLASS(ClusterUpgradeTest::setup),
AFTER_CLASS(ClusterUpgradeTest::teardown),
TEST(ClusterUpgradeTest::test));
}

BedrockClusterTester* tester;
string prodBedrockName;
Expand Down
12 changes: 6 additions & 6 deletions test/clustertest/tests/ConflictSpamTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
#include <test/clustertest/BedrockClusterTester.h>

struct ConflictSpamTest : tpunit::TestFixture {
ConflictSpamTest()
: tpunit::TestFixture("ConflictSpam",
BEFORE_CLASS(ConflictSpamTest::setup),
AFTER_CLASS(ConflictSpamTest::teardown),
TEST(ConflictSpamTest::slow),
TEST(ConflictSpamTest::spam)) { }
ConflictSpamTest() : tpunit::TestFixture("ConflictSpam") {
registerTests(BEFORE_CLASS(ConflictSpamTest::setup),
AFTER_CLASS(ConflictSpamTest::teardown),
TEST(ConflictSpamTest::slow),
TEST(ConflictSpamTest::spam));
}

/* What's a conflict spam test? The main point of this test is to make sure we have lots of conflicting commits
* coming in to the whole cluster, so that we can make sure they all eventually get committed and replicated in a
Expand Down
11 changes: 6 additions & 5 deletions test/clustertest/tests/ControlCommandTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
#include <test/clustertest/BedrockClusterTester.h>

struct ControlCommandTest : tpunit::TestFixture {
ControlCommandTest()
: tpunit::TestFixture("ControlCommand",
BEFORE_CLASS(ControlCommandTest::setup),
AFTER_CLASS(ControlCommandTest::teardown),
TEST(ControlCommandTest::testPreventAttach)) { }
ControlCommandTest() : tpunit::TestFixture("ControlCommand") {
registerTests(BEFORE_CLASS(ControlCommandTest::setup),
AFTER_CLASS(ControlCommandTest::teardown),
TEST(ControlCommandTest::testPreventAttach));
}


BedrockClusterTester* tester;

Expand Down
10 changes: 6 additions & 4 deletions test/clustertest/tests/EscalateTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
#include <test/clustertest/BedrockClusterTester.h>

struct EscalateTest : tpunit::TestFixture {
EscalateTest() : tpunit::TestFixture("Escalate", BEFORE_CLASS(EscalateTest::setup),
AFTER_CLASS(EscalateTest::teardown),
TEST(EscalateTest::test),
TEST(EscalateTest::socketReuse)) { }
EscalateTest() : tpunit::TestFixture("Escalate") {
registerTests(BEFORE_CLASS(EscalateTest::setup),
AFTER_CLASS(EscalateTest::teardown),
TEST(EscalateTest::test),
TEST(EscalateTest::socketReuse));
}

BedrockClusterTester* tester = nullptr;

Expand Down
10 changes: 5 additions & 5 deletions test/clustertest/tests/FastStandDownTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
* Unfortunately these are very hard to do, and the expectation is that these cases work very similarly to the cases we DO have tests for.
*/
struct FastStandDownTest : tpunit::TestFixture {
FastStandDownTest()
: tpunit::TestFixture("FastStandDown",
BEFORE_CLASS(FastStandDownTest::setup),
FastStandDownTest() : tpunit::TestFixture("FastStandDown") {
registerTests(BEFORE_CLASS(FastStandDownTest::setup),
AFTER_CLASS(FastStandDownTest::teardown),
TEST(FastStandDownTest::testHTTPSRequests),
TEST(FastStandDownTest::testFutureCommands)) { }
TEST(FastStandDownTest::testFutureCommands));
}

BedrockClusterTester* tester;

Expand Down Expand Up @@ -109,7 +109,7 @@ struct FastStandDownTest : tpunit::TestFixture {

// Verify the DB on the new leader contains the commit.
SData lookupQuery("Query");
lookupQuery["Query"] = "SELECT COUNT(*) FROM test WHERE id = " + insertQuery["commandExecuteTime"] + " AND value = 'escalated_in_the_past';";
lookupQuery["Query"] = "SELECT COUNT(*) FROM test WHERE id = " + insertQuery["commandExecuteTime"] + " AND value = 'escalated_in_the_past';";
httpsResult = tester->getTester(1).executeWaitMultipleData({lookupQuery}, 1);
ASSERT_EQUAL(httpsResult[0].content, "COUNT(*)\n1\n");
}
Expand Down
Loading

0 comments on commit 21c3f9e

Please sign in to comment.