Camera: create camera test package

and move all the camera CTS tests from hardware package to
camera package.

Bug: 25291899
Change-Id: I942b78a305b359bee7c78a301aa1be74601e3328
diff --git a/CtsTestCaseList.mk b/CtsTestCaseList.mk
index 975ac47..402fb74 100644
--- a/CtsTestCaseList.mk
+++ b/CtsTestCaseList.mk
@@ -150,6 +150,7 @@
     CtsBluetoothTestCases \
     CtsCalendarcommon2TestCases \
     CtsCallLogTestCases \
+    CtsCameraTestCases \
     CtsContentTestCases \
     CtsDatabaseTestCases \
     CtsDisplayTestCases \
diff --git a/tests/camera/Android.mk b/tests/camera/Android.mk
new file mode 100644
index 0000000..4cae7c4
--- /dev/null
+++ b/tests/camera/Android.mk
@@ -0,0 +1,38 @@
+# Copyright (C) 2015 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.
+
+LOCAL_PATH:= $(call my-dir)
+
+# CtsCameraTestCases package
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_STATIC_JAVA_LIBRARIES := ctsdeviceutil \
+	ctstestrunner \
+	mockito-target \
+	android-ex-camera2
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src)
+
+LOCAL_PACKAGE_NAME := CtsCameraTestCases
+
+LOCAL_SDK_VERSION := current
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+cts_runtime_hint := 120
+
+include $(BUILD_CTS_PACKAGE)
diff --git a/tests/camera/AndroidManifest.xml b/tests/camera/AndroidManifest.xml
new file mode 100644
index 0000000..2b39fca
--- /dev/null
+++ b/tests/camera/AndroidManifest.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2015 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.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.camera.cts">
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.REORDER_TASKS" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+
+        <activity android:name="android.hardware.cts.CameraCtsActivity"
+            android:label="CameraCtsActivity"
+            android:screenOrientation="landscape"
+            android:configChanges="keyboardHidden|orientation|screenSize">
+        </activity>
+
+        <activity android:name="android.hardware.camera2.cts.Camera2SurfaceViewCtsActivity"
+            android:label="Camera2CtsActivity"
+            android:screenOrientation="landscape"
+            android:configChanges="keyboardHidden|orientation|screenSize">
+        </activity>
+
+        <activity android:name="android.hardware.camera2.cts.Camera2MultiViewCtsActivity"
+            android:label="Camera2MultiViewCtsActivity"
+            android:screenOrientation="landscape"
+            android:configChanges="keyboardHidden|orientation|screenSize">
+        </activity>
+
+        <activity android:name="android.hardware.cts.GLSurfaceViewCtsActivity"
+            android:label="GLSurfaceViewCtsActivity"/>
+
+        <service android:name="android.hardware.multiprocess.camera.cts.ErrorLoggingService"
+            android:label="ErrorLoggingService"
+            android:process=":errorLoggingServiceProcess"
+            android:exported="false">
+        </service>
+
+        <activity android:name="android.hardware.multiprocess.camera.cts.Camera1Activity"
+            android:label="RemoteCamera1Activity"
+            android:screenOrientation="landscape"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:process=":camera1ActivityProcess">
+        </activity>
+
+        <activity android:name="android.hardware.multiprocess.camera.cts.Camera2Activity"
+            android:label="RemoteCamera2Activity"
+            android:screenOrientation="landscape"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:process=":camera2ActivityProcess">
+        </activity>
+
+    </application>
+
+    <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
+                     android:targetPackage="android.camera.cts"
+                     android:label="CTS tests of android camera">
+        <meta-data android:name="listener"
+            android:value="com.android.cts.runner.CtsTestRunListener" />
+    </instrumentation>
+
+</manifest>
+
diff --git a/tests/tests/hardware/res/layout/multi_view.xml b/tests/camera/res/layout/multi_view.xml
similarity index 100%
rename from tests/tests/hardware/res/layout/multi_view.xml
rename to tests/camera/res/layout/multi_view.xml
diff --git a/tests/tests/hardware/res/layout/surface_view.xml b/tests/camera/res/layout/surface_view.xml
similarity index 100%
rename from tests/tests/hardware/res/layout/surface_view.xml
rename to tests/camera/res/layout/surface_view.xml
diff --git a/tests/tests/hardware/res/layout/surface_view_2.xml b/tests/camera/res/layout/surface_view_2.xml
similarity index 100%
rename from tests/tests/hardware/res/layout/surface_view_2.xml
rename to tests/camera/res/layout/surface_view_2.xml
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/AllocationTest.java b/tests/camera/src/android/hardware/camera2/cts/AllocationTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/AllocationTest.java
rename to tests/camera/src/android/hardware/camera2/cts/AllocationTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/BurstCaptureRawTest.java b/tests/camera/src/android/hardware/camera2/cts/BurstCaptureRawTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/BurstCaptureRawTest.java
rename to tests/camera/src/android/hardware/camera2/cts/BurstCaptureRawTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/BurstCaptureTest.java b/tests/camera/src/android/hardware/camera2/cts/BurstCaptureTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/BurstCaptureTest.java
rename to tests/camera/src/android/hardware/camera2/cts/BurstCaptureTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/Camera2MultiViewCtsActivity.java b/tests/camera/src/android/hardware/camera2/cts/Camera2MultiViewCtsActivity.java
similarity index 98%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/Camera2MultiViewCtsActivity.java
rename to tests/camera/src/android/hardware/camera2/cts/Camera2MultiViewCtsActivity.java
index 16d2301..d6350fc 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/Camera2MultiViewCtsActivity.java
+++ b/tests/camera/src/android/hardware/camera2/cts/Camera2MultiViewCtsActivity.java
@@ -23,7 +23,7 @@
 import android.view.TextureView;
 import android.view.WindowManager;
 
