Collect diagnostics without storage permission

Use the shell to open the output file instead of FileOutputStream. This
allows test to use ConnectivityDiagnosticsCollector even if they do not
have storage permissions.

getOutputStreamViaShell is a method of the base class
BaseMetricListener.

Bug: 317602748
Test: atest
Change-Id: I127bb6711d14fdee059a31a8a3cfddc44b1d7800
This commit is contained in:
Remi NGUYEN VAN 2025-02-26 11:14:37 +09:00
commit 8b555c29c3

View file

@ -45,7 +45,6 @@ import com.android.modules.utils.build.SdkLevel.isAtLeastS
import java.io.ByteArrayOutputStream
import java.io.CharArrayWriter
import java.io.File
import java.io.FileOutputStream
import java.io.FileReader
import java.io.OutputStream
import java.io.OutputStreamWriter
@ -280,7 +279,7 @@ class ConnectivityDiagnosticsCollector : BaseMetricListener() {
}
val outFile = File(collectorDir, filename + FILENAME_SUFFIX)
outputFiles.add(filename)
FileOutputStream(outFile).use { fos ->
getOutputStreamViaShell(outFile).use { fos ->
failureHeader?.let {
fos.write(it.toByteArray())
fos.write("\n".toByteArray())