|
1 | | -//go:build e2e |
| 1 | +//go:build e2e || e2e_root |
2 | 2 |
|
3 | 3 | package e2e |
4 | 4 |
|
@@ -30,7 +30,6 @@ import ( |
30 | 30 | genLE "github.com/AndroidGoLab/binder/android/bluetooth/le" |
31 | 31 | "github.com/AndroidGoLab/binder/android/content" |
32 | 32 | fwkService "github.com/AndroidGoLab/binder/android/frameworks/cameraservice/service" |
33 | | - "github.com/AndroidGoLab/binder/android/hardware" |
34 | 33 | genOs "github.com/AndroidGoLab/binder/android/os" |
35 | 34 | "github.com/AndroidGoLab/binder/binder" |
36 | 35 | "github.com/AndroidGoLab/binder/binder/versionaware" |
@@ -110,25 +109,8 @@ func TestUseCase22_FlashlightTorch(t *testing.T) { |
110 | 109 | // Clean up listener registration. |
111 | 110 | _ = fwkCam.RemoveListener(ctx, listener) |
112 | 111 |
|
113 | | - t.Run("SetTorchMode", func(t *testing.T) { |
114 | | - // Torch control requires the media.camera service. Create a |
115 | | - // properly registered client token (same pattern as the |
116 | | - // flashlight_torch example). |
117 | | - mediaSvc, err := sm.GetService(ctx, servicemanager.MediaCameraService) |
118 | | - requireOrSkip(t, err) |
119 | | - cam := hardware.NewCameraServiceProxy(mediaSvc) |
120 | | - |
121 | | - token := binder.NewStubBinder(&torchClientToken{}) |
122 | | - token.RegisterWithTransport(ctx, transport) |
123 | | - |
124 | | - err = cam.SetTorchMode(ctx, cameras[0].CameraId, true, token) |
125 | | - requireOrSkip(t, err) |
126 | | - t.Log("Torch ON") |
127 | | - |
128 | | - err = cam.SetTorchMode(ctx, cameras[0].CameraId, false, token) |
129 | | - requireOrSkip(t, err) |
130 | | - t.Log("Torch OFF") |
131 | | - }) |
| 112 | + // SetTorchMode subtest moved to usecase_root_test.go — requires root |
| 113 | + // to bypass media.camera SELinux restrictions (kernel status -61). |
132 | 114 | } |
133 | 115 |
|
134 | 116 | // torchClientToken is a minimal TransactionReceiver used as the client |
@@ -205,22 +187,8 @@ func TestUseCase23_CameraAvailability(t *testing.T) { |
205 | 187 | } |
206 | 188 | }) |
207 | 189 |
|
208 | | - t.Run("GetCameraCharacteristics", func(t *testing.T) { |
209 | | - listener := fwkService.NewCameraServiceListenerStub(&noopCameraServiceListener{}) |
210 | | - cameras, err := fwkCam.AddListener(ctx, listener) |
211 | | - requireOrSkip(t, err) |
212 | | - defer func() { _ = fwkCam.RemoveListener(ctx, listener) }() |
213 | | - |
214 | | - if len(cameras) == 0 { |
215 | | - t.Skip("no cameras available") |
216 | | - } |
217 | | - |
218 | | - chars, err := fwkCam.GetCameraCharacteristics(ctx, cameras[0].CameraId) |
219 | | - requireOrSkip(t, err) |
220 | | - t.Logf("Camera %q characteristics: %d bytes of metadata", |
221 | | - cameras[0].CameraId, len(chars.Metadata)) |
222 | | - assert.Greater(t, len(chars.Metadata), 0, "expected non-empty camera metadata") |
223 | | - }) |
| 190 | + // GetCameraCharacteristics subtest moved to usecase_root_test.go — |
| 191 | + // returns HAL ServiceSpecific error as shell. |
224 | 192 | } |
225 | 193 |
|
226 | 194 | // --------------------------------------------------------------------------- |
|
0 commit comments