| Index: sql/statement_unittest.cc
|
| diff --git a/sql/statement_unittest.cc b/sql/statement_unittest.cc
|
| index b6b6aa8b5f9b4c184271151d1f1e0ec2397bbd9a..95fafb30e68c095702c777256d042b5aa3d2e0bf 100644
|
| --- a/sql/statement_unittest.cc
|
| +++ b/sql/statement_unittest.cc
|
| @@ -88,14 +88,14 @@ TEST_F(SQLStatementTest, Run) {
|
|
|
| // Run should fail since this produces output, and we should use Step(). This
|
| // gets a bit wonky since sqlite says this is OK so succeeded is set.
|
| - s.Reset();
|
| + s.Reset(true);
|
| s.BindInt(0, 3);
|
| EXPECT_FALSE(s.Run());
|
| EXPECT_EQ(SQLITE_ROW, db().GetErrorCode());
|
| EXPECT_TRUE(s.Succeeded());
|
|
|
| // Resetting it should put it back to the previous state (not runnable).
|
| - s.Reset();
|
| + s.Reset(true);
|
| EXPECT_FALSE(s.Succeeded());
|
|
|
| // Binding and stepping should produce one row.
|
| @@ -120,3 +120,25 @@ TEST_F(SQLStatementTest, BasicErrorCallback) {
|
| EXPECT_EQ(SQLITE_MISMATCH, sqlite_error());
|
| reset_error();
|
| }
|
| +
|
| +TEST_F(SQLStatementTest, Reset) {
|
| + ASSERT_TRUE(db().Execute("CREATE TABLE foo (a, b)"));
|
| + ASSERT_TRUE(db().Execute("INSERT INTO foo (a, b) VALUES (3, 12)"));
|
| + ASSERT_TRUE(db().Execute("INSERT INTO foo (a, b) VALUES (4, 13)"));
|
| +
|
| + sql::Statement s(db().GetUniqueStatement(
|
| + "SELECT b FROM foo WHERE a = ? "));
|
| + s.BindInt(0, 3);
|
| + ASSERT_TRUE(s.Step());
|
| + EXPECT_EQ(12, s.ColumnInt(0));
|
| + ASSERT_FALSE(s.Step());
|
| +
|
| + s.Reset(false);
|
| + // Verify that we can get all rows again.
|
| + ASSERT_TRUE(s.Step());
|
| + EXPECT_EQ(12, s.ColumnInt(0));
|
| + EXPECT_FALSE(s.Step());
|
| +
|
| + s.Reset(true);
|
| + ASSERT_FALSE(s.Step());
|
| +}
|
|
|