[v6,11/12] app/test: replace .sh scripts with .py scripts
Checks
Commit Message
- Add python script to get coremask
- Add python script to check if system supports hugepages
- Remove two corresponding .sh scripts
- Replace calling of .sh with corresponding .py in meson.build
Signed-off-by: Jie Zhou <jizh@linux.microsoft.com>
---
app/test/get-coremask.sh | 13 -------------
app/test/get_coremask.py | 12 ++++++++++++
app/test/has-hugepage.sh | 11 -----------
app/test/has_hugepage.py | 25 +++++++++++++++++++++++++
app/test/meson.build | 7 ++++---
5 files changed, 41 insertions(+), 27 deletions(-)
delete mode 100755 app/test/get-coremask.sh
create mode 100644 app/test/get_coremask.py
delete mode 100755 app/test/has-hugepage.sh
create mode 100644 app/test/has_hugepage.py
deleted file mode 100755
@@ -1,13 +0,0 @@
-#! /bin/sh -e
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-if [ "$(uname)" = "Linux" ] ; then
- cat /sys/devices/system/cpu/present
-elif [ "$(uname)" = "FreeBSD" ] ; then
- ncpus=$(/sbin/sysctl -n hw.ncpu)
- echo 0-$(expr $ncpus - 1)
-else
-# fallback
- echo 0-3
-fi
new file mode 100644
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2021 Microsoft Corporation
+"""This script returns the system cpu range"""
+
+import multiprocessing
+
+cpucount = multiprocessing.cpu_count()
+if cpucount is None:
+ # use fallback cpu count
+ print("0-3")
+else:
+ print("0-" + str(cpucount - 1))
deleted file mode 100755
@@ -1,11 +0,0 @@
-#! /bin/sh
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-if [ "$(uname)" = "Linux" ] ; then
- cat /proc/sys/vm/nr_hugepages || echo 0
-elif [ "$(uname)" = "FreeBSD" ] ; then
- echo 1 # assume FreeBSD always has hugepages
-else
- echo 0
-fi
new file mode 100644
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2021 Microsoft Corporation
+"""This script checks if the system supports huge pages"""
+
+import platform
+import ctypes
+
+osName = platform.system()
+if osName == "Linux":
+ with open("/proc/sys/vm/nr_hugepages") as file_o:
+ content = file_o.read()
+ print(content)
+elif osName == "FreeBSD":
+ # Assume FreeBSD always has hugepages enabled
+ print("1")
+elif osName == "Windows":
+ # On Windows, determine if large page is supported based on the
+ # value returned by GetLargePageMinimum. If the return value is zero,
+ # the processor does not support large pages.
+ if ctypes.windll.kernel32.GetLargePageMinimum() > 0:
+ print("1")
+ else:
+ print("0")
+else:
+ print("0")
@@ -451,7 +451,7 @@ dpdk_test = executable('dpdk-test',
driver_install_path),
install: true)
-has_hugepage = run_command('has-hugepage.sh').stdout().strip() != '0'
+has_hugepage = run_command(py3, 'has_hugepage.py').stdout().strip() != '0'
message('hugepage availability: @0@'.format(has_hugepage))
# some perf tests (eg: memcpy perf autotest)take very long
@@ -459,8 +459,9 @@ message('hugepage availability: @0@'.format(has_hugepage))
timeout_seconds = 600
timeout_seconds_fast = 10
-get_coremask = find_program('get-coremask.sh')
-num_cores_arg = '-l ' + run_command(get_coremask).stdout().strip()
+list_of_cores = run_command(py3, 'get_coremask.py').stdout().strip()
+message('list of cores: @0@'.format(list_of_cores))
+num_cores_arg = '-l ' + list_of_cores
default_test_args = [num_cores_arg]