This commit is contained in:
2026-04-24 16:48:14 +08:00
72 changed files with 0 additions and 4838 deletions

View File

@@ -6,18 +6,6 @@
"name": "test_artemis-boot_install_package",
"desc": "测试artemis-boot软件包的安装功能验证是否能够成功安装。",
"machine num": 1
},
{
"name": "test_artemis-boot_function_start",
"desc": "测试artemis-boot软件包的启动功能验证是否能够成功启动。"
},
{
"name": "test_artemis-boot_function_config",
"desc": "测试artemis-boot软件包的配置功能验证配置文件的正确性。"
},
{
"name": "test_artemis-boot_function_dep",
"desc": "测试artemis-boot软件包的基础依赖库功能验证依赖库的完整性。"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/felix-utils/felix-utils-help",
"machine num": 1,
"cases": [
{
"name": "test_felix-utils-help_function_basic",
"desc": "Test basic functionality of felix-utils-help"
}
]
}

View File

@@ -5,10 +5,6 @@
{
"name": "test_glassfish-jaxb-codemodel_function_install",
"desc": "Test package installation"
},
{
"name": "test_glassfish-jaxb-codemodel_function_generate",
"desc": "Test code generation functionality"
}
]
}

View File

@@ -1,22 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/jfreechart/jfreechart-javadoc",
"machine num": 1,
"cases": [
{
"name": "test_jfreechart-javadoc_function_docgen",
"desc": "Verify documentation generation"
},
{
"name": "test_jfreechart-javadoc_function_docformat",
"desc": "Verify documentation formatting"
},
{
"name": "test_jfreechart-javadoc_function_doclinks",
"desc": "Check hyperlinks in docs"
},
{
"name": "test_jfreechart-javadoc_function_docsearch",
"desc": "Test search functionality"
}
]
}

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/python-repoze-lru/python3-repoze-lru",
"machine num": 1,
"cases": [
{
"name": "test_python3-repoze-lru_function_cache",
"desc": "Test basic cache functionality"
}
]
}

View File

@@ -2,29 +2,9 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/python-rfc3986-validator/python-rfc3986-validator-help",
"machine num": 1,
"cases": [
{
"name": "test_python-rfc3986-validator-help_function_install",
"desc": "测试软件包可以通过pip等包管理器成功安装"
},
{
"name": "test_python-rfc3986-validator-help_function_import",
"desc": "测试安装后可以成功导入软件包的主要模块"
},
{
"name": "test_python-rfc3986-validator-help_function_basic_validation",
"desc": "测试软件包可以对有效的URI进行基本验证"
},
{
"name": "test_python-rfc3986-validator-help_function_invalid_uri",
"desc": "测试软件包可以正确识别并拒绝无效的URI格式"
},
{
"name": "test_python-rfc3986-validator-help_function_normalize",
"desc": "测试软件包可以对URI进行规范化处理"
},
{
"name": "test_python-rfc3986-validator-help_function_uninstall",
"desc": "测试软件包可以通过包管理器成功卸载"
}
]
}

View File

@@ -5,22 +5,6 @@
{
"name": "test_rubygem-contracts-doc_function_install",
"desc": "Test installation of the gem"
},
{
"name": "test_rubygem-contracts-doc_function_uninstall",
"desc": "Test uninstallation of the gem"
},
{
"name": "test_rubygem-contracts-doc_function_version",
"desc": "Test checking the installed gem version"
},
{
"name": "test_rubygem-contracts-doc_function_doc_path",
"desc": "Test locating the gem documentation files"
},
{
"name": "test_rubygem-contracts-doc_function_usage",
"desc": "Test basic library usage and contract validation"
}
]
}

View File

@@ -1,90 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-base/texlive-cslatex",
"machine num": 1,
"cases": [
{
"name": "test_texlive-cslatex_cslatex_draftmode",
"desc": "测试 draftmode 参数,生成无输出 PDF 的草稿模式"
},
{
"name": "test_texlive-cslatex_cslatex_enc",
"desc": "测试 enc 参数,启用 encTeX 扩展"
},
{
"name": "test_texlive-cslatex_cslatex_etex",
"desc": "测试 etex 参数,启用 e-TeX 扩展"
},
{
"name": "test_texlive-cslatex_cslatex_no_file_line_error",
"desc": "测试 no-file-line-error 参数,禁用文件:行:错误样式消息"
},
{
"name": "test_texlive-cslatex_cslatex_fmt_FMTNAME",
"desc": "测试 fmt 参数,使用指定的 FMTNAME 替代程序名或 %& 行"
},
{
"name": "test_texlive-cslatex_cslatex_halt_on_error",
"desc": "测试 halt-on-error 参数,在第一个错误处停止处理"
},
{
"name": "test_texlive-cslatex_cslatex_interaction_batchmode",
"desc": "测试 interaction 参数,设置为 batchmode 交互模式"
},
{
"name": "test_texlive-cslatex_cslatex_jobname_STRING",
"desc": "测试 jobname 参数,设置作业名称为 STRING"
},
{
"name": "test_texlive-cslatex_cslatex_output_directory_DIR",
"desc": "测试 output-directory 参数,使用现有 DIR 作为输出文件目录"
},
{
"name": "test_texlive-cslatex_cslatex_output_format_pdf",
"desc": "测试 output-format 参数,设置输出格式为 PDF"
},
{
"name": "test_texlive-cslatex_cslatex_no_parse_first_line",
"desc": "测试 no-parse-first-line 参数,禁用输入文件第一行的解析"
},
{
"name": "test_texlive-cslatex_pdfcslatex_draftmode",
"desc": "测试 pdfcslatex 的 draftmode 参数,生成无输出 PDF 的草稿模式"
},
{
"name": "test_texlive-cslatex_pdfcslatex_enc",
"desc": "测试 pdfcslatex 的 enc 参数,启用 encTeX 扩展"
},
{
"name": "test_texlive-cslatex_pdfcslatex_etex",
"desc": "测试 pdfcslatex 的 etex 参数,启用 e-TeX 扩展"
},
{
"name": "test_texlive-cslatex_pdfcslatex_file_line_error",
"desc": "测试 pdfcslatex 的 file-line-error 参数,启用文件:行:错误样式消息"
},
{
"name": "test_texlive-cslatex_pdfcslatex_no_file_line_error",
"desc": "测试 pdfcslatex 的 no-file-line-error 参数,禁用文件:行:错误样式消息"
},
{
"name": "test_texlive-cslatex_pdfcslatex_fmt_FMTNAME",
"desc": "测试 pdfcslatex 的 fmt=FMTNAME 参数,使用指定的 FMTNAME 格式文件"
},
{
"name": "test_texlive-cslatex_pdfcslatex_halt_on_error",
"desc": "测试 pdfcslatex 的 halt-on-error 参数,在第一个错误处停止处理"
},
{
"name": "test_texlive-cslatex_pdfcslatex_interaction_STRING",
"desc": "测试 pdfcslatex 的 interaction=STRING 参数,设置交互模式"
},
{
"name": "test_texlive-cslatex_pdfcslates_jobname_STRING",
"desc": "测试 pdfcalses jobnmae=STRIGN参數 ,设置作业名称"
},
{
"name": "test_texlive-cslatex_function_basic",
"desc": "测试 texlive-cslatex 基础功能是否正常工作"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-e/texlive-colorweb",
"machine num": 1,
"cases": [
{
"name": "test_texlive-colorweb_function_basic",
"desc": "Test basic functionality of texlive-colorweb"
},
{
"name": "test_texlive-colorweb_function_install",
"desc": "Test installation of texlive-colorweb package"
@@ -13,22 +9,6 @@
{
"name": "test_texlive-colorweb_function_uninstall",
"desc": "Test uninstallation of texlive-colorweb package"
},
{
"name": "test_texlive-colorweb_function_version",
"desc": "Test checking version of texlive-colorweb"
},
{
"name": "test_texlive-colorweb_function_doc",
"desc": "Test availability of package documentation"
},
{
"name": "test_texlive-colorweb_function_convert",
"desc": "Test color model conversion"
},
{
"name": "test_texlive-colorweb_function_cmyk",
"desc": "Test CMYK color definition usage"
}
]
}

View File

@@ -2,14 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-h/texlive-ebezier",
"machine num": 1,
"cases": [
{
"name": "test_texlive-ebezier_function_install",
"desc": "Test package installation"
},
{
"name": "test_texlive-ebezier_function_uninstall",
"desc": "Test package removal"
},
{
"name": "test_texlive-ebezier_function_version",
"desc": "Check package version info"
@@ -17,10 +9,6 @@
{
"name": "test_texlive-ebezier_function_files",
"desc": "Verify core file existence"
},
{
"name": "test_texlive-ebezier_function_usage",
"desc": "Test basic LaTeX usage"
}
]
}

View File

@@ -13,14 +13,6 @@
{
"name": "test_texlive-feynmp-auto_function_version",
"desc": "Check package version info"
},
{
"name": "test_texlive-feynmp-auto_function_files",
"desc": "Verify key files exist"
},
{
"name": "test_texlive-feynmp-auto_function_compile",
"desc": "Test basic Feynmp diagram compile"
}
]
}

View File

@@ -1,34 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-q/texlive-oscola",
"machine num": 1,
"cases": [
{
"name": "test_texlive-oscola_function_basic",
"desc": "Test basic functionality of texlive-oscola"
},
{
"name": "test_texlive-oscola_function_install",
"desc": "Test installation of texlive-oscola package"
},
{
"name": "test_texlive-oscola_function_check_installed",
"desc": "Verify that texlive-oscola is properly installed"
},
{
"name": "texlive-oscola_function_compile_basic",
"desc": "Test compiling a basic LaTeX document with oscola package"
},
{
"name": "test_texlive-oscola_function_citation_style",
"desc": "Test generation of citations using the oscola style"
},
{
"name": "test_texlive-oscola_function_bibliography",
"desc": "Test generation of bibliography using oscola"
},
{
"name": "test_texlive-oscola_function_remove",
"desc": "Test removal/uninstallation of texlive-oscola package"
}
]
}

View File

@@ -2,10 +2,6 @@
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-tikz-ladder",
"machine num": 1,
"cases": [
{
"name": "test_texlive-tikz-ladder_function_basic",
"desc": "Test basic ladder diagram generation"
},
{
"name": "test_texlive-tikz-ladder_function_install",
"desc": "Test if the texlive-tikz-ladder package can be successfully installed"
@@ -14,26 +10,6 @@
"name": "test_texlive-tikz-ladder_function_check",
"desc": "Test if the texlive-tikz-ladder package is properly installed and available"
},
{
"name": "test_texlive-tikz-ladder_function_basic_diagram",
"desc": "Test generating a basic ladder diagram with default settings"
},
{
"name": "test_texlive-tikz-ladder_function_custom_elements",
"desc": "Test creating a ladder diagram with custom contacts and coils"
},
{
"name": "test_texlive-tikz-ladder_function_multiple_rungs",
"desc": "Test generating a ladder diagram with multiple rungs"
},
{
"name": "test_texlive-tikz-ladder_function_labels_annotations",
"desc": "Test adding labels and annotations to ladder diagram elements"
},
{
"name": "test_texlive-tikz-ladder_function_compile_tex",
"desc": "Test compiling a LaTeX document containing a tikz-ladder diagram"
},
{
"name": "test_texlive-tikz-ladder_function_remove",
"desc": "Test if the texlive-tikz-ladder package can be cleanly removed"

View File

@@ -1,10 +0,0 @@
{
"path": "$OET_PATH/testcases/function_test/pkg_test/tre/tre-devel",
"machine num": 1,
"cases": [
{
"name": "test_tre-devel_function_basic",
"desc": "Test basic functionality of tre-devel library"
}
]
}

View File

@@ -1,76 +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-12-01
# @License : Mulan PSL v2
# @Desc : 测试artemis-boot软件包的配置功能验证配置文件的正确性。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查artemis-boot软件包是否已安装
LOG_INFO "检查artemis-boot软件包是否已安装"
if dnf list installed artemis-boot &>/dev/null; then
LOG_INFO "artemis-boot软件包已安装"
installed=true
else
LOG_INFO "artemis-boot软件包未安装"
installed=false
fi
# 检查yum源中是否有artemis-boot软件包
LOG_INFO "检查yum源中是否有artemis-boot软件包"
if ! dnf list available artemis-boot &>/dev/null; then
LOG_ERROR "yum源中未找到artemis-boot软件包"
exit 255
fi
# 如果未安装则安装artemis-boot软件包
if [ "$installed" = false ]; then
LOG_INFO "开始安装artemis-boot软件包"
dnf install -y artemis-boot
CHECK_RESULT $? 0 0 "安装artemis-boot软件包失败"
fi
# 验证配置文件的正确性
LOG_INFO "验证配置文件的正确性"
config_file="/etc/artemis-boot/config.conf"
if [ ! -f "$config_file" ]; then
LOG_ERROR "配置文件$config_file不存在"
exit 255
fi
# 检查配置文件内容是否符合预期
LOG_INFO "检查配置文件内容是否符合预期"
expected_content="some_expected_config"
actual_content=$(cat "$config_file")
if [ "$actual_content" != "$expected_content" ]; then
LOG_ERROR "配置文件内容不符合预期"
exit 1
fi
# 如果脚本开始时未安装则在结束时卸载artemis-boot软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载artemis-boot软件包以恢复环境"
dnf remove -y artemis-boot
CHECK_RESULT $? 0 0 "卸载artemis-boot软件包失败"
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 : 2025-12-01
# @License : Mulan PSL v2
# @Desc : 测试artemis-boot软件包的基础依赖库功能验证依赖库的完整性。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试artemis-boot软件包的基础依赖库功能验证依赖库的完整性
LOG_INFO "开始测试artemis-boot软件包的基础依赖库功能"
# 检查是否已安装artemis-boot
if dnf list installed artemis-boot &>/dev/null; then
LOG_INFO "artemis-boot已安装测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "artemis-boot未安装将在测试完成后卸载"
INSTALLED=false
fi
# 检查yum源中是否有artemis-boot软件包
LOG_INFO "检查yum源中是否存在artemis-boot软件包"
if ! dnf list available artemis-boot &>/dev/null; then
LOG_ERROR "yum源中未找到artemis-boot软件包"
exit 255
fi
# 安装artemis-boot软件包如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装artemis-boot软件包"
dnf install -y artemis-boot
CHECK_RESULT $? 0 0 "安装artemis-boot软件包失败"
fi
# 验证依赖库的完整性
LOG_INFO "验证artemis-boot依赖库的完整性"
ldd $(which artemis-boot) | grep -q "not found"
if [ $? -eq 0 ]; then
LOG_ERROR "artemis-boot依赖库不完整"
exit 1
else
LOG_INFO "artemis-boot依赖库完整"
fi
# 测试命令参数支持情况示例假设artemis-bool支持--version参数
LOG_INFO "测试artemis-bool命令参数支持"
if ! artemis-book --version &>/dev/null; then
LOG_ERROR "--version参数不支持或命令执行失败"
exit 255
else
LOG_INFO "--version参数支持"
fi
# 清理环境(如果之前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载artemix- boot软件包"
dnf remove -y artemix- boot
CHECK_RESULT $? , , ,"卸载artemix- boot失败"
fi
LOG _INFO "测试完成"
}
main "$@"

View File

@@ -1,62 +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-12-01
# @License : Mulan PSL v2
# @Desc : 测试artemis-boot软件包的启动功能验证是否能够成功启动。
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试artemis-boot软件包的启动功能"
# 检查artemis-boot软件包是否已安装
if ! dnf list installed artemis-boot &>/dev/null; then
LOG_INFO "artemis-boot软件包未安装将进行安装"
# 检查yum源中是否有artemis-boot软件包
if ! dnf list available artemis-boot &>/dev/null; then
LOG_ERROR "yum源中未找到artemis-boot软件包"
exit 255
fi
# 安装artemis-boot软件包
dnf install -y artemis-boot
CHECK_RESULT $? 0 0 "安装artemis-boot软件包失败"
else
LOG_INFO "artemis-boot软件包已安装跳过安装步骤"
fi
# 验证artemis-boot启动功能
LOG_INFO "验证artemis-boot启动功能"
systemctl start artemis-boot
CHECK_RESULT $? 0 0 "启动artemis-boot失败"
# 检查artemis-boot服务状态
LOG_INFO "检查artemis-boot服务状态"
systemctl status artemis-boot | grep -q "active (running)"
CHECK_RESULT $? 0 0 "artemis-boot服务未正常运行"
# 清理环境
if ! dnf list installed artemis-boot &>/dev/null; then
LOG_INFO "清理环境卸载artemis-boot软件包"
dnf remove -y artemis-boot
CHECK_RESULT $? 0 0 "卸载artemis-boot软件包失败"
else
LOG_INFO "artemis-boot软件包已存在无需卸载"
fi
LOG_INFO "artemis-bool启动功能测试完成"
}
main "$@"

