From 8e379c62a48d68cd5ab2a32c6fc9244b1ae94084 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Sun, 26 May 2019 23:28:04 +0200 Subject: Add test-suite (requires dovecot-imapd). --- .../run | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/00-db-migration-0-to-1-foreign-key-violation/run (limited to 'tests/00-db-migration-0-to-1-foreign-key-violation/run') diff --git a/tests/00-db-migration-0-to-1-foreign-key-violation/run b/tests/00-db-migration-0-to-1-foreign-key-violation/run new file mode 100644 index 0000000..f2d12a9 --- /dev/null +++ b/tests/00-db-migration-0-to-1-foreign-key-violation/run @@ -0,0 +1,23 @@ +# create new schema and add INBOX +interimap +xgrep "^Creating new schema in database file " <"$STDERR" +xgrep -Fx "database: Created mailbox INBOX" <"$STDERR" + +# empty table `mailboxes` and revert its schema to version 0 +sqlite3 "$XDG_DATA_HOME/interimap/remote.db" <<-EOF + PRAGMA foreign_keys = OFF; + PRAGMA user_version = 0; + DROP TABLE mailboxes; + CREATE TABLE mailboxes ( + idx INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + mailbox TEXT NOT NULL CHECK (mailbox != '') UNIQUE, + subscribed BOOLEAN NOT NULL + ); +EOF + +# check that migration fails due to broken referential integrity +! interimap +xgrep -Fx "Upgrading database version from 0" <"$STDERR" +xgrep -Fx "database: ERROR: Broken referential integrity! Refusing to commit changes." <"$STDERR" + +# vim: set filetype=sh : -- cgit v1.2.3