From cf51a1e299cabca7d97bce799320df407c2d020f Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Mon, 11 Dec 2017 16:52:15 +0000
Subject: [PATCH] Add sanity check for performance comparisons.

---
 ...elfDatabasePerformanceComparisonTest.java} |  7 ++-
 ...leepDatabasePerformanceComparisonTest.java | 46 +++++++++++++++++++
 2 files changed, 52 insertions(+), 1 deletion(-)
 rename bramble-core/src/test/java/org/briarproject/bramble/db/{H2DatabasePerformanceSelfComparisonTest.java => H2SelfDatabasePerformanceComparisonTest.java} (68%)
 create mode 100644 bramble-core/src/test/java/org/briarproject/bramble/db/H2SleepDatabasePerformanceComparisonTest.java

diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/H2DatabasePerformanceSelfComparisonTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/H2SelfDatabasePerformanceComparisonTest.java
similarity index 68%
rename from bramble-core/src/test/java/org/briarproject/bramble/db/H2DatabasePerformanceSelfComparisonTest.java
rename to bramble-core/src/test/java/org/briarproject/bramble/db/H2SelfDatabasePerformanceComparisonTest.java
index 480282c568..a7c483512c 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/db/H2DatabasePerformanceSelfComparisonTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/db/H2SelfDatabasePerformanceComparisonTest.java
@@ -6,8 +6,13 @@ import org.junit.Ignore;
 
 import java.sql.Connection;
 
+/**
+ * Sanity check for {@link JdbcDatabasePerformanceComparisonTest}: check that
+ * if conditions A and B are identical, no significant difference is (usually)
+ * detected.
+ */
 @Ignore
-public class H2DatabasePerformanceSelfComparisonTest
+public class H2SelfDatabasePerformanceComparisonTest
 		extends JdbcDatabasePerformanceComparisonTest {
 
 	@Override
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/H2SleepDatabasePerformanceComparisonTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/H2SleepDatabasePerformanceComparisonTest.java
new file mode 100644
index 0000000000..4bc215c28b
--- /dev/null
+++ b/bramble-core/src/test/java/org/briarproject/bramble/db/H2SleepDatabasePerformanceComparisonTest.java
@@ -0,0 +1,46 @@
+package org.briarproject.bramble.db;
+
+import org.briarproject.bramble.api.db.DatabaseConfig;
+import org.briarproject.bramble.api.db.DbException;
+import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
+import org.briarproject.bramble.api.system.Clock;
+import org.junit.Ignore;
+
+import java.sql.Connection;
+
+/**
+ * Sanity check for {@link JdbcDatabasePerformanceComparisonTest}: check that
+ * if condition B sleeps for 1ms before every commit, condition A is
+ * considered to be faster.
+ */
+@Ignore
+public class H2SleepDatabasePerformanceComparisonTest
+		extends JdbcDatabasePerformanceComparisonTest {
+
+	@Override
+	Database<Connection> createDatabase(boolean conditionA,
+			DatabaseConfig databaseConfig, Clock clock) {
+		if (conditionA) {
+			return new H2Database(databaseConfig, clock);
+		} else {
+			return new H2Database(databaseConfig, clock) {
+				@Override
+				@NotNullByDefault
+				public void commitTransaction(Connection txn)
+						throws DbException {
+					try {
+						Thread.sleep(1);
+					} catch (InterruptedException e) {
+						throw new DbException(e);
+					}
+					super.commitTransaction(txn);
+				}
+			};
+		}
+	}
+
+	@Override
+	protected String getTestName() {
+		return getClass().getSimpleName();
+	}
+}
-- 
GitLab