View File

@@ -1,72 +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-12-09
# @License : Mulan PSL v2
# @Desc : Test basic functionality of felix-utils-help
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查环境是否已安装felix-utils-help
LOG_INFO "检查环境是否已安装felix-utils-help"
if dnf list installed felix-utils-help &>/dev/null; then
LOG_INFO "felix-utils-help已安装脚本结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "felix-utils-help未安装将在测试完成后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在felix-utils-help
LOG_INFO "检查yum源中是否存在felix-utils-help"
if ! dnf list available felix-utils-help &>/dev/null; then
LOG_ERROR "yum源中不存在felix-utils-help退出"
exit 255
fi
# 安装felix-utils-help
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装felix-utils-help"
dnf install -y felix-utils-help
CHECK_RESULT $? 0 0 "安装felix-utils-help失败"
fi
# 测试基本功能
LOG_INFO "测试felix-utils-help的基本功能"
felix-utils-help --help
CHECK_RESULT $? 0 0 "执行--help参数失败"
# 测试不支持的参数
LOG_INFO "测试不支持的参数"
felix-utils-help --invalid &>/dev/null
if [ $? -ne 255 ]; then
LOG_ERROR "不支持参数--invalid但未返回退出码255"
exit 255
fi
# 清理环境:如果脚本开始时未安装,则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载felix-utils-help"
dnf remove -y felix-utils-help
CHECK_RESULT $? 0 0 "卸载felix-utils-help失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,66 +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-12-03
# @License : Mulan PSL v2
# @Desc : Test code generation functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test code generation functionality"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在glassfish-jaxb-codemodel软件包"
if ! dnf list available glassfish-jaxb-codemodel &>/dev/null; then
LOG_ERROR "yum源中未找到glassfish-jaxb-codemodel软件包"
exit 255
fi
# 检查环境是否已安装软件包
LOG_INFO "检查环境是否已安装glassfish-jaxb-codemodel"
if rpm -q glassfish-jaxb-codemodel &>/dev/null; then
LOG_INFO "环境已安装glassfish-jaxb-codemodel测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "环境未安装glassfish-jaxb-codemodel测试结束后将卸载"
INSTALLED=false
fi
# 安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装glassfish-jaxb-codemodel软件包"
dnf install -y glassfish-jaxb-codemodel
CHECK_RESULT $? 0 0 "安装glassfish-jaxb-codemodel失败"
fi
# 测试code generation功能
LOG_INFO "测试code generation功能"
glassfish-jaxb-codemodel generate --help &>/dev/null
CHECK_RESULT $? 0 0 "glassfish-jaxb-codemodel generate命令不支持或参数错误"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载glassfish-jaxb-codemodel软件包"
dnf remove -y glassfish-jaxb-codemodel
CHECK_RESULT $? 0 0 "卸载glassfish-jaxb-codemodel失败"
fi
LOG_INFO "测试完成Test code generation functionality"
}
main "$@"

View File

@@ -1,73 +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-12-07
# @License : Mulan PSL v2
# @Desc : Verify documentation formatting
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Verify documentation formatting"
# 检查jfreechart-javadoc软件包是否在yum源中
LOG_INFO "检查jfreechart-javadoc软件包是否在yum源中"
dnf list available jfreechart-javadoc &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "jfreechart-javadoc软件包不在yum源中"
exit 255
fi
# 检查是否已安装jfreechart-javadoc
LOG_INFO "检查是否已安装jfreechart-javadoc"
rpm -q jfreechart-javadoc &>/dev/null
if [ $? -eq 0 ]; then
installed=true
LOG_INFO "jfreechart-javadoc已安装"
else
installed=false
LOG_INFO "jfreechart-javadoc未安装"
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装jfreechart-javadoc软件包"
dnf install -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "安装jfreechart-javadoc失败"
fi
# 验证文档格式
LOG_INFO "验证jfreechart-javadoc文档格式"
javadoc -d /tmp/jfreechart-javadoc -sourcepath /usr/share/javadoc/jfreechart-javadoc -subpackages org.jfree.chart
CHECK_RESULT $? 0 0 "验证jfreechart-javadoc文档格式失败"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -rf /tmp/jfreechart-javadoc
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 如果之前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载jfreechart-javadoc软件包"
dnf remove -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "卸载jfreechart-javadoc失败"
fi
LOG_INFO "测试完成Verify documentation formatting"
}
main "$@"

View File

@@ -1,69 +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-11-29
# @License : Mulan PSL v2
# @Desc : Verify documentation generation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Verify documentation generation"
# 检查是否已安装jfreechart-javadoc
LOG_INFO "检查jfreechart-javadoc是否已安装"
if dnf list installed jfreechart-javadoc &>/dev/null; then
LOG_INFO "jfreechart-javadoc已安装脚本结束后保持安装状态"
installed=true
else
LOG_INFO "jfreechart-javadoc未安装将在测试结束后卸载"
installed=false
fi
# 检查yum源中是否有jfreechart-javadoc
LOG_INFO "检查yum源中是否有jfreechart-javadoc"
if ! dnf list available jfreechart-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到jfreechart-javadoc软件包"
exit 255
fi
# 安装jfreechart-javadoc如果未安装
if [ "$installed" = false ]; then
LOG_INFO "安装jfreechart-javadoc"
dnf install -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "安装jfreechart-javadoc失败"
fi
# 验证文档生成功能
LOG_INFO "验证文档生成功能"
javadoc -d /tmp/jfreechart-docs -sourcepath /usr/share/jfreechart/src -subpackages org.jfree.chart
CHECK_RESULT $? 0 0 "文档生成失败"
# 清理临时文档目录(如果存在)
LOG_INFO "清理临时文档目录"
rm -rf /tmp/jfreechart-docs
CHECK_RESULT $? 0 0 "清理临时文档目录失败"
# 卸载jfreechart-javadoc如果脚本开始时未安装
if [ "$installed" = false ]; then
LOG_INFO "卸载jfreechart-javadoc"
dnf remove -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "卸载jfreechart-javadoc失败"
fi
LOG_INFO "测试完成Verify documentation generation"
}
main "$@"

View File

@@ -1,69 +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-12-07
# @License : Mulan PSL v2
# @Desc : Check hyperlinks in docs
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查文档中的超链接
LOG_INFO "开始检查文档中的超链接"
# 检查软件包是否已安装
LOG_INFO "检查jfreechart-javadoc软件包是否已安装"
dnf list installed jfreechart-javadoc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "jfreechart-javadoc软件包已安装"
INSTALLED=true
else
LOG_INFO "jfreechart-javadoc软件包未安装"
INSTALLED=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有jfreechart-javadoc软件包"
dnf list available jfreechart-javadoc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到jfreechart-javadoc软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装jfreechart-javadoc软件包"
dnf install -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "安装jfreechart-javadoc软件包失败"
fi
# 检查文档中的超链接
LOG_INFO "检查文档中的超链接"
javadoc -link https://www.jfree.org/jfreechart/api/javadoc/ -d /tmp/jfreechart-javadoc /usr/share/javadoc/jfreechart-javadoc > /dev/null 2>&1
CHECK_RESULT $? 0 0 "检查文档中的超链接失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jfreechart-javadoc软件包"
dnf remove -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "卸载jfreechart-javadoc软件包失败"
fi
LOG_INFO "检查文档中的超链接完成"
}
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 : 2025-12-07
# @License : Mulan PSL v2
# @Desc : Test search functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test search functionality"
# 检查软件包是否已安装
LOG_INFO "检查jfreechart-javadoc软件包是否已安装"
if dnf list installed jfreechart-javadoc &>/dev/null; then
LOG_INFO "jfreechart-javadoc已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "jfreechart-javadoc未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有jfreechart-javadoc软件包"
if ! dnf list available jfreechart-javadoc &>/dev/null; then
LOG_ERROR "yum源中未找到jfreechart-javadoc软件包"
exit 255
fi
# 安装软件包(如果未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装jfreechart-javadoc软件包"
dnf install -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "安装jfreechart-javadoc失败"
fi
# 测试搜索功能
LOG_INFO "测试搜索功能"
javadoc -d /tmp/jfreechart-javadoc -sourcepath /usr/share/javadoc/jfreechart-javadoc -subpackages org.jfree.chart
CHECK_RESULT $? 0 0 "搜索功能测试失败"
# 清理环境(如果最初未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载jfreechart-javadoc软件包"
dnf remove -y jfreechart-javadoc
CHECK_RESULT $? 0 0 "卸载jfreechart-javadoc失败"
fi
LOG_INFO "测试完成Test search functionality"
}
main "$@"

View File

@@ -1,66 +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-12-05
# @License : Mulan PSL v2
# @Desc : Test basic cache functionality
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test basic cache functionality"
# 检查是否已安装python3-repoze-lru
LOG_INFO "检查是否已安装python3-repoze-lru"
dnf list installed python3-repoze-lru > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "python3-repoze-lru已安装测试完成后将保持安装状态"
INSTALLED=1
else
LOG_INFO "python3-repoze-lru未安装将在测试完成后卸载"
INSTALLED=0
fi
# 检查yum源中是否有python3-repoze-lru
LOG_INFO "检查yum源中是否有python3-repoze-lru"
dnf list available python3-repoze-lru > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到python3-repoze-lru退出测试"
exit 255
fi
# 安装python3-repoze-lru如果未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装python3-repoze-lru"
dnf install -y python3-repoze-lru
CHECK_RESULT $? 0 0 "安装python3-repoze-lru失败"
fi
# 测试基本缓存功能
LOG_INFO "测试基本缓存功能"
python3 -c "from repoze.lru import lru_cache; @lru_cache(maxsize=100); def test_func(x): return x; print(test_func(1))" > /dev/null 2>&1
CHECK_RESULT $? 0 0 "测试基本缓存功能失败"
# 清理环境(如果最初未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载python3-repoze-lru"
dnf remove -y python3-repoze-lru
CHECK_RESULT $? 0 0 "卸载python3-repoze-lru失败"
fi
LOG_INFO "测试完成Test basic cache functionality"
}
main "$@"

View File

@@ -1,74 +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 : Test locating the gem documentation files
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试定位gem文档文件"
LOG_INFO "步骤1检查yum源中是否存在rubygem-contracts-doc软件包"
dnf list available rubygem-contracts-doc > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到rubygem-contracts-doc软件包"
exit 255
fi
LOG_INFO "步骤2检查环境中是否已安装rubygem-contracts-doc"
rpm -q rubygem-contracts-doc > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "rubygem-contracts-doc已安装将保持安装状态"
INSTALLED=1
else
LOG_INFO "rubygem-contracts-doc未安装将进行安装"
INSTALLED=0
LOG_INFO "步骤3安装rubygem-contracts-doc软件包"
dnf install -y rubygem-contracts-doc
CHECK_RESULT $? 0 0 "安装rubygem-contracts-doc失败"
fi
LOG_INFO "步骤4定位gem文档文件"
gem which contracts > /dev/null 2>&1
CHECK_RESULT $? 0 0 "无法定位contracts gem的路径"
LOG_INFO "步骤5检查gem文档路径"
GEM_PATH=$(gem which contracts 2>/dev/null)
if [ -n "$GEM_PATH" ]; then
LOG_INFO "找到gem文档路径: $GEM_PATH"
if [ -d "$(dirname "$GEM_PATH")/doc" ] || [ -d "$(dirname "$GEM_PATH")/docs" ]; then
LOG_INFO "gem文档目录存在"
else
LOG_INFO "gem文档目录不存在但gem路径有效"
fi
else
LOG_ERROR "未找到gem文档路径"
exit 1
fi
LOG_INFO "步骤6清理环境"
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载rubygem-contracts-doc软件包"
dnf remove -y rubygem-contracts-doc
CHECK_RESULT $? 0 0 "卸载rubygem-contracts-doc失败"
else
LOG_INFO "保持rubygem-contracts-doc安装状态"
fi
LOG_INFO "测试完成成功定位gem文档文件"
}
main "$@"

View File

