#!/usr/bin/bash
source "${OET_PATH}"/libs/locallibs/common_lib.sh
function pre_test() {
LOG_INFO "Start to prepare the test environment."
if [ "${NODE1_MACHINE}" != "physical" ]; then
LOG_INFO "The environment does not support testing"
exit 0
fi
if [[ "${NODE1_FRAME}" != "x86_64" && "${NODE1_FRAME}" != "aarch64" ]]; then
LOG_WARN "Current architecture (${NODE1_FRAME}) is not supported by powerapi, skipping test."
exit 255
fi
DNF_INSTALL "powerapi-devel gcc"
sock_file="/opt/sysconfig/pwrapis/pwrserver.sock"
useradd test1
cp /etc/sysconfig/pwrapis/pwrapis_config.ini /etc/sysconfig/pwrapis/pwrapis_config.ini_bak
sed -i 's#sock_file=.*#sock_file='"${sock_file}"'#' /etc/sysconfig/pwrapis/pwrapis_config.ini
sed -i 's#admin=.*#admin=root,test1#' /etc/sysconfig/pwrapis/pwrapis_config.ini
cp common/demo_main.c ./
sed -i 's#sock_file\[\] =.*#sock_file[] = "'"${sock_file}"'";#' demo_main.c
echo "int main(int argc, const char *args[])
{
TEST_PWR_SetServerInfo();
TEST_PWR_Register();
TEST_PWR_CPU_GetInfo();
TEST_PWR_UnRegister();
return 0;
}
" >> demo_main.c
gcc ./demo_main.c -o demo_main -lpwrapi
cp demo_main /home/test1/
systemctl restart pwrapis
LOG_INFO "End to prepare the test environment."
}
function run_test() {
LOG_INFO "Start to run test."
su - test1 -c "./demo_main" | grep -Pz "PWR_SetServerInfo.*:SUCCESS ret: 0[\S\s]*GetCpuInfo succeed"
CHECK_RESULT $? 0 0 "Check interface PWR_SetServerInfo failed"
LOG_INFO "End to run test."
}
function post_test() {
LOG_INFO "Start to restore the test environment."
mv -f /etc/sysconfig/pwrapis/pwrapis_config.ini_bak /etc/sysconfig/pwrapis/pwrapis_config.ini
systemctl restart pwrapis
userdel -r test1
DNF_REMOVE "$@"
rm -rf demo_main* pwrclient.sock /opt/sysconfig
LOG_INFO "End to restore the test environment."
}
main "$@"