Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -10,10 +10,6 @@
|
||||
"name": "test_perl-XML-Simple-help_function_uninstall",
|
||||
"desc": "测试软件包 perl-XML-Simple-help 的卸载功能,验证其能否通过系统包管理器干净地移除。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-XML-Simple-help_function_basic_usage",
|
||||
"desc": "测试软件包 perl-XML-Simple-help 提供帮助文档的基本功能,验证其是否能正确输出使用说明或手册。"
|
||||
},
|
||||
{
|
||||
"name": "test_perl-XML-Simple-help_function_version_check",
|
||||
"desc": "测试软件包 perl-XML-Simple-help 的版本查询功能,验证其是否能正确显示已安装的版本号。"
|
||||
|
||||
@@ -13,42 +13,6 @@
|
||||
{
|
||||
"name": "test_php-sodium_function_install",
|
||||
"desc": "Test if php-sodium extension is installed and loaded"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_aead_encrypt",
|
||||
"desc": "Test authenticated encryption (AEAD)"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_aead_decrypt",
|
||||
"desc": "Test authenticated decryption (AEAD)"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_key_exchange",
|
||||
"desc": "Test key exchange functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_generate_key",
|
||||
"desc": "Test secret key generation"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_hash",
|
||||
"desc": "Test hashing functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_sign",
|
||||
"desc": "Test digital signature generation"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_verify",
|
||||
"desc": "Test digital signature verification"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_random_bytes",
|
||||
"desc": "Test cryptographically secure random bytes"
|
||||
},
|
||||
{
|
||||
"name": "test_php-sodium_function_version_check",
|
||||
"desc": "Test library version availability"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-c/texlive-bibleref-french",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-bibleref-french_function_install",
|
||||
"desc": "Test package installation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,18 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-paralist_function_check",
|
||||
"desc": "Test package existence check"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-paralist_function_basic",
|
||||
"desc": "Test basic list formatting"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-paralist_function_compact",
|
||||
"desc": "Test compact list styles"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-paralist_function_inpara",
|
||||
"desc": "Test in-paragraph lists"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -9,22 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-phonrule-doc_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-phonrule-doc_function_version",
|
||||
"desc": "Check installed package version"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-phonrule-doc_function_list_files",
|
||||
"desc": "List package documentation files"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-phonrule-doc_function_view_manual",
|
||||
"desc": "Verify manual can be accessed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-phonrule-doc_function_depends",
|
||||
"desc": "Check package dependencies"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -11,18 +11,6 @@
|
||||
"name": "test_texlive-piechartmp_reinstall",
|
||||
"desc": "测试 texlive-piechartmp 软件包的重新安装功能是否正常",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-piechartmp_function_install",
|
||||
"desc": "测试 texlive-piechartmp 软件包能否正常安装"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-piechartmp_function_basic_usage",
|
||||
"desc": "测试 texlive-piechartmp 软件包能否生成基本饼图"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-piechartmp_function_uninstall",
|
||||
"desc": "测试 texlive-piechartmp 软件包能否正常卸载"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-13
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包 perl-XML-Simple-help 提供帮助文档的基本功能,验证其是否能正确输出使用说明或手册。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试perl-XML-Simple-help帮助文档功能"
|
||||
LOG_INFO "检查当前环境是否已安装perl-XML-Simple"
|
||||
if rpm -q perl-XML-Simple > /dev/null 2>&1; then
|
||||
LOG_INFO "检测到perl-XML-Simple已安装,标记为环境保持状态"
|
||||
ENV_KEEP=1
|
||||
else
|
||||
LOG_INFO "未检测到perl-XML-Simple安装,标记为需要清理状态"
|
||||
ENV_KEEP=0
|
||||
fi
|
||||
LOG_INFO "检查yum源中是否存在perl-XML-Simple软件包"
|
||||
if ! dnf list available perl-XML-Simple > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到perl-XML-Simple软件包,测试终止"
|
||||
exit 255
|
||||
fi
|
||||
if [ $ENV_KEEP -eq 0 ]; then
|
||||
LOG_INFO "执行安装步骤:安装perl-XML-Simple软件包"
|
||||
dnf install -y perl-XML-Simple
|
||||
CHECK_RESULT $? 0 0 "安装perl-XML-Simple失败"
|
||||
fi
|
||||
LOG_INFO "测试步骤:验证perl-XML-Simple-help命令是否存在"
|
||||
if ! command -v perl-XML-Simple-help > /dev/null 2>&1; then
|
||||
LOG_ERROR "perl-XML-Simple-help命令不存在,测试终止"
|
||||
if [ $ENV_KEEP -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载perl-XML-Simple软件包"
|
||||
dnf remove -y perl-XML-Simple
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "测试步骤:执行perl-XML-Simple-help命令查看基本帮助"
|
||||
perl-XML-Simple-help --help > /tmp/perl-xml-help.out 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行perl-XML-Simple-help --help命令失败"
|
||||
LOG_INFO "检查帮助输出是否包含预期关键字"
|
||||
if grep -q -i "usage\|help\|manual" /tmp/perl-xml-help.out; then
|
||||
LOG_INFO "帮助文档输出正常,包含使用说明或手册信息"
|
||||
else
|
||||
LOG_ERROR "帮助文档输出异常,未找到使用说明或手册信息"
|
||||
if [ $ENV_KEEP -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载perl-XML-Simple软件包"
|
||||
dnf remove -y perl-XML-Simple
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/perl-xml-help.out
|
||||
if [ $ENV_KEEP -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载perl-XML-Simple软件包"
|
||||
dnf remove -y perl-XML-Simple
|
||||
CHECK_RESULT $? 0 0 "卸载perl-XML-Simple失败"
|
||||
else
|
||||
LOG_INFO "保持环境:perl-XML-Simple软件包保持安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,154 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test authenticated decryption (AEAD)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装php-sodium扩展
|
||||
LOG_INFO "检查php-sodium扩展是否已安装"
|
||||
if dnf list installed php-sodium &>/dev/null; then
|
||||
LOG_INFO "php-sodium扩展已安装,测试结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "php-sodium扩展未安装,将在测试前安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有php-sodium软件包
|
||||
LOG_INFO "检查yum源中是否有php-sodium软件包"
|
||||
if ! dnf list available php-sodium &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到php-sodium软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装php-sodium
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装php-sodium扩展"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium失败"
|
||||
fi
|
||||
|
||||
# 检查sodium_aead_decrypt函数是否存在
|
||||
LOG_INFO "检查sodium_aead_decrypt函数是否可用"
|
||||
php -r "if (!function_exists("sodium_aead_decrypt")) { exit(1); }"
|
||||
CHECK_RESULT $? 0 0 "sodium_aead_decrypt函数不存在或不支持"
|
||||
|
||||
# 测试认证解密(AEAD)功能
|
||||
LOG_INFO "开始测试认证解密(AEAD)功能"
|
||||
|
||||
# 生成密钥
|
||||
LOG_INFO "生成加密密钥"
|
||||
KEY=$(php -r "echo sodium_bin2hex(sodium_crypto_aead_xchacha20poly1305_ietf_keygen());")
|
||||
CHECK_RESULT $? 0 0 "生成密钥失败"
|
||||
|
||||
# 生成nonce
|
||||
LOG_INFO "生成nonce"
|
||||
NONCE=$(php -r "echo sodium_bin2hex(random_bytes(SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES));")
|
||||
CHECK_RESULT $? 0 0 "生成nonce失败"
|
||||
|
||||
# 原始消息
|
||||
MESSAGE="测试认证解密功能"
|
||||
LOG_INFO "原始消息: $MESSAGE"
|
||||
|
||||
# 加密消息
|
||||
LOG_INFO "加密消息"
|
||||
ENCRYPTED=$(php -r "
|
||||
\$key = sodium_hex2bin("$KEY");
|
||||
\$nonce = sodium_hex2bin("$NONCE");
|
||||
\$message = "$MESSAGE";
|
||||
\$encrypted = sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(\$message, "", \$nonce, \$key);
|
||||
echo sodium_bin2hex(\$encrypted);
|
||||
")
|
||||
CHECK_RESULT $? 0 0 "加密消息失败"
|
||||
|
||||
# 解密消息
|
||||
LOG_INFO "解密消息"
|
||||
DECRYPTED=$(php -r "
|
||||
\$key = sodium_hex2bin("$KEY");
|
||||
\$nonce = sodium_hex2bin("$NONCE");
|
||||
\$encrypted = sodium_hex2bin("$ENCRYPTED");
|
||||
\$decrypted = sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(\$encrypted, "", \$nonce, \$key);
|
||||
echo \$decrypted;
|
||||
")
|
||||
CHECK_RESULT $? 0 0 "解密消息失败"
|
||||
|
||||
# 验证解密结果
|
||||
LOG_INFO "验证解密结果"
|
||||
if [ "$DECRYPTED" = "$MESSAGE" ]; then
|
||||
LOG_INFO "解密成功: $DECRYPTED"
|
||||
CHECK_RESULT 0 0 0 "解密验证失败"
|
||||
else
|
||||
LOG_ERROR "解密失败: 期望 "$MESSAGE", 实际 "$DECRYPTED""
|
||||
CHECK_RESULT 1 0 0 "解密验证失败"
|
||||
fi
|
||||
|
||||
# 测试无效密文解密
|
||||
LOG_INFO "测试无效密文解密"
|
||||
INVALID_DECRYPTED=$(php -r "
|
||||
\$key = sodium_hex2bin("$KEY");
|
||||
\$nonce = sodium_hex2bin("$NONCE");
|
||||
\$invalid_encrypted = random_bytes(strlen("$MESSAGE") + SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES);
|
||||
\$decrypted = @sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(\$invalid_encrypted, "", \$nonce, \$key);
|
||||
echo \$decrypted === false ? "FAIL" : "SUCCESS";
|
||||
")
|
||||
CHECK_RESULT $? 0 0 "无效密文解密测试执行失败"
|
||||
|
||||
if [ "$INVALID_DECRYPTED" = "FAIL" ]; then
|
||||
LOG_INFO "无效密文解密测试通过: 返回false"
|
||||
CHECK_RESULT 0 0 0 "无效密文解密测试失败"
|
||||
else
|
||||
LOG_ERROR "无效密文解密测试失败: 期望false"
|
||||
CHECK_RESULT 1 0 0 "无效密文解密测试失败"
|
||||
fi
|
||||
|
||||
# 测试无效密钥解密
|
||||
LOG_INFO "测试无效密钥解密"
|
||||
INVALID_KEY_DECRYPTED=$(php -r "
|
||||
\$invalid_key = random_bytes(SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES);
|
||||
\$nonce = sodium_hex2bin("$NONCE");
|
||||
\$encrypted = sodium_hex2bin("$ENCRYPTED");
|
||||
\$decrypted = @sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(\$encrypted, "", \$nonce, \$invalid_key);
|
||||
echo \$decrypted === false ? "FAIL" : "SUCCESS";
|
||||
")
|
||||
CHECK_RESULT $? 0 0 "无效密钥解密测试执行失败"
|
||||
|
||||
if [ "$INVALID_KEY_DECRYPTED" = "FAIL" ]; then
|
||||
LOG_INFO "无效密钥解密测试通过: 返回false"
|
||||
CHECK_RESULT 0 0 0 "无效密钥解密测试失败"
|
||||
else
|
||||
LOG_ERROR "无效密钥解密测试失败: 期望false"
|
||||
CHECK_RESULT 1 0 0 "无效密钥解密测试失败"
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
|
||||
# 如果测试前未安装,则卸载php-sodium
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载php-sodium扩展"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium失败"
|
||||
else
|
||||
LOG_INFO "保持php-sodium扩展安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,103 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test authenticated encryption (AEAD)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试PHP sodium扩展的AEAD加密功能"
|
||||
LOG_INFO "步骤1: 检查系统中是否已安装php-sodium软件包"
|
||||
rpm -q php-sodium > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到php-sodium已安装,标记为环境已安装状态"
|
||||
ENV_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "未检测到php-sodium安装,标记为环境未安装状态"
|
||||
ENV_INSTALLED=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查yum源中是否存在php-sodium软件包"
|
||||
dnf list available php-sodium > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到php-sodium软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在php-sodium软件包,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $ENV_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装php-sodium软件包"
|
||||
dnf install -y php-sodium > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 验证sodium扩展是否已加载到PHP中"
|
||||
php -m | grep sodium > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "PHP未加载sodium扩展"
|
||||
|
||||
LOG_INFO "步骤5: 创建测试PHP脚本以验证AEAD加密功能"
|
||||
cat > test_aead.php << "EOF"
|
||||
<?php
|
||||
$key = sodium_crypto_aead_aes256gcm_keygen();
|
||||
$nonce = random_bytes(SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES);
|
||||
$message = "Test authenticated encryption (AEAD)";
|
||||
$ad = "additional data";
|
||||
|
||||
$ciphertext = sodium_crypto_aead_aes256gcm_encrypt($message, $ad, $nonce, $key);
|
||||
if ($ciphertext === false) {
|
||||
echo "AEAD加密失败\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$decrypted = sodium_crypto_aead_aes256gcm_decrypt($ciphertext, $ad, $nonce, $key);
|
||||
if ($decrypted === false) {
|
||||
echo "AEAD解密失败\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ($decrypted === $message) {
|
||||
echo "AEAD加密解密测试成功\n";
|
||||
exit(0);
|
||||
} else {
|
||||
echo "AEAD加密解密结果不匹配\n";
|
||||
exit(1);
|
||||
}
|
||||
?>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试PHP脚本失败"
|
||||
|
||||
LOG_INFO "步骤6: 执行PHP脚本进行AEAD加密解密测试"
|
||||
php test_aead.php > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "PHP sodium扩展AEAD加密解密功能测试失败"
|
||||
|
||||
LOG_INFO "步骤7: 清理临时测试文件"
|
||||
rm -f test_aead.php
|
||||
CHECK_RESULT $? 0 0 "删除临时测试文件失败"
|
||||
|
||||
if [ $ENV_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤8: 卸载测试安装的php-sodium软件包"
|
||||
dnf remove -y php-sodium > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium软件包失败"
|
||||
LOG_INFO "已恢复测试前环境状态"
|
||||
else
|
||||
LOG_INFO "环境原本已安装php-sodium,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "AEAD加密功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test secret key generation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test secret key generation"
|
||||
LOG_INFO "步骤1:检查是否已安装php-sodium扩展"
|
||||
if dnf list installed php-sodium &>/dev/null; then
|
||||
LOG_INFO "php-sodium扩展已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "php-sodium扩展未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在php-sodium软件包"
|
||||
if ! dnf list available php-sodium &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到php-sodium软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装php-sodium扩展"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium扩展失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查php-sodium扩展是否已加载"
|
||||
php -m | grep -q sodium
|
||||
CHECK_RESULT $? 0 0 "php-sodium扩展未加载"
|
||||
|
||||
LOG_INFO "步骤5:测试sodium_crypto_secretbox_keygen函数生成密钥"
|
||||
php -r "echo base64_encode(sodium_crypto_secretbox_keygen());" > /tmp/test_key.txt
|
||||
CHECK_RESULT $? 0 0 "生成密钥失败"
|
||||
|
||||
LOG_INFO "步骤6:验证生成的密钥长度"
|
||||
KEY_LENGTH=$(base64 -d /tmp/test_key.txt 2>/dev/null | wc -c)
|
||||
if [ $KEY_LENGTH -eq 32 ]; then
|
||||
LOG_INFO "生成的密钥长度正确:32字节"
|
||||
else
|
||||
LOG_ERROR "生成的密钥长度不正确:${KEY_LENGTH}字节"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤7:卸载php-sodium扩展"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium扩展失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8:清理临时文件"
|
||||
rm -f /tmp/test_key.txt
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
LOG_INFO "测试完成:Test secret key generation"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,178 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test hashing functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试环境检查与准备
|
||||
LOG_INFO "检查是否已安装php-sodium扩展"
|
||||
dnf list installed php-sodium 2>/dev/null | grep -q php-sodium
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "检测到php-sodium已安装,标记为已安装状态"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "检测到php-sodium未安装,标记为未安装状态"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在php-sodium软件包
|
||||
LOG_INFO "检查yum源中是否存在php-sodium软件包"
|
||||
dnf list available php-sodium 2>/dev/null | grep -q php-sodium
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在php-sodium软件包"
|
||||
|
||||
# 如果未安装,则安装php-sodium
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "开始安装php-sodium软件包"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium失败"
|
||||
LOG_INFO "php-sodium安装成功"
|
||||
else
|
||||
LOG_INFO "php-sodium已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试hash功能
|
||||
LOG_INFO "测试php-sodium的hash功能"
|
||||
LOG_INFO "测试sodium_crypto_generichash函数"
|
||||
php -r "if (!function_exists("sodium_crypto_generichash")) { echo "Function not exists"; exit(1); }"
|
||||
CHECK_RESULT $? 0 255 "sodium_crypto_generichash函数不存在"
|
||||
|
||||
LOG_INFO "执行sodium_crypto_generichash基本功能测试"
|
||||
php -r "
|
||||
\$message = "test message";
|
||||
\$key = random_bytes(SODIUM_CRYPTO_GENERICHASH_KEYBYTES);
|
||||
\$hash = sodium_crypto_generichash(\$message, \$key);
|
||||
if (strlen(\$hash) !== SODIUM_CRYPTO_GENERICHASH_BYTES) {
|
||||
echo "Hash length incorrect";
|
||||
exit(1);
|
||||
}
|
||||
echo "Success";
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "sodium_crypto_generichash基本功能测试失败"
|
||||
|
||||
LOG_INFO "测试sodium_crypto_generichash不同输出长度"
|
||||
php -r "
|
||||
\$message = "test message for variable length";
|
||||
\$key = random_bytes(SODIUM_CRYPTO_GENERICHASH_KEYBYTES);
|
||||
\$hash1 = sodium_crypto_generichash(\$message, \$key, 32);
|
||||
\$hash2 = sodium_crypto_generichash(\$message, \$key, 64);
|
||||
if (strlen(\$hash1) !== 32 || strlen(\$hash2) !== 64) {
|
||||
echo "Variable length hash failed";
|
||||
exit(1);
|
||||
}
|
||||
echo "Success";
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "sodium_crypto_generichash变长输出测试失败"
|
||||
|
||||
LOG_INFO "测试sodium_crypto_generichash无密钥情况"
|
||||
php -r "
|
||||
\$message = "test message without key";
|
||||
\$hash1 = sodium_crypto_generichash(\$message);
|
||||
\$hash2 = sodium_crypto_generichash(\$message);
|
||||
if (\$hash1 !== \$hash2) {
|
||||
echo "Hash without key inconsistent";
|
||||
exit(1);
|
||||
}
|
||||
echo "Success";
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "sodium_crypto_generichash无密钥测试失败"
|
||||
|
||||
LOG_INFO "测试sodium_crypto_generichash_init/update/final流程"
|
||||
php -r "
|
||||
\$message1 = "part1";
|
||||
\$message2 = "part2";
|
||||
\$key = random_bytes(SODIUM_CRYPTO_GENERICHASH_KEYBYTES);
|
||||
|
||||
\$state = sodium_crypto_generichash_init(\$key);
|
||||
sodium_crypto_generichash_update(\$state, \$message1);
|
||||
sodium_crypto_generichash_update(\$state, \$message2);
|
||||
\$hash_stream = sodium_crypto_generichash_final(\$state);
|
||||
|
||||
\$hash_direct = sodium_crypto_generichash(\$message1 . \$message2, \$key);
|
||||
|
||||
if (\$hash_stream !== \$hash_direct) {
|
||||
echo "Streaming hash mismatch";
|
||||
exit(1);
|
||||
}
|
||||
echo "Success";
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "sodium_crypto_generichash流式处理测试失败"
|
||||
|
||||
LOG_INFO "测试sodium_crypto_generichash_keygen函数"
|
||||
php -r "
|
||||
if (!function_exists("sodium_crypto_generichash_keygen")) {
|
||||
echo "Function not exists";
|
||||
exit(1);
|
||||
}
|
||||
\$key = sodium_crypto_generichash_keygen();
|
||||
if (strlen(\$key) !== SODIUM_CRYPTO_GENERICHASH_KEYBYTES) {
|
||||
echo "Generated key length incorrect";
|
||||
exit(1);
|
||||
}
|
||||
echo "Success";
|
||||
"
|
||||
CHECK_RESULT $? 0 255 "sodium_crypto_generichash_keygen函数不存在或不支持"
|
||||
|
||||
LOG_INFO "测试sodium_crypto_shorthash函数"
|
||||
php -r "
|
||||
if (!function_exists("sodium_crypto_shorthash")) {
|
||||
echo "Function not exists";
|
||||
exit(1);
|
||||
}
|
||||
\$message = "short hash test";
|
||||
\$key = random_bytes(SODIUM_CRYPTO_SHORTHASH_KEYBYTES);
|
||||
\$hash = sodium_crypto_shorthash(\$message, \$key);
|
||||
if (strlen(\$hash) !== SODIUM_CRYPTO_SHORTHASH_BYTES) {
|
||||
echo "Short hash length incorrect";
|
||||
exit(1);
|
||||
}
|
||||
echo "Success";
|
||||
"
|
||||
CHECK_RESULT $? 0 255 "sodium_crypto_shorthash函数不存在或不支持"
|
||||
|
||||
LOG_INFO "测试sodium_crypto_shorthash_keygen函数"
|
||||
php -r "
|
||||
if (!function_exists("sodium_crypto_shorthash_keygen")) {
|
||||
echo "Function not exists";
|
||||
exit(1);
|
||||
}
|
||||
\$key = sodium_crypto_shorthash_keygen();
|
||||
if (strlen(\$key) !== SODIUM_CRYPTO_SHORTHASH_KEYBYTES) {
|
||||
echo "Generated short key length incorrect";
|
||||
exit(1);
|
||||
}
|
||||
echo "Success";
|
||||
"
|
||||
CHECK_RESULT $? 0 255 "sodium_crypto_shorthash_keygen函数不存在或不支持"
|
||||
|
||||
LOG_INFO "php-sodium hash功能测试完成"
|
||||
|
||||
# 环境清理
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载php-sodium软件包"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium失败"
|
||||
LOG_INFO "php-sodium卸载成功,环境已恢复"
|
||||
else
|
||||
LOG_INFO "保持php-sodium安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,115 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test key exchange functionality
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试key exchange功能"
|
||||
|
||||
# 检查是否已安装php-sodium扩展
|
||||
LOG_INFO "检查php-sodium扩展是否已安装"
|
||||
if dnf list installed php-sodium &>/dev/null; then
|
||||
LOG_INFO "php-sodium扩展已安装,测试结束后将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "php-sodium扩展未安装,将在测试过程中安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有php-sodium软件包
|
||||
LOG_INFO "检查yum源中是否存在php-sodium软件包"
|
||||
if ! dnf list available php-sodium &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到php-sodium软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装php-sodium
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装php-sodium软件包"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium失败"
|
||||
fi
|
||||
|
||||
# 验证sodium扩展是否已加载
|
||||
LOG_INFO "验证sodium扩展是否已加载"
|
||||
php -m | grep -q sodium
|
||||
CHECK_RESULT $? 0 0 "sodium扩展未加载"
|
||||
|
||||
# 测试key exchange功能
|
||||
LOG_INFO "执行key exchange功能测试"
|
||||
cat > test_key_exchange.php << "EOF"
|
||||
<?php
|
||||
// 生成Alice的密钥对
|
||||
$alice_keypair = sodium_crypto_kx_keypair();
|
||||
$alice_secret = sodium_crypto_kx_secretkey($alice_keypair);
|
||||
$alice_public = sodium_crypto_kx_publickey($alice_keypair);
|
||||
|
||||
// 生成Bob的密钥对
|
||||
$bob_keypair = sodium_crypto_kx_keypair();
|
||||
$bob_secret = sodium_crypto_kx_secretkey($bob_keypair);
|
||||
$bob_public = sodium_crypto_kx_publickey($bob_keypair);
|
||||
|
||||
// Alice计算共享密钥(从Alice的角度)
|
||||
$alice_rx = sodium_crypto_kx_client_session_keys($alice_secret, $alice_public, $bob_public);
|
||||
$alice_tx = $alice_rx[1];
|
||||
$alice_rx = $alice_rx[0];
|
||||
|
||||
// Bob计算共享密钥(从Bob的角度)
|
||||
$bob_rx = sodium_crypto_kx_server_session_keys($bob_secret, $bob_public, $alice_public);
|
||||
$bob_tx = $bob_rx[1];
|
||||
$bob_rx = $bob_rx[0];
|
||||
|
||||
// 验证双方的接收密钥相同
|
||||
if ($alice_rx === $bob_tx) {
|
||||
echo "Alice的接收密钥与Bob的发送密钥匹配成功\n";
|
||||
} else {
|
||||
echo "Alice的接收密钥与Bob的发送密钥匹配失败\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// 验证双方的发送密钥相同
|
||||
if ($alice_tx === $bob_rx) {
|
||||
echo "Alice的发送密钥与Bob的接收密钥匹配成功\n";
|
||||
} else {
|
||||
echo "Alice的发送密钥与Bob的接收密钥匹配失败\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
echo "key exchange功能测试通过\n";
|
||||
?>
|
||||
EOF
|
||||
|
||||
php test_key_exchange.php
|
||||
CHECK_RESULT $? 0 0 "key exchange功能测试失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时测试文件"
|
||||
rm -f test_key_exchange.php
|
||||
|
||||
# 如果测试前未安装,则卸载php-sodium
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载php-sodium软件包"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "key exchange功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test cryptographically secure random bytes
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test cryptographically secure random bytes"
|
||||
|
||||
# 检查是否已安装php-sodium扩展
|
||||
LOG_INFO "步骤1:检查php-sodium扩展是否已安装"
|
||||
if dnf list installed php-sodium &>/dev/null; then
|
||||
LOG_INFO "php-sodium扩展已安装,测试完成后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "php-sodium扩展未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有php-sodium软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有php-sodium软件包"
|
||||
if ! dnf search php-sodium 2>/dev/null | grep -q php-sodium; then
|
||||
LOG_ERROR "yum源中未找到php-sodium软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装php-sodium扩展
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装php-sodium扩展"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium扩展失败"
|
||||
fi
|
||||
|
||||
# 测试random_bytes函数
|
||||
LOG_INFO "步骤4:测试php-sodium扩展的random_bytes函数"
|
||||
cat > /tmp/test_random_bytes.php << "EOF"
|
||||
<?php
|
||||
try {
|
||||
$bytes = random_bytes(32);
|
||||
echo strlen($bytes) == 32 ? "PASS" : "FAIL";
|
||||
} catch (Exception $e) {
|
||||
echo "FAIL";
|
||||
}
|
||||
?>
|
||||
EOF
|
||||
|
||||
php /tmp/test_random_bytes.php | grep -q "PASS"
|
||||
CHECK_RESULT $? 0 0 "random_bytes函数测试失败"
|
||||
|
||||
# 测试参数错误情况
|
||||
LOG_INFO "步骤5:测试random_bytes函数参数错误情况"
|
||||
cat > /tmp/test_random_bytes_invalid.php << "EOF"
|
||||
<?php
|
||||
try {
|
||||
$bytes = random_bytes(-1);
|
||||
echo "FAIL";
|
||||
} catch (Exception $e) {
|
||||
echo "PASS";
|
||||
}
|
||||
?>
|
||||
EOF
|
||||
|
||||
php /tmp/test_random_bytes_invalid.php | grep -q "PASS"
|
||||
CHECK_RESULT $? 0 0 "random_bytes函数参数错误测试未通过"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "步骤6:清理临时文件"
|
||||
rm -f /tmp/test_random_bytes.php /tmp/test_random_bytes_invalid.php
|
||||
|
||||
# 如果之前未安装,则卸载php-sodium扩展
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤7:卸载php-sodium扩展"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium扩展失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test cryptographically secure random bytes"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test digital signature generation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试数字签名生成功能"
|
||||
|
||||
# 检查是否已安装php-sodium扩展
|
||||
LOG_INFO "检查php-sodium扩展是否已安装"
|
||||
rpm -q php-sodium > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "php-sodium扩展已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "php-sodium扩展未安装"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有php-sodium软件包
|
||||
LOG_INFO "检查yum源中是否有php-sodium软件包"
|
||||
dnf list available php-sodium > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有php-sodium软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有php-sodium软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装php-sodium
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装php-sodium扩展"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium扩展失败"
|
||||
fi
|
||||
|
||||
# 测试数字签名生成功能
|
||||
LOG_INFO "测试数字签名生成功能"
|
||||
php -r "
|
||||
if (!extension_loaded("sodium")) {
|
||||
echo "sodium扩展未加载" . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
\$keypair = sodium_crypto_sign_keypair();
|
||||
\$public_key = sodium_crypto_sign_publickey(\$keypair);
|
||||
\$secret_key = sodium_crypto_sign_secretkey(\$keypair);
|
||||
|
||||
\$message = "测试消息";
|
||||
\$signature = sodium_crypto_sign_detached(\$message, \$secret_key);
|
||||
|
||||
if (sodium_crypto_sign_verify_detached(\$signature, \$message, \$public_key)) {
|
||||
echo "数字签名验证成功" . PHP_EOL;
|
||||
exit(0);
|
||||
} else {
|
||||
echo "数字签名验证失败" . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "数字签名生成或验证失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载php-sodium
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载php-sodium扩展"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium扩展失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "数字签名生成功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,103 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test digital signature verification
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试数字签名验证功能"
|
||||
LOG_INFO "检查系统中是否已安装php-sodium软件包"
|
||||
rpm -q php-sodium > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "php-sodium已安装,标记为已安装状态"
|
||||
installed_flag=1
|
||||
else
|
||||
LOG_INFO "php-sodium未安装,标记为未安装状态"
|
||||
installed_flag=0
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否有php-sodium软件包"
|
||||
dnf list available php-sodium > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中不存在php-sodium软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在php-sodium软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ $installed_flag -eq 0 ]; then
|
||||
LOG_INFO "开始安装php-sodium软件包"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "安装php-sodium失败"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "php-sodium安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试sodium_crypto_sign_verify_detached函数"
|
||||
php -r "
|
||||
\$keypair = sodium_crypto_sign_keypair();
|
||||
\$public_key = sodium_crypto_sign_publickey(\$keypair);
|
||||
\$secret_key = sodium_crypto_sign_secretkey(\$keypair);
|
||||
\$message = "测试消息";
|
||||
\$signature = sodium_crypto_sign_detached(\$message, \$secret_key);
|
||||
\$result = sodium_crypto_sign_verify_detached(\$signature, \$message, \$public_key);
|
||||
if (\$result === true) {
|
||||
echo "验证成功";
|
||||
} else {
|
||||
echo "验证失败";
|
||||
}
|
||||
" > /tmp/test_result.txt 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行PHP测试代码失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "执行PHP测试代码失败"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查验证结果"
|
||||
grep -q "验证成功" /tmp/test_result.txt
|
||||
CHECK_RESULT $? 0 0 "数字签名验证失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "数字签名验证失败"
|
||||
cat /tmp/test_result.txt
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "数字签名验证测试成功"
|
||||
|
||||
if [ $installed_flag -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载php-sodium软件包"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium失败"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "卸载php-sodium失败"
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "php-sodium卸载成功"
|
||||
else
|
||||
LOG_INFO "保持php-sodium安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/test_result.txt
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test library version availability
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:Test library version availability"
|
||||
|
||||
# 检查yum源中是否存在php-sodium软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在php-sodium软件包"
|
||||
if ! dnf list available php-sodium &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到php-sodium软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断环境是否已经安装php-sodium
|
||||
LOG_INFO "步骤2:判断环境是否已经安装php-sodium"
|
||||
if rpm -q php-sodium &>/dev/null; then
|
||||
LOG_INFO "环境已安装php-sodium,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "环境未安装php-sodium,测试结束后将卸载软件包"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤3:安装php-sodium软件包"
|
||||
dnf install -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "安装php-sodium软件包失败"
|
||||
fi
|
||||
|
||||
# 测试sodium库版本可用性
|
||||
LOG_INFO "步骤4:测试sodium库版本可用性"
|
||||
if ! php -r "if (extension_loaded("sodium")) { echo "sodium extension loaded" . PHP_EOL; } else { echo "sodium extension not loaded" . PHP_EOL; exit(1); }" 2>/dev/null; then
|
||||
LOG_ERROR "php sodium扩展未加载或不可用"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查sodium库版本信息
|
||||
LOG_INFO "步骤5:检查sodium库版本信息"
|
||||
PHP_SODIUM_VERSION=$(php -r "echo SODIUM_LIBRARY_VERSION . PHP_EOL;" 2>/dev/null)
|
||||
if [ -z "$PHP_SODIUM_VERSION" ]; then
|
||||
LOG_ERROR "无法获取sodium库版本信息"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "sodium库版本:$PHP_SODIUM_VERSION"
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "步骤6:清理环境,卸载php-sodium软件包"
|
||||
dnf remove -y php-sodium
|
||||
CHECK_RESULT $? 0 0 "卸载php-sodium软件包失败"
|
||||
else
|
||||
LOG_INFO "步骤6:环境保持原状,不卸载php-sodium软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test library version availability"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-09-17
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test package installation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-bibleref-french
|
||||
LOG_INFO "检查是否已安装texlive-bibleref-french"
|
||||
rpm -q texlive-bibleref-french
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-bibleref-french已安装,脚本结束时保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-bibleref-french
|
||||
LOG_INFO "检查yum源中是否有texlive-bibleref-french"
|
||||
dnf list available texlive-bibleref-french > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到texlive-bibleref-french软件包"
|
||||
|
||||
# 安装texlive-bibleref-french
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装texlive-bibleref-french"
|
||||
dnf install -y texlive-bibleref-french
|
||||
CHECK_RESULT $? 0 0 "安装texlive-bibleref-french失败"
|
||||
fi
|
||||
|
||||
# 验证安装是否成功
|
||||
LOG_INFO "验证texlive-bibleref-french是否安装成功"
|
||||
rpm -q texlive-bibleref-french
|
||||
CHECK_RESULT $? 0 0 "验证texlive-bibleref-french安装失败"
|
||||
|
||||
# 测试功能(示例命令,需根据实际需求调整)
|
||||
LOG_INFO "测试texlive-bibleref-french功能"
|
||||
some_command_related_to_texlive_bibleref_french > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "texlive-bibleref-french功能测试失败,参数不支持或不存在"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-bibleref-french"
|
||||
dnf remove -y texlive-bibleref-french
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-bibleref-french失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,91 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic list formatting
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试开始:Test basic list formatting"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查texlive-paralist软件包是否在yum源中"
|
||||
if ! dnf list available texlive-paralist &>/dev/null; then
|
||||
LOG_ERROR "texlive-paralist软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "步骤2:检查texlive-paralist是否已安装"
|
||||
if rpm -q texlive-paralist &>/dev/null; then
|
||||
LOG_INFO "texlive-paralist已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-paralist未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装texlive-paralist软件包"
|
||||
dnf install -y texlive-paralist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-paralist失败"
|
||||
fi
|
||||
|
||||
# 测试基本列表格式化功能
|
||||
LOG_INFO "步骤4:测试基本列表格式化功能"
|
||||
cat > test_list.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{paralist}
|
||||
\begin{document}
|
||||
\begin{compactenum}
|
||||
\item First item
|
||||
\item Second item
|
||||
\item Third item
|
||||
\end{compactenum}
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 编译测试文档
|
||||
LOG_INFO "步骤5:编译测试文档"
|
||||
pdflatex test_list.tex
|
||||
CHECK_RESULT $? 0 0 "编译测试文档失败"
|
||||
|
||||
# 检查生成的PDF文件
|
||||
LOG_INFO "步骤6:检查生成的PDF文件"
|
||||
if [ -f test_list.pdf ]; then
|
||||
LOG_INFO "PDF文件生成成功"
|
||||
else
|
||||
LOG_ERROR "PDF文件生成失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "步骤7:清理测试文件"
|
||||
rm -f test_list.tex test_list.aux test_list.log test_list.pdf
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-paralist软件包"
|
||||
dnf remove -y texlive-paralist
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-paralist失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试结束:Test basic list formatting"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test compact list styles
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test compact list styles"
|
||||
|
||||
# 检查是否已安装texlive-paralist
|
||||
if dnf list installed texlive-paralist &>/dev/null; then
|
||||
LOG_INFO "检测到texlive-paralist已安装,测试完成后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "检测到texlive-paralist未安装,将在测试过程中安装,并在测试结束后卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-paralist包
|
||||
LOG_INFO "检查yum源中是否存在texlive-paralist软件包"
|
||||
if ! dnf list available texlive-paralist &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-paralist软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-paralist
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "开始安装texlive-paralist"
|
||||
dnf install -y texlive-paralist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-paralist失败"
|
||||
fi
|
||||
|
||||
# 测试compact list styles功能
|
||||
LOG_INFO "测试compact list styles功能"
|
||||
# 这里假设测试命令是检查某个tex文件是否能正确编译,使用latex命令并检查退出码
|
||||
# 假设测试文件为test_compact.tex,内容为使用compact list样式
|
||||
cat > test_compact.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{paralist}
|
||||
\begin{document}
|
||||
\begin{compactenum}
|
||||
\item First item
|
||||
\item Second item
|
||||
\end{compactenum}
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 尝试编译tex文件
|
||||
latex test_compact.tex
|
||||
CHECK_RESULT $? 0 0 "编译包含compact list样式的tex文件失败"
|
||||
|
||||
# 清理生成的临时文件
|
||||
LOG_INFO "清理测试生成的临时文件"
|
||||
rm -f test_compact.tex test_compact.aux test_compact.log test_compact.dvi
|
||||
|
||||
# 如果测试前未安装,则在测试后卸载texlive-paralist
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载texlive-paralist"
|
||||
dnf remove -y texlive-paralist
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-paralist失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test compact list styles"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test in-paragraph lists
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test in-paragraph lists"
|
||||
|
||||
LOG_INFO "步骤1:检查texlive-paralist软件包是否已在yum源中"
|
||||
dnf list available texlive-paralist > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-paralist软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "texlive-paralist软件包在yum源中存在"
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装texlive-paralist"
|
||||
rpm -q texlive-paralist > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-paralist已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-paralist未安装,将在测试步骤中安装,并在测试结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-paralist软件包"
|
||||
dnf install -y texlive-paralist
|
||||
CHECK_RESULT $? 0 0 "安装texlive-paralist失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:测试in-paragraph lists功能"
|
||||
cat > test_inpara.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{paralist}
|
||||
\begin{document}
|
||||
This is an in-paragraph list:
|
||||
\begin{inparaenum}[(i)]
|
||||
\item First item,
|
||||
\item second item,
|
||||
\item and third item.
|
||||
\end{inparaenum}
|
||||
\end{document}
|
||||
EOF
|
||||
pdflatex test_inpara.tex
|
||||
CHECK_RESULT $? 0 0 "生成in-paragraph lists的PDF失败"
|
||||
|
||||
LOG_INFO "步骤5:检查生成的PDF文件"
|
||||
if [ -f test_inpara.pdf ]; then
|
||||
LOG_INFO "成功生成test_inpara.pdf文件"
|
||||
else
|
||||
LOG_ERROR "未生成test_inpara.pdf文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:清理测试生成的文件"
|
||||
rm -f test_inpara.tex test_inpara.aux test_inpara.log test_inpara.pdf
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤7:卸载texlive-paralist软件包"
|
||||
dnf remove -y texlive-paralist
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-paralist失败"
|
||||
else
|
||||
LOG_INFO "步骤7:保持texlive-paralist安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test in-paragraph lists"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check package dependencies
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试软件包依赖检查"
|
||||
LOG_INFO "1. 检查yum源中是否存在texlive-phonrule-doc软件包"
|
||||
dnf list available texlive-phonrule-doc >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-phonrule-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查系统是否已安装texlive-phonrule-doc"
|
||||
rpm -q texlive-phonrule-doc >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将执行安装测试"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "3. 安装texlive-phonrule-doc软件包"
|
||||
dnf install -y texlive-phonrule-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-phonrule-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 检查软件包依赖关系"
|
||||
rpm -qR texlive-phonrule-doc >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "查询软件包依赖关系失败"
|
||||
|
||||
LOG_INFO "5. 验证依赖包是否完整"
|
||||
rpm -V texlive-phonrule-doc
|
||||
CHECK_RESULT $? 0 0 "软件包依赖验证失败"
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "6. 清理测试环境,卸载安装的软件包"
|
||||
dnf remove -y texlive-phonrule-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-phonrule-doc失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : List package documentation files
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装texlive-phonrule-doc软件包
|
||||
LOG_INFO "检查是否已安装texlive-phonrule-doc软件包"
|
||||
rpm -q texlive-phonrule-doc > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-phonrule-doc已安装,标记为已存在"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "texlive-phonrule-doc未安装,标记为未安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-phonrule-doc软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-phonrule-doc软件包"
|
||||
dnf list available texlive-phonrule-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-phonrule-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "开始安装texlive-phonrule-doc软件包"
|
||||
dnf install -y texlive-phonrule-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-phonrule-doc软件包失败"
|
||||
LOG_INFO "texlive-phonrule-doc软件包安装成功"
|
||||
fi
|
||||
|
||||
# 检查rpm命令是否支持-ql参数
|
||||
LOG_INFO "检查rpm命令是否支持-ql参数"
|
||||
rpm --help | grep -q "\-ql"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "rpm命令不支持-ql参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 列出texlive-phonrule-doc软件包的文件
|
||||
LOG_INFO "列出texlive-phonrule-doc软件包的文件"
|
||||
rpm -ql texlive-phonrule-doc > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "列出texlive-phonrule-doc软件包文件失败"
|
||||
|
||||
# 验证列出的文件是否包含文档文件
|
||||
LOG_INFO "验证列出的文件是否包含文档文件"
|
||||
rpm -ql texlive-phonrule-doc | grep -q "\.pdf$\|\.html$\|\.txt$"
|
||||
CHECK_RESULT $? 0 0 "texlive-phonrule-doc软件包未包含文档文件"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED_BEFORE -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-phonrule-doc软件包"
|
||||
dnf remove -y texlive-phonrule-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-phonrule-doc软件包失败"
|
||||
LOG_INFO "texlive-phonrule-doc软件包卸载成功"
|
||||
else
|
||||
LOG_INFO "环境已安装texlive-phonrule-doc,保持安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check installed package version
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-phonrule-doc
|
||||
LOG_INFO "检查texlive-phonrule-doc是否已安装"
|
||||
rpm -q texlive-phonrule-doc > /dev/null 2>&1
|
||||
IS_INSTALLED=$?
|
||||
|
||||
# 测试开始
|
||||
LOG_INFO "开始测试:检查已安装的软件包版本"
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-phonrule-doc软件包"
|
||||
dnf list available texlive-phonrule-doc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有texlive-phonrule-doc软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $IS_INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "安装texlive-phonrule-doc软件包"
|
||||
dnf install -y texlive-phonrule-doc
|
||||
CHECK_RESULT $? 0 0 "安装texlive-phonrule-doc失败"
|
||||
fi
|
||||
|
||||
# 检查软件包版本
|
||||
LOG_INFO "检查texlive-phonrule-doc软件包版本"
|
||||
VERSION=$(rpm -q texlive-phonrule-doc --qf "%{VERSION}-%{RELEASE}")
|
||||
CHECK_RESULT $? 0 0 "获取texlive-phonrule-doc版本失败"
|
||||
LOG_INFO "texlive-phonrule-doc版本为:$VERSION"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $IS_INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "卸载texlive-phonrule-doc软件包"
|
||||
dnf remove -y texlive-phonrule-doc
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-phonrule-doc失败"
|
||||
LOG_INFO "环境已恢复:texlive-phonrule-doc已卸载"
|
||||
else
|
||||
LOG_INFO "环境已保持:texlive-phonrule-doc保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:检查已安装的软件包版本"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Verify manual can be accessed
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
PACKAGE_NAME="texlive-phonrule-doc"
|
||||
MANUAL_PATH="/usr/share/doc/texlive-doc/latex/phonrule/phonrule.pdf"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包是否在yum源中"
|
||||
dnf list available "$PACKAGE_NAME" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "检查软件包是否已安装"
|
||||
rpm -q "$PACKAGE_NAME" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,标记为已存在"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为新安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 检查手册文件是否存在
|
||||
LOG_INFO "检查手册文件是否存在"
|
||||
if [ -f "$MANUAL_PATH" ]; then
|
||||
LOG_INFO "手册文件 $MANUAL_PATH 存在"
|
||||
else
|
||||
LOG_ERROR "手册文件 $MANUAL_PATH 不存在"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 验证手册文件可访问
|
||||
LOG_INFO "验证手册文件可访问"
|
||||
file "$MANUAL_PATH" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "手册文件无法访问"
|
||||
|
||||
# 清理环境:如果脚本开始时未安装,则卸载软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:手册文件可正常访问"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,101 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 texlive-piechartmp 软件包能否生成基本饼图
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
PACKAGE_NAME="texlive-piechartmp"
|
||||
COMMAND_NAME="pdflatex"
|
||||
TEST_FILE="test_piechart.tex"
|
||||
PDF_OUTPUT="test_piechart.pdf"
|
||||
LOG_FILE="test_texlive-piechartmp.log"
|
||||
|
||||
# 步骤1: 检查软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否存在软件包: $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查环境是否已安装该软件包
|
||||
LOG_INFO "检查系统是否已安装软件包: $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "安装软件包: $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查pdflatex命令是否存在
|
||||
LOG_INFO "检查命令 $COMMAND_NAME 是否存在"
|
||||
if ! command -v "$COMMAND_NAME" &>/dev/null; then
|
||||
LOG_ERROR "命令 $COMMAND_NAME 不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 创建测试用的LaTeX文件
|
||||
LOG_INFO "创建测试用的LaTeX文件: $TEST_FILE"
|
||||
cat > "$TEST_FILE" << "EOF"
|
||||
\documentclass{article}
|
||||
\usepackage{pgf-pie}
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
\pie{10/A, 20/B, 30/C, 40/D}
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建LaTeX文件失败"
|
||||
|
||||
# 步骤6: 使用pdflatex生成PDF
|
||||
LOG_INFO "使用 $COMMAND_NAME 生成PDF文件"
|
||||
"$COMMAND_NAME" -interaction=nonstopmode "$TEST_FILE" > "$LOG_FILE" 2>&1
|
||||
CHECK_RESULT $? 0 0 "生成PDF文件失败"
|
||||
|
||||
# 步骤7: 检查生成的PDF文件是否存在
|
||||
LOG_INFO "检查生成的PDF文件是否存在"
|
||||
if [ -f "$PDF_OUTPUT" ]; then
|
||||
LOG_INFO "成功生成PDF文件: $PDF_OUTPUT"
|
||||
else
|
||||
LOG_ERROR "未找到生成的PDF文件: $PDF_OUTPUT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8: 清理测试文件
|
||||
LOG_INFO "清理测试生成的文件"
|
||||
rm -f "$TEST_FILE" "$PDF_OUTPUT" "$LOG_FILE" test_piechart.aux test_piechart.log
|
||||
|
||||
# 步骤9: 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "卸载软件包: $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: texlive-piechartmp 软件包能够生成基本饼图"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 texlive-piechartmp 软件包能否正常安装
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试 texlive-piechartmp 软件包安装功能"
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "步骤1:检查 texlive-piechartmp 是否已安装"
|
||||
if dnf list installed texlive-piechartmp &>/dev/null; then
|
||||
LOG_INFO "texlive-piechartmp 已安装,测试将验证现有安装"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "texlive-piechartmp 未安装,将进行安装测试"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在 texlive-piechartmp 软件包"
|
||||
if ! dnf list available texlive-piechartmp &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 texlive-piechartmp 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在 texlive-piechartmp 软件包"
|
||||
|
||||
# 如果未安装,则进行安装
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤3:安装 texlive-piechartmp 软件包"
|
||||
dnf install -y texlive-piechartmp
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-piechartmp 失败"
|
||||
LOG_INFO "texlive-piechartmp 安装成功"
|
||||
fi
|
||||
|
||||
# 验证安装
|
||||
LOG_INFO "步骤4:验证 texlive-piechartmp 安装"
|
||||
dnf list installed texlive-piechartmp
|
||||
CHECK_RESULT $? 0 0 "验证 texlive-piechartmp 安装状态失败"
|
||||
|
||||
# 尝试运行包中的命令(如果存在典型的可执行文件)
|
||||
LOG_INFO "步骤5:检查 texlive-piechartmp 是否包含典型文件"
|
||||
if rpm -ql texlive-piechartmp | grep -q "\.sty$"; then
|
||||
LOG_INFO "找到 .sty 文件,包内容正常"
|
||||
else
|
||||
LOG_ERROR "未找到预期的 .sty 文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 环境恢复:如果测试前未安装,则卸载
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "步骤6:清理环境,卸载 texlive-piechartmp"
|
||||
dnf remove -y texlive-piechartmp
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-piechartmp 失败"
|
||||
LOG_INFO "texlive-piechartmp 卸载成功"
|
||||
else
|
||||
LOG_INFO "步骤6:保持现有安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:texlive-piechartmp 软件包安装功能正常"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-27
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试 texlive-piechartmp 软件包能否正常卸载
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试 texlive-piechartmp 软件包卸载功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查yum源中是否存在 texlive-piechartmp 软件包"
|
||||
dnf list texlive-piechartmp &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到 texlive-piechartmp 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装
|
||||
LOG_INFO "步骤2:检查当前是否已安装 texlive-piechartmp"
|
||||
rpm -q texlive-piechartmp &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
already_installed=true
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
else
|
||||
already_installed=false
|
||||
LOG_INFO "软件包未安装,将执行安装测试"
|
||||
fi
|
||||
|
||||
# 如果未安装,先安装软件包
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装 texlive-piechartmp 软件包"
|
||||
dnf install -y texlive-piechartmp
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-piechartmp 失败"
|
||||
fi
|
||||
|
||||
# 验证安装
|
||||
LOG_INFO "步骤4:验证 texlive-piechartmp 是否安装成功"
|
||||
rpm -q texlive-piechartmp
|
||||
CHECK_RESULT $? 0 0 "验证 texlive-piechartmp 安装失败"
|
||||
|
||||
# 测试卸载功能
|
||||
LOG_INFO "步骤5:测试卸载 texlive-piechartmp 软件包"
|
||||
dnf remove -y texlive-piechartmp
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-piechartmp 失败"
|
||||
|
||||
# 验证卸载
|
||||
LOG_INFO "步骤6:验证 texlive-piechartmp 是否已卸载"
|
||||
rpm -q texlive-piechartmp &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "卸载后仍能查询到 texlive-piechartmp 软件包"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "软件包已成功卸载"
|
||||
fi
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "步骤7:恢复测试环境"
|
||||
if [ "$already_installed" = "true" ]; then
|
||||
LOG_INFO "重新安装 texlive-piechartmp 以恢复原状态"
|
||||
dnf install -y texlive-piechartmp
|
||||
CHECK_RESULT $? 0 0 "重新安装 texlive-piechartmp 失败"
|
||||
else
|
||||
LOG_INFO "测试前未安装,无需恢复安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user