diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-10 07:23:24 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-10 07:23:24 +0000 |
commit | f9c212582b744ae6322e09d3d37d54f86750ced0 (patch) | |
tree | 523b08ce7b8e8ac9b3a789a00e830a2d792da4b5 | |
parent | bd74f6f903cf2d15cac623ac44d57f0eb8ba33cb (diff) | |
parent | 87e30e38f9a341ef358c93e3336d2e4ae64fa6e4 (diff) | |
download | trebuchet-android13-mainline-conscrypt-release.tar.gz |
Snap for 8564071 from 87e30e38f9a341ef358c93e3336d2e4ae64fa6e4 to mainline-conscrypt-releaseaml_con_331413000aml_con_331411000aml_con_331312000aml_con_331115000aml_con_331011010android13-mainline-conscrypt-release
Change-Id: Ib83d14a7501bbc4e983be65d8439b54e6ebe7d30
6 files changed, 32 insertions, 6 deletions
diff --git a/build.gradle b/build.gradle index b9666b2..48d6f68 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ */ buildscript { - ext.kotlin_version = "1.3.21" + ext.kotlin_version = "1.5.10" repositories { mavenCentral() diff --git a/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt b/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt index ee207e2..7e9d141 100644 --- a/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt +++ b/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt @@ -26,7 +26,7 @@ import trebuchet.util.StringCache import java.util.regex.Matcher import java.util.regex.Pattern -const val FtraceLineRE = """^ *(.{1,16})-(\d+) +(?:\( *(\d+)?-*\) )?\[(\d+)] (?:[dX.]...)? *([\d.]*): *([^:]*): *(.*) *$""" +const val FtraceLineRE = """^ *(.{1,16})-(\d+) +(?:\( *(\d+)?-*\) )?\[(\d+)] (?:[dX.][^\s]+)? *([\d.]*): *([^:]*): *(.*) *$""" interface FtraceEventDetails { fun import(event: FtraceEvent, state: FtraceImporterState) diff --git a/core/common/src/main/kotlin/trebuchet/queries/SliceQueries.kt b/core/common/src/main/kotlin/trebuchet/queries/SliceQueries.kt index 79a9183..00f9953 100644 --- a/core/common/src/main/kotlin/trebuchet/queries/SliceQueries.kt +++ b/core/common/src/main/kotlin/trebuchet/queries/SliceQueries.kt @@ -113,7 +113,7 @@ fun ThreadModel.selectAll(predicate: (Slice) -> Boolean): List<Slice> { * @param predicate The predicate used to test slices */ fun Model.selectFirst(predicate: (Slice) -> Boolean) : Slice? { - return this.processes.values.mapNotNull { it.selectFirst(predicate) }.minBy { it.startTime } + return this.processes.values.mapNotNull { it.selectFirst(predicate) }.minByOrNull { it.startTime } } diff --git a/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt b/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt index d0cc7ea..fd616ef 100644 --- a/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt +++ b/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt @@ -148,6 +148,32 @@ class FtraceImporterTest { } + @Test fun testKernel515Changes() { + val trace = """ # tracer: nop + > # ||| / _-=> migrate-disable + > # |||| / delay + > # TASK-PID TGID CPU# ||||| TIMESTAMP FUNCTION + > # | | | | ||||| | | + > atrace-6950 ( 6950) [001] ..... 7048.491867: tracing_mark_write: trace_event_clock_sync: parent_ts=7048.491699 + > atrace-6950 ( 6950) [001] ..... 7048.491873: tracing_mark_write: trace_event_clock_sync: realtime_ts=1648582795693 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755913: tracing_mark_write: S|6966|AtraceDeviceTest::asyncBeginEndSection|42 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755920: tracing_mark_write: F|6966|AtraceDeviceTest::asyncBeginEndSection|42 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755924: tracing_mark_write: S|6966|ndk::asyncBeginEndSection|4770 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755926: tracing_mark_write: F|6966|ndk::asyncBeginEndSection|4770 + """.trimMargin(">") + + val importer = FtraceImporter(FatalImportFeedback) + val modelFragment = importer.import(trace.makeReader()) + assertNotNull(modelFragment) + val model = Model(modelFragment!!) + assertNotNull(model) + val p = model.processes[6966].also { + assertNotNull(it) + }!! + assertEquals(6966, p.id) + assertEquals(1, p.threads.size) + } + fun parse(vararg lines: String): Model { val traceData = withHeader(*lines) val importer = FtraceImporter(FatalImportFeedback) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f860796..534d351 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-all.zip diff --git a/trebuchet/startup-common/src/StartupCommon.kt b/trebuchet/startup-common/src/StartupCommon.kt index 75ed400..2cf4793 100644 --- a/trebuchet/startup-common/src/StartupCommon.kt +++ b/trebuchet/startup-common/src/StartupCommon.kt @@ -115,7 +115,7 @@ fun Model.findProcess(queryName: String, map { it.slices }. filter { it.isNotEmpty() }. map { it.first().startTime }. - min() ?: throw MissingProcessInfoException(process.id) + minOrNull() ?: throw MissingProcessInfoException(process.id) if (firstSliceStart in lowerBound..upperBound) { return process @@ -142,7 +142,7 @@ fun Model.getStartupEvents() : List<StartupEvent> { val newProc = this.findProcess(newProcName, systemServerSlice.startTime, systemServerSlice.endTime) val startProcSlice = systemServerProc.findFirstSlice(SLICE_NAME_PROC_START, newProcName, systemServerSlice.startTime, systemServerSlice.endTime) val rfdSlice = systemServerProc.findFirstSliceOrNull(SLICE_NAME_REPORT_FULLY_DRAWN, newProcName, systemServerSlice.startTime) - val firstSliceTime = newProc.threads.map { it.slices.firstOrNull()?.startTime ?: Double.POSITIVE_INFINITY }.min()!! + val firstSliceTime = newProc.threads.map { it.slices.firstOrNull()?.startTime ?: Double.POSITIVE_INFINITY }.minOrNull()!! val schedSliceInfo : MutableMap<SchedulingState, Double> = mutableMapOf() newProc.threads.first().schedSlices.forEach schedLoop@ { schedSlice -> |