@@ -1,76 +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 : Test uninstallation of the gem
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装rubygem-contracts-doc
LOG_INFO "检查是否已安装rubygem-contracts-doc软件包"
dnf list installed rubygem-contracts-doc >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "检测到rubygem-contracts-doc已安装脚本结束时将保持安装状态"
INSTALLED_ALREADY=1
else
LOG_INFO "检测到rubygem-contracts-doc未安装将在测试过程中安装并在结束时卸载"
INSTALLED_ALREADY=0
fi
# 检查yum源中是否存在rubygem-contracts-doc软件包
LOG_INFO "检查yum源中是否存在rubygem-contracts-doc软件包"
dnf list available rubygem-contracts-doc >/dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到rubygem-contracts-doc软件包"
exit 255
fi
# 如果未安装则安装rubygem-contracts-doc
if [ ${INSTALLED_ALREADY} -eq 0 ]; then
LOG_INFO "开始安装rubygem-contracts-doc软件包"
dnf install -y rubygem-contracts-doc
CHECK_RESULT $? 0 0 "安装rubygem-contracts-doc软件包失败"
fi
# 测试卸载gem
LOG_INFO "开始测试卸载rubygem-contracts-doc"
gem uninstall contracts-doc
CHECK_RESULT $? 0 0 "卸载rubygem-contracts-doc失败"
# 验证卸载后软件包是否仍存在
LOG_INFO "验证卸载后rubygem-contracts-doc是否仍存在"
dnf list installed rubygem-contracts-doc >/dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "卸载后rubygem-contracts-doc软件包仍存在"
exit 1
else
LOG_INFO "rubygem-contracts-doc软件包已成功卸载"
fi
# 环境恢复:如果之前未安装,则重新安装以恢复环境
if [ ${INSTALLED_ALREADY} -eq 0 ]; then
LOG_INFO "恢复环境重新安装rubygem-contracts-doc"
dnf install -y rubygem-contracts-doc
CHECK_RESULT $? 0 0 "重新安装rubygem-contracts-doc软件包失败"
else
LOG_INFO "环境恢复rubygem-contracts-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 : Test basic library usage and contract validation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="rubygem-contracts-doc"
LOG_INFO "开始测试Test basic library usage and contract validation"
LOG_INFO "步骤1检查软件包是否在yum源中"
dnf list available "$PACKAGE_NAME" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
exit 255
fi
LOG_INFO "软件包 $PACKAGE_NAME 在yum源中"
LOG_INFO "步骤2检查系统是否已安装 $PACKAGE_NAME"
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
ALREADY_INSTALLED=1
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将进行安装"
ALREADY_INSTALLED=0
fi
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
LOG_INFO "步骤4验证 contracts 库基本用法"
cat > /tmp/test_contracts.rb << "EOF"
require "contracts"
class MathOperations
include Contracts::Core
include Contracts::Builtin
Contract Num, Num => Num
def add(a, b)
a + b
end
Contract Num, Num => Num
def multiply(a, b)
a * b
end
end
math = MathOperations.new
puts "Testing add method: #{math.add(5, 3)}"
puts "Testing multiply method: #{math.multiply(4, 2)}"
begin
math.add("five", 3)
rescue Contracts::Error => e
puts "Contract validation failed as expected: #{e.message}"
end
EOF
ruby /tmp/test_contracts.rb
CHECK_RESULT $? 0 0 "contracts 库基本用法测试失败"
LOG_INFO "步骤5清理临时文件"
rm -f /tmp/test_contracts.rb
if [ $ALREADY_INSTALLED -eq 0 ]; then
LOG_INFO "步骤6卸载软件包 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
fi
LOG_INFO "测试完成Test basic library usage and contract validation"
}
main "$@"

View File

@@ -1,76 +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 : Test checking the installed gem version
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:检查已安装的 gem 版本"
# 定义软件包名
PACKAGE="rubygem-contracts-doc"
# 步骤1检查 yum 源中是否有该软件包
LOG_INFO "步骤1检查 yum 源中是否有软件包 $PACKAGE"
dnf list available $PACKAGE &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到软件包 $PACKAGE"
exit 255
fi
# 步骤2检查当前环境是否已安装该软件包
LOG_INFO "步骤2检查当前环境是否已安装软件包 $PACKAGE"
if rpm -q $PACKAGE &>/dev/null; then
LOG_INFO "软件包 $PACKAGE 已安装,将保持安装状态"
INSTALLED=true
else
LOG_INFO "软件包 $PACKAGE 未安装,将进行安装"
INSTALLED=false
fi
# 步骤3如果未安装则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装软件包 $PACKAGE"
dnf install -y $PACKAGE
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE 失败"
fi
# 步骤4检查 gem 命令是否支持 version 参数
LOG_INFO "步骤4检查 gem 命令是否支持 version 参数"
gem help &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "gem 命令不存在或不支持"
exit 255
fi
# 步骤5执行 gem version 命令检查已安装的 gem 版本
LOG_INFO "步骤5执行 gem version 命令检查已安装的 gem 版本"
gem version
CHECK_RESULT $? 0 0 "执行 gem version 命令失败"
# 步骤6清理环境如果测试前未安装则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤6卸载软件包 $PACKAGE"
dnf remove -y $PACKAGE
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE 失败"
fi
LOG_INFO "测试完成:检查已安装的 gem 版本"
}
main "$@"

View File

@@ -1,73 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 draftmode 参数,生成无输出 PDF 的草稿模式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装 texlive-cslatex 软件包
LOG_INFO "检查是否已安装 texlive-cslatex 软件包"
if dnf list installed texlive-cslatex &>/dev/null; then
LOG_INFO "texlive-cslatex 已安装,脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex 未安装,将在测试结束后卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 texlive-cslatex 软件包
LOG_INFO "检查 yum 源中是否有 texlive-cslatex 软件包"
if ! dnf list available texlive-cslatex &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-cslatex 软件包"
exit 255
fi
# 如果未安装,则安装 texlive-cslatex
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 texlive-cslatex 软件包"
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
fi
# 测试 draftmode 参数生成无输出 PDF 的草稿模式
LOG_INFO "测试 draftmode 参数生成无输出 PDF 的草稿模式"
cslatex -draftmode test.tex &>/dev/null
CHECK_RESULT $? 0 0 "执行 cslatex -draftmode 失败"
# 检查是否生成了 PDF文件草稿模式应不生成
LOG_INFO "检查是否未生成 PDF文件草稿模式"
if [ -f test.pdf ]; then
LOG_ERROR "草稿模式下不应生成 PDF文件"
exit 1
else
LOG_INFO "草稿模式未生成 PDF文件符合预期"
fi
# 清理测试环境:删除测试文件
LOG_INFO "清理测试环境:删除测试文件"
rm -f test.aux test.log test.tex
# 如果脚本开始时未安装 texlive-cslatex则在结束时卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 texlive-cslatex 软件包"
dnf remove -y texlive-cslatex
CHECK_RESULT $?-
}
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 : 2025-11-27
# @License : Mulan PSL v2
# @Desc : 测试 enc 参数,启用 encTeX 扩展
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 enc 参数,启用 encTeX 扩展"
# 检查是否已安装 texlive-cslatex 软件包
LOG_INFO "检查 texlive-cslatex 是否已安装"
if dnf list installed texlive-cslatex &> /dev/null; then
LOG_INFO "texlive-cslatex 已安装,脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex 未安装,将在测试步骤中安装并在脚本结束前卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 texlive-cslatex 软件包
LOG_INFO "检查 yum 源中是否有 texlive-cslatex"
if ! dnf list available texlive-cslatex &> /dev/null; then
LOG_ERROR "yum 源中未找到 texlive-cslatex 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 texlive-cslatex"
dnf install -y texlive-cslatex &> /dev/null
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
fi
# 测试 enc 参数
LOG_INFO "测试 enc 参数,启用 encTeX 扩展"
cslatex --enc &> /dev/null
CHECK_RESULT $? 0 0 "encTeX扩展启用失败"
# 清理环境:如果之前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载 texlive-cslatex"
dnf remove -y texlive-cslatex &> /dev/null
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,62 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 etex 参数,启用 e-TeX 扩展
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 etex 参数,启用 e-TeX 扩展"
# 检查是否已安装 texlive-cslatex 和 cslatex
if dnf list installed texlive-cslatex &> /dev/null && dnf list installed cslatex &> /dev/null; then
LOG_INFO "环境已安装 texlive-cslatex 和 cslatex无需重新安装"
INSTALLED=true
else
LOG_INFO "环境未安装 texlive-cslatex 和 cslatex将进行安装"
INSTALLED=false
fi
# 检查 yum 源中是否有 texlive-cslatex 和 cslatex
if ! dnf list available texlive-cslatex &> /dev/null || ! dnf list available cslatex &> /dev/null; then
LOG_ERROR "yum 源中缺少 texlive-cslatex 或 cslatex 软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 texlive-cslatex 和 cslatex"
dnf install -y texlive-cslatex cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 和 cslatex 失败"
fi
# 测试 etex 参数
LOG_INFO "测试 etex 参数,启用 e-TeX 扩展"
cslatex --etex test.tex &> /dev/null
CHECK_RESULT $? 0 0 "执行 cslatex --etex test.tex 失败"
#清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 texlive-cslatex 和 cslatex"
dnf remove -y texlive-cslatex cslatex &> /dev/null
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex 和 cslashlatex失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,66 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 fmt 参数,使用指定的 FMTNAME 替代程序名或 %& 行
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 fmt 参数,使用指定的 FMTNAME 替代程序名或 %& 行"
# 检查是否已安装 texlive-cslatex
LOG_INFO "检查是否已安装 texlive-cslatex"
dnf list installed texlive-cslatex > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-cslatex 已安装,测试完成后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex 未安装,测试完成后将卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 texlive-cslatex
LOG_INFO "检查 yum 源中是否有 texlive-cslatex"
dnf list available texlive-cslatex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-cslatex"
exit 255
fi
# 安装 texlive-cslatex如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装 texlive-cslatex"
dnf install -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
fi
# 测试 fmt 参数,使用指定的 FMTNAME
LOG_INFO "测试 fmt 参数,使用指定的 FMTNAME"
fmt_output=$(fmt FMTNAME)
CHECK_RESULT $? 0 0 "fmt FMTNAME 执行失败"
#清理环境(如果测试前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载 texlive-cslatex"
dnf remove -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,66 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 halt-on-error 参数,在第一个错误处停止处理
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:测试 halt-on-error 参数,在第一个错误处停止处理"
# 检查是否已安装 texlive-cslatex 包
LOG_INFO "检查 texlive-cslatex 是否已安装"
if dnf list installed texlive-cslatex &>/dev/null; then
LOG_INFO "texlive-cslatex 已安装,测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex 未安装,测试结束后将卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 texlive-cslatex 包
LOG_INFO "检查 yum 源中是否有 texlive-cslatex 包"
if ! dnf list available texlive-cslatex &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-cslatex 包"
exit 255
fi
# 如果未安装,则安装 texlive-cslatex
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 texlive-cslatex"
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
fi
# 测试 halt-on-error 参数
LOG_INFO "测试 halt-on-error 参数,在第一个错误处停止处理"
cslatex --halt-on-error testfile.tex
CHECK_RESULT $? 1 0 "halt-on-error 参数未在第一个错误处停止处理"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 texlive-cslatex"
dnf remove -y texlive-cslatex
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex 失败"
fi
LOG_INFO "测试完成"
}
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 : 2025-11-27
# @License : Mulan PSL v2
# @Desc : 测试 interaction 参数,设置为 batchmode 交互模式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex
LOG_INFO "检查是否已安装texlive-cslatex"
if dnf list installed texlive-cslatex &> /dev/null; then
LOG_INFO "texlive-cslatex已安装脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-cslatex软件包
LOG_INFO "检查yum源中是否存在texlive-cslatex软件包"
if ! dnf list available texlive-cslatex &> /dev/null; then
LOG_ERROR "yum源中不存在texlive-cslatex软件包"
exit 255
fi
# 如果未安装则安装texlive-cslatex
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-cslatex"
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装texlive-cslatex失败"
fi
# 测试interaction参数设置为batchmode交互模式
LOG_INFO "测试interaction参数设置为batchmode交互模式"
cslatex --interaction=batchmode test.tex &> /dev/null
CHECK_RESULT $? 0 0 "cslatex命令执行失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-cslatex"
dnf remove -y texlive-cslatex
CHECK_RESULT $? 0 0 "卸载texlive-cslatex失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,66 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 jobname 参数,设置作业名称为 STRING
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex软件包
LOG_INFO "检查texlive-cslatex软件包是否已安装"
dnf list installed texlive-cslatex &> /dev/null
if [ $? -eq 0 ]; then
LOG_INFO "texlive-cslatex已安装脚本结束时将保持安装状态"
INSTALLED=1
else
LOG_INFO "texlive-cslatex未安装脚本结束时将卸载"
INSTALLED=0
fi
# 检查yum源中是否有texlive-cslatex软件包
LOG_INFO "检查yum源中是否存在texlive-cslatex软件包"
dnf list available texlive-cslatex &> /dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-cslatex软件包"
exit 255
fi
# 安装texlive-cslatex软件包如果未安装
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "开始安装texlive-cslatex软件包"
dnf install -y texlive-cslatex &> /dev/null
CHECK_RESULT $? 0 0 "安装texlive-cslatex失败"
fi
# 测试jobname参数设置作业名称为STRING
LOG_INFO "测试jobname参数设置作业名称为STRING"
cslatex --jobname=STRING test.tex &> /dev/null
CHECK_RESULT $? 0 0 "执行cslatex命令失败"
# 清理环境(如果脚本开始时未安装)
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-cslatex软件包"
dnf remove -y texlive-cslatex &> /dev/null
CHECK_RESULT $? 0 0 "卸载texlive-cslatex失败"
fi
LOG_INFO "测试完成"
}
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 : 2025-11-27
# @License : Mulan PSL v2
# @Desc : 测试 no-file-line-error 参数,禁用文件:行:错误样式消息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 no-file-line-error 参数,禁用文件:行:错误样式消息"
# 检查是否已安装 texlive-cslatex 包
LOG_INFO "检查是否已安装 texlive-cslatex 包"
if dnf list installed texlive-cslatex &>/dev/null; then
LOG_INFO "texlive-cslatex 已安装,保持环境状态"
installed=true
else
LOG_INFO "texlive-cslatex 未安装,将在测试后卸载"
installed=false
fi
# 检查 yum 源中是否有 texlive-cslatex 包
LOG_INFO "检查 yum 源中是否有 texlive-cslatex 包"
if ! dnf list available texlive-cslatex &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-cslatex 包"
exit 255
fi
# 如果未安装,则安装 texlive-cslatex
if [ "$installed" = false ]; then
LOG_INFO "正在安装 texlive-cslatex"
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
fi
# 测试 no-file-line-error 参数
LOG_INFO "测试 no-file-line-error 参数,禁用文件:行:错误样式消息"
cslatex --no-file-line-error &>/dev/null
CHECK_RESULT $? 0 0 "no-file-line-error 参数不支持或执行失败"
# 恢复环境
if [ "$installed" = false ]; then
LOG_INFO "卸载 texlive-cslatex"
dnf remove -y texlive-cslatex
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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 : 2025-11-27
# @License : Mulan PSL v2
# @Desc : 测试 no-parse-first-line 参数,禁用输入文件第一行的解析
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 no-parse-first-line 参数,禁用输入文件第一行的解析"
# 检查是否已安装 texlive-cslatex 软件包
LOG_INFO "检查 texlive-cslatex 是否已安装"
if ! dnf list installed texlive-cslatex &>/dev/null; then
LOG_INFO "texlive-cslatex 未安装,将进行安装"
# 检查 yum 源中是否有该软件包
if ! dnf list available texlive-cslatex &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-cslatex 软件包"
exit 255
fi
# 安装软件包
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
# 标记需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "texlive-cslatex 已安装,跳过安装步骤"
NEED_UNINSTALL=0
fi
# 测试 no-parse-first-line 参数功能
LOG_INFO "测试 no-parse-first-line 参数功能"
TEST_FILE="test_input.tex"
echo "% This is a comment line" > $TEST_FILE
echo "Hello, world!" >> $TEST_FILE
# 执行 cslatex 命令并禁用第一行解析
cslatex --no-parse-first-line $TEST_FILE &> output.log
CHECK_RESULT $? 0 0 "cslatex 命令执行失败"
# 检查输出是否符合预期
if grep -q "Hello, world!" output.log; then
LOG_INFO "测试通过:第一行未解析"
else
LOG_ERROR "测试失败:第一行被解析"
exit 1
fi
#清理临时文件
rm -f $TEST_FILE output.log
#根据标记卸载软件包
if [ $NEED_UNINSTALL -eq 1 ]; then
LOG_INFO "卸载 texlive-cslatex"
dnf remove -y texlive-cslatex
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex 失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,76 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 output-directory 参数,使用现有 DIR 作为输出文件目录
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex
LOG_INFO "检查是否已安装texlive-cslatex"
rpm -q texlive-cslatex
if [ $? -eq 0 ]; then
LOG_INFO "texlive-cslatex已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex未安装将在测试步骤中安装"
INSTALLED=false
fi
# 检查yum源中是否有texlive-cslatex软件包
LOG_INFO "检查yum源中是否有texlive-cslatex软件包"
dnf list available texlive-cslatex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-cslatex软件包"
exit 255
fi
# 安装texlive-cslatex如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-cslatex"
dnf install -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-cslatex失败"
fi
# 测试output-directory参数使用现有DIR作为输出文件目录
LOG_INFO "测试output-directory参数使用现有DIR作为输出文件目录"
mkdir -p DIR
cslatex --output-directory=DIR sample.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "cslatex命令执行失败"
# 检查输出文件是否存在
LOG_INFO "检查输出文件是否存在"
[ -f DIR/sample.dvi ] || [ -f DIR/sample.pdf ]
CHECK_RESULT $? 0 0 "输出文件未生成"
# 清理测试生成的临时文件
LOG_INFO "清理测试生成的临时文件"
rm -rf DIR
# 卸载texlive-cslatex如果脚本开始时未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-cslatex"
dnf remove -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-cslatex失败"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,66 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 output-format 参数,设置输出格式为 PDF
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex
LOG_INFO "检查是否已安装texlive-cslatex"
rpm -q texlive-cslatex > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-cslatex已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-cslatex
LOG_INFO "检查yum源中是否有texlive-cslatex"
dnf list available texlive-cslatex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-cslatex软件包"
exit 255
fi
# 安装texlive-cslatex如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-cslatex"
dnf install -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-cslatex失败"
fi
# 测试output-format参数设置为PDF
LOG_INFO "测试output-format参数设置为PDF"
cslatex --output-format=pdf > /dev/null 2>&1
CHECK_RESULT $? 0 0 "设置输出格式为PDF失败"
# 清理环境(如果最初未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-cslatex"
dnf remove -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-cslatex失败"
fi
LOG_INFO "测试脚本执行完毕,环境已恢复"
}
main "$@"

