1
0
Fork 0
fenix/app/src/test/java/org/mozilla/fenix/perf/StatTest.kt

46 lines
1.7 KiB
Kotlin

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.perf
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
private const val STAT_CONTENTS = "32250 (a.fennec_aurora) S 831 831 0 0 -1 1077952832 670949 0 184936 0 15090 5387 0 0 20 0 119 0 166636813 9734365184 24664 18446744073709551615 1 1 0 0 0 0 4612 4097 1073792254 0 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0"
private const val CLOCK_TICKS_PER_SECOND = 100L // actual value on the Pixel 2.
class StatTest {
private lateinit var stat: StatTestImpl
@Before
fun setUp() {
stat = StatTestImpl()
}
@Test
fun `WHEN getting the process start time THEN the correct value is returned`() {
val actual = stat.getProcessStartTimeTicks(pid = -1) // pid behavior is overridden.
assertEquals(166636813, actual) // expected value calculated by hand.
}
@Test
fun `WHEN converting ticks to nanos THEN the correct value is returned`() {
val actual = stat.convertTicksToNanos(166_636_813)
assertEquals(1_666_368_130_000_000.0, actual, 0.0) // expected value calculated by hand.
}
@Test
fun `WHEN converting nanos to ticks THEN the correct value is returned`() {
val actual = stat.convertNanosToTicks(1_666_368_135_432_102)
assertEquals(166_636_813.5432102, actual, 0.0) // expected value calculated by hand.
}
}
class StatTestImpl : Stat() {
override fun getStatText(pid: Int): String = STAT_CONTENTS
override val clockTicksPerSecond: Long get() = CLOCK_TICKS_PER_SECOND
}