This commit is contained in:
2026-04-18 08:26:44 +08:00
27 changed files with 0 additions and 2037 deletions

View File

@@ -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 的版本查询功能,验证其是否能正确显示已安装的版本号。"

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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 软件包能否正常卸载"
}
]
}

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"

View File

@@ -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 "$@"