-import com.android.cts.hardware.R;
+import android.camera.cts.R;
 
 public class Camera2MultiViewCtsActivity extends Activity {
     private final static String TAG = "Camera2MultiViewCtsActivity";
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/Camera2SurfaceViewCtsActivity.java b/tests/camera/src/android/hardware/camera2/cts/Camera2SurfaceViewCtsActivity.java
similarity index 98%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/Camera2SurfaceViewCtsActivity.java
rename to tests/camera/src/android/hardware/camera2/cts/Camera2SurfaceViewCtsActivity.java
index 8a217fd..6773a9b 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/Camera2SurfaceViewCtsActivity.java
+++ b/tests/camera/src/android/hardware/camera2/cts/Camera2SurfaceViewCtsActivity.java
@@ -23,7 +23,7 @@
 import android.util.Log;
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
-import com.android.cts.hardware.R;
+import android.camera.cts.R;
 
 public class Camera2SurfaceViewCtsActivity extends Activity implements SurfaceHolder.Callback {
     private final static String TAG = "Camera2SurfaceViewCtsActivity";
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraDeviceTest.java b/tests/camera/src/android/hardware/camera2/cts/CameraDeviceTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/CameraDeviceTest.java
rename to tests/camera/src/android/hardware/camera2/cts/CameraDeviceTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraManagerTest.java b/tests/camera/src/android/hardware/camera2/cts/CameraManagerTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/CameraManagerTest.java
rename to tests/camera/src/android/hardware/camera2/cts/CameraManagerTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java b/tests/camera/src/android/hardware/camera2/cts/CameraTestUtils.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java
rename to tests/camera/src/android/hardware/camera2/cts/CameraTestUtils.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CaptureRequestTest.java b/tests/camera/src/android/hardware/camera2/cts/CaptureRequestTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/CaptureRequestTest.java
rename to tests/camera/src/android/hardware/camera2/cts/CaptureRequestTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CaptureResultTest.java b/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/CaptureResultTest.java
rename to tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/DngCreatorTest.java b/tests/camera/src/android/hardware/camera2/cts/DngCreatorTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/DngCreatorTest.java
rename to tests/camera/src/android/hardware/camera2/cts/DngCreatorTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java b/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
rename to tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/FlashlightTest.java b/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/FlashlightTest.java
rename to tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/ImageReaderTest.java b/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/ImageReaderTest.java
rename to tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/ImageWriterTest.java b/tests/camera/src/android/hardware/camera2/cts/ImageWriterTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/ImageWriterTest.java
rename to tests/camera/src/android/hardware/camera2/cts/ImageWriterTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/MultiViewTest.java b/tests/camera/src/android/hardware/camera2/cts/MultiViewTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/MultiViewTest.java
rename to tests/camera/src/android/hardware/camera2/cts/MultiViewTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/PerformanceTest.java b/tests/camera/src/android/hardware/camera2/cts/PerformanceTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/PerformanceTest.java
rename to tests/camera/src/android/hardware/camera2/cts/PerformanceTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/RecordingTest.java b/tests/camera/src/android/hardware/camera2/cts/RecordingTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/RecordingTest.java
rename to tests/camera/src/android/hardware/camera2/cts/RecordingTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/ReprocessCaptureTest.java b/tests/camera/src/android/hardware/camera2/cts/ReprocessCaptureTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/ReprocessCaptureTest.java
rename to tests/camera/src/android/hardware/camera2/cts/ReprocessCaptureTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/RobustnessTest.java b/tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/RobustnessTest.java
rename to tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataCollectionTest.java b/tests/camera/src/android/hardware/camera2/cts/StaticMetadataCollectionTest.java
similarity index 99%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataCollectionTest.java
rename to tests/camera/src/android/hardware/camera2/cts/StaticMetadataCollectionTest.java
index 283f09b..145c2d1 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataCollectionTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/StaticMetadataCollectionTest.java
@@ -18,8 +18,8 @@
 
 import android.content.pm.PackageManager;
 import android.cts.util.DeviceReportLog;
-import android.hardware.camera2.cts.testcases.Camera2SurfaceViewTestCase;
 import android.hardware.camera2.cts.helpers.CameraMetadataGetter;
+import android.hardware.camera2.cts.testcases.Camera2SurfaceViewTestCase;
 import android.util.Log;
 
 import com.android.cts.util.ResultType;
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataTest.java b/tests/camera/src/android/hardware/camera2/cts/StaticMetadataTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataTest.java
rename to tests/camera/src/android/hardware/camera2/cts/StaticMetadataTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/StillCaptureTest.java b/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/StillCaptureTest.java
rename to tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java b/tests/camera/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java
rename to tests/camera/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/common.rs b/tests/camera/src/android/hardware/camera2/cts/common.rs
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/common.rs
rename to tests/camera/src/android/hardware/camera2/cts/common.rs
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/crop_yuvf_420_to_yuvx_444.rs b/tests/camera/src/android/hardware/camera2/cts/crop_yuvf_420_to_yuvx_444.rs
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/crop_yuvf_420_to_yuvx_444.rs
rename to tests/camera/src/android/hardware/camera2/cts/crop_yuvf_420_to_yuvx_444.rs
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/AssertHelpers.java b/tests/camera/src/android/hardware/camera2/cts/helpers/AssertHelpers.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/AssertHelpers.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/AssertHelpers.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/Camera2Focuser.java b/tests/camera/src/android/hardware/camera2/cts/helpers/Camera2Focuser.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/Camera2Focuser.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/Camera2Focuser.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/CameraErrorCollector.java b/tests/camera/src/android/hardware/camera2/cts/helpers/CameraErrorCollector.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/CameraErrorCollector.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/CameraErrorCollector.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/CameraMetadataGetter.java b/tests/camera/src/android/hardware/camera2/cts/helpers/CameraMetadataGetter.java
old mode 100755
new mode 100644
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/CameraMetadataGetter.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/CameraMetadataGetter.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/CameraSessionUtils.java b/tests/camera/src/android/hardware/camera2/cts/helpers/CameraSessionUtils.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/CameraSessionUtils.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/CameraSessionUtils.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/InMatcher.java b/tests/camera/src/android/hardware/camera2/cts/helpers/InMatcher.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/InMatcher.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/InMatcher.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/MaybeNull.java b/tests/camera/src/android/hardware/camera2/cts/helpers/MaybeNull.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/MaybeNull.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/MaybeNull.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/Preconditions.java b/tests/camera/src/android/hardware/camera2/cts/helpers/Preconditions.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/Preconditions.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/Preconditions.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/StaticMetadata.java b/tests/camera/src/android/hardware/camera2/cts/helpers/StaticMetadata.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/StaticMetadata.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/StaticMetadata.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/helpers/UncheckedCloseable.java b/tests/camera/src/android/hardware/camera2/cts/helpers/UncheckedCloseable.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/helpers/UncheckedCloseable.java
rename to tests/camera/src/android/hardware/camera2/cts/helpers/UncheckedCloseable.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/means_yuvx_444_1d_to_single.rs b/tests/camera/src/android/hardware/camera2/cts/means_yuvx_444_1d_to_single.rs
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/means_yuvx_444_1d_to_single.rs
rename to tests/camera/src/android/hardware/camera2/cts/means_yuvx_444_1d_to_single.rs
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/means_yuvx_444_2d_to_1d.rs b/tests/camera/src/android/hardware/camera2/cts/means_yuvx_444_2d_to_1d.rs
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/means_yuvx_444_2d_to_1d.rs
rename to tests/camera/src/android/hardware/camera2/cts/means_yuvx_444_2d_to_1d.rs
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/AllocationCache.java b/tests/camera/src/android/hardware/camera2/cts/rs/AllocationCache.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/AllocationCache.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/AllocationCache.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/AllocationInfo.java b/tests/camera/src/android/hardware/camera2/cts/rs/AllocationInfo.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/AllocationInfo.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/AllocationInfo.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/BitmapUtils.java b/tests/camera/src/android/hardware/camera2/cts/rs/BitmapUtils.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/BitmapUtils.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/BitmapUtils.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/BlockingInputAllocation.java b/tests/camera/src/android/hardware/camera2/cts/rs/BlockingInputAllocation.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/BlockingInputAllocation.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/BlockingInputAllocation.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/RawConverter.java b/tests/camera/src/android/hardware/camera2/cts/rs/RawConverter.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/RawConverter.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/RawConverter.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/RenderScriptSingleton.java b/tests/camera/src/android/hardware/camera2/cts/rs/RenderScriptSingleton.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/RenderScriptSingleton.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/RenderScriptSingleton.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/Script.java b/tests/camera/src/android/hardware/camera2/cts/rs/Script.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/Script.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/Script.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptGraph.java b/tests/camera/src/android/hardware/camera2/cts/rs/ScriptGraph.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptGraph.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/ScriptGraph.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvCrop.java b/tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvCrop.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvCrop.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvCrop.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvMeans1d.java b/tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvMeans1d.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvMeans1d.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvMeans1d.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvMeans2dTo1d.java b/tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvMeans2dTo1d.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvMeans2dTo1d.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvMeans2dTo1d.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvToRgb.java b/tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvToRgb.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/ScriptYuvToRgb.java
rename to tests/camera/src/android/hardware/camera2/cts/rs/ScriptYuvToRgb.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/rs/raw_converter.rs b/tests/camera/src/android/hardware/camera2/cts/rs/raw_converter.rs
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/rs/raw_converter.rs
rename to tests/camera/src/android/hardware/camera2/cts/rs/raw_converter.rs
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/testcases/Camera2AndroidTestCase.java b/tests/camera/src/android/hardware/camera2/cts/testcases/Camera2AndroidTestCase.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/testcases/Camera2AndroidTestCase.java
rename to tests/camera/src/android/hardware/camera2/cts/testcases/Camera2AndroidTestCase.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/testcases/Camera2MultiViewTestCase.java b/tests/camera/src/android/hardware/camera2/cts/testcases/Camera2MultiViewTestCase.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/testcases/Camera2MultiViewTestCase.java
rename to tests/camera/src/android/hardware/camera2/cts/testcases/Camera2MultiViewTestCase.java
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/testcases/Camera2SurfaceViewTestCase.java b/tests/camera/src/android/hardware/camera2/cts/testcases/Camera2SurfaceViewTestCase.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/camera2/cts/testcases/Camera2SurfaceViewTestCase.java
rename to tests/camera/src/android/hardware/camera2/cts/testcases/Camera2SurfaceViewTestCase.java
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraCtsActivity.java b/tests/camera/src/android/hardware/cts/CameraCtsActivity.java
similarity index 97%
rename from tests/tests/hardware/src/android/hardware/cts/CameraCtsActivity.java
rename to tests/camera/src/android/hardware/cts/CameraCtsActivity.java
index 1153cac..61e283d 100644
--- a/tests/tests/hardware/src/android/hardware/cts/CameraCtsActivity.java
+++ b/tests/camera/src/android/hardware/cts/CameraCtsActivity.java
@@ -21,7 +21,7 @@
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 import android.view.ViewGroup;
-import com.android.cts.hardware.R;
+import android.camera.cts.R;
 
 public class CameraCtsActivity extends Activity {
     private SurfaceView mSurfaceView;
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraGLTest.java b/tests/camera/src/android/hardware/cts/CameraGLTest.java
old mode 100755
new mode 100644
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/cts/CameraGLTest.java
rename to tests/camera/src/android/hardware/cts/CameraGLTest.java
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java b/tests/camera/src/android/hardware/cts/CameraTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/cts/CameraTest.java
rename to tests/camera/src/android/hardware/cts/CameraTest.java
diff --git a/tests/tests/hardware/src/android/hardware/cts/Camera_ParametersTest.java b/tests/camera/src/android/hardware/cts/Camera_ParametersTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/cts/Camera_ParametersTest.java
rename to tests/camera/src/android/hardware/cts/Camera_ParametersTest.java
diff --git a/tests/tests/hardware/src/android/hardware/cts/Camera_SizeTest.java b/tests/camera/src/android/hardware/cts/Camera_SizeTest.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/cts/Camera_SizeTest.java
rename to tests/camera/src/android/hardware/cts/Camera_SizeTest.java
diff --git a/tests/tests/hardware/src/android/hardware/cts/GLSurfaceViewCtsActivity.java b/tests/camera/src/android/hardware/cts/GLSurfaceViewCtsActivity.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/cts/GLSurfaceViewCtsActivity.java
rename to tests/camera/src/android/hardware/cts/GLSurfaceViewCtsActivity.java
diff --git a/tests/tests/hardware/src/android/hardware/cts/helpers/CameraUtils.java b/tests/camera/src/android/hardware/cts/helpers/CameraUtils.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/cts/helpers/CameraUtils.java
rename to tests/camera/src/android/hardware/cts/helpers/CameraUtils.java
diff --git a/tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/Camera1Activity.java b/tests/camera/src/android/hardware/multiprocess/camera/cts/Camera1Activity.java
similarity index 97%
rename from tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/Camera1Activity.java
rename to tests/camera/src/android/hardware/multiprocess/camera/cts/Camera1Activity.java
index 5c27111..3908334 100644
--- a/tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/Camera1Activity.java
+++ b/tests/camera/src/android/hardware/multiprocess/camera/cts/Camera1Activity.java
@@ -18,7 +18,6 @@
 
 import android.app.Activity;
 import android.hardware.Camera;
-import android.hardware.multiprocess.ErrorLoggingService;
 import android.os.Bundle;
 import android.util.Log;
 
@@ -26,7 +25,7 @@
  * Activity implementing basic access of the Camera1 API.
  *
  * <p />
- * This will log all errors to {@link android.hardware.multiprocess.ErrorLoggingService}.
+ * This will log all errors to {@link android.hardware.multiprocess.camera.cts.ErrorLoggingService}.
  */
 public class Camera1Activity extends Activity {
     private static final String TAG = "Camera1Activity";
@@ -90,4 +89,4 @@
             mErrorServiceConnection = null;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/Camera2Activity.java b/tests/camera/src/android/hardware/multiprocess/camera/cts/Camera2Activity.java
similarity index 98%
rename from tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/Camera2Activity.java
rename to tests/camera/src/android/hardware/multiprocess/camera/cts/Camera2Activity.java
index 2a78649..418eb7c 100644
--- a/tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/Camera2Activity.java
+++ b/tests/camera/src/android/hardware/multiprocess/camera/cts/Camera2Activity.java
@@ -21,7 +21,6 @@
 import android.hardware.camera2.CameraAccessException;
 import android.hardware.camera2.CameraDevice;
 import android.hardware.camera2.CameraManager;
-import android.hardware.multiprocess.ErrorLoggingService;
 import android.os.Bundle;
 import android.os.Handler;
 import android.util.Log;
@@ -30,7 +29,7 @@
  * Activity implementing basic access of the Camera2 API.
  *
  * <p />
- * This will log all errors to {@link android.hardware.multiprocess.ErrorLoggingService}.
+ * This will log all errors to {@link android.hardware.multiprocess.camera.cts.ErrorLoggingService}.
  */
 public class Camera2Activity extends Activity {
     private static final String TAG = "Camera2Activity";
diff --git a/tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/CameraEvictionTest.java b/tests/camera/src/android/hardware/multiprocess/camera/cts/CameraEvictionTest.java
similarity index 99%
rename from tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/CameraEvictionTest.java
rename to tests/camera/src/android/hardware/multiprocess/camera/cts/CameraEvictionTest.java
index d1ca19a..9f1ae03 100644
--- a/tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/CameraEvictionTest.java
+++ b/tests/camera/src/android/hardware/multiprocess/camera/cts/CameraEvictionTest.java
@@ -25,7 +25,6 @@
 import android.hardware.camera2.CameraDevice;
 import android.hardware.camera2.CameraManager;
 import android.hardware.cts.CameraCtsActivity;
-import android.hardware.multiprocess.ErrorLoggingService;
 import android.os.Handler;
 import android.test.ActivityInstrumentationTestCase2;
 import android.util.Log;
diff --git a/tests/tests/hardware/src/android/hardware/multiprocess/ErrorLoggingService.java b/tests/camera/src/android/hardware/multiprocess/camera/cts/ErrorLoggingService.java
similarity index 99%
rename from tests/tests/hardware/src/android/hardware/multiprocess/ErrorLoggingService.java
rename to tests/camera/src/android/hardware/multiprocess/camera/cts/ErrorLoggingService.java
index 1b713ba..a45e024 100644
--- a/tests/tests/hardware/src/android/hardware/multiprocess/ErrorLoggingService.java
+++ b/tests/camera/src/android/hardware/multiprocess/camera/cts/ErrorLoggingService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.hardware.multiprocess;
+package android.hardware.multiprocess.camera.cts;
 
 import android.app.Service;
 import android.content.ComponentName;
diff --git a/tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/TestConstants.java b/tests/camera/src/android/hardware/multiprocess/camera/cts/TestConstants.java
similarity index 100%
rename from tests/tests/hardware/src/android/hardware/multiprocess/camera/cts/TestConstants.java
rename to tests/camera/src/android/hardware/multiprocess/camera/cts/TestConstants.java
diff --git a/tools/utils/buildCts.py b/tools/utils/buildCts.py
index 2eb5145..a6c76b1 100755
--- a/tools/utils/buildCts.py
+++ b/tools/utils/buildCts.py
@@ -222,6 +222,20 @@
       plan.ExcludeTests(package, test_list)
     self.__WritePlan(plan, 'CTS-hardware')
 
+    # CTS - sub plan for camera tests which is public, large
+    plan = tools.TestPlan(packages)
+    plan.Exclude('.*')
+    plan.Include(r'android\.camera$')
+    misc_camera_tests = BuildCtsMiscCameraList()
+    for package, test_list in misc_camera_tests.iteritems():
+      plan.Include(package+'$')
+      plan.IncludeTests(package, test_list)
+    for package, test_list in flaky_tests.iteritems():
+      plan.ExcludeTests(package, test_list)
+    for package, test_list in releasekey_tests.iteritems():
+      plan.ExcludeTests(package, test_list)
+    self.__WritePlan(plan, 'CTS-camera')
+
     # CTS - sub plan for media tests which is public, large
     plan = tools.TestPlan(packages)
     plan.Exclude('.*')
@@ -434,7 +448,7 @@
   """ Construct a defaultdict that maps package name to a list of tests
       that flaky during dev cycle and cause other subsequent tests to fail. """
   return {
-      'android.hardware' : [
+      'android.camera' : [
           'android.hardware.cts.CameraTest#testVideoSnapshot',
           'android.hardware.cts.CameraGLTest#testCameraToSurfaceTextureMetadata',
           'android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks',
@@ -508,6 +522,19 @@
       ],
       '' : []}
 
+def BuildCtsMiscCameraList():
+  """ Construct a defaultdict that maps package name to a list of tests
+      that are relevant to camera but does not reside in camera test package """
+  return {
+      'android.app' : [
+          'android.app.cts.SystemFeaturesTest#testCameraFeatures',
+      ],
+      'android.permission' : [
+          'android.permission.cts.CameraPermissionTest',
+          'android.permission.cts.Camera2PermissionTest',
+      ],
+      '' : []}
+
 def LogGenerateDescription(name):
   print 'Generating test description for package %s' % name