Fix flaky SQLite test.
The test was dependent on the order of column names stored in a hashmap.
Made the test more resilient to variations in column order.
Bug: 12475524
Change-Id: I9fe70b60e3143980eca754443fd4cd14754555d4
diff --git a/tests/tests/database/src/android/database/sqlite/cts/SQLiteQueryBuilderTest.java b/tests/tests/database/src/android/database/sqlite/cts/SQLiteQueryBuilderTest.java
index 09903df..97b0b8f 100644
--- a/tests/tests/database/src/android/database/sqlite/cts/SQLiteQueryBuilderTest.java
+++ b/tests/tests/database/src/android/database/sqlite/cts/SQLiteQueryBuilderTest.java
@@ -109,15 +109,19 @@
sql = sqliteQueryBuilder.buildQuery(null, // projectionIn is null
null, null, null, null, null, null);
- // TODO: implement an order-independent way of doing the projection columns comparison
- expected = "SELECT age, name, address FROM " + TEST_TABLE_NAME;
- assertEquals(expected, sql);
+ assertTrue(sql.matches("SELECT (age|name|address), (age|name|address), (age|name|address) "
+ + "FROM " + TEST_TABLE_NAME));
+ assertTrue(sql.contains("age"));
+ assertTrue(sql.contains("name"));
+ assertTrue(sql.contains("address"));
sqliteQueryBuilder.setProjectionMap(null);
sql = sqliteQueryBuilder.buildQuery(new String[] { "name", "address" },
null, null, null, null, null, null);
- expected = "SELECT name, address FROM " + TEST_TABLE_NAME;
- assertEquals(expected, sql);
+ assertTrue(sql.matches("SELECT (name|address), (name|address) "
+ + "FROM " + TEST_TABLE_NAME));
+ assertTrue(sql.contains("name"));
+ assertTrue(sql.contains("address"));
}
public void testSetCursorFactory() {