From 9713eae1d829a59456ed143f464b559d740bb183 Mon Sep 17 00:00:00 2001 From: Jie Zhou Date: Tue, 25 Jan 2022 21:10:43 -0800 Subject: [PATCH] test: replace shell script with Python - Add python script to check if system supports hugepages - Remove corresponding .sh script - Replace calling of .sh with corresponding .py in meson.build Signed-off-by: Jie Zhou Acked-by: Dmitry Kozlyuk --- MAINTAINERS | 2 +- app/test/has-hugepage.sh | 11 ----------- app/test/has_hugepage.py | 26 ++++++++++++++++++++++++++ app/test/meson.build | 2 +- 4 files changed, 28 insertions(+), 13 deletions(-) delete mode 100755 app/test/has-hugepage.sh create mode 100644 app/test/has_hugepage.py diff --git a/MAINTAINERS b/MAINTAINERS index c65b753c6b..0f5fc6b1e7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1638,7 +1638,7 @@ Test Applications Unit tests framework F: app/test/commands.c -F: app/test/has-hugepage.sh +F: app/test/has_hugepage.py F: app/test/packet_burst_generator.c F: app/test/packet_burst_generator.h F: app/test/process.h diff --git a/app/test/has-hugepage.sh b/app/test/has-hugepage.sh deleted file mode 100755 index d600fad319..0000000000 --- a/app/test/has-hugepage.sh +++ /dev/null @@ -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 diff --git a/app/test/has_hugepage.py b/app/test/has_hugepage.py new file mode 100644 index 0000000000..c0dd005f93 --- /dev/null +++ b/app/test/has_hugepage.py @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) 2021 Microsoft Corporation +"""This script checks if the system supports huge pages""" + +import platform +import ctypes + +os_name = platform.system() +if os_name == "Linux": + try: + with open("/proc/sys/vm/nr_hugepages") as file_o: + content = file_o.read() + print(content) + except: + print("0") + +elif os_name == "FreeBSD": + # Assume FreeBSD always has hugepages enabled + print("1") +elif os_name == "Windows": + if ctypes.windll.kernel32.GetLargePageMinimum() > 0: + print("1") + else: + print("0") +else: + print("0") diff --git a/app/test/meson.build b/app/test/meson.build index 5476c180ee..c3bc6c4d97 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -457,7 +457,7 @@ dpdk_test = executable('dpdk-test', driver_install_path), install: true) -has_hugepage = run_command('has-hugepage.sh', check: true).stdout().strip() != '0' +has_hugepage = run_command(py3, 'has_hugepage.py', check: true).stdout().strip() != '0' message('hugepage availability: @0@'.format(has_hugepage)) # some perf tests (eg: memcpy perf autotest)take very long -- 2.39.5