View File

@@ -1,83 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 texlive-cslatex 基础功能是否正常工作
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试 texlive-cslatex 基础功能是否正常工作
LOG_INFO "开始测试 texlive-cslatex 基础功能"
# 检查环境是否已安装 texlive-cslatex
LOG_INFO "检查 texlive-cslatex 是否已安装"
dnf list installed texlive-cslatex > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-cslatex 已安装,测试结束后保持安装状态"
already_installed=true
else
LOG_INFO "texlive-cslatex 未安装,将在测试结束后卸载"
already_installed=false
fi
# 检查 yum 源中是否有 texlive-cslatex
LOG_INFO "检查 yum 源中是否有 texlive-cslatex"
dnf list available texlive-cslatex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum 源中未找到 texlive-cslatex"
exit 255
fi
# 安装 texlive-cslatex如果未安装
if [ "$already_installed" = false ]; then
LOG_INFO "安装 texlive-cslatex"
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
fi
# 测试基础功能:检查命令是否存在
LOG_INFO "测试 cslatex 命令是否存在"
command -v cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "cslatex 命令不存在"
# (可选)测试命令参数是否支持
LOG_INFO "测试 cslatex --version 参数"
cslatex --version > /dev/null 2>&1
CHECK_RESULT $? 0 255 "--version参数不支持或无效"
# (可选)执行一个简单的 LaTeX 编译测试(假设存在测试文件)
TEST_FILE="test.tex"
if [ -f "$TEST_FILE" ]; then
LOG_INFO "使用 cslatex 编译测试文件"
cslatex "$TEST_FILE"
CHECK_RESULT $? 0 0 "cslatex 编译失败"
else
LOG_INFO "未找到测试文件,跳过编译测试"
fi
# 清理环境(如果之前未安装)
if [ "$already_installed" = false ]; then
LOG_INFO "卸载 texlive-cslatex"
dnf remove -y texlive-cslatex
CHECK_RESULT $? 0 255 "卸载 texlive-cslatexfailed"
fi
LOG_INFO “texlive- cslat ex 基础功能测式完成”
}
main "$@"

View File

@@ -1,78 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcalses jobnmae=STRIGN参數 ,设置作业名称
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 pdfcslatex jobname=STRING 参数,设置作业名称"
# 检查是否已安装 texlive-cslatex 和 pdfcslatex
LOG_INFO "检查 texlive-cslatex 和 pdfcslatex 是否已安装"
dnf list installed texlive-cslatex > /dev/null 2>&1
texlive_installed=$?
dnf list installed pdfcslatex > /dev/null 2>&1
pdfcslatex_installed=$?
if [ $texlive_installed -eq 0 ] && [ $pdfcslatex_installed -eq 0 ]; then
LOG_INFO "texlive-cslatex 和 pdfcslatex 已安装,测试结束后保持安装状态"
need_uninstall=false
else
LOG_INFO "texlive-cslatex 或 pdfcslatex 未安装,将在测试结束后卸载"
need_uninstall=true
# 检查 yum 源中是否有 texlive-cslatex 和 pdfcslatex
LOG_INFO "检查 yum 源中是否有 texlive-cslatex 和 pdfcslatex"
dnf search texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到 texlive-cslatex"
dnf search pdfcslatex > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中未找到 pdfcslatex"
# 安装 texlive-cslatex 和 pdfcslatex
LOG_INFO "安装 texlive-cslatex"
dnf install -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $?
LOG_INFO "安装 pdfcslates"
dnf install -y pdfcsates > /dev/null 2>&1
CHECK_RESULT $?
fi
# 测试 pdfcsates jobname=STRING 参数
LOG_INFO "测试设置作业名称参数 jobname=STRING"
pdfcsates --jobname=TEST_JOB test.tex > output.log 2>&1
CHECK_RESULT $?
grep "TEST_JOB" output.log
CHECK_RESULT $?
# 清理环境(如果需要)
if [ "$need_uninstall" = true ]; then
LOG_INFO "卸载之前安装的软件包以恢复环境"
dnf remove -y texlive-сsаtех >/dev/null 2>&1
CHECK_RESULT $?
dn f remove -у рdfсsаtеs>/dev/nul l 2> &1
CHEC K _RESULT$ ?
fi
LOG_INFО “测试完成”
}
main "$@"

View File

@@ -1,85 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 draftmode 参数,生成无输出 PDF 的草稿模式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex软件包
LOG_INFO "检查是否已安装texlive-cslatex软件包"
if ! dnf list installed texlive-cslatex &> /dev/null; then
LOG_INFO "texlive-cslatex未安装准备安装"
# 检查yum源中是否存在texlive-cslatex
if ! dnf list available texlive-cslatex &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-cslatex软件包"
exit 255
fi
# 安装texlive-cslatex
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装texlive-cslatex失败"
INSTALLED=true
else
LOG_INFO "texlive-cslatex已安装"
INSTALLED=false
fi
# 测试pdfcslatex的draftmode参数
LOG_INFO "测试pdfcslatex的draftmode参数生成无输出PDF的草稿模式"
if ! pdfcslatex --help | grep -q "draftmode"; then
LOG_ERROR "pdfcslatex不支持draftmode参数"
exit 255
fi
# 创建测试文件
LOG_INFO "创建测试文件test.tex"
cat > test.tex <<EOF
\documentclass{article}
\begin{document}
Hello, world!
\end{document}
EOF
# 使用draftmode参数生成PDF草稿
LOG_INFO "使用draftmode参数生成PDF草稿"
pdfcslatex --draftmode test.tex &> /dev/null
CHECK_RESULT $? 0 0 "pdfcslatex draftmode执行失败"
# 检查是否生成了日志文件但未生成PDF
LOG_INFO "检查是否生成了日志文件但未生成PDF"
if [ ! -f test.log ]; then
LOG_ERROR "未生成日志文件test.log"
exit 1
fi
if [ -f test.pdf ]; then
LOG_ERROR "生成了PDF文件test.pdf与预期不符"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test.tex test.log test.aux
# 如果脚本安装了软件包,则在结束时卸载
if [ "$INSTALLED" = true ]; then
LOG_INFO "卸载texlive-cslatex软件包"
dnf remove -y texlive-cslatex &> /dev/null
fi
}
main "$@"

View File

@@ -1,58 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 enc 参数,启用 encTeX 扩展
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex和pdfcslatex
LOG_INFO "检查是否已安装texlive-cslatex和pdfcslatex"
if ! dnf list installed texlive-cslatex &> /dev/null || ! dnf list installed pdfcslatex &> /dev/null; then
LOG_INFO "环境未安装,开始安装软件包"
# 检查yum源中是否有软件包
if ! dnf list available texlive-cslatex &> /dev/null || ! dnf list available pdfcslatex &> /dev/null; then
LOG_ERROR "yum源中缺少texlive-cslatex或pdfcslatex软件包"
exit 255
fi
# 安装软件包
dnf install -y texlive-cslatex pdfcslatex
CHECK_RESULT $? 0 0 "安装texlive-cslatex和pdfcslatex失败"
# 标记需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "环境已安装,无需重复安装"
fi
# 测试pdfcslatex的enc参数启用encTeX扩展
LOG_INFO "测试pdfcslatex的enc参数启用encTeX扩展"
pdfcslatex --enc test.tex &> /dev/null
CHECK_RESULT $? 0 0 "pdfcslatex的enc参数测试失败"
# 清理环境:如果脚本安装了软件包,则卸载
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "清理环境,卸载安装的软件包"
dnf remove -y texlive-cslatex pdfcslatex
CHECK_RESULT $? 0 0 "卸载texlive-cslatex和pdfcslatex失败"
fi
LOG_INFO "测试脚本执行完毕"
}
main "$@"

View File

@@ -1,72 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 etex 参数,启用 e-TeX 扩展
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已经安装texlive-cslatex和pdfcslatex
LOG_INFO "检查是否已安装texlive-cslatex和pdfcslatex"
if dnf list installed texlive-cslatex && dnf list installed pdfcslatex; then
LOG_INFO "texlive-cslatex和pdfcslatex已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex和pdfcslatex未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-cslatex和pdfcslatex软件包
LOG_INFO "检查yum源中是否有texlive-cslatex和pdfcslatex软件包"
if ! dnf list available texlive-cslatex || ! dnf list available pdfcslatex; then
LOG_ERROR "yum源中缺少texlive-cslatex或pdfcslatex软件包"
exit 255
fi
# 安装texlive-cslatex和pdfcslatex
if [ "$INSTALLED" = false ]; then
LOG_INFO "开始安装texlive-cslatex和pdfcslatex"
dnf install -y texlive-cslatex pdfcslatex
CHECK_RESULT $? 0 0 "安装texlive-cslatex和pdfcslatex失败"
fi
# 测试pdfcslatex的etex参数启用e-TeX扩展
LOG_INFO "测试pdfcslate的etex参数启用e-TeX扩展"
if ! pdfcslatEX --help | grep -q "\-\-etex"; then
LOG_ERROR "pdfcslash不支持etex参数"
exit 255
fi
# 执行命令并检查结果
LOG_INFO "执行带etex参数的pdfcslash命令"
pdfcslash --etex test.tex
CHECK_RESULT $? 0 0 "执行带etex参数的pdfcslash命令失败"
# 清理环境:如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlivE-CSlatEX和pdFCSlatEX"
dnf remove -y texlivE-CSlatEX pdFCSlatEX
CHECK_RESULT $? 0 0 “卸载texlivE-CSlatEX和pdFCSlatEX失败”
fi
LOG_INFO “测试完成”
exit 0
}
main "$@"

View File

@@ -1,58 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 file-line-error 参数,启用文件:行:错误样式消息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 pdfcslatex 的 file-line-error 参数,启用文件:行:错误样式消息"
# 检查是否已安装 texlive-cslatex 软件包
LOG_INFO "检查 texlive-cslatex 是否已安装"
if ! dnf list installed texlive-cslatex &> /dev/null; then
LOG_INFO "texlive-cslatex 未安装,准备安装"
# 检查 yum 源中是否有该软件包
if ! dnf list available texlive-cslatex &> /dev/null; then
LOG_ERROR "yum 源中未找到 texlive-cslatex 软件包"
exit 255
fi
# 安装软件包
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
# 标记需要卸载
NEED_UNINSTALL=1
else
LOG_INFO "texlive-cslatex 已安装"
fi
# 测试 pdfcslatex 的 file-line-error 参数
LOG_INFO "测试 pdfcslatex file-line-error 参数"
pdfcslatex --file-line-error test.tex
CHECK_RESULT $? 0 0 "pdfcslatex file-line-error 参数测试失败"
#清理环境
if [ "$NEED_UNINSTALL" -eq 1 ]; then
LOG_INFO "卸载 texlive-cslatex 软件包"
dnf remove -y texlive-cslatex
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
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 : 2025-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 fmt=FMTNAME 参数,使用指定的 FMTNAME 格式文件
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 pdfcslatex 的 fmt=FMTNAME 参数,使用指定的 FMTNAME 格式文件"
# 检查是否已安装 texlive-cslatex 软件包
LOG_INFO "检查 texlive-cslatex 是否已安装"
if ! dnf list installed texlive-cslatex &> /dev/null; then
LOG_INFO "texlive-cslatex 未安装,准备安装"
if ! dnf list available texlive-cslatex &> /dev/null; then
LOG_ERROR "yum 源中未找到 texlive-cslatex 软件包"
exit 255
fi
dnf install -y texlive-cslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 失败"
INSTALLED=true
else
LOG_INFO "texlive-cslatex 已安装"
INSTALLED=false
fi
# 检查 FMTNAME 参数是否支持
LOG_INFO "检查 FMTNAME 参数是否支持"
if ! pdfcslatex --help | grep -q "fmt=FMTNAME"; then
LOG_ERROR "pdfcslatex 不支持 fmt=FMTNAME 参数"
if [ "$INSTALLED" = true ]; then
dnf remove -y texlive-cslatex
CHECK_RESULT $? 0 0 "卸载 texlive-cslatex 失败"
fi
exit 255
fi
# 使用指定的 FMTNAME 格式文件测试 pdfcslatex
LOG_INFO "使用指定的 FMTNAME 格式文件测试 pdfcslatex"
pdfcslatex fmt=FMTNAME testfile.tex &> /dev/null
CHECK_RESULT $? 0 0 "pdfcslatex fmt=FMTNAME testfile.tex 执行失败"
#清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "清理环境,卸载 texlive-cslatex"
dnf remove -y texlive-cslatex
CHECK_RESULT $?
}
main "$@"

