ddcp 0.2.4

Distributed decentralized database-to-database copy
#include <assert.h>
#include <stdio.h>

#include "crsqlite.h"
#include "rust.h"

int crsql_close(sqlite3 *db);
int syncLeftToRight(sqlite3 *db1, sqlite3 *db2, sqlite3_int64 since);

static void testSandbox() {
  printf("Sandbox\n");
  sqlite3 *db1;
  sqlite3 *db2;
  int rc;
  rc = sqlite3_open(":memory:", &db1);
  rc += sqlite3_open(":memory:", &db2);

  rc += sqlite3_exec(db1, "CREATE TABLE foo (a primary key);", 0, 0, 0);
  rc += sqlite3_exec(db2, "CREATE TABLE foo (a primary key);", 0, 0, 0);
  rc += sqlite3_exec(db1, "SELECT crsql_as_crr('foo')", 0, 0, 0);
  rc += sqlite3_exec(db2, "SELECT crsql_as_crr('foo')", 0, 0, 0);
  rc += sqlite3_exec(db1, "INSERT INTO foo VALUES (1)", 0, 0, 0);
  assert(rc == SQLITE_OK);

  assert(syncLeftToRight(db1, db2, 0) == SQLITE_OK);

  crsql_close(db1);
  crsql_close(db2);
  printf("\t\e[0;32mSuccess\e[0m\n");
}

void crsqlSandboxSuite() {
  testSandbox();
  printf("\e[47m\e[1;30mSuite: sandbox\e[0m\n");
}