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