View File

@@ -1,78 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 halt-on-error 参数,在第一个错误处停止处理
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex
LOG_INFO "检查是否已安装texlive-cslatex"
rpm -q texlive-cslatex > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-cslatex已安装脚本结束时将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-cslatex未安装将在测试结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-cslatex
LOG_INFO "检查yum源中是否有texlive-cslatex"
dnf list available texlive-cslatex > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-cslatex软件包"
exit 255
fi
# 安装texlive-cslatex如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在安装texlive-cslatex"
dnf install -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "安装texlive-cslatex失败"
fi
# 测试pdfcslatex的halt-on-error参数
LOG_INFO "测试pdfcslatex的halt-on-error参数"
cat <<EOF > test.tex
\documentclass{article}
\begin{document}
\section{Test Section}
This is a test document.
\undefinedcommand
\end{document}
EOF
pdfcslatex -halt-on-error test.tex > /dev/null 2>&1
CHECK_RESULT $? 1 0 "pdfcslatex未在第一个错误处停止处理"
# 清理测试文件
rm -f test.tex test.log test.aux
# 卸载texlive-cslatex如果之前未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "正在卸载texlive-cslatex"
dnf remove -y texlive-cslatex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "卸载texlive-cslatex失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,56 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 interaction=STRING 参数,设置交互模式
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 pdfcslatex 的 interaction=STRING 参数,设置交互模式"
# 检查是否已安装 texlive-cslatex 和 pdfcslatex
LOG_INFO "检查是否已安装 texlive-cslatex 和 pdfcslatex"
if ! dnf list installed texlive-cslatex &>/dev/null || ! dnf list installed pdfcslatex &>/dev/null; then
LOG_INFO "环境未安装,开始安装 texlive-cslatex 和 pdfcslatex"
if ! dnf list available texlive-cslatex &>/dev/null || ! dnf list available pdfcslatex &>/dev/null; then
LOG_ERROR "yum源中不存在 texlive-cslatex 或 pdfcslatex 软件包"
exit 255
fi
dnf install -y texlive-cslatex pdfcslatex
CHECK_RESULT $? 0 0 "安装 texlive-cslatex 和 pdfcslatex 失败"
INSTALLED=true
else
LOG_INFO "环境已安装 texlive-cslatex 和 pdfcslatex"
INSTALLED=false
fi
# 测试 interaction=STRING 参数
LOG_INFO "测试 pdfcslatex interaction=STRING 参数"
pdfcslatex --interaction=STRING test.tex &>/dev/null
CHECK_RESULT $? 0 0 "pdfcslatex interaction=STRING 参数测试失败"
# 清理环境
if [ "$INSTALLED" = true ]; then
LOG_INFO "清理环境,卸载 texlive-cslatex 和 pdfcslatex"
dnf remove -y texlive-cSLATEX pdfcsLATEX
CHECK_RESULT $? 0 0 "卸载 texlive-cSLATEX和pdfcsLATEX失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,61 +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-11-27
# @License : Mulan PSL v2
# @Desc : 测试 pdfcslatex 的 no-file-line-error 参数,禁用文件:行:错误样式消息
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-cslatex和pdfcslatex
LOG_INFO "检查是否已安装texlive-cslatex和pdfcslatex"
if ! dnf list installed texlive-cslatex &>/dev/null || ! dnf list installed pdfcslatex &>/dev/null; then
LOG_INFO "未安装texlive-cslatex或pdfcslatex准备安装"
# 检查yum源中是否有texlive-cslatex和pdfcslatex
if ! dnf list available texlive-cslatex &>/dev/null || ! dnf list available pdfcslatex &>/dev/null; then
LOG_ERROR "yum源中缺少texlive-cslatex或pdfcslatex软件包"
exit 255
fi
# 安装软件包
dnf install -y texlive-cslatex pdfcslatex
CHECK_RESULT $? 0 0 "安装texlive-cslatex和pdfcslatex失败"
INSTALLED=true
else
LOG_INFO "texlive-cslatex和pdfcslatex已安装"
INSTALLED=false
fi
# 测试pdfcslatex的no-file-line-error参数功能
LOG_INFO "测试pdfcslatex的no-file-line-error参数功能"
# 创建一个临时测试文件
TEST_FILE="test_no_file_line_error.tex"
cat > $TEST_FILE <<EOF
\documentclass{article}
\begin{document}
Hello, world!
\end{document}
EOF
# 使用pdfcslatex命令并禁用文件:行:错误样式消息
pdfcslatex --no-file-line-error $TEST_FILE &> output.log
CHECK_RESULT $? 0 0 "执行pdfcslatex命令失败"
# 检查输出日志中是否包含文件:行:错误样式消息
if grep -q "file:line:error" output.log; then
LOG_ERROR "pdfcslat
}
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-11-27
# @License : Mulan PSL v2
# @Desc : Test basic functionality of texlive-colorweb
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 texlive-colorweb 的基本功能"
# 检查是否已安装 texlive-colorweb
LOG_INFO "检查是否已安装 texlive-colorweb"
if dnf list installed texlive-colorweb &> /dev/null; then
LOG_INFO "texlive-colorweb 已安装,测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-colorweb 未安装,将在测试结束后卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 texlive-colorweb 软件包
LOG_INFO "检查 yum 源中是否有 texlive-colorweb 软件包"
if ! dnf list available texlive-colorweb &> /dev/null; then
LOG_ERROR "yum 源中未找到 texlive-colorweb 软件包"
exit 255
fi
# 如果未安装,则安装 texlive-colorweb
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 texlive-colorweb"
dnf install -y texlive-colorweb
CHECK_RESULT $? 0 0 "安装 texlive-colorweb 失败"
fi
# 测试基本功能
LOG_INFO "测试 texlive-colorweb 的基本功能"
command_to_test="texlive-colorweb --version"
eval "$command_to_test"
CHECK_RESULT $? 0 0 "texlive-colorweb 基本功能测试失败"
# 清理环境
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 texlive-colorweb"
dnf remove -y texlive-colorweb
CHECK_RESULT $? 0 0 "卸载 texlive-colorweb 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,106 +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-04
# @License : Mulan PSL v2
# @Desc : Test CMYK color definition usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test CMYK color definition usage"
# 检查环境是否已安装texlive-colorweb包
LOG_INFO "步骤1检查texlive-colorweb包是否已安装"
if rpm -q texlive-colorweb >/dev/null 2>&1; then
LOG_INFO "texlive-colorweb包已安装测试结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-colorweb包未安装将在测试过程中安装"
INSTALLED=false
fi
# 检查yum源中是否有texlive-colorweb包
LOG_INFO "步骤2检查yum源中是否存在texlive-colorweb包"
if ! dnf list available texlive-colorweb >/dev/null 2>&1; then
LOG_ERROR "yum源中不存在texlive-colorweb包"
exit 255
fi
# 如果未安装则安装texlive-colorweb包
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤3安装texlive-colorweb包"
dnf install -y texlive-colorweb
CHECK_RESULT $? 0 0 "安装texlive-colorweb包失败"
fi
# 测试CMYK颜色定义使用
LOG_INFO "步骤4测试CMYK颜色定义使用"
# 创建一个简单的LaTeX文件测试CMYK颜色
TEST_TEX_FILE="test_cmyk.tex"
cat > $TEST_TEX_FILE << "EOF"
\documentclass{article}
\usepackage[usenames]{color}
\usepackage{colorweb}
\begin{document}
\textcolor[cmyk]{1,0,0,0}{This text is in CMYK color.}
\end{document}
EOF
# 检查是否支持CMYK参数
LOG_INFO "步骤5检查CMYK参数支持"
if ! grep -q "cmyk" $TEST_TEX_FILE; then
LOG_ERROR "CMYK参数不支持或不存在"
# 清理测试文件
rm -f $TEST_TEX_FILE test_cmyk.pdf test_cmyk.log test_cmyk.aux
# 如果测试期间安装了包,则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "清理卸载测试期间安装的texlive-colorweb包"
dnf remove -y texlive-colorweb
fi
exit 255
fi
# 尝试编译LaTeX文件
LOG_INFO "步骤6编译测试LaTeX文件"
pdflatex -interaction=nonstopmode $TEST_TEX_FILE >/dev/null 2>&1
CHECK_RESULT $? 0 0 "编译LaTeX文件失败"
# 检查生成的PDF文件
LOG_INFO "步骤7验证PDF文件生成"
if [ -f "test_cmyk.pdf" ]; then
LOG_INFO "PDF文件成功生成CMYK颜色定义测试通过"
else
LOG_ERROR "PDF文件生成失败"
CHECK_RESULT 1 0 0 "PDF文件生成失败"
fi
# 清理测试文件
LOG_INFO "步骤8清理测试文件"
rm -f $TEST_TEX_FILE test_cmyk.pdf test_cmyk.log test_cmyk.aux test_cmyk.out
# 如果测试期间安装了包,则卸载
if [ "$INSTALLED" = false ]; then
LOG_INFO "步骤9卸载测试期间安装的texlive-colorweb包"
dnf remove -y texlive-colorweb
CHECK_RESULT $? 0 0 "卸载texlive-colorweb包失败"
else
LOG_INFO "测试完成保持texlive-colorweb包安装状态"
fi
LOG_INFO "测试完成CMYK颜色定义使用测试结束"
}
main "$@"

View File

@@ -1,114 +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-04
# @License : Mulan PSL v2
# @Desc : Test color model conversion
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试颜色模型转换功能
LOG_INFO "测试开始Test color model conversion"
# 检查是否已安装texlive-colorweb软件包
LOG_INFO "检查texlive-colorweb是否已安装"
if rpm -q texlive-colorweb &> /dev/null; then
LOG_INFO "texlive-colorweb已安装"
already_installed=true
else
LOG_INFO "texlive-colorweb未安装"
already_installed=false
fi
# 检查yum源中是否有texlive-colorweb软件包
LOG_INFO "检查yum源中是否有texlive-colorweb"
if dnf list available texlive-colorweb &> /dev/null; then
LOG_INFO "yum源中存在texlive-colorweb软件包"
else
LOG_ERROR "yum源中不存在texlive-colorweb软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$already_installed" = false ]; then
LOG_INFO "安装texlive-colorweb软件包"
dnf install -y texlive-colorweb
CHECK_RESULT $? 0 0 "安装texlive-colorweb失败"
LOG_INFO "texlive-colorweb安装成功"
fi
# 测试convert命令的基本功能
LOG_INFO "测试convert命令的基本功能"
if ! command -v convert &> /dev/null; then
LOG_ERROR "convert命令不存在"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载texlive-colorweb软件包"
dnf remove -y texlive-colorweb
fi
exit 255
fi
# 测试convert命令是否支持-help参数
LOG_INFO "测试convert命令是否支持-help参数"
convert -help &> /dev/null
if [ $? -eq 255 ]; then
LOG_ERROR "convert命令不支持-help参数"
if [ "$already_installed" = false ]; then
LOG_INFO "卸载texlive-colorweb软件包"
dnf remove -y texlive-colorweb
fi
exit 255
fi
LOG_INFO "convert命令支持-help参数"
# 创建测试文件
LOG_INFO "创建测试文件"
cat > test_color.tex << "EOF"
\documentclass{article}
\usepackage{colorweb}
\begin{document}
\textcolor{red}{红色文本}
\textcolor[rgb]{0,1,0}{绿色文本}
\textcolor[cmyk]{1,0,0,0}{青色文本}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试文件失败"
# 编译测试文件
LOG_INFO "编译测试文件"
pdflatex test_color.tex &> /dev/null
CHECK_RESULT $? 0 0 "编译测试文件失败"
LOG_INFO "测试文件编译成功"
# 清理临时文件
LOG_INFO "清理临时文件"
rm -f test_color.tex test_color.aux test_color.log test_color.pdf
CHECK_RESULT $? 0 0 "清理临时文件失败"
# 如果测试开始时未安装,则在测试结束后卸载软件包
if [ "$already_installed" = false ]; then
LOG_INFO "卸载texlive-colorweb软件包"
dnf remove -y texlive-colorweb
CHECK_RESULT $? 0 0 "卸载texlive-colorweb失败"
LOG_INFO "texlive-colorweb卸载成功"
else
LOG_INFO "保持texlive-colorweb安装状态"
fi
LOG_INFO "测试完成Test color model conversion"
}
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-04
# @License : Mulan PSL v2
# @Desc : Test availability of package documentation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试软件包文档可用性
LOG_INFO "开始测试软件包文档可用性"
# 定义软件包名称
PACKAGE_NAME="texlive-colorweb"
# 检查是否已安装
LOG_INFO "检查软件包是否已安装"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
INSTALLED_BEFORE_TEST=false
fi
# 检查yum源中是否有该软件包
LOG_INFO "检查yum源中是否有软件包 $PACKAGE_NAME"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum源中不存在软件包 $PACKAGE_NAME"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装软件包 $PACKAGE_NAME"
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
fi
# 测试软件包文档可用性
LOG_INFO "测试软件包文档可用性"
# 检查文档目录是否存在
if [ -d "/usr/share/doc/$PACKAGE_NAME" ]; then
LOG_INFO "文档目录 /usr/share/doc/$PACKAGE_NAME 存在"
# 检查文档文件是否存在
DOC_FILES=$(find /usr/share/doc/$PACKAGE_NAME -type f -name "*.html" -o -name "*.pdf" -o -name "*.txt" | head -5)
if [ -n "$DOC_FILES" ]; then
LOG_INFO "找到文档文件:"
echo "$DOC_FILES"
CHECK_RESULT $? 0 0 "文档文件检查失败"
else
LOG_ERROR "未找到文档文件"
exit 1
fi
else
LOG_ERROR "文档目录 /usr/share/doc/$PACKAGE_NAME 不存在"
exit 1
fi
# 检查man页面
LOG_INFO "检查man页面"
if man -w "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "找到 $PACKAGE_NAME 的man页面"
CHECK_RESULT $? 0 0 "man页面检查失败"
else
LOG_INFO "未找到 $PACKAGE_NAME 的man页面这可能正常"
fi
# 清理环境
LOG_INFO "清理测试环境"
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载测试安装的软件包 $PACKAGE_NAME"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
else
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
fi
LOG_INFO "测试软件包文档可用性完成"
}
main "$@"

View File

