diff options
Diffstat (limited to 'test-runner/src/android/test/TestRecorder.java')
-rw-r--r-- | test-runner/src/android/test/TestRecorder.java | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/test-runner/src/android/test/TestRecorder.java b/test-runner/src/android/test/TestRecorder.java deleted file mode 100644 index 7c368a0..0000000 --- a/test-runner/src/android/test/TestRecorder.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.test; - -import android.content.ContentValues; -import android.database.sqlite.SQLiteDatabase; -import android.os.Environment; -import android.os.FileUtils; -import android.test.TestRunner.IntermediateTime; -import android.util.Log; -import junit.framework.Test; -import junit.framework.TestListener; - -import java.io.File; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * {@hide} Not needed for 1.0 SDK. - */ -public class TestRecorder implements TestRunner.Listener, TestListener { - private static final int DATABASE_VERSION = 1; - private static SQLiteDatabase sDb; - private Set<String> mFailedTests = new HashSet<String>(); - - private static SQLiteDatabase getDatabase() { - if (sDb == null) { - File dir = new File(Environment.getDataDirectory(), "test_results"); - - /* TODO: add a DB version number and bootstrap/upgrade methods - * if the format of the table changes. - */ - String dbName = "TestHarness.db"; - File file = new File(dir, dbName); - sDb = SQLiteDatabase.openOrCreateDatabase(file.getPath(), null); - - if (sDb.getVersion() == 0) { - int code = FileUtils.setPermissions(file.getPath(), - FileUtils.S_IRUSR | FileUtils.S_IWUSR | - FileUtils.S_IRGRP | FileUtils.S_IWGRP | - FileUtils.S_IROTH | FileUtils.S_IWOTH, -1, -1); - - if (code != 0) { - Log.w("TestRecorder", - "Set permissions for " + file.getPath() + " returned = " + code); - } - - try { - sDb.execSQL("CREATE TABLE IF NOT EXISTS tests (_id INT PRIMARY KEY," + - "name TEXT," + - "result TEXT," + - "exception TEXT," + - "started INTEGER," + - "finished INTEGER," + - "time INTEGER," + - "iterations INTEGER," + - "allocations INTEGER," + - "parent INTEGER);"); - sDb.setVersion(DATABASE_VERSION); - } catch (Exception e) { - Log.e("TestRecorder", "failed to create table 'tests'", e); - sDb = null; - } - } - } - - return sDb; - } - - public TestRecorder() { - } - - public void started(String className) { - ContentValues map = new ContentValues(2); - map.put("name", className); - map.put("started", System.currentTimeMillis()); - - // try to update the row first in case we've ran this test before. - int rowsAffected = getDatabase().update("tests", map, "name = '" + className + "'", null); - - if (rowsAffected == 0) { - getDatabase().insert("tests", null, map); - } - } - - public void finished(String className) { - ContentValues map = new ContentValues(1); - map.put("finished", System.currentTimeMillis()); - - getDatabase().update("tests", map, "name = '" + className + "'", null); - } - - public void performance(String className, long itemTimeNS, int iterations, List<IntermediateTime> intermediates) { - ContentValues map = new ContentValues(); - map.put("time", itemTimeNS); - map.put("iterations", iterations); - - getDatabase().update("tests", map, "name = '" + className + "'", null); - - if (intermediates != null && intermediates.size() > 0) { - int n = intermediates.size(); - for (int i = 0; i < n; i++) { - TestRunner.IntermediateTime time = intermediates.get(i); - - getDatabase().execSQL("INSERT INTO tests (name, time, parent) VALUES ('" + - time.name + "', " + time.timeInNS + ", " + - "(SELECT _id FROM tests WHERE name = '" + className + "'));"); - } - } - } - - public void passed(String className) { - ContentValues map = new ContentValues(); - map.put("result", "passed"); - - getDatabase().update("tests", map, "name = '" + className + "'", null); - } - - public void failed(String className, Throwable exception) { - StringWriter stringWriter = new StringWriter(); - PrintWriter printWriter = new PrintWriter(stringWriter); - try { - exception.printStackTrace(printWriter); - } finally { - printWriter.close(); - } - ContentValues map = new ContentValues(); - map.put("result", "failed"); - map.put("exception", stringWriter.toString()); - - getDatabase().update("tests", map, "name = '" + className + "'", null); - } - - /** - * Reports a test case failure. - * - * @param className Name of the class/test. - * @param reason Reason for failure. - */ - public void failed(String className, String reason) { - ContentValues map = new ContentValues(); - map.put("result", "failed"); - // The reason is put as the exception. - map.put("exception", reason); - getDatabase().update("tests", map, "name = '" + className + "'", null); - } - - public void addError(Test test, Throwable t) { - mFailedTests.add(test.toString()); - failed(test.toString(), t); - } - - public void addFailure(Test test, junit.framework.AssertionFailedError t) { - mFailedTests.add(test.toString()); - failed(test.toString(), t.getMessage()); - } - - public void endTest(Test test) { - finished(test.toString()); - if (!mFailedTests.contains(test.toString())) { - passed(test.toString()); - } - mFailedTests.remove(test.toString()); - } - - public void startTest(Test test) { - started(test.toString()); - } -} |