summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/test_functionality.py15
-rw-r--r--t/test_yappi_adaptations.py1
-rw-r--r--t/utils.py15
3 files changed, 20 insertions, 11 deletions
diff --git a/t/test_functionality.py b/t/test_functionality.py
index f259a26..78fae66 100644
--- a/t/test_functionality.py
+++ b/t/test_functionality.py
@@ -313,3 +313,18 @@ class BasicUsage(utils.AergiaUnitTestCase):
self.assert_similar_delay('c', yappi_samples, aergia_samples)
self.assert_similar_delay('b', yappi_samples, aergia_samples)
self.assert_similar_delay('a', yappi_samples, aergia_samples)
+
+ def test_never_idle(self):
+ delay = 0.2
+
+ def c(): utils.burn_cpu(delay)
+ async def b(): c()
+ async def a(): await asyncio.gather(b())
+
+ self.Aergia.start()
+ asyncio.run(a())
+ self.Aergia.stop()
+
+ aergia_samples = self.Aergia.get_samples()
+
+ self.assert_reasonable_delay('a', 0, aergia_samples)
diff --git a/t/test_yappi_adaptations.py b/t/test_yappi_adaptations.py
index 4da8926..ffaabd5 100644
--- a/t/test_yappi_adaptations.py
+++ b/t/test_yappi_adaptations.py
@@ -30,6 +30,7 @@ class YappiTests(utils.AergiaUnitTestCase):
self.assert_reasonable_delay('a', delay * 4, aergia_samples)
# TODO revisit, I think Aergia was agreeable when I checked this manually
+ # possible function bias
# self.assert_similar_delay('a', yappi_samples, aergia_samples)
def test_basic_multithread(self):
diff --git a/t/utils.py b/t/utils.py
index fd2a4d3..cee4258 100644
--- a/t/utils.py
+++ b/t/utils.py
@@ -23,8 +23,7 @@ class AergiaUnitTestCase(unittest.TestCase):
def assert_reasonable_delay(self, func_name, time_expected, samples):
'''Compares the results reported by Aergia for FUNC_NAME
with time_expected.'''
- samples_actual = self.aergia_extract_values_by_func(samples, func_name)
- time_actual = self.aergia_expected_time(samples_actual)
+ time_actual = self.aergia_extract_values_by_func(samples, func_name)
self.assert_roughly_equal(time_actual, time_expected)
def assert_similar_delay(self, func_name, yappi_stats, aergia_samples):
@@ -32,9 +31,8 @@ class AergiaUnitTestCase(unittest.TestCase):
with yappi.'''
time_yappi = self.yappi_extract_values_by_func(yappi_stats, func_name)
- samples_aergia = self.aergia_extract_values_by_func(
+ time_aergia = self.aergia_extract_values_by_func(
aergia_samples, func_name)
- time_aergia = self.aergia_expected_time(samples_aergia)
self.assert_roughly_equal(time_aergia, time_yappi)
@@ -45,11 +43,6 @@ class AergiaUnitTestCase(unittest.TestCase):
a = abs(v1 - v2)
self.assertTrue(a <= .035, f'{v1} (actual) not roughly {v2} (expected)')
- def aergia_expected_time(self, total_samples):
- '''Given TOTAL_SAMPLES, returns the total time, using the
- sampling interval.'''
- return total_samples * self.interval
-
def aergia_extract_values_by_func(self, samples, func_name):
'''Returns the total number of samples for function name, given an
Aergia SAMPLES object.'''
@@ -79,12 +72,12 @@ class AergiaUnitTestCase(unittest.TestCase):
def burn_cpu(sec):
- t0 = Aergia._gettime()
+ t0 = time.perf_counter()
elapsed = 0
while (elapsed < sec):
for _ in range(1000):
pass
- elapsed = Aergia._gettime() - t0
+ elapsed = time.perf_counter() - t0
def burn_io(sec):