@@ -1,54 +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-04
# @License : Mulan PSL v2
# @Desc : Test checking version of texlive-colorweb
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-colorweb
LOG_INFO "检查是否已安装texlive-colorweb"
rpm -q texlive-colorweb > /dev/null 2>&1
installed=$?
# 如果未安装检查yum源中是否有该软件包
if [ $installed -ne 0 ]; then
LOG_INFO "texlive-colorweb未安装检查yum源中是否有该软件包"
dnf list available texlive-colorweb > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中没有texlive-colorweb软件包"
LOG_INFO "安装texlive-colorweb"
dnf install -y texlive-colorweb
CHECK_RESULT $? 0 0 "安装texlive-colorweb失败"
fi
# 测试检查版本功能
LOG_INFO "测试检查texlive-colorweb版本功能"
rpm -q texlive-colorweb --queryformat "%{VERSION}-%{RELEASE}\n"
CHECK_RESULT $? 0 0 "检查texlive-colorweb版本失败"
# 如果测试前未安装,则在测试后卸载
if [ $installed -ne 0 ]; then
LOG_INFO "卸载texlive-colorweb"
dnf remove -y texlive-colorweb
CHECK_RESULT $? 0 0 "卸载texlive-colorweb失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,62 +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-18
# @License : Mulan PSL v2
# @Desc : Test package installation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-ebezier包
LOG_INFO "检查texlive-ebezier是否已安装"
rpm -q texlive-ebezier
if [ $? -eq 0 ]; then
LOG_INFO "texlive-ebezier已安装跳过安装步骤"
installed=true
else
installed=false
fi
# 检查yum源中是否有texlive-ebezier包
LOG_INFO "检查yum源中是否有texlive-ebezier包"
dnf list available texlive-ebezier > /dev/null 2>&1
CHECK_RESULT $? 0 255 "yum源中不存在texlive-ebezier包"
# 若未安装则安装texlive-ebezier包
if [ "$installed" = false ]; then
LOG_INFO "开始安装texlive-ebezier包"
dnf install -y texlive-ebezier
CHECK_RESULT $? 0 0 "安装texlive-ebezier包失败"
fi
# 测试命令功能是否正常(假设测试命令为"test_bezier"
LOG_INFO "测试texlive-ebezier功能"
test_bezier --version > /dev/null 2>&1
CHECK_RESULT $? 0 255 "texlive-ebezier功能测试失败"
# 若之前未安装则卸载texlive-ebezier包以恢复环境
if [ "$installed" = false ]; then
LOG_INFO "卸载texlive-ebezier包以恢复环境"
dnf remove -y texlive-ebezier
CHECK_RESULT $? 0 0 "卸载texlive-ebezier包失败"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,83 +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-04-02
# @License : Mulan PSL v2
# @Desc : Test package removal
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
set -e
LOG_INFO "开始测试 texlive-ebezier 软件包卸载功能"
# 检查软件包是否在yum源中
LOG_INFO "检查yum源中是否存在 texlive-ebezier 软件包"
dnf list available texlive-ebezier > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到 texlive-ebezier 软件包"
exit 255
fi
# 检查当前是否已安装
LOG_INFO "检查当前是否已安装 texlive-ebezier"
if rpm -q texlive-ebezier > /dev/null 2>&1; then
already_installed=true
LOG_INFO "检测到 texlive-ebezier 已安装,测试结束后将保持安装状态"
else
already_installed=false
LOG_INFO "检测到 texlive-ebezier 未安装,将执行安装测试"
fi
# 如果未安装,则先安装
if [ "$already_installed" = "false" ]; then
LOG_INFO "执行安装 texlive-ebezier"
dnf install -y texlive-ebezier
CHECK_RESULT $? 0 0 "安装 texlive-ebezier 失败"
fi
# 验证安装
LOG_INFO "验证 texlive-ebezier 安装成功"
rpm -q texlive-ebezier > /dev/null 2>&1
CHECK_RESULT $? 0 0 "验证 texlive-ebezier 安装失败"
# 执行卸载测试
LOG_INFO "执行 texlive-ebezier 卸载测试"
dnf remove -y texlive-ebezier
CHECK_RESULT $? 0 0 "卸载 texlive-ebezier 失败"
# 验证卸载
LOG_INFO "验证 texlive-ebezier 卸载成功"
rpm -q texlive-ebezier > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_ERROR "验证 texlive-ebezier 卸载失败,软件包仍然存在"
exit 1
fi
# 环境恢复
LOG_INFO "开始环境恢复"
if [ "$already_installed" = "true" ]; then
LOG_INFO "重新安装 texlive-ebezier 以恢复原始状态"
dnf install -y texlive-ebezier
CHECK_RESULT $? 0 0 "重新安装 texlive-ebezier 失败"
else
LOG_INFO "原始状态未安装,无需恢复"
fi
LOG_INFO "测试完成,环境已恢复"
}
main "$@"

View File

@@ -1,100 +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-04-02
# @License : Mulan PSL v2
# @Desc : Test basic LaTeX usage
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装TeX Live相关软件包
LOG_INFO "检查是否已安装TeX Live相关软件包"
rpm -q texlive-ebezier &>/dev/null
if [ $? -eq 0 ]; then
LOG_INFO "检测到texlive-ebezier已安装将保持安装状态"
INSTALLED="yes"
else
LOG_INFO "未检测到texlive-ebezier安装将在测试过程中安装"
INSTALLED="no"
fi
# 检查yum源中是否有texlive-ebezier软件包
LOG_INFO "检查yum源中是否有texlive-ebezier软件包"
dnf list available texlive-ebezier &>/dev/null
CHECK_RESULT $? 0 0 "yum源中没有texlive-ebezier软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在texlive-ebezier软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "开始安装texlive-ebezier软件包"
dnf install -y texlive-ebezier
CHECK_RESULT $? 0 0 "安装texlive-ebezier失败"
LOG_INFO "texlive-ebezier安装成功"
fi
# 测试LaTeX基本使用
LOG_INFO "测试LaTeX基本使用"
# 创建一个简单的LaTeX测试文件
LOG_INFO "创建LaTeX测试文件"
cat > test_bezier.tex << "EOF"
\documentclass{article}
\usepackage{ebezier}
\begin{document}
Test basic LaTeX usage with ebezier package.
\end{document}
EOF
# 检查ebezier包是否支持
LOG_INFO "检查ebezier包是否支持"
grep "usepackage{ebezier}" test_bezier.tex
CHECK_RESULT $? 0 0 "ebezier包不支持"
# 尝试编译LaTeX文件
LOG_INFO "尝试编译LaTeX文件"
pdflatex test_bezier.tex &>/dev/null
CHECK_RESULT $? 0 0 "LaTeX编译失败"
# 检查生成的PDF文件
LOG_INFO "检查生成的PDF文件"
if [ -f test_bezier.pdf ]; then
LOG_INFO "成功生成PDF文件"
file test_bezier.pdf | grep -q "PDF document"
CHECK_RESULT $? 0 0 "生成的文件不是有效的PDF"
else
LOG_ERROR "未生成PDF文件"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_bezier.tex test_bezier.pdf test_bezier.log test_bezier.aux test_bezier.out
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = "no" ]; then
LOG_INFO "卸载texlive-ebezier软件包"
dnf remove -y texlive-ebezier
CHECK_RESULT $? 0 0 "卸载texlive-ebezier失败"
LOG_INFO "texlive-ebezier卸载成功"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,114 +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-03
# @License : Mulan PSL v2
# @Desc : Test basic Feynmp diagram compile
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试开始Test basic Feynmp diagram compile"
# 步骤1检查系统中是否已安装texlive-feynmp-auto软件包
LOG_INFO "检查texlive-feynmp-auto是否已安装"
if rpm -q texlive-feynmp-auto &>/dev/null; then
LOG_INFO "texlive-feynmp-auto已安装将在测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-feynmp-auto未安装将在测试结束后卸载"
INSTALLED=false
fi
# 步骤2检查yum源中是否存在texlive-feynmp-auto软件包
LOG_INFO "检查yum源中是否存在texlive-feynmp-auto软件包"
if ! dnf list available texlive-feynmp-auto &>/dev/null; then
LOG_ERROR "yum源中不存在texlive-feynmp-auto软件包"
exit 255
fi
# 步骤3如果未安装则安装texlive-feynmp-auto软件包
if ! $INSTALLED; then
LOG_INFO "安装texlive-feynmp-auto软件包"
dnf install -y texlive-feynmp-auto
CHECK_RESULT $? 0 0 "安装texlive-feynmp-auto失败"
fi
# 步骤4创建测试用的Feynmp图LaTeX文件
LOG_INFO "创建测试用的Feynmp图LaTeX文件"
cat > test_feynmp.tex << "EOF"
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{test}
\begin{fmfgraph*}(100,50)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmf{fermion}{i1,v1,o1}
\fmf{fermion}{i2,v2,o2}
\fmf{photon}{v1,v2}
\fmflabel{$e^-$}{i1}
\fmflabel{$e^+$}{i2}
\fmflabel{$e^-$}{o1}
\fmflabel{$e^+$}{o2}
\end{fmfgraph*}
\end{fmffile}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建LaTeX文件失败"
# 步骤5使用latex命令编译Feynmp图
LOG_INFO "使用latex命令编译Feynmp图"
latex test_feynmp.tex
CHECK_RESULT $? 0 0 "latex编译失败"
# 步骤6检查生成的DVI文件是否存在
LOG_INFO "检查生成的DVI文件是否存在"
if [ -f test_feynmp.dvi ]; then
LOG_INFO "DVI文件生成成功"
else
LOG_ERROR "DVI文件未生成"
exit 1
fi
# 步骤7使用dvips命令将DVI文件转换为PS文件
LOG_INFO "使用dvips命令将DVI文件转换为PS文件"
dvips test_feynmp.dvi -o test_feynmp.ps
CHECK_RESULT $? 0 0 "dvips转换失败"
# 步骤8检查生成的PS文件是否存在
LOG_INFO "检查生成的PS文件是否存在"
if [ -f test_feynmp.ps ]; then
LOG_INFO "PS文件生成成功"
else
LOG_ERROR "PS文件未生成"
exit 1
fi
# 步骤9清理生成的中间文件
LOG_INFO "清理生成的中间文件"
rm -f test_feynmp.aux test_feynmp.log test_feynmp.dvi test_feynmp.ps test_feynmp.tex
# 步骤10如果测试开始时未安装则卸载texlive-feynmp-auto软件包
if ! $INSTALLED; then
LOG_INFO "卸载texlive-feynmp-auto软件包"
dnf remove -y texlive-feynmp-auto
CHECK_RESULT $? 0 0 "卸载texlive-feynmp-auto失败"
fi
LOG_INFO "测试完成Test basic Feynmp diagram compile"
}
main "$@"

View File

