diff options
| author | bd <bdunahu@operationnull.com> | 2025-08-17 21:18:12 -0400 |
|---|---|---|
| committer | bd <bdunahu@operationnull.com> | 2025-08-17 21:18:12 -0400 |
| commit | 92c2270a29ee3bba762fd7cd4c8fb80ca5a10178 (patch) | |
| tree | d29f2fb0d7efae38de519cf00cebb9757db92340 /t | |
| parent | c77f7674bd6e68e03bc8f1f14ab0789f66af42d5 (diff) | |
Diffstat (limited to 't')
| -rw-r--r-- | t/test_functionality.py | 15 | ||||
| -rw-r--r-- | t/test_yappi_adaptations.py | 1 | ||||
| -rw-r--r-- | t/utils.py | 15 |
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): @@ -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): |
