From 5efdf421b8d8f23c720d55ef9e0b30b927cc09bf Mon Sep 17 00:00:00 2001 From: Matthew Pickering <matthewtpickering@gmail.com> Date: Thu, 30 Nov 2023 13:14:11 +0000 Subject: [PATCH] testsuite: Track size of libdir in bytes For consistency it's better if we track all size metrics in bytes. Metric Increase: libdir --- testsuite/driver/testlib.py | 13 +++++++++++++ testsuite/tests/perf/size/Makefile | 7 ------- testsuite/tests/perf/size/all.T | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) delete mode 100644 testsuite/tests/perf/size/Makefile diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py index e315f451e1b7..e1044530ac8f 100644 --- a/testsuite/driver/testlib.py +++ b/testsuite/driver/testlib.py @@ -607,6 +607,19 @@ def _extra_files(name, opts, files): def collect_size ( deviation, path ): return collect_generic_stat ( 'size', deviation, lambda way: os.path.getsize(in_testdir(path)) ) +def get_dir_size(path): + total = 0 + with os.scandir(path) as it: + for entry in it: + if entry.is_file(): + total += entry.stat().st_size + elif entry.is_dir(): + total += get_dir_size(entry.path) + return total + +def collect_size_dir ( deviation, path ): + return collect_generic_stat ( 'size', deviation, lambda way: get_dir_size(path) ) + # Read a number from a specific file def stat_from_file ( metric, deviation, path ): def read_file (way): diff --git a/testsuite/tests/perf/size/Makefile b/testsuite/tests/perf/size/Makefile deleted file mode 100644 index df71b12da383..000000000000 --- a/testsuite/tests/perf/size/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -TOP=../../.. -include $(TOP)/mk/boilerplate.mk -include $(TOP)/mk/test.mk - -libdir_size: - du -s `$(TEST_HC) --print-libdir` | cut -f1 > SIZE - diff --git a/testsuite/tests/perf/size/all.T b/testsuite/tests/perf/size/all.T index 034c16a31954..969185e438da 100644 --- a/testsuite/tests/perf/size/all.T +++ b/testsuite/tests/perf/size/all.T @@ -1,3 +1,3 @@ test('size_hello_obj', [collect_size(5, 'size_hello_obj.o')], compile, ['']) -test('libdir',[stat_from_file('size', 10, 'SIZE')], makefile_test, ['libdir_size'] ) +test('libdir',[collect_size_dir(10, config.libdir)], static_stats, [] ) -- GitLab