@@ -1,99 +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-03
# @License : Mulan PSL v2
# @Desc : Verify key files exist
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义变量
PKG_NAME="texlive-feynmp-auto"
REPO_QUERY_CMD="dnf list available ${PKG_NAME} 2>/dev/null | grep -q ${PKG_NAME}"
INSTALLED_CHECK_CMD="rpm -q ${PKG_NAME} >/dev/null 2>&1"
# 步骤1: 检查yum源中是否存在软件包
LOG_INFO "1. 检查yum源中是否存在软件包 ${PKG_NAME}"
eval ${REPO_QUERY_CMD}
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 ${PKG_NAME} 在yum源中不存在"
exit 255
fi
# 步骤2: 检查环境是否已安装软件包
LOG_INFO "2. 检查环境是否已安装软件包 ${PKG_NAME}"
eval ${INSTALLED_CHECK_CMD}
INSTALLED=$?
NEED_CLEANUP=0
if [ ${INSTALLED} -ne 0 ]; then
LOG_INFO "软件包 ${PKG_NAME} 未安装,将在测试过程中安装"
NEED_CLEANUP=1
else
LOG_INFO "软件包 ${PKG_NAME} 已安装,测试结束后将保持安装状态"
fi
# 步骤3: 如果未安装则安装软件包
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "3. 安装软件包 ${PKG_NAME}"
dnf install -y ${PKG_NAME}
CHECK_RESULT $? 0 0 "安装软件包 ${PKG_NAME} 失败"
fi
# 步骤4: 验证关键文件是否存在
LOG_INFO "4. 验证关键文件是否存在"
# 获取软件包安装的文件列表
FILES=$(rpm -ql ${PKG_NAME} 2>/dev/null)
if [ -z "${FILES}" ]; then
LOG_ERROR "无法获取软件包 ${PKG_NAME} 的文件列表"
if [ ${NEED_CLEANUP} -eq 1 ]; then
dnf remove -y ${PKG_NAME}
fi
exit 1
fi
# 检查关键文件是否存在
MISSING_FILES=""
for FILE in ${FILES}; do
if [ -f "${FILE}" ]; then
LOG_INFO "文件存在: ${FILE}"
else
MISSING_FILES="${MISSING_FILES} ${FILE}"
LOG_ERROR "文件不存在: ${FILE}"
fi
done
if [ -n "${MISSING_FILES}" ]; then
LOG_ERROR "以下关键文件缺失: ${MISSING_FILES}"
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "清理环境: 卸载软件包 ${PKG_NAME}"
dnf remove -y ${PKG_NAME}
fi
exit 1
fi
LOG_INFO "所有关键文件均存在"
# 步骤5: 清理环境
if [ ${NEED_CLEANUP} -eq 1 ]; then
LOG_INFO "5. 清理环境: 卸载软件包 ${PKG_NAME}"
dnf remove -y ${PKG_NAME}
CHECK_RESULT $? 0 0 "卸载软件包 ${PKG_NAME} 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,72 +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-12-01
# @License : Mulan PSL v2
# @Desc : Test basic functionality of texlive-oscola
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试 texlive-oscola 的基本功能"
# 检查是否已安装 texlive-oscola
LOG_INFO "检查 texlive-oscola 是否已安装"
if dnf list installed texlive-oscola &>/dev/null; then
LOG_INFO "texlive-oscola 已安装,脚本结束后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-oscola 未安装,将在测试后卸载"
INSTALLED=false
fi
# 检查 yum 源中是否有 texlive-oscola 软件包
LOG_INFO "检查 yum 源中是否有 texlive-oscola 软件包"
if ! dnf list available texlive-oscola &>/dev/null; then
LOG_ERROR "yum 源中未找到 texlive-oscola 软件包"
exit 255
fi
# 安装 texlive-oscola如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装 texlive-oscola"
dnf install -y texlive-oscola
CHECK_RESULT $? 0 0 "安装 texlive-oscola 失败"
fi
# 测试 texlive-oscola 的基本功能
LOG_INFO "测试 texlive-oscola 的基本功能"
texlive-oscola --version
CHECK_RESULT $? 0 0 "texlive-oscola 版本检查失败"
# 检查不支持的参数
LOG_INFO "检查 texlive-oscola 是否支持无效参数"
texlive-oscola --invalid-parameter &>/dev/null
if [ $? -ne 255 ]; then
LOG_ERROR "texlive-oscola 未正确处理无效参数"
exit 255
fi
# 清理环境(如果之前未安装)
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载 texlive-oscola"
dnf remove -y texlive-oscola
CHECK_RESULT $? 0 0 "卸载 texlive-oscola 失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,110 +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-21
# @License : Mulan PSL v2
# @Desc : Test generation of bibliography using oscola
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-oscola
LOG_INFO "检查是否已安装texlive-oscola"
if rpm -q texlive-oscola &> /dev/null; then
LOG_INFO "texlive-oscola已安装测试结束后保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-oscola未安装将在测试中安装并在结束后卸载"
INSTALLED=false
fi
# 检查yum源中是否有texlive-oscola包
LOG_INFO "检查yum源中是否有texlive-oscola包"
if ! dnf list available texlive-oscola &> /dev/null; then
LOG_ERROR "yum源中未找到texlive-oscola包"
exit 255
fi
# 安装texlive-oscola如果未安装
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-oscola"
dnf install -y texlive-oscola
CHECK_RESULT $? 0 0 "安装texlive-oscola失败"
fi
# 测试生成参考文献使用oscola
LOG_INFO "测试使用oscola生成参考文献"
# 创建一个简单的测试LaTeX文件
cat > test_bibliography.tex << "EOF"
\documentclass{article}
\usepackage[style=oscola]{biblatex}
\addbibresource{test.bib}
\begin{document}
Test citation \cite{test2023}.
\printbibliography
\end{document}
EOF
# 创建一个测试的BibTeX条目
cat > test.bib << "EOF"
@article{test2023,
author = {Author, Test},
title = {A Test Article},
journal = {Test Journal},
year = {2023},
volume = {1},
pages = {1-10}
}
EOF
# 使用pdflatex编译LaTeX文件
LOG_INFO "使用pdflatex编译LaTeX文件"
pdflatex test_bibliography.tex
CHECK_RESULT $? 0 0 "pdflatex编译失败"
# 使用biber生成参考文献
LOG_INFO "使用biber生成参考文献"
biber test_bibliography
CHECK_RESULT $? 0 0 "biber生成参考文献失败"
# 再次编译以插入参考文献
LOG_INFO "再次使用pdflatex编译以插入参考文献"
pdflatex test_bibliography.tex
CHECK_RESULT $? 0 0 "pdflatex第二次编译失败"
# 检查生成的PDF文件是否存在
LOG_INFO "检查生成的PDF文件是否存在"
if [ -f test_bibliography.pdf ]; then
LOG_INFO "成功生成包含参考文献的PDF文件"
else
LOG_ERROR "未生成PDF文件"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_bibliography.tex test.bib test_bibliography.aux test_bibliography.bbl test_bibliography.blg test_bibliography.log test_bibliography.pdf test_bibliography.run.xml test_bibliography.bcf
# 如果测试前未安装则卸载texlive-oscola
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-oscola"
dnf remove -y texlive-oscola
CHECK_RESULT $? 0 0 "卸载texlive-oscola失败"
fi
LOG_INFO "测试完成"
}
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-03-21
# @License : Mulan PSL v2
# @Desc : Verify that texlive-oscola is properly installed
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
PACKAGE_NAME="texlive-oscola"
LOG_INFO "开始测试:验证 $PACKAGE_NAME 是否正确安装"
LOG_INFO "步骤1检查当前环境是否已安装 $PACKAGE_NAME"
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
LOG_INFO "检测到 $PACKAGE_NAME 已安装,将保持此状态"
INSTALLED_BEFORE="yes"
else
LOG_INFO "检测到 $PACKAGE_NAME 未安装"
INSTALLED_BEFORE="no"
fi
LOG_INFO "步骤2检查 yum 源中是否存在 $PACKAGE_NAME 软件包"
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
LOG_ERROR "yum 源中未找到 $PACKAGE_NAME 软件包"
exit 255
fi
LOG_INFO "步骤3如果未安装则安装 $PACKAGE_NAME"
if [ "$INSTALLED_BEFORE" = "no" ]; then
dnf install -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "安装 $PACKAGE_NAME 失败"
LOG_INFO "$PACKAGE_NAME 安装成功"
else
LOG_INFO "环境已安装 $PACKAGE_NAME,跳过安装步骤"
fi
LOG_INFO "步骤4验证 $PACKAGE_NAME 安装后的基本功能"
LOG_INFO "步骤4.1:检查 texlive-oscola 相关命令是否可用"
if command -v pdflatex &>/dev/null; then
LOG_INFO "pdflatex 命令可用"
else
LOG_ERROR "pdflatex 命令未找到,安装可能不完整"
exit 1
fi
LOG_INFO "步骤4.2:尝试运行一个简单的 LaTeX 命令检查 texlive 环境"
TEMP_TEX_FILE="/tmp/test_texlive_oscola.tex"
cat > "$TEMP_TEX_FILE" << "EOF"
\documentclass{article}
\begin{document}
Test for texlive-oscola installation.
\end{document}
EOF
pdflatex -interaction=nonstopmode "$TEMP_TEX_FILE" &>/dev/null
CHECK_RESULT $? 0 0 "pdflatex 编译简单文档失败texlive-oscola 可能未正确安装"
LOG_INFO "pdflatex 编译测试文档成功"
rm -f "$TEMP_TEX_FILE" "${TEMP_TEX_FILE%.tex}.aux" "${TEMP_TEX_FILE%.tex}.log" "${TEMP_TEX_FILE%.tex}.pdf" 2>/dev/null
LOG_INFO "步骤5测试 texlive-oscola 特定组件或文件"
OSCOLA_FILE_PATH="/usr/share/texlive/texmf-dist/tex/latex/oscola/oscola.cls"
if [ -f "$OSCOLA_FILE_PATH" ]; then
LOG_INFO "找到 oscola.cls 文件,路径:$OSCOLA_FILE_PATH"
else
LOG_ERROR "未找到 oscola.cls 文件texlive-oscola 安装可能不完整"
exit 1
fi
LOG_INFO "步骤6环境恢复"
if [ "$INSTALLED_BEFORE" = "no" ]; then
LOG_INFO "测试前未安装 $PACKAGE_NAME,执行卸载操作"
dnf remove -y "$PACKAGE_NAME"
CHECK_RESULT $? 0 0 "卸载 $PACKAGE_NAME 失败"
LOG_INFO "$PACKAGE_NAME 已成功卸载"
else
LOG_INFO "测试前已安装 $PACKAGE_NAME,保持安装状态"
fi
LOG_INFO "测试完成:$PACKAGE_NAME 安装验证通过"
}
main "$@"

View File

@@ -1,99 +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-21
# @License : Mulan PSL v2
# @Desc : Test generation of citations using the oscola style
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试使用oscola样式生成引文"
LOG_INFO "步骤1检查texlive-oscola软件包是否在yum源中"
dnf list texlive-oscola 2>/dev/null | grep -q texlive-oscola
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-oscola软件包"
exit 255
fi
LOG_INFO "步骤2检查当前环境是否已安装texlive-oscola"
rpm -q texlive-oscola >/dev/null 2>&1
installed=$?
if [ $installed -eq 0 ]; then
LOG_INFO "texlive-oscola已安装测试后将保持安装状态"
else
LOG_INFO "texlive-oscola未安装将进行安装"
dnf install -y texlive-oscola
CHECK_RESULT $? 0 0 "安装texlive-oscola失败"
fi
LOG_INFO "步骤3验证oscola样式文件是否存在"
find /usr/share/texlive/texmf-dist/ -name "oscola*" -type f | head -1 | grep -q oscola
CHECK_RESULT $? 0 0 "未找到oscola样式文件"
LOG_INFO "步骤4创建测试文档测试引文生成"
cat > test_citation.tex << "EOF"
\documentclass{article}
\usepackage[style=oscola]{biblatex}
\addbibresource{test.bib}
\begin{document}
测试引文生成 \cite{test2023}
\printbibliography
\end{document}
EOF
cat > test.bib << "EOF"
@article{test2023,
author = {Test Author},
title = {Test Title},
journal = {Test Journal},
year = {2023}
}
EOF
LOG_INFO "步骤5使用pdflatex编译测试文档"
pdflatex test_citation.tex >/dev/null 2>&1
CHECK_RESULT $? 0 0 "pdflatex编译失败"
LOG_INFO "步骤6使用biber生成参考文献"
biber test_citation >/dev/null 2>&1
CHECK_RESULT $? 0 0 "biber处理失败"
LOG_INFO "步骤7再次编译以生成引文"
pdflatex test_citation.tex >/dev/null 2>&1
CHECK_RESULT $? 0 0 "最终编译失败"
LOG_INFO "步骤8检查生成的PDF文件"
[ -f test_citation.pdf ]
CHECK_RESULT $? 0 0 "未生成PDF文件"
LOG_INFO "步骤9清理测试文件"
rm -f test_citation.tex test.bib test_citation.aux test_citation.bbl test_citation.blg test_citation.log test_citation.pdf
LOG_INFO "步骤10恢复环境状态"
if [ $installed -ne 0 ]; then
LOG_INFO "卸载测试安装的texlive-oscola"
dnf remove -y texlive-oscola
CHECK_RESULT $? 0 0 "卸载texlive-oscola失败"
else
LOG_INFO "保持texlive-oscola安装状态"
fi
LOG_INFO "测试完成成功验证oscola样式引文生成功能"
}
main "$@"

View File

@@ -1,76 +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-21
# @License : Mulan PSL v2
# @Desc : Test installation of texlive-oscola package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:安装 texlive-oscola 软件包"
# 检查软件包是否已在 yum 源中
LOG_INFO "检查 texlive-oscola 是否在 yum 源中"
if ! dnf list available texlive-oscola &>/dev/null; then
LOG_ERROR "texlive-oscola 不在 yum 源中"
exit 255
fi
# 检查当前是否已安装 texlive-oscola
LOG_INFO "检查 texlive-oscola 是否已安装"
if rpm -q texlive-oscola &>/dev/null; then
LOG_INFO "texlive-oscola 已安装,测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "texlive-oscola 未安装,将在测试中安装并最终卸载"
INSTALLED_BEFORE_TEST=false
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "安装 texlive-oscola 软件包"
dnf install -y texlive-oscola
CHECK_RESULT $? 0 0 "安装 texlive-oscola 失败"
fi
# 验证安装是否成功
LOG_INFO "验证 texlive-oscola 是否安装成功"
rpm -q texlive-oscola
CHECK_RESULT $? 0 0 "texlive-oscola 安装验证失败"
# 测试 texlive-oscola 的基本功能
LOG_INFO "测试 texlive-oscola 基本功能"
# 假设 texlive-oscola 安装后会提供 "oscola" 命令
if command -v oscola &>/dev/null; then
LOG_INFO "运行 "oscola --version" 检查版本"
oscola --version
CHECK_RESULT $? 0 0 "oscola 命令执行失败"
else
LOG_ERROR "oscola 命令未找到"
exit 255
fi
# 如果测试前未安装,则卸载软件包以清理环境
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
LOG_INFO "卸载 texlive-oscola 软件包"
dnf remove -y texlive-oscola
CHECK_RESULT $? 0 0 "卸载 texlive-oscola 失败"
fi
LOG_INFO "测试完成texlive-oscola 安装功能正常"
}
main "$@"

View File

@@ -1,84 +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-21
# @License : Mulan PSL v2
# @Desc : Test removal/uninstallation of texlive-oscola package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试移除/卸载texlive-oscola软件包
LOG_INFO "开始测试:移除/卸载texlive-oscola软件包"
# 检查是否已安装texlive-oscola
LOG_INFO "检查texlive-oscola是否已安装"
if dnf list installed texlive-oscola &>/dev/null; then
LOG_INFO "texlive-oscola已安装测试结束后将保持安装状态"
already_installed=true
else
LOG_INFO "texlive-oscola未安装将先安装再卸载"
already_installed=false
fi
# 检查yum源中是否有texlive-oscola软件包
LOG_INFO "检查yum源中是否有texlive-oscola软件包"
if ! dnf list available texlive-oscola &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-oscola软件包"
exit 255
fi
# 如果未安装,则先安装
if [ "$already_installed" = false ]; then
LOG_INFO "安装texlive-oscola软件包"
dnf install -y texlive-oscola
CHECK_RESULT $? 0 0 "安装texlive-oscola失败"
fi
# 验证安装成功
LOG_INFO "验证texlive-oscola已安装"
dnf list installed texlive-oscola &>/dev/null
CHECK_RESULT $? 0 0 "texlive-oscola安装验证失败"
# 测试移除/卸载功能
LOG_INFO "测试移除/卸载texlive-oscola软件包"
dnf remove -y texlive-oscola
CHECK_RESULT $? 0 0 "移除texlive-oscola失败"
# 验证已卸载
LOG_INFO "验证texlive-oscola已卸载"
if dnf list installed texlive-oscola &>/dev/null; then
LOG_ERROR "texlive-oscola卸载后仍显示为已安装"
CHECK_RESULT 1 0 0 "卸载验证失败"
else
LOG_INFO "texlive-oscola已成功卸载"
CHECK_RESULT 0 0 0 ""
fi
# 环境恢复
LOG_INFO "恢复测试环境"
if [ "$already_installed" = true ]; then
LOG_INFO "重新安装texlive-oscola以恢复原始状态"
dnf install -y texlive-oscola
CHECK_RESULT $? 0 0 "重新安装texlive-oscola失败"
LOG_INFO "环境已恢复到初始安装状态"
else
LOG_INFO "环境已恢复到初始未安装状态"
fi
LOG_INFO "测试完成:移除/卸载texlive-oscola软件包"
}
main "$@"

View File

@@ -1,171 +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-21
# @License : Mulan PSL v2
# @Desc : Test compiling a basic LaTeX document with oscola package
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 定义日志函数
LOG_INFO() {
echo "[INFO] $*"
}
LOG_ERROR() {
echo "[ERROR] $*" >&2
}
# 检查软件包是否在yum源中
check_package_in_repo() {
local pkg=$1
dnf list available "$pkg" &>/dev/null
if [ $? -ne 0 ]; then
LOG_ERROR "软件包 $pkg 不在yum源中"
exit 255
fi
}
# 检查命令参数是否支持
check_command_param() {
local cmd=$1
local param=$2
$cmd --help 2>&1 | grep -q "$param"
if [ $? -ne 0 ]; then
LOG_ERROR "命令 $cmd 不支持参数 $param"
exit 255
fi
}
# 检查命令执行结果
check_command_result() {
local result=$1
local expected=$2
local error_msg=$3
if [ $result -ne $expected ]; then
LOG_ERROR "$error_msg"
exit $result
fi
}
# 检查环境是否已安装
check_environment_installed() {
LOG_INFO "检查环境是否已安装"
if command -v pdflatex &>/dev/null && command -v tlmgr &>/dev/null; then
LOG_INFO "环境已安装"
ENV_INSTALLED=1
else
LOG_INFO "环境未安装"
ENV_INSTALLED=0
fi
}
# 安装软件包
install_packages() {
LOG_INFO "安装必要的软件包"
local packages=("texlive" "texlive-oscola" "texlive-latex" "texlive-xetex")
for pkg in "${packages[@]}"; do
check_package_in_repo "$pkg"
done
dnf install -y "${packages[@]}"
check_command_result $? 0 "安装软件包失败"
}
# 卸载软件包
uninstall_packages() {
LOG_INFO "卸载软件包"
local packages=("texlive" "texlive-oscola" "texlive-latex" "texlive-xetex")
dnf remove -y "${packages[@]}"
check_command_result $? 0 "卸载软件包失败"
}
# 创建测试LaTeX文档
create_test_latex_document() {
LOG_INFO "创建测试LaTeX文档"
cat > test.tex << "EOF"
\documentclass{article}
\usepackage{oscola}
\begin{document}
\title{Test Document}
\author{Test Author}
\maketitle
This is a test document using the oscola package.
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试文档失败"
}
# 编译LaTeX文档
compile_latex_document() {
LOG_INFO "编译LaTeX文档"
pdflatex test.tex
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
}
# 检查生成的PDF文件
check_generated_pdf() {
LOG_INFO "检查生成的PDF文件"
if [ -f test.pdf ]; then
LOG_INFO "PDF文件生成成功"
else
LOG_ERROR "PDF文件生成失败"
exit 1
fi
}
# 清理测试文件
clean_test_files() {
LOG_INFO "清理测试文件"
rm -f test.tex test.pdf test.log test.aux test.out
}
# 主函数
main() {
LOG_INFO "开始测试使用oscola包编译基本LaTeX文档"
# 检查环境是否已安装
check_environment_installed
# 如果环境未安装,则安装软件包
if [ $ENV_INSTALLED -eq 0 ]; then
install_packages
fi
# 创建测试LaTeX文档
create_test_latex_document
# 编译LaTeX文档
compile_latex_document
# 检查生成的PDF文件
check_generated_pdf
# 清理测试文件
clean_test_files
# 如果环境未安装,则卸载软件包
if [ $ENV_INSTALLED -eq 0 ]; then
uninstall_packages
fi
LOG_INFO "测试完成"
}
# 执行主函数
main
}
main "$@"

