SQLiteSmoke.mod 944 B

123456789101112131415161718192021222324252627282930313233343536
  1. MODULE SQLiteSmoke;
  2. (* First end-to-end SQLite binding test: :memory: open/exec/close. *)
  3. FROM SYSTEM IMPORT ADDRESS;
  4. FROM SQLite IMPORT SQLiteOk, sqlite3_open, sqlite3_exec, sqlite3_close,
  5. sqlite3_free;
  6. VAR
  7. ExitCode : INTEGER;
  8. db, errmsg : ADDRESS;
  9. rc : INTEGER;
  10. BEGIN
  11. db := NIL; errmsg := NIL;
  12. rc := sqlite3_open(":memory:", db);
  13. IF (rc = SQLiteOk) AND (db # NIL) THEN
  14. rc := sqlite3_exec(db, "CREATE TABLE t(x INTEGER);",
  15. NIL, NIL, errmsg);
  16. IF errmsg # NIL THEN sqlite3_free(errmsg); errmsg := NIL END;
  17. IF rc = SQLiteOk THEN
  18. rc := sqlite3_exec(db, "INSERT INTO t VALUES (42);",
  19. NIL, NIL, errmsg);
  20. IF errmsg # NIL THEN sqlite3_free(errmsg); errmsg := NIL END
  21. END
  22. END;
  23. IF db # NIL THEN
  24. IF sqlite3_close(db) # SQLiteOk THEN
  25. rc := 1
  26. END
  27. END;
  28. IF rc = SQLiteOk THEN
  29. ExitCode := 42
  30. ELSE
  31. ExitCode := 1
  32. END
  33. END SQLiteSmoke.