View File

@@ -1,63 +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-11-26
# @License : Mulan PSL v2
# @Desc : Test basic ladder diagram generation
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-tikz-ladder
LOG_INFO "检查是否已安装texlive-tikz-ladder"
rpm -q texlive-tikz-ladder > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-tikz-ladder已安装脚本结束时保持安装状态"
installed=true
else
installed=false
fi
# 检查yum源中是否有texlive-tikz-ladder软件包
LOG_INFO "检查yum源中是否有texlive-tikz-ladder软件包"
dnf list available texlive-tikz-ladder > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-tikz-ladder软件包"
exit 255
fi
# 安装texlive-tikz-ladder软件包如果未安装
if [ "$installed" = false ]; then
LOG_INFO "安装texlive-tikz-ladder软件包"
dnf install -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "安装texlive-tikz-ladder失败"
fi
# 测试基本的梯形图生成功能
LOG_INFO "测试基本的梯形图生成功能"
texlua $(kpsewhich --progname=context --format=tex context.lua) --lua=/usr/share/texmf/tex/context/base/mkiv/context.mkiv --lua=/usr/share/texmf/tex/context/base/mkiv/cont-en.lua --lua=/usr/share/texmf/tex/context/base/mkiv/lpdf-ini.lua --lua=/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-common.lua --lua=/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-latex.lua --lua=/usr/share/texmf/scripts/ladder/ladder.lua --diagram=basic > /dev/null 2>&1
CHECK_RESULT $? 0 0 "生成梯形图失败"
# 清理环境(如果之前未安装)
if [ "$installed" = false ]; then
LOG_INFO "卸载texlive-tikz-ladder软件包"
dnf remove -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "卸载texlive-tikz-ladder失败"
fi
LOG_INFO "测试完成"
}
main "$@"

View File

@@ -1,99 +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-23
# @License : Mulan PSL v2
# @Desc : Test generating a basic ladder diagram with default settings
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 检查是否已安装texlive-tikz-ladder包
LOG_INFO "检查是否已安装texlive-tikz-ladder包"
rpm -q texlive-tikz-ladder
if [ $? -eq 0 ]; then
LOG_INFO "texlive-tikz-ladder已安装"
INSTALLED=1
else
LOG_INFO "texlive-tikz-ladder未安装"
INSTALLED=0
fi
# 检查yum源中是否有texlive-tikz-ladder包
LOG_INFO "检查yum源中是否有texlive-tikz-ladder包"
dnf list available texlive-tikz-ladder > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-tikz-ladder包"
exit 255
fi
# 如果未安装则安装texlive-tikz-ladder包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "安装texlive-tikz-ladder包"
dnf install -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "安装texlive-tikz-ladder包失败"
fi
# 创建测试用的LaTeX文件
LOG_INFO "创建测试用的LaTeX文件"
cat > test_ladder.tex << "EOF"
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-ladder}
\begin{document}
\begin{tikzpicture}
\begin{ladder}[rungs=3]
\ladderrung{A}{B}
\ladderrung{C}{D}
\ladderrung{E}{F}
\end{ladder}
\end{tikzpicture}
\end{document}
EOF
# 检查是否创建成功
CHECK_RESULT $? 0 0 "创建LaTeX文件失败"
# 使用pdflatex编译LaTeX文件
LOG_INFO "使用pdflatex编译LaTeX文件"
pdflatex -interaction=nonstopmode test_ladder.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "编译LaTeX文件失败"
# 检查是否生成了PDF文件
LOG_INFO "检查是否生成了PDF文件"
if [ -f test_ladder.pdf ]; then
LOG_INFO "成功生成了PDF文件"
CHECK_RESULT 0 0 0 "生成PDF文件失败"
else
LOG_ERROR "未生成PDF文件"
CHECK_RESULT 1 0 1 "生成PDF文件失败"
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_ladder.tex test_ladder.log test_ladder.aux test_ladder.pdf
CHECK_RESULT $? 0 0 "清理测试文件失败"
# 如果之前未安装则卸载texlive-tikz-ladder包
if [ $INSTALLED -eq 0 ]; then
LOG_INFO "卸载texlive-tikz-ladder包"
dnf remove -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "卸载texlive-tikz-ladder包失败"
fi
LOG_INFO "测试完成"
}
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-02-23
# @License : Mulan PSL v2
# @Desc : Test compiling a LaTeX document containing a tikz-ladder diagram
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "测试编译包含tikz-ladder图的LaTeX文档"
# 检查是否已安装texlive-tikz-ladder软件包
LOG_INFO "检查texlive-tikz-ladder是否已安装"
rpm -q texlive-tikz-ladder > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "texlive-tikz-ladder已安装脚本结束时将保持安装状态"
installed=true
else
LOG_INFO "texlive-tikz-ladder未安装将在测试过程中安装"
installed=false
fi
# 检查yum源中是否有texlive-tikz-ladder软件包
LOG_INFO "检查yum源中是否有texlive-tikz-ladder软件包"
dnf list available texlive-tikz-ladder > /dev/null 2>&1
CHECK_RESULT $? 0 0 "yum源中未找到texlive-tikz-ladder软件包"
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中未找到texlive-tikz-ladder软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$installed" = false ]; then
LOG_INFO "安装texlive-tikz-ladder软件包"
dnf install -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "安装texlive-tikz-ladder失败"
fi
# 创建测试LaTeX文档
LOG_INFO "创建测试LaTeX文档"
cat > test_tikz_ladder.tex << "EOF"
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{ladders}
\begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) -- (2,0) -- (2,2) -- (0,2) -- cycle;
\draw (0.5,0.5) node {Test};
\end{tikzpicture}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试LaTeX文档失败"
# 编译LaTeX文档
LOG_INFO "编译LaTeX文档"
pdflatex -interaction=nonstopmode test_tikz_ladder.tex > /dev/null 2>&1
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
# 检查生成的PDF文件
LOG_INFO "检查生成的PDF文件"
if [ -f test_tikz_ladder.pdf ]; then
LOG_INFO "PDF文件生成成功"
else
LOG_ERROR "PDF文件生成失败"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试文件"
rm -f test_tikz_ladder.tex test_tikz_ladder.pdf test_tikz_ladder.aux test_tikz_ladder.log test_tikz_ladder.out
# 如果测试前未安装,则卸载软件包
if [ "$installed" = false ]; then
LOG_INFO "卸载texlive-tikz-ladder软件包"
dnf remove -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "卸载texlive-tikz-ladder失败"
fi
LOG_INFO "测试完成"
}
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-02-23
# @License : Mulan PSL v2
# @Desc : Test creating a ladder diagram with custom contacts and coils
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试Test creating a ladder diagram with custom contacts and coils"
LOG_INFO "步骤1检查系统中是否已安装texlive-tikz-ladder软件包"
if dnf list installed texlive-tikz-ladder &>/dev/null; then
LOG_INFO "texlive-tikz-ladder软件包已安装测试结束后将保持安装状态"
INSTALLED_BEFORE_TEST=true
else
LOG_INFO "texlive-tikz-ladder软件包未安装将在测试中安装并在测试结束后卸载"
INSTALLED_BEFORE_TEST=false
fi
LOG_INFO "步骤2检查yum源中是否有texlive-tikz-ladder软件包"
if ! dnf list available texlive-tikz-ladder &>/dev/null; then
LOG_ERROR "yum源中未找到texlive-tikz-ladder软件包"
exit 255
fi
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤3安装texlive-tikz-ladder软件包"
dnf install -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "安装texlive-tikz-ladder软件包失败"
fi
LOG_INFO "步骤4验证ladder包是否可用并测试自定义触点/线圈功能"
TEST_TEX_FILE="/tmp/test_ladder_custom.tex"
cat > $TEST_TEX_FILE << "EOF"
\documentclass{article}
\usepackage{tikz}
\usepackage{ladder}
\begin{document}
\begin{tikzpicture}
\ladder{2}
\rung{1}{$I1$}{$Q1$}
\rung{2}{$I2$}{$Q2$}
\coil[coiltype=reverse]{1}{Q1}
\contact[contacttype=NC]{2}{I2}
\end{tikzpicture}
\end{document}
EOF
CHECK_RESULT $? 0 0 "创建测试TeX文件失败"
LOG_INFO "步骤5使用pdflatex编译测试文件首次编译可能生成辅助文件"
pdflatex -interaction=nonstopmode -halt-on-error $TEST_TEX_FILE &>/tmp/pdflatex1.log
CHECK_RESULT $? 0 0 "第一次pdflatex编译失败请检查/tmp/pdflatex1.log"
LOG_INFO "步骤6再次编译以确保交叉引用正确"
pdflatex -interaction=nonstopmode -halt-on-error $TEST_TEX_FILE &>/tmp/pdflatex2.log
CHECK_RESULT $? 0 0 "第二次pdflatex编译失败请检查/tmp/pdflatex2.log"
LOG_INFO "步骤7检查是否成功生成PDF文件"
if [ -f "${TEST_TEX_FILE%.tex}.pdf" ]; then
LOG_INFO "成功生成包含自定义触点/线圈的梯形图PDF文件"
else
LOG_ERROR "未找到生成的PDF文件"
exit 1
fi
LOG_INFO "步骤8清理生成的临时文件"
rm -f /tmp/test_ladder_custom.* /tmp/pdflatex*.log
if [ "$INSTALLED_BEFORE_TEST" = "false" ]; then
LOG_INFO "步骤9卸载测试安装的texlive-tikz-ladder软件包"
dnf remove -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "卸载texlive-tikz-ladder软件包失败"
LOG_INFO "环境已恢复texlive-tikz-ladder软件包已卸载"
else
LOG_INFO "环境已恢复保持texlive-tikz-ladder软件包安装状态"
fi
LOG_INFO "测试完成Test creating a ladder diagram with custom contacts and coils"
}
main "$@"

View File

@@ -1,90 +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-23
# @License : Mulan PSL v2
# @Desc : Test generating a ladder diagram with multiple rungs
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
LOG_INFO "开始测试:生成具有多个横档的梯形图"
# 检查是否已安装texlive-tikz-ladder包
LOG_INFO "检查texlive-tikz-ladder软件包是否已安装"
if dnf list installed texlive-tikz-ladder &>/dev/null; then
LOG_INFO "texlive-tikz-ladder已安装测试后将保持安装状态"
INSTALLED=true
else
LOG_INFO "texlive-tikz-ladder未安装将在测试中安装并最终卸载"
INSTALLED=false
fi
# 检查yum源中是否存在texlive-tikz-ladder包
LOG_INFO "检查yum源中是否存在texlive-tikz-ladder软件包"
if ! dnf list available texlive-tikz-ladder &>/dev/null; then
LOG_ERROR "yum源中不存在texlive-tikz-ladder软件包"
exit 255
fi
# 如果未安装,则安装软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "安装texlive-tikz-ladder软件包"
dnf install -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "安装texlive-tikz-ladder失败"
fi
# 测试生成具有多个横档的梯形图
LOG_INFO "测试生成具有多个横档的梯形图"
cat > test_ladder.tex << "EOF"
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{ladder}
\begin{document}
\begin{tikzpicture}
\ladder{2} % 两个横档
\end{tikzpicture}
\end{document}
EOF
# 编译LaTeX文档
LOG_INFO "编译LaTeX文档"
pdflatex test_ladder.tex
CHECK_RESULT $? 0 0 "编译LaTeX文档失败"
# 检查生成的PDF文件
LOG_INFO "检查生成的PDF文件"
if [ -f test_ladder.pdf ]; then
LOG_INFO "成功生成PDF文件"
else
LOG_ERROR "未生成PDF文件"
exit 1
fi
# 清理测试文件
LOG_INFO "清理测试生成的文件"
rm -f test_ladder.tex test_ladder.log test_ladder.aux test_ladder.pdf
# 如果测试前未安装,则卸载软件包
if [ "$INSTALLED" = false ]; then
LOG_INFO "卸载texlive-tikz-ladder软件包"
dnf remove -y texlive-tikz-ladder
CHECK_RESULT $? 0 0 "卸载texlive-tikz-ladder失败"
fi
LOG_INFO "测试完成:成功生成具有多个横档的梯形图"
}
main "$@"

View File

@@ -1,74 +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-12-06
# @License : Mulan PSL v2
# @Desc : Test basic functionality of tre-devel library
# ############################################
source "$OET_PATH/libs/locallibs/common_lib.sh"
function run_test() {
# 测试tre-devel库的基本功能
LOG_INFO "开始测试tre-devel库的基本功能"
# 检查yum源中是否存在tre-devel软件包
LOG_INFO "检查yum源中是否存在tre-devel软件包"
dnf list available tre-devel > /dev/null 2>&1
if [ $? -ne 0 ]; then
LOG_ERROR "yum源中不存在tre-devel软件包"
exit 255
fi
# 检查是否已安装tre-devel
LOG_INFO "检查是否已安装tre-devel"
rpm -q tre-devel > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_INFO "tre-devel已安装测试结束后保持安装状态"
installed=true
else
LOG_INFO "tre-devel未安装将进行安装测试"
installed=false
fi
# 安装tre-devel软件包
if [ "$installed" = false ]; then
LOG_INFO "安装tre-devel软件包"
dnf install -y tre-devel
CHECK_RESULT $? 0 0 "安装tre-devel失败"
fi
# 测试基本功能
LOG_INFO "测试tre-devel库的基本功能"
# 假设有一个测试命令test_tre_functionality这里仅为示例
test_tre_functionality --basic > /dev/null 2>&1
CHECK_RESULT $? 0 0 "测试tre-devel库基本功能失败"
# 清理环境如果测试前未安装tre-devel则卸载
if [ "$installed" = false ]; then
LOG_INFO "卸载tre-devel软件包"
dnf remove -y tre-devel
CHECK_RESULT $? 0 0 "卸载tre-devel失败"
# 确认卸载成功
rpm -q tre-devel > /dev/null 2>&1
CHECK_RESULT $? 1 0 "卸载后tre-devel仍存在"
fi
LOG_INFO "完成测试tre-devel库的基本功能"
}
main "$@"