Merge branch 'pkg' of http://10.30.190.190:54866/redrsoe2100/os-autotest into pkg
This commit is contained in:
@@ -5,18 +5,6 @@
|
||||
{
|
||||
"name": "test_libICE-help_function_install",
|
||||
"desc": "测试libICE-help软件包的安装功能。"
|
||||
},
|
||||
{
|
||||
"name": "test_libICE-help_function_verify",
|
||||
"desc": "验证libICE-help软件包是否正确安装。"
|
||||
},
|
||||
{
|
||||
"name": "test_libICE-help_function_usage",
|
||||
"desc": "测试libICE-help软件包提供的帮助文档或常用功能。"
|
||||
},
|
||||
{
|
||||
"name": "test_libICE-help_function_remove",
|
||||
"desc": "测试libICE-help软件包的卸载功能。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -63,46 +63,6 @@
|
||||
{
|
||||
"name": "test_libcap-ng-python3_netcap_no_args",
|
||||
"desc": "测试不带任何参数的netcap命令"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_install",
|
||||
"desc": "测试软件包libcap-ng-python3的安装功能"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_remove",
|
||||
"desc": "测试软件包libcap-ng-python3的卸载功能"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_check",
|
||||
"desc": "检查软件包libcap-ng-python3是否已安装"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_basic_import",
|
||||
"desc": "测试libcap-ng-python3模块的基本导入"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_capability_get",
|
||||
"desc": "测试获取进程能力集"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_capability_set",
|
||||
"desc": "测试设置进程能力集"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_iab_get",
|
||||
"desc": "测试获取IAB向量"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_iab_set",
|
||||
"desc": "测试设置IAB向量"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_apply_proc",
|
||||
"desc": "测试将能力应用到当前进程"
|
||||
},
|
||||
{
|
||||
"name": "test_libcap-ng-python3_function_have_cap",
|
||||
"desc": "测试检查是否拥有特定能力"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -10,10 +10,6 @@
|
||||
"name": "test_libmng-devel_verify",
|
||||
"desc": "测试验证libmng-devel包是否已正确安装,检查关键的头文件和库文件是否存在。"
|
||||
},
|
||||
{
|
||||
"name": "test_libmng-devel_compile",
|
||||
"desc": "测试使用libmng-devel提供的头文件和库文件进行简单的程序编译和链接。"
|
||||
},
|
||||
{
|
||||
"name": "test_libmng-devel_uninstall",
|
||||
"desc": "测试libmng-devel开发包的卸载功能,验证是否能通过包管理器干净地移除。"
|
||||
|
||||
@@ -13,30 +13,6 @@
|
||||
{
|
||||
"name": "test_python3-libxml2_function_remove",
|
||||
"desc": "测试卸载python3-libxml2软件包"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-libxml2_function_install",
|
||||
"desc": "测试安装python3-libxml2软件包"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-libxml2_function_parse",
|
||||
"desc": "测试解析XML文档的基本功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-libxml2_function_xpath",
|
||||
"desc": "测试使用XPath查询节点"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-libxml2_function_validate",
|
||||
"desc": "测试使用DTD或XSD验证XML"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-libxml2_function_edit",
|
||||
"desc": "测试修改XML节点内容"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-libxml2_function_save",
|
||||
"desc": "测试保存XML文档到文件"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,21 +7,9 @@
|
||||
"desc": "测试python3-exceptiongroup软件包的安装功能",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_python3-exceptiongroup_function_basic",
|
||||
"desc": "测试python3-exceptiongroup基础功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-exceptiongroup_function_raise",
|
||||
"desc": "测试异常抛出功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-exceptiongroup_function_catch",
|
||||
"desc": "测试异常捕获功能"
|
||||
},
|
||||
{
|
||||
"name": "test_python3-exceptiongroup_function_nest",
|
||||
"desc": "测试嵌套异常功能"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,10 +6,6 @@
|
||||
"name": "test_qt6-qtnetworkauth-devel_install",
|
||||
"desc": "测试软件包 qt6-qtnetworkauth-devel 的安装功能,验证安装是否成功。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_qt6-qtnetworkauth-devel_function_auth",
|
||||
"desc": "Test the authentication functionality of qt6-qtnetworkauth-devel."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,11 +7,6 @@
|
||||
"desc": "测试softhsm-devel软件包的安装功能,验证安装过程是否正常完成。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_softhsm-devel_uninstall",
|
||||
"desc": "测试softhsm-devel软件包的卸载功能,验证卸载过程是否正常完成。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_softhsm-devel_upgrade",
|
||||
"desc": "测试softhsm-devel软件包的升级功能,验证升级过程是否正常完成。",
|
||||
@@ -21,11 +16,6 @@
|
||||
"name": "test_softhsm-devel_downgrade",
|
||||
"desc": "测试softhsm-devel软件包的降级功能,验证降级过程是否正常完成。",
|
||||
"machine num": 1
|
||||
},
|
||||
{
|
||||
"name": "test_softhsm-devel_rollback",
|
||||
"desc": "测试softhsm-devel软件包的回滚功能,验证回滚过程是否正常完成。",
|
||||
"machine num": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,82 +6,14 @@
|
||||
"name": "test_texlive-luajittex_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_lua",
|
||||
"desc": "使用 --lua 参数指定Lua初始化脚本文件"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_help",
|
||||
"desc": "使用 --help 参数显示帮助信息并退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_version",
|
||||
"desc": "使用 --version 参数显示版本信息并退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_ini",
|
||||
"desc": "使用 --ini 参数进入 iniluajithbtex 模式,用于转储格式文件"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_jobname",
|
||||
"desc": "使用 --jobname 参数设置作业名称"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_output_directory",
|
||||
"desc": "使用 --output-directory 参数指定输出文件目录"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_output_format",
|
||||
"desc": "使用 --output-format 参数指定输出格式为PDF"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_interaction",
|
||||
"desc": "使用 --interaction 参数设置交互模式为批处理模式"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_halt_on_error",
|
||||
"desc": "使用 --halt-on-error 参数在遇到第一个错误时停止处理"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_draftmode",
|
||||
"desc": "使用 --draftmode 参数启用草稿模式(不生成输出PDF)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_shell_escape",
|
||||
"desc": "使用 --shell-escape 参数启用系统命令"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_safer",
|
||||
"desc": "使用 --safer 参数禁用易受攻击的Lua命令"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_recorder",
|
||||
"desc": "使用 --recorder 参数启用文件名记录器"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_synctex",
|
||||
"desc": "使用 --synctex 参数启用SyncTeX支持"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_luaonly",
|
||||
"desc": "使用 --luaonly 参数运行一个Lua文件后退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_jiton",
|
||||
"desc": "使用 --jiton 参数开启JIT编译器(默认关闭)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_lua_and_jobname",
|
||||
"desc": "同时使用 --lua 和 --jobname 参数指定脚本和作业名"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajithbtex_lua_and_output_directory",
|
||||
"desc": "同时使用 --lua 和 --output-directory 参数指定脚本和输出目录"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--lua",
|
||||
"desc": "测试使用--lua参数指定Lua初始化脚本"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--version",
|
||||
"desc": "测试显示版本信息"
|
||||
@@ -94,253 +26,9 @@
|
||||
"name": "test_texlive-luajittex_luajittex_--credits",
|
||||
"desc": "测试显示软件贡献者信息"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--fmt",
|
||||
"desc": "测试使用--fmt参数指定格式文件"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--jobname",
|
||||
"desc": "测试使用--jobname参数设置作业名称"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--output-directory",
|
||||
"desc": "测试使用--output-directory参数指定输出目录"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--output-format",
|
||||
"desc": "测试使用--output-format参数指定输出格式"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--interaction",
|
||||
"desc": "测试使用--interaction参数设置交互模式"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--halt-on-error",
|
||||
"desc": "测试在遇到第一个错误时停止处理"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--draftmode",
|
||||
"desc": "测试启用草稿模式(不生成输出PDF)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--shell-escape",
|
||||
"desc": "测试启用系统命令执行"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--no-shell-escape",
|
||||
"desc": "测试禁用系统命令执行"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--shell-restricted",
|
||||
"desc": "测试限制系统命令为texmf.cnf中列出的命令"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--recorder",
|
||||
"desc": "测试启用文件名记录器"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--file-line-error",
|
||||
"desc": "测试启用文件:行:错误样式消息"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--no-file-line-error",
|
||||
"desc": "测试禁用文件:行:错误样式消息"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--safer",
|
||||
"desc": "测试禁用易受攻击的Lua命令"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--synctex",
|
||||
"desc": "测试启用SyncTeX支持"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--ini",
|
||||
"desc": "测试以ini模式运行,用于转储格式"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--luaonly",
|
||||
"desc": "测试运行一个Lua文件后退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--luaconly",
|
||||
"desc": "测试字节编译一个Lua文件后退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--jiton",
|
||||
"desc": "测试开启JIT编译器"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_luajittex_--jithash",
|
||||
"desc": "测试选择Lua字符串的哈希函数"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_lua_file",
|
||||
"desc": "测试使用--lua参数指定Lua初始化脚本文件执行LuajitTeX"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_help",
|
||||
"desc": "测试使用--help参数显示帮助信息并退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_version",
|
||||
"desc": "测试使用--version参数显示版本信息并退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_credits",
|
||||
"desc": "测试使用--credits参数显示软件致谢信息并退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_draftmode",
|
||||
"desc": "测试使用--draftmode参数开启草稿模式(不生成输出PDF)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_fmt_format",
|
||||
"desc": "测试使用--fmt参数加载指定的格式文件"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_halt_on_error",
|
||||
"desc": "测试使用--halt-on-error参数在第一个错误处停止处理"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_ini",
|
||||
"desc": "测试使用--ini参数进入iniluajittex模式,用于转储格式文件"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_interaction_string",
|
||||
"desc": "测试使用--interaction参数设置交互模式(批处理/非停止/滚动/错误停止)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_jobname_string",
|
||||
"desc": "测试使用--jobname参数设置作业名称"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_output_directory_dir",
|
||||
"desc": "测试使用--output-directory参数指定输出文件目录"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_output_format_format",
|
||||
"desc": "测试使用--output-format参数设置作业输出格式(DVI或PDF)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_recorder",
|
||||
"desc": "测试使用--recorder参数启用文件名记录器"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_safer",
|
||||
"desc": "测试使用--safer参数禁用易受攻击的Lua命令"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_shell_escape",
|
||||
"desc": "测试使用--shell-escape参数启用系统命令"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_shell_restricted",
|
||||
"desc": "测试使用--shell-restricted参数将系统命令限制在texmf.cnf中给出的命令列表内"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_synctex_number",
|
||||
"desc": "测试使用--synctex参数启用SyncTeX同步"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_utc",
|
||||
"desc": "测试使用--utc参数将初始时间设置为UTC"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_luaonly",
|
||||
"desc": "测试使用--luaonly参数运行Lua文件后退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_luaconly",
|
||||
"desc": "测试使用--luaconly参数字节编译Lua文件后退出"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_jiton",
|
||||
"desc": "测试使用--jiton参数打开JIT编译器(默认为关闭)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajit_jithash_string",
|
||||
"desc": "测试使用--jithash参数为Lua字符串选择哈希函数(lua51或luajit20)"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_script",
|
||||
"desc": "执行指定的Lua脚本文件"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_e",
|
||||
"desc": "执行给定的Lua代码字符串"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_l",
|
||||
"desc": "在运行脚本前加载指定的Lua库"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_b",
|
||||
"desc": "保存或列出字节码"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_j",
|
||||
"desc": "执行LuaJIT控制命令"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_upper_o",
|
||||
"desc": "控制LuaJIT优化选项"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_i",
|
||||
"desc": "执行脚本后进入交互模式"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_upper_v",
|
||||
"desc": "显示版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_upper_e",
|
||||
"desc": "忽略环境变量"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_special_-",
|
||||
"desc": "停止解析后续选项"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_texluajitc_special_-_stdin",
|
||||
"desc": "从标准输入执行Lua代码并停止解析后续选项"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_remove",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_check",
|
||||
"desc": "Check if package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_version",
|
||||
"desc": "Display version information"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_compile_tex",
|
||||
"desc": "Compile a simple TeX file"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_lua_script",
|
||||
"desc": "Run Lua script with LuaTeX"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_shell_escape",
|
||||
"desc": "Test shell escape feature"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_synctex",
|
||||
"desc": "Test SyncTeX generation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_output_pdf",
|
||||
"desc": "Generate PDF output"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-luajittex_function_jobname",
|
||||
"desc": "Set custom job name"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-d/texlive-callouts",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-callouts_function_basic",
|
||||
"desc": "Test basic functionality of texlive-callouts"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-callouts_function_install",
|
||||
"desc": "Test if the texlive-callouts package can be successfully installed via the package manager."
|
||||
@@ -14,17 +10,9 @@
|
||||
"name": "test_texlive-callouts_function_uninstall",
|
||||
"desc": "Test if the texlive-callouts package can be cleanly uninstalled and removed from the system."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-callouts_function_basic_usage",
|
||||
"desc": "Test basic LaTeX document compilation using the callouts package to verify its core functionality."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-callouts_function_availability",
|
||||
"desc": "Test to verify that the texlive-callouts package files (sty, tex) are present and accessible in the TeX Live installation."
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-callouts_function_version",
|
||||
"desc": "Test to check the version information of the installed texlive-callouts package."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,22 +5,6 @@
|
||||
{
|
||||
"name": "test_texlive-commado-doc_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-commado-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-commado-doc_function_verify",
|
||||
"desc": "Test package verification"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-commado-doc_function_usage",
|
||||
"desc": "Test basic package usage"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-commado-doc_function_info",
|
||||
"desc": "Test package info query"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-g/texlive-drac",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-drac_function_install",
|
||||
"desc": "Test the installation of texlive-drac package"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,14 +6,6 @@
|
||||
"name": "test_texlive-fancylabel-doc_function_install",
|
||||
"desc": "Test package installation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-fancylabel-doc_function_check_installed",
|
||||
"desc": "Check if the package is installed on the system"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-fancylabel-doc_function_uninstall",
|
||||
"desc": "Test package removal"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-fancylabel-doc_function_doc_access",
|
||||
"desc": "Verify access to package documentation files"
|
||||
|
||||
@@ -14,10 +14,6 @@
|
||||
"name": "test_texlive-mylatexformat-doc_function_check",
|
||||
"desc": "Check if package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-mylatexformat-doc_function_help",
|
||||
"desc": "Display package documentation"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-mylatexformat-doc_function_list",
|
||||
"desc": "List package contents"
|
||||
|
||||
@@ -13,14 +13,6 @@
|
||||
{
|
||||
"name": "test_texlive-pst-coil-doc_function_files_exist",
|
||||
"desc": "Check if documentation files are installed"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-coil-doc_function_manpage",
|
||||
"desc": "Check for man page availability"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-pst-coil-doc_function_info_page",
|
||||
"desc": "Check for info page availability"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -10,14 +10,6 @@
|
||||
{
|
||||
"name": "test_texlive-tikz-bayesnet-doc_package_exists",
|
||||
"desc": "验证 texlive-tikz-bayesnet-doc 软件包(文档)是否存在于系统中"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tikz-bayesnet-doc_usage_guide",
|
||||
"desc": "检查 texlive-tikz-bayesnet-doc 文档是否包含 tikz-bayesnet 宏包的基本用法说明"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-tikz-bayesnet-doc_example_files",
|
||||
"desc": "确认 texlive-tikz-bayesnet-doc 文档中是否包含绘制贝叶斯网络的示例代码文件"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,10 +2,6 @@
|
||||
"path": "$OET_PATH/testcases/function_test/pkg_test/texlive-split-x/texlive-titlefoot",
|
||||
"machine num": 1,
|
||||
"cases": [
|
||||
{
|
||||
"name": "test_texlive-titlefoot_function_footnote",
|
||||
"desc": "Test footnote functionality"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-titlefoot_function_install",
|
||||
"desc": "Test installation of texlive-titlefoot package"
|
||||
@@ -13,18 +9,6 @@
|
||||
{
|
||||
"name": "test_texlive-titlefoot_function_remove",
|
||||
"desc": "Test removal of texlive-titlefoot package"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-titlefoot_function_basic_usage",
|
||||
"desc": "Test basic document usage with titlefoot"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-titlefoot_function_title_foot",
|
||||
"desc": "Test titlefoot package main feature"
|
||||
},
|
||||
{
|
||||
"name": "test_texlive-titlefoot_function_check_installed",
|
||||
"desc": "Check if texlive-titlefoot is installed"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试libICE-help软件包的卸载功能。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试libICE-help软件包的卸载功能"
|
||||
|
||||
LOG_INFO "步骤1:检查libICE-help软件包是否已在yum源中"
|
||||
if ! dnf list available libICE-help 2>/dev/null | grep -q libICE-help; then
|
||||
LOG_ERROR "yum源中未找到libICE-help软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在libICE-help软件包"
|
||||
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装libICE-help软件包"
|
||||
if rpm -q libICE-help &>/dev/null; then
|
||||
LOG_INFO "当前环境已安装libICE-help软件包,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "当前环境未安装libICE-help软件包,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装libICE-help软件包作为测试步骤"
|
||||
dnf install -y libICE-help
|
||||
CHECK_RESULT $? 0 0 "安装libICE-help软件包失败"
|
||||
LOG_INFO "libICE-help软件包安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证libICE-help软件包的功能"
|
||||
rpm -ql libICE-help | head -5
|
||||
CHECK_RESULT $? 0 0 "验证libICE-help软件包功能失败"
|
||||
|
||||
LOG_INFO "步骤5:测试卸载libICE-help软件包"
|
||||
dnf remove -y libICE-help
|
||||
CHECK_RESULT $? 0 0 "卸载libICE-help软件包失败"
|
||||
LOG_INFO "libICE-help软件包卸载成功"
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤6:清理环境,卸载测试安装的软件包"
|
||||
if rpm -q libICE-help &>/dev/null; then
|
||||
dnf remove -y libICE-help
|
||||
CHECK_RESULT $? 0 0 "清理环境时卸载libICE-help软件包失败"
|
||||
fi
|
||||
LOG_INFO "环境清理完成,恢复至初始未安装状态"
|
||||
else
|
||||
LOG_INFO "步骤6:恢复环境,重新安装原有的libICE-help软件包"
|
||||
dnf install -y libICE-help
|
||||
CHECK_RESULT $? 0 0 "恢复环境时安装libICE-help软件包失败"
|
||||
LOG_INFO "环境恢复完成,保持原有的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试libICE-help软件包的卸载功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,96 +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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试libICE-help软件包提供的帮助文档或常用功能。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="libICE-help"
|
||||
LOG_INFO "开始测试 ${PACKAGE_NAME} 软件包提供的帮助文档或常用功能"
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "步骤1:检查 ${PACKAGE_NAME} 是否已安装"
|
||||
if dnf list installed "${PACKAGE_NAME}" &>/dev/null; then
|
||||
LOG_INFO "${PACKAGE_NAME} 已安装,脚本结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME} 未安装,将在测试过程中安装并在结束前卸载"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有 ${PACKAGE_NAME} 软件包"
|
||||
if ! dnf list available "${PACKAGE_NAME}" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到 ${PACKAGE_NAME} 软件包"
|
||||
exit 255
|
||||
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:测试 ${PACKAGE_NAME} 的帮助文档功能"
|
||||
if command -v iceauth &>/dev/null; then
|
||||
LOG_INFO "测试 iceauth 命令的帮助文档"
|
||||
iceauth --help
|
||||
CHECK_RESULT $? 0 0 "iceauth --help 执行失败"
|
||||
else
|
||||
LOG_INFO "iceauth 命令未找到,尝试其他命令"
|
||||
fi
|
||||
|
||||
# 测试常用功能
|
||||
LOG_INFO "步骤5:测试 ${PACKAGE_NAME} 的常用功能"
|
||||
if command -v xprop &>/dev/null; then
|
||||
LOG_INFO "测试 xprop 命令的基本功能"
|
||||
xprop -version
|
||||
CHECK_RESULT $? 0 0 "xprop -version 执行失败"
|
||||
else
|
||||
LOG_INFO "xprop 命令未找到,尝试其他命令"
|
||||
fi
|
||||
|
||||
# 测试参数不存在或不支持的情况
|
||||
LOG_INFO "步骤6:测试不支持的参数"
|
||||
if command -v iceauth &>/dev/null; then
|
||||
iceauth --invalid-parameter 2>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "参数检查正常,不支持的参数返回255"
|
||||
else
|
||||
LOG_ERROR "参数检查失败,不支持的参数未返回255"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤7:卸载 ${PACKAGE_NAME} 软件包"
|
||||
dnf remove -y "${PACKAGE_NAME}"
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "环境已恢复,${PACKAGE_NAME} 已卸载"
|
||||
else
|
||||
LOG_INFO "步骤7:保持 ${PACKAGE_NAME} 安装状态,不进行卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,133 +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-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 验证libICE-help软件包是否正确安装。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数(根据要求直接使用LOG_INFO和LOG_ERROR)
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 定义CHECK_RESULT函数(根据要求直接使用)
|
||||
CHECK_RESULT() {
|
||||
if [ $# -ne 4 ]; then
|
||||
LOG_ERROR "CHECK_RESULT函数参数错误"
|
||||
exit 255
|
||||
fi
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $actual
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(根据要求直接使用)
|
||||
SSH_CMD() {
|
||||
if [ $# -ne 4 ]; then
|
||||
LOG_ERROR "SSH_CMD函数参数错误"
|
||||
exit 255
|
||||
fi
|
||||
local command=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
sshpass -p "$node_password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$node_user@$node_ip" "$command"
|
||||
return $?
|
||||
}
|
||||
|
||||
# 脚本开始
|
||||
LOG_INFO "开始验证libICE-help软件包是否正确安装。"
|
||||
|
||||
# 步骤1:检查libICE-help软件包是否已在yum源中
|
||||
LOG_INFO "步骤1:检查libICE-help软件包是否在yum源中。"
|
||||
dnf list available libICE-help 2>/dev/null | grep -q libICE-help
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到libICE-help软件包。"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在libICE-help软件包。"
|
||||
|
||||
# 步骤2:检查当前是否已安装libICE-help软件包
|
||||
LOG_INFO "步骤2:检查当前是否已安装libICE-help软件包。"
|
||||
rpm -q libICE-help >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "libICE-help软件包已安装,标记为已安装状态。"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "libICE-help软件包未安装,标记为未安装状态。"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装libICE-help软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装libICE-help软件包。"
|
||||
dnf install -y libICE-help
|
||||
CHECK_RESULT $? 0 0 "安装libICE-help软件包失败。"
|
||||
LOG_INFO "libICE-help软件包安装成功。"
|
||||
fi
|
||||
|
||||
# 步骤4:验证libICE-help软件包是否正确安装
|
||||
LOG_INFO "步骤4:验证libICE-help软件包是否正确安装。"
|
||||
rpm -V libICE-help
|
||||
CHECK_RESULT $? 0 0 "libICE-help软件包验证失败,可能文件损坏或未正确安装。"
|
||||
|
||||
# 步骤5:验证libICE-help软件包提供的命令或文件
|
||||
LOG_INFO "步骤5:验证libICE-help软件包提供的命令或文件。"
|
||||
# 假设libICE-help软件包提供了iceauth命令,检查该命令是否存在
|
||||
which iceauth >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "iceauth命令不存在,libICE-help软件包可能未正确安装。"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "iceauth命令存在,libICE-help软件包提供的基本功能正常。"
|
||||
|
||||
# 步骤6:测试iceauth命令的基本功能(例如查看帮助)
|
||||
LOG_INFO "步骤6:测试iceauth命令的基本功能。"
|
||||
iceauth --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "iceauth命令--help参数不支持或执行失败。"
|
||||
|
||||
# 步骤7:清理环境,如果之前未安装则卸载软件包
|
||||
LOG_INFO "步骤7:清理环境,恢复原始状态。"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载libICE-help软件包。"
|
||||
dnf remove -y libICE-help
|
||||
CHECK_RESULT $? 0 0 "卸载libICE-help软件包失败。"
|
||||
LOG_INFO "libICE-help软件包卸载成功,环境已恢复。"
|
||||
else
|
||||
LOG_INFO "libICE-help软件包在脚本执行前已安装,保持安装状态。"
|
||||
fi
|
||||
|
||||
LOG_INFO "libICE-help软件包验证完成,所有测试通过。"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,111 +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-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试将能力应用到当前进程
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 初始化日志函数(直接使用)
|
||||
LOG_INFO() {
|
||||
echo "INFO: $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "ERROR: $*" >&2
|
||||
}
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="libcap-ng-python3"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查系统是否已安装指定软件包
|
||||
LOG_INFO "步骤2:检查系统是否已安装软件包 $PACKAGE_NAME"
|
||||
if rpm -q "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,标记为已安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,标记为未安装状态"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试将能力应用到当前进程
|
||||
LOG_INFO "步骤4:测试将能力应用到当前进程"
|
||||
# 使用python3调用libcap-ng库测试能力应用到进程
|
||||
python3 << "EOF"
|
||||
import sys
|
||||
try:
|
||||
import capng
|
||||
# 初始化capng
|
||||
capng.capng_clear(capng.CAPNG_SELECT_BOTH)
|
||||
# 添加一些能力进行测试
|
||||
capng.capng_update(capng.CAPNG_ADD, capng.CAPNG_EFFECTIVE, capng.CAP_NET_BIND_SERVICE)
|
||||
# 将能力应用到当前进程
|
||||
result = capng.capng_apply(capng.CAPNG_SELECT_BOTH)
|
||||
if result == 0:
|
||||
print("能力应用到进程成功")
|
||||
sys.exit(0)
|
||||
else:
|
||||
print(f"能力应用到进程失败,返回值: {result}")
|
||||
sys.exit(1)
|
||||
except ImportError as e:
|
||||
print(f"导入capng模块失败: {e}")
|
||||
sys.exit(255)
|
||||
except AttributeError as e:
|
||||
print(f"capng模块不支持所需函数: {e}")
|
||||
sys.exit(255)
|
||||
except Exception as e:
|
||||
print(f"测试过程中发生错误: {e}")
|
||||
sys.exit(1)
|
||||
EOF
|
||||
|
||||
# 检查python脚本执行结果
|
||||
PYTHON_EXIT_CODE=$?
|
||||
if [ $PYTHON_EXIT_CODE -eq 255 ]; then
|
||||
LOG_ERROR "python3脚本参数或模块不支持"
|
||||
exit 255
|
||||
else
|
||||
CHECK_RESULT $PYTHON_EXIT_CODE 0 0 "将能力应用到当前进程测试失败"
|
||||
fi
|
||||
|
||||
# 步骤5:清理环境,恢复到之前的状态
|
||||
LOG_INFO "步骤5:清理环境,恢复到之前的状态"
|
||||
if [ "$INSTALLED_BEFORE" = 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 "$@"
|
||||
@@ -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 : 2026-03-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试libcap-ng-python3模块的基本导入
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装libcap-ng-python3
|
||||
LOG_INFO "检查是否已安装libcap-ng-python3软件包"
|
||||
if rpm -q libcap-ng-python3 &>/dev/null; then
|
||||
LOG_INFO "libcap-ng-python3已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "libcap-ng-python3未安装,将在测试过程中安装并在测试结束后卸载"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有libcap-ng-python3软件包
|
||||
LOG_INFO "检查yum源中是否存在libcap-ng-python3软件包"
|
||||
if ! dnf list available libcap-ng-python3 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到libcap-ng-python3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "开始安装libcap-ng-python3软件包"
|
||||
dnf install -y libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "安装libcap-ng-python3失败"
|
||||
LOG_INFO "libcap-ng-python3软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试libcap-ng-python3模块的基本导入
|
||||
LOG_INFO "测试libcap-ng-python3模块的基本导入"
|
||||
python3 -c "import libcapng"
|
||||
CHECK_RESULT $? 0 0 "导入libcap-ng-python3模块失败"
|
||||
|
||||
LOG_INFO "libcap-ng-python3模块导入测试成功"
|
||||
|
||||
# 环境清理:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "开始卸载libcap-ng-python3软件包"
|
||||
dnf remove -y libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "卸载libcap-ng-python3失败"
|
||||
LOG_INFO "libcap-ng-python3软件包卸载成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试获取进程能力集
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试获取进程能力集"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="libcap-ng-python3"
|
||||
|
||||
# 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查yum源中是否存在软件包:${PACKAGE_NAME}"
|
||||
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包:${PACKAGE_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前环境是否已安装软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包:${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "安装软件包:${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 测试获取进程能力集功能
|
||||
LOG_INFO "测试获取进程能力集功能"
|
||||
python3 -c "
|
||||
import sys
|
||||
sys.path.append("/usr/lib64/python3.6/site-packages")
|
||||
import capng
|
||||
|
||||
# 初始化capng
|
||||
capng.capng_clear(capng.CAPNG_SELECT_BOTH)
|
||||
capng.capng_update(capng.CAPNG_ADD, capng.CAPNG_EFFECTIVE, capng.CAP_NET_RAW)
|
||||
capng.capng_apply(capng.CAPNG_SELECT_BOTH)
|
||||
|
||||
# 获取当前进程的能力集
|
||||
capng.capng_get_caps_process()
|
||||
caps = capng.capng_print_caps_numeric(capng.CAPNG_PRINT_BUFFER, capng.CAPNG_SELECT_BOTH)
|
||||
print("进程能力集:", caps)
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "获取进程能力集失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "卸载软件包:${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试获取进程能力集"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,105 +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-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试设置进程能力集
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装libcap-ng-utils和python3-libcap-ng
|
||||
LOG_INFO "检查是否已安装libcap-ng-utils和python3-libcap-ng"
|
||||
if dnf list installed libcap-ng-utils > /dev/null 2>&1 && dnf list installed python3-libcap-ng > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在所需软件包
|
||||
LOG_INFO "检查yum源中是否存在libcap-ng-utils和python3-libcap-ng"
|
||||
if ! dnf list available libcap-ng-utils > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中不存在libcap-ng-utils软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available python3-libcap-ng > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中不存在python3-libcap-ng软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装libcap-ng-utils和python3-libcap-ng"
|
||||
dnf install -y libcap-ng-utils python3-libcap-ng
|
||||
CHECK_RESULT $? 0 0 "安装libcap-ng-utils和python3-libcap-ng失败"
|
||||
fi
|
||||
|
||||
# 测试设置进程能力集
|
||||
LOG_INFO "测试设置进程能力集"
|
||||
|
||||
# 检查pscap命令是否存在
|
||||
LOG_INFO "检查pscap命令是否存在"
|
||||
command -v pscap > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "pscap命令不存在"
|
||||
|
||||
# 使用pscap查看当前进程的能力集
|
||||
LOG_INFO "使用pscap查看当前进程的能力集"
|
||||
pscap
|
||||
CHECK_RESULT $? 0 0 "pscap命令执行失败"
|
||||
|
||||
# 使用capsh命令查看当前shell的能力集
|
||||
LOG_INFO "使用capsh命令查看当前shell的能力集"
|
||||
capsh --print
|
||||
CHECK_RESULT $? 0 0 "capsh命令执行失败"
|
||||
|
||||
# 使用python3-libcap-ng模块测试能力集设置
|
||||
LOG_INFO "使用python3-libcap-ng模块测试能力集设置"
|
||||
python3 -c "
|
||||
import libcapng
|
||||
lcn = libcapng.CAPNG_SELECT_CAPS
|
||||
libcapng.capng_clear(lcn)
|
||||
libcapng.capng_fill(lcn)
|
||||
libcapng.capng_setpid(0)
|
||||
print("libcap-ng python3模块测试成功")
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "python3-libcap-ng模块测试失败"
|
||||
|
||||
# 测试设置特定能力
|
||||
LOG_INFO "测试设置特定能力"
|
||||
python3 -c "
|
||||
import libcapng
|
||||
lcn = libcapng.CAPNG_SELECT_CAPS
|
||||
libcapng.capng_clear(lcn)
|
||||
libcapng.capng_update(libcapng.CAPNG_ADD, libcapng.CAPNG_EFFECTIVE, libcapng.CAP_NET_BIND_SERVICE)
|
||||
libcapng.capng_apply(libcapng.CAPNG_SELECT_BOTH)
|
||||
print("设置CAP_NET_BIND_SERVICE能力成功")
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "设置特定能力失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载libcap-ng-utils和python3-libcap-ng"
|
||||
dnf remove -y libcap-ng-utils python3-libcap-ng
|
||||
CHECK_RESULT $? 0 0 "卸载libcap-ng-utils和python3-libcap-ng失败"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试设置进程能力集完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,116 +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-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 检查软件包libcap-ng-python3是否已安装
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出(可选,用于增强日志可读性)
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $package_name"
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $package_name 存在于yum源中"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查软件包 $package_name 是否已安装"
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $package_name 已安装"
|
||||
return 0
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "开始安装软件包: $package_name"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "开始卸载软件包: $package_name"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 卸载成功"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
main() {
|
||||
local package_name="libcap-ng-python3"
|
||||
local was_installed=false
|
||||
|
||||
# 步骤1: 检查软件包是否在yum源中
|
||||
check_package_in_repo "$package_name"
|
||||
|
||||
# 步骤2: 检查软件包是否已安装
|
||||
if check_package_installed "$package_name"; then
|
||||
was_installed=true
|
||||
LOG_INFO "软件包已安装,测试后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "软件包未安装,将执行安装作为测试步骤"
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if ! $was_installed; then
|
||||
install_package "$package_name"
|
||||
fi
|
||||
|
||||
# 步骤4: 验证软件包功能(示例:检查python模块是否可以导入)
|
||||
LOG_INFO "验证软件包功能:尝试导入python模块"
|
||||
python3 -c "import ctypes; import ctypes.util; import os; import sys; sys.path.insert(0, "/usr/lib64/python3.9/site-packages"); import capng" 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "导入libcap-ng-python3模块失败"
|
||||
|
||||
# 步骤5: 清理环境(如果测试前未安装,则卸载软件包)
|
||||
if ! $was_installed; then
|
||||
uninstall_package "$package_name"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,68 +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-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试检查是否拥有特定能力
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:检查是否拥有特定能力"
|
||||
|
||||
# 检查是否已安装libcap-ng-python3
|
||||
LOG_INFO "检查libcap-ng-python3是否已安装"
|
||||
if dnf list installed libcap-ng-python3 &>/dev/null; then
|
||||
LOG_INFO "libcap-ng-python3已安装,测试后保持安装状态"
|
||||
installed_before_test=true
|
||||
else
|
||||
LOG_INFO "libcap-ng-python3未安装,将在测试中安装"
|
||||
installed_before_test=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有libcap-ng-python3软件包
|
||||
LOG_INFO "检查yum源中是否存在libcap-ng-python3软件包"
|
||||
if ! dnf list available libcap-ng-python3 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到libcap-ng-python3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "安装libcap-ng-python3软件包"
|
||||
dnf install -y libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "安装libcap-ng-python3失败"
|
||||
fi
|
||||
|
||||
# 测试检查是否拥有特定能力
|
||||
LOG_INFO "执行测试:检查是否拥有特定能力"
|
||||
python3 -c "import ctypes; import ctypes.util; lib = ctypes.CDLL(ctypes.util.find_library("cap-ng")); print("libcap-ng库加载成功")" 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "libcap-ng库加载失败,可能缺少特定能力"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$installed_before_test" = false ]; then
|
||||
LOG_INFO "卸载libcap-ng-python3软件包"
|
||||
dnf remove -y libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "卸载libcap-ng-python3失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装libcap-ng-python3,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:检查是否拥有特定能力"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试获取IAB向量
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试获取IAB向量功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="libcap-ng-python3"
|
||||
LOG_INFO "检查yum源中是否存在软件包:$PACKAGE_NAME"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包:$PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 判断是否已安装
|
||||
LOG_INFO "检查系统是否已安装软件包:$PACKAGE_NAME"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将进行安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "安装软件包:$PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 测试获取IAB向量功能
|
||||
LOG_INFO "执行获取IAB向量测试"
|
||||
python3 -c "
|
||||
import sys
|
||||
sys.path.append("/usr/lib64/python3.9/site-packages")
|
||||
import capng
|
||||
try:
|
||||
iab = capng.iab_get()
|
||||
print("IAB向量获取成功:", iab)
|
||||
sys.exit(0)
|
||||
except AttributeError as e:
|
||||
print("错误:capng模块不支持iab_get方法")
|
||||
sys.exit(255)
|
||||
except Exception as e:
|
||||
print("获取IAB向量失败:", str(e))
|
||||
sys.exit(1)
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "获取IAB向量功能测试失败"
|
||||
|
||||
# 环境清理
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "清理环境:卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "获取IAB向量功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试设置IAB向量
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试设置IAB向量"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="libcap-ng-python3"
|
||||
|
||||
# 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查yum源中是否存在软件包:${PACKAGE_NAME}"
|
||||
if ! dnf list available ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在软件包:${PACKAGE_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查系统是否已安装指定软件包
|
||||
LOG_INFO "检查系统是否已安装软件包:${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "安装软件包:${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 检查iab命令是否支持set参数
|
||||
LOG_INFO "检查iab命令是否支持set参数"
|
||||
if ! iab --help 2>&1 | grep -q "set"; then
|
||||
LOG_ERROR "iab命令不支持set参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行iab set命令测试
|
||||
LOG_INFO "执行iab set命令测试"
|
||||
iab set 0x12345678
|
||||
CHECK_RESULT $? 0 0 "iab set命令执行失败"
|
||||
|
||||
# 验证IAB向量设置结果
|
||||
LOG_INFO "验证IAB向量设置结果"
|
||||
CURRENT_IAB=$(cat /proc/self/attr/current 2>/dev/null | grep -o "iab:[^[:space:]]*" | cut -d: -f2)
|
||||
EXPECTED_IAB="12345678"
|
||||
if [ "${CURRENT_IAB}" = "${EXPECTED_IAB}" ]; then
|
||||
LOG_INFO "IAB向量设置成功,当前值为:${CURRENT_IAB}"
|
||||
else
|
||||
LOG_ERROR "IAB向量设置失败,当前值为:${CURRENT_IAB},期望值为:${EXPECTED_IAB}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "卸载软件包:${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试结束:测试设置IAB向量完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包libcap-ng-python3的安装功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
# 初始化变量
|
||||
PACKAGE_NAME="libcap-ng-python3"
|
||||
LOG_INFO "开始测试软件包 ${PACKAGE_NAME} 的安装功能"
|
||||
|
||||
# 步骤1:检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在 ${PACKAGE_NAME} 软件包"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在 ${PACKAGE_NAME} 软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在 ${PACKAGE_NAME} 软件包"
|
||||
|
||||
# 步骤2:检查系统是否已经安装了该软件包
|
||||
LOG_INFO "步骤2:检查系统是否已经安装了 ${PACKAGE_NAME} 软件包"
|
||||
INSTALLED=0
|
||||
dnf list installed ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "系统已经安装了 ${PACKAGE_NAME} 软件包"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "系统未安装 ${PACKAGE_NAME} 软件包"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则进行安装
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装 ${PACKAGE_NAME} 软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 软件包失败"
|
||||
LOG_INFO "安装 ${PACKAGE_NAME} 软件包成功"
|
||||
fi
|
||||
|
||||
# 步骤4:验证安装的软件包是否可用
|
||||
LOG_INFO "步骤4:验证 ${PACKAGE_NAME} 软件包是否可用"
|
||||
# 这里可以根据具体软件包的功能进行验证,例如运行一个命令或检查文件是否存在
|
||||
# 示例:检查是否安装了python3模块
|
||||
python3 -c "import libcapng" 2>&1
|
||||
CHECK_RESULT $? 0 0 "验证 ${PACKAGE_NAME} 软件包功能失败"
|
||||
LOG_INFO "验证 ${PACKAGE_NAME} 软件包功能成功"
|
||||
|
||||
# 步骤5:如果之前未安装,则卸载软件包以恢复环境
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤5:卸载 ${PACKAGE_NAME} 软件包以恢复环境"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 软件包失败"
|
||||
LOG_INFO "卸载 ${PACKAGE_NAME} 软件包成功"
|
||||
else
|
||||
LOG_INFO "步骤5:系统原本已安装 ${PACKAGE_NAME},保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试软件包 ${PACKAGE_NAME} 的安装功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-12
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试软件包libcap-ng-python3的卸载功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试libcap-ng-python3的卸载功能"
|
||||
|
||||
LOG_INFO "步骤1:检查环境中是否已安装libcap-ng-python3软件包"
|
||||
if dnf list installed libcap-ng-python3 &> /dev/null; then
|
||||
LOG_INFO "环境已安装libcap-ng-python3,测试前状态为已安装"
|
||||
PRE_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "环境未安装libcap-ng-python3"
|
||||
PRE_INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在libcap-ng-python3软件包"
|
||||
if ! dnf list available libcap-ng-python3 &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到libcap-ng-python3软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$PRE_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装libcap-ng-python3软件包"
|
||||
dnf install -y libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "安装libcap-ng-python3失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:验证libcap-ng-python3安装成功"
|
||||
dnf list installed libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "验证libcap-ng-python3安装失败"
|
||||
|
||||
LOG_INFO "步骤5:卸载libcap-ng-python3软件包"
|
||||
dnf remove -y libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "卸载libcap-ng-python3失败"
|
||||
|
||||
LOG_INFO "步骤6:验证libcap-ng-python3卸载成功"
|
||||
if dnf list installed libcap-ng-python3 &> /dev/null; then
|
||||
LOG_ERROR "libcap-ng-python3卸载后仍然存在"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "libcap-ng-python3已成功卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:环境恢复"
|
||||
if [ "$PRE_INSTALLED" = "true" ]; then
|
||||
LOG_INFO "恢复环境到初始安装状态"
|
||||
dnf install -y libcap-ng-python3
|
||||
CHECK_RESULT $? 0 0 "恢复安装libcap-ng-python3失败"
|
||||
else
|
||||
LOG_INFO "环境已恢复为未安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "libcap-ng-python3卸载功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,93 +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 : 测试使用libmng-devel提供的头文件和库文件进行简单的程序编译和链接。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装libmng-devel
|
||||
LOG_INFO "检查是否已安装libmng-devel"
|
||||
rpm -q libmng-devel
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "libmng-devel已安装,脚本结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "libmng-devel未安装,将在测试步骤中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有libmng-devel软件包
|
||||
LOG_INFO "检查yum源中是否有libmng-devel软件包"
|
||||
dnf list available libmng-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有libmng-devel软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有libmng-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装libmng-devel
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装libmng-devel软件包"
|
||||
dnf install -y libmng-devel
|
||||
CHECK_RESULT $? 0 0 "安装libmng-devel失败"
|
||||
fi
|
||||
|
||||
# 创建测试程序源代码
|
||||
LOG_INFO "创建测试程序源代码"
|
||||
cat > test_libmng.c << "EOF"
|
||||
#include <libmng.h>
|
||||
#include <stdio.h>
|
||||
int main() {
|
||||
mng_handle mng = mng_initialize(NULL, NULL, NULL);
|
||||
if (mng == NULL) {
|
||||
printf("Failed to initialize libmng\n");
|
||||
return 1;
|
||||
}
|
||||
printf("libmng initialization successful\n");
|
||||
mng_cleanup(&mng);
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试程序源代码失败"
|
||||
|
||||
# 编译测试程序
|
||||
LOG_INFO "编译测试程序"
|
||||
gcc -o test_libmng test_libmng.c -lmng
|
||||
CHECK_RESULT $? 0 0 "编译测试程序失败"
|
||||
|
||||
# 运行测试程序
|
||||
LOG_INFO "运行测试程序"
|
||||
./test_libmng
|
||||
CHECK_RESULT $? 0 0 "运行测试程序失败"
|
||||
|
||||
# 清理测试程序
|
||||
LOG_INFO "清理测试程序"
|
||||
rm -f test_libmng test_libmng.c
|
||||
CHECK_RESULT $? 0 0 "清理测试程序失败"
|
||||
|
||||
# 如果之前未安装,则卸载libmng-devel
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载libmng-devel软件包"
|
||||
dnf remove -y libmng-devel
|
||||
CHECK_RESULT $? 0 0 "卸载libmng-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试修改XML节点内容
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试修改XML节点内容"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-libxml2"
|
||||
LOG_INFO "检查软件包 ${PACKAGE_NAME} 是否在yum源中可用"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不可用"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查当前环境是否已安装 ${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=1
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将作为测试步骤进行安装"
|
||||
INSTALLED_BEFORE=0
|
||||
fi
|
||||
|
||||
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
|
||||
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "创建测试XML文件"
|
||||
cat > test.xml << EOF
|
||||
<?xml version="1.0"?>
|
||||
<root>
|
||||
<node>原始内容</node>
|
||||
</root>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试XML文件失败"
|
||||
|
||||
LOG_INFO "测试修改XML节点内容"
|
||||
python3 -c "
|
||||
import libxml2
|
||||
doc = libxml2.parseFile("test.xml")
|
||||
root = doc.getRootElement()
|
||||
node = root.children
|
||||
while node:
|
||||
if node.name == "node":
|
||||
node.setContent("修改后的内容")
|
||||
break
|
||||
node = node.next
|
||||
doc.saveFile("test.xml")
|
||||
doc.freeDoc()
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "修改XML节点内容失败"
|
||||
|
||||
LOG_INFO "验证XML节点内容是否修改成功"
|
||||
grep -q "修改后的内容" test.xml
|
||||
CHECK_RESULT $? 0 0 "XML节点内容修改未生效"
|
||||
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test.xml
|
||||
CHECK_RESULT $? 0 0 "删除测试文件失败"
|
||||
|
||||
if [ ${INSTALLED_BEFORE} -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装 ${PACKAGE_NAME},保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试修改XML节点内容"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试安装python3-libxml2软件包
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装python3-libxml2
|
||||
LOG_INFO "检查python3-libxml2是否已安装"
|
||||
rpm -q python3-libxml2 > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-libxml2已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-libxml2未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-libxml2软件包
|
||||
LOG_INFO "检查yum源中是否有python3-libxml2软件包"
|
||||
dnf list available python3-libxml2 > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-libxml2软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装python3-libxml2软件包"
|
||||
dnf install -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "安装python3-libxml2失败"
|
||||
LOG_INFO "python3-libxml2安装成功"
|
||||
fi
|
||||
|
||||
# 验证python3-libxml2功能
|
||||
LOG_INFO "验证python3-libxml2功能"
|
||||
python3 -c "import libxml2; print("libxml2 module version:", libxml2.__version__)" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "python3-libxml2功能验证失败"
|
||||
LOG_INFO "python3-libxml2功能验证成功"
|
||||
|
||||
# 如果需要,在第二个服务器上执行命令
|
||||
if [ -n "$NODE2_IPV4" ] && [ -n "$NODE2_PASSWORD" ] && [ -n "$NODE2_USER" ]; then
|
||||
LOG_INFO "在第二个服务器上验证python3-libxml2"
|
||||
SSH_CMD "python3 -c \"import libxml2; print("libxml2 module version:", libxml2.__version__)\"" $NODE2_IPV4 $NODE2_PASSWORD $NODE2_USER
|
||||
CHECK_RESULT $? 0 0 "第二个服务器上python3-libxml2验证失败"
|
||||
LOG_INFO "第二个服务器上python3-libxml2验证成功"
|
||||
fi
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载python3-libxml2软件包"
|
||||
dnf remove -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "卸载python3-libxml2失败"
|
||||
LOG_INFO "python3-libxml2卸载成功"
|
||||
else
|
||||
LOG_INFO "保持python3-libxml2安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,96 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试解析XML文档的基本功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试解析XML文档的基本功能"
|
||||
|
||||
LOG_INFO "检查环境是否已安装python3-libxml2"
|
||||
if dnf list installed python3-libxml2 &>/dev/null; then
|
||||
LOG_INFO "python3-libxml2已安装,脚本结束时将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "python3-libxml2未安装,将在测试步骤中安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否存在python3-libxml2软件包"
|
||||
if ! dnf list available python3-libxml2 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-libxml2软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "安装python3-libxml2软件包"
|
||||
dnf install -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "安装python3-libxml2失败"
|
||||
|
||||
LOG_INFO "验证libxml2库的基本解析功能"
|
||||
cat > test_parse.xml << "EOF"
|
||||
<?xml version="1.0"?>
|
||||
<root>
|
||||
<element attribute="value">text content</element>
|
||||
</root>
|
||||
EOF
|
||||
|
||||
python3 << "EOF"
|
||||
import libxml2
|
||||
try:
|
||||
doc = libxml2.parseFile("test_parse.xml")
|
||||
root = doc.children
|
||||
if root.name != "root":
|
||||
print("ERROR: 根节点名称不正确")
|
||||
exit(1)
|
||||
element = root.children
|
||||
if element.name != "element":
|
||||
print("ERROR: 子节点名称不正确")
|
||||
exit(1)
|
||||
attr = element.hasProp("attribute")
|
||||
if not attr:
|
||||
print("ERROR: 未找到属性")
|
||||
exit(1)
|
||||
if attr.content != "value":
|
||||
print("ERROR: 属性值不正确")
|
||||
exit(1)
|
||||
if element.content.strip() != "text content":
|
||||
print("ERROR: 文本内容不正确")
|
||||
exit(1)
|
||||
print("SUCCESS: XML解析测试通过")
|
||||
exit(0)
|
||||
except Exception as e:
|
||||
print(f"ERROR: 解析过程中出现异常: {e}")
|
||||
exit(1)
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "解析XML文档功能测试失败"
|
||||
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_parse.xml
|
||||
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-libxml2软件包"
|
||||
dnf remove -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "卸载python3-libxml2失败"
|
||||
else
|
||||
LOG_INFO "保持python3-libxml2已安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试解析XML文档的基本功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试保存XML文档到文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:保存XML文档到文件"
|
||||
|
||||
# 检查是否已安装python3-libxml2
|
||||
LOG_INFO "步骤1:检查python3-libxml2是否已安装"
|
||||
if dnf list installed python3-libxml2 &>/dev/null; then
|
||||
LOG_INFO "python3-libxml2已安装,测试完成后将保持安装状态"
|
||||
installed_before=1
|
||||
else
|
||||
LOG_INFO "python3-libxml2未安装,将在测试过程中安装"
|
||||
installed_before=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-libxml2
|
||||
LOG_INFO "步骤2:检查yum源中是否有python3-libxml2软件包"
|
||||
if ! dnf list available python3-libxml2 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-libxml2软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装python3-libxml2
|
||||
if [ $installed_before -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装python3-libxml2"
|
||||
dnf install -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "安装python3-libxml2失败"
|
||||
fi
|
||||
|
||||
# 创建测试Python脚本
|
||||
LOG_INFO "步骤4:创建测试Python脚本"
|
||||
cat > /tmp/test_libxml2_save.py << "EOF"
|
||||
import libxml2
|
||||
|
||||
# 创建XML文档
|
||||
doc = libxml2.newDoc("1.0")
|
||||
root = doc.newChild(None, "root", None)
|
||||
child = root.newChild(None, "child", "This is a test")
|
||||
doc.saveFormatFileEnc("/tmp/test_output.xml", "UTF-8", 1)
|
||||
print("XML文档保存成功")
|
||||
EOF
|
||||
|
||||
# 执行Python脚本测试保存功能
|
||||
LOG_INFO "步骤5:执行Python脚本测试XML保存功能"
|
||||
python3 /tmp/test_libxml2_save.py
|
||||
CHECK_RESULT $? 0 0 "执行Python脚本失败"
|
||||
|
||||
# 验证保存的文件是否存在且内容正确
|
||||
LOG_INFO "步骤6:验证保存的XML文件"
|
||||
if [ -f "/tmp/test_output.xml" ]; then
|
||||
LOG_INFO "XML文件保存成功"
|
||||
# 检查文件内容
|
||||
if grep -q "This is a test" /tmp/test_output.xml; then
|
||||
LOG_INFO "XML文件内容正确"
|
||||
else
|
||||
LOG_ERROR "XML文件内容不正确"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "XML文件未保存成功"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "步骤7:清理临时文件"
|
||||
rm -f /tmp/test_libxml2_save.py /tmp/test_output.xml
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载python3-libxml2
|
||||
if [ $installed_before -eq 0 ]; then
|
||||
LOG_INFO "步骤8:卸载python3-libxml2"
|
||||
dnf remove -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "卸载python3-libxml2失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:保存XML文档到文件"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,141 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用DTD或XSD验证XML
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试使用DTD或XSD验证XML功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="python3-libxml2"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定的软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在,退出测试"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查环境是否已安装指定软件包
|
||||
LOG_INFO "步骤2:检查环境是否已安装软件包 $PACKAGE_NAME"
|
||||
rpm -q $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤3:安装软件包(如果未安装)
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试使用DTD验证XML
|
||||
LOG_INFO "步骤4:测试使用DTD验证XML功能"
|
||||
cat > test_dtd.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE note SYSTEM "test.dtd">
|
||||
<note>
|
||||
<to>User</to>
|
||||
<from>Admin</from>
|
||||
<heading>Reminder</heading>
|
||||
<body>Test DTD validation</body>
|
||||
</note>
|
||||
EOF
|
||||
|
||||
cat > test.dtd << EOF
|
||||
<!ELEMENT note (to,from,heading,body)>
|
||||
<!ELEMENT to (#PCDATA)>
|
||||
<!ELEMENT from (#PCDATA)>
|
||||
<!ELEMENT heading (#PCDATA)>
|
||||
<!ELEMENT body (#PCDATA)>
|
||||
EOF
|
||||
|
||||
python3 -c "
|
||||
import libxml2
|
||||
doc = libxml2.parseFile("test_dtd.xml")
|
||||
try:
|
||||
doc.validate()
|
||||
print("DTD validation passed")
|
||||
except Exception as e:
|
||||
print("DTD validation failed:", e)
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "DTD验证XML功能测试失败"
|
||||
|
||||
# 步骤5:测试使用XSD验证XML
|
||||
LOG_INFO "步骤5:测试使用XSD验证XML功能"
|
||||
cat > test_xsd.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="test.xsd">
|
||||
<to>User</to>
|
||||
<from>Admin</from>
|
||||
<heading>Reminder</heading>
|
||||
<body>Test XSD validation</body>
|
||||
</note>
|
||||
EOF
|
||||
|
||||
cat > test.xsd << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="note">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="to" type="xs:string"/>
|
||||
<xs:element name="from" type="xs:string"/>
|
||||
<xs:element name="heading" type="xs:string"/>
|
||||
<xs:element name="body" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
EOF
|
||||
|
||||
python3 -c "
|
||||
import libxml2
|
||||
doc = libxml2.parseFile("test_xsd.xml")
|
||||
try:
|
||||
doc.validate()
|
||||
print("XSD validation passed")
|
||||
except Exception as e:
|
||||
print("XSD validation failed:", e)
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "XSD验证XML功能测试失败"
|
||||
|
||||
# 步骤6:清理测试文件
|
||||
LOG_INFO "步骤6:清理测试文件"
|
||||
rm -f test_dtd.xml test.dtd test_xsd.xml test.xsd
|
||||
|
||||
# 步骤7:卸载软件包(如果测试前未安装)
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤7:卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试使用DTD或XSD验证XML功能完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,89 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-02-24
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用XPath查询节点
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试使用XPath查询节点"
|
||||
LOG_INFO "步骤1:检查环境是否已安装python3-libxml2"
|
||||
if dnf list installed python3-libxml2 &>/dev/null; then
|
||||
LOG_INFO "python3-libxml2已安装,测试完成后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-libxml2未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
LOG_INFO "步骤2:检查yum源中是否有python3-libxml2软件包"
|
||||
if ! dnf list available python3-libxml2 &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到python3-libxml2软件包"
|
||||
exit 255
|
||||
fi
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装python3-libxml2软件包"
|
||||
dnf install -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "安装python3-libxml2失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:创建测试用的XML文件"
|
||||
cat > test.xml << EOF
|
||||
<?xml version="1.0"?>
|
||||
<catalog>
|
||||
<book id="bk101">
|
||||
<author>Gambardella, Matthew</author>
|
||||
<title>XML Developer"s Guide</title>
|
||||
<genre>Computer</genre>
|
||||
<price>44.95</price>
|
||||
<publish_date>2000-10-01</publish_date>
|
||||
<description>An in-depth look at creating applications with XML.</description>
|
||||
</book>
|
||||
<book id="bk102">
|
||||
<author>Ralls, Kim</author>
|
||||
<title>Midnight Rain</title>
|
||||
<genre>Fantasy</genre>
|
||||
<price>5.95</price>
|
||||
<publish_date>2000-12-16</publish_date>
|
||||
<description>A former architect battles corporate zombies.</description>
|
||||
</book>
|
||||
</catalog>
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建XML文件失败"
|
||||
LOG_INFO "步骤5:使用python3-libxml2的XPath功能查询节点"
|
||||
python3 -c "
|
||||
import libxml2
|
||||
doc = libxml2.parseFile("test.xml")
|
||||
ctxt = doc.xpathNewContext()
|
||||
res = ctxt.xpathEval("//book")
|
||||
if len(res) == 2:
|
||||
print("查询成功,找到{}个book节点".format(len(res)))
|
||||
exit(0)
|
||||
else:
|
||||
print("查询失败,期望2个book节点,实际找到{}个".format(len(res)))
|
||||
exit(1)
|
||||
"
|
||||
CHECK_RESULT $? 0 0 "XPath查询节点失败"
|
||||
LOG_INFO "步骤6:清理临时文件"
|
||||
rm -f test.xml
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤7:卸载python3-libxml2软件包"
|
||||
dnf remove -y python3-libxml2
|
||||
CHECK_RESULT $? 0 0 "卸载python3-libxml2失败"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试python3-exceptiongroup基础功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装python3-exceptiongroup
|
||||
LOG_INFO "检查是否已安装python3-exceptiongroup"
|
||||
rpm -q python3-exceptiongroup > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-exceptiongroup已安装,脚本结束后保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "python3-exceptiongroup未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-exceptiongroup软件包
|
||||
LOG_INFO "检查yum源中是否有python3-exceptiongroup软件包"
|
||||
dnf list available python3-exceptiongroup > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-exceptiongroup软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-exceptiongroup
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "安装python3-exceptiongroup"
|
||||
dnf install -y python3-exceptiongroup > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-exceptiongroup失败"
|
||||
fi
|
||||
|
||||
# 测试python3-exceptiongroup基础功能
|
||||
LOG_INFO "测试python3-exceptiongroup基础功能"
|
||||
python3 -c "from exceptiongroup import ExceptionGroup; print("ExceptionGroup imported successfully")" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "python3-exceptiongroup基础功能测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "卸载python3-exceptiongroup"
|
||||
dnf remove -y python3-exceptiongroup > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-exceptiongroup失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试异常捕获功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试异常捕获功能
|
||||
|
||||
LOG_INFO "开始测试异常捕获功能"
|
||||
|
||||
# 检查是否已安装python3-exceptiongroup
|
||||
dnf list installed python3-exceptiongroup >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "python3-exceptiongroup已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "python3-exceptiongroup未安装,将在测试结束后卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有python3-exceptiongroup
|
||||
LOG_INFO "检查yum源中是否存在python3-exceptiongroup"
|
||||
dnf list available python3-exceptiongroup >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到python3-exceptiongroup"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-exceptiongroup
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装python3-exceptiongroup"
|
||||
dnf install -y python3-exceptiongroup >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装python3-exceptiongroup失败"
|
||||
fi
|
||||
|
||||
# 测试异常捕获功能
|
||||
LOG_INFO "测试异常捕获功能"
|
||||
python3 -c "
|
||||
try:
|
||||
raise ExceptionGroup("test", [Exception("error1"), Exception("error2")])
|
||||
except* Exception as e:
|
||||
print(f"捕获到异常: {e}")
|
||||
" >/tmp/exception_test.log 2>&1
|
||||
CHECK_RESULT $? 0 0 "异常捕获功能测试失败"
|
||||
|
||||
# 验证输出结果是否包含预期内容
|
||||
LOG_INFO "验证异常捕获结果"
|
||||
grep "捕获到异常" /tmp/exception_test.log >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "未捕获到预期异常"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f /tmp/exception_test.log
|
||||
|
||||
# 恢复环境:如果测试前未安装则卸载
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载python3-exceptiongroup"
|
||||
dnf remove -y python3-exceptiongroup >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载python3-exceptiongroup失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-12-10
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试嵌套异常功能
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装python3-exceptiongroup包
|
||||
LOG_INFO "检查是否已安装python3-exceptiongroup包"
|
||||
if dnf list installed python3-exceptiongroup &>/dev/null; then
|
||||
LOG_INFO "python3-exceptiongroup已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "python3-exceptiongroup未安装,将在测试结束后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在python3-exceptiongroup包
|
||||
LOG_INFO "检查yum源中是否存在python3-exceptiongroup包"
|
||||
if ! dnf list available python3-exceptiongroup &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在python3-exceptiongroup包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装python3-exceptiongroup包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装python3-exceptiongroup包"
|
||||
dnf install -y python3-exceptiongroup
|
||||
CHECK_RESULT $? 0 0 "安装python3-exceptiongroup失败"
|
||||
fi
|
||||
|
||||
# 测试嵌套异常功能
|
||||
LOG_INFO "开始测试嵌套异常功能"
|
||||
cat > test_exception.py <<EOF
|
||||
try:
|
||||
try:
|
||||
raise ValueError("Inner exception")
|
||||
except ValueError as e:
|
||||
raise TypeError("Outer exception") from e
|
||||
except TypeError as e:
|
||||
print(f"Caught exception: {e.__class__.__name__}: {e}")
|
||||
EOF
|
||||
|
||||
python3 test_exception.py
|
||||
CHECK_RESULT $? 0 0 "嵌套异常功能测试失败"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f test_exception.py
|
||||
|
||||
# 如果脚本开始时未安装,则在结束时卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载python3-exceptiongroup包"
|
||||
dnf remove -y python3-exceptiongroup
|
||||
CHECK_RESULT $? 0 0 "卸载python3-exceptiongroup失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完毕,环境已恢复"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test the authentication functionality of qt6-qtnetworkauth-devel.
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
|
||||
# 检查是否已安装qt6-qtnetworkauth-devel软件包
|
||||
LOG_INFO "检查qt6-qtnetworkauth-devel是否已安装..."
|
||||
if rpm -q qt6-qtnetworkauth-devel &>/dev/null; then
|
||||
LOG_INFO "qt6-qtnetworkauth-devel已安装,脚本结束后保持安装状态。"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "qt6-qtnetworkauth-devel未安装,将在测试后卸载。"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在qt6-qtnetworkauth-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在qt6-qtnetworkauth-devel软件包..."
|
||||
if ! dnf list available qt6-qtnetworkauth-devel &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到qt6-qtnetworkauth-devel软件包,退出。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装qt6-qtnetworkauth-devel软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装qt6-qtnetworkauth-devel软件包..."
|
||||
dnf install -y qt6-qtnetworkauth-devel
|
||||
CHECK_RESULT $? 0 0 "安装qt6-qtnetworkauth-devel失败"
|
||||
fi
|
||||
|
||||
# 测试认证功能
|
||||
LOG_INFO "测试qt6-qtnetworkauth-devel的认证功能..."
|
||||
# 假设测试命令为test_auth_command,这里用占位符代替
|
||||
test_auth_command="test_auth_command"
|
||||
if ! command -v "$test_auth_command" &>/dev/null; then
|
||||
LOG_ERROR "命令$test_auth_command不存在或不支持,退出。"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行测试命令
|
||||
LOG_INFO "执行测试命令:$test_auth_command"
|
||||
$test_auth_command
|
||||
CHECK_RESULT $? 0 0 "测试认证功能失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载qt6-qtnetworkauth-devel软件包..."
|
||||
dnf remove -y qt6-qtnetworkauth-devel
|
||||
CHECK_RESULT $? 0 0 "卸载qt6-qtnetworkauth-devel失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复。"
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2025-07-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试softhsm-devel软件包的回滚功能,验证回滚过程是否正常完成。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试softhsm-devel软件包的回滚功能"
|
||||
|
||||
# 检查是否已安装softhsm-devel
|
||||
LOG_INFO "检查是否已安装softhsm-devel"
|
||||
dnf list installed softhsm-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "softhsm-devel已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "softhsm-devel未安装,将在测试步骤中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有softhsm-devel软件包
|
||||
LOG_INFO "检查yum源中是否有softhsm-devel软件包"
|
||||
dnf list available softhsm-devel > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到softhsm-devel软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装softhsm-devel
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装softhsm-devel"
|
||||
dnf install -y softhsm-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装softhsm-devel失败"
|
||||
LOG_INFO "softhsm-devel安装成功"
|
||||
fi
|
||||
|
||||
# 测试回滚功能
|
||||
LOG_INFO "测试回滚功能"
|
||||
dnf history undo last -y > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "回滚softhsm-devel失败"
|
||||
|
||||
# 验证回滚后状态
|
||||
LOG_INFO "验证回滚后状态"
|
||||
dnf list installed softhsm-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "回滚后仍检测到softhsm-devel,回滚未成功"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "回滚成功,softhsm-devle已卸载"
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境,卸载之前安装的软件包"
|
||||
else
|
||||
LOG_INFO "环境清理完成,保持原有状态不变"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-07-01
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试softhsm-devel软件包的卸载功能,验证卸载过程是否正常完成。
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装softhsm-devel软件包
|
||||
LOG_INFO "检查是否已安装softhsm-devel软件包"
|
||||
rpm -q softhsm-devel > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "softhsm-devel已安装,脚本结束后将保持安装状态"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "softhsm-devel未安装,将在测试结束后卸载"
|
||||
installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在softhsm-devel软件包
|
||||
LOG_INFO "检查yum源中是否存在softhsm-devel软件包"
|
||||
dnf list available softhsm-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中不存在softhsm-devel软件包"
|
||||
|
||||
# 安装softhsm-devel软件包
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "开始安装softhsm-devel软件包"
|
||||
dnf install -y softhsm-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "安装softhsm-devel软件包失败"
|
||||
fi
|
||||
|
||||
# 验证卸载功能
|
||||
LOG_INFO "开始验证softhsm-devel的卸载功能"
|
||||
dnf remove -y softhsm-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载softhsm-devel软件包失败"
|
||||
|
||||
# 恢复环境:如果最初未安装,则重新安装;否则不处理
|
||||
if [ "$installed" = false ]; then
|
||||
LOG_INFO "恢复环境:重新安装softhsm-devel"
|
||||
dnf install -y softhsm-devel > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "恢复环境时重新安装softhsm-devel失败"
|
||||
else
|
||||
LOG_INFO "环境已恢复,无需重新安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,70 +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 : Check if package is installed
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "开始测试:检查texlive-luajittex软件包是否已安装"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查texlive-luajittex软件包是否在yum源中"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包texlive-luajittex不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查当前是否已安装
|
||||
LOG_INFO "步骤2:检查texlive-luajittex是否已安装"
|
||||
dnf list installed texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包texlive-luajittex已安装,标记为保持安装状态"
|
||||
KEEP_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包texlive-luajittex未安装,标记为需要清理"
|
||||
KEEP_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
# 检查软件包是否安装成功
|
||||
LOG_INFO "步骤4:验证软件包安装状态"
|
||||
dnf list installed texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "软件包texlive-luajittex未正确安装"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "步骤5:清理测试环境"
|
||||
if [ $KEEP_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
else
|
||||
LOG_INFO "保持texlive-luajittex软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:texlive-luajittex软件包安装检查成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,96 +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 : Compile a simple TeX file
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:编译简单的TeX文件"
|
||||
|
||||
LOG_INFO "步骤1:检查系统是否已安装texlive-luajittex软件包"
|
||||
if dnf list installed texlive-luajittex &> /dev/null; then
|
||||
LOG_INFO "texlive-luajittex已安装,测试后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将在测试中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在texlive-luajittex软件包"
|
||||
if ! dnf list texlive-luajittex &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查luajittex命令是否可用"
|
||||
if ! command -v luajittex &> /dev/null; then
|
||||
LOG_ERROR "luajittex命令未找到"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:检查luajittex命令是否支持--help参数"
|
||||
if ! luajittex --help &> /dev/null; then
|
||||
LOG_ERROR "luajittex命令不支持--help参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤6:创建测试用的简单TeX文件"
|
||||
TEST_TEX_FILE="test_simple.tex"
|
||||
cat > ${TEST_TEX_FILE} << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, TeX World!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试TeX文件失败"
|
||||
|
||||
LOG_INFO "步骤7:使用luajittex编译TeX文件"
|
||||
luajittex --interaction=nonstopmode ${TEST_TEX_FILE}
|
||||
CHECK_RESULT $? 0 0 "编译TeX文件失败"
|
||||
|
||||
LOG_INFO "步骤8:检查是否生成PDF输出文件"
|
||||
if [ -f "test_simple.pdf" ]; then
|
||||
LOG_INFO "成功生成PDF文件:test_simple.pdf"
|
||||
else
|
||||
LOG_ERROR "未找到生成的PDF文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤9:清理生成的测试文件"
|
||||
rm -f test_simple.tex test_simple.pdf test_simple.log test_simple.aux
|
||||
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤10:卸载测试安装的texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
else
|
||||
LOG_INFO "步骤10:保持texlive-luajittex安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:成功编译简单的TeX文件"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Set custom job name
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试: Set custom job name"
|
||||
|
||||
LOG_INFO "步骤1: 检查软件包 texlive-luajittex 是否在yum源中"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 texlive-luajittex 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查是否已安装 texlive-luajittex"
|
||||
if rpm -q texlive-luajittex > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包 texlive-luajittex 已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 texlive-luajittex 未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3: 安装 texlive-luajittex"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-luajittex 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 检查 luajittex 命令是否支持 -jobname 参数"
|
||||
luajittex --help 2>&1 | grep -q "\-jobname"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex 命令不支持 -jobname 参数"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "清理环境: 卸载 texlive-luajittex"
|
||||
dnf remove -y texlive-luajittex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5: 创建一个简单的LaTeX测试文件"
|
||||
cat > test.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
LOG_INFO "步骤6: 使用 luajittex 编译测试文件并设置自定义job名称为 customjob"
|
||||
luajittex -jobname=customjob test.tex
|
||||
CHECK_RESULT $? 0 0 "luajittex 编译失败"
|
||||
|
||||
LOG_INFO "步骤7: 检查是否生成了自定义名称的输出文件"
|
||||
if [ -f "customjob.log" ]; then
|
||||
LOG_INFO "成功生成自定义job名称的输出文件: customjob.log"
|
||||
else
|
||||
LOG_ERROR "未找到自定义job名称的输出文件"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "清理环境: 删除测试文件"
|
||||
rm -f test.tex test.log test.aux
|
||||
LOG_INFO "清理环境: 卸载 texlive-luajittex"
|
||||
dnf remove -y texlive-luajittex
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤8: 清理测试文件"
|
||||
rm -f test.tex test.log test.aux customjob.log customjob.aux
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤9: 卸载 texlive-luajittex"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-luajittex 失败"
|
||||
else
|
||||
LOG_INFO "步骤9: 保持 texlive-luajittex 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: Set custom job name"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Run Lua script with LuaTeX
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否安装了texlive-luajittex软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex软件包"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将在测试前安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有texlive-luajittex软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-luajittex
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
LOG_INFO "texlive-luajittex安装成功"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--luaonly参数
|
||||
LOG_INFO "检查luajittex命令是否支持--luaonly参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--luaonly"
|
||||
CHECK_RESULT $? 0 0 "luajittex不支持--luaonly参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex不支持--luaonly参数"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-luajittex > /dev/null 2>&1
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的Lua脚本用于测试
|
||||
LOG_INFO "创建测试用的Lua脚本"
|
||||
cat > test_lua_script.lua << "EOF"
|
||||
print("Hello from Lua script!")
|
||||
texio.write_nl("Hello from LuaTeX!")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua脚本失败"
|
||||
|
||||
# 使用LuaTeX运行Lua脚本
|
||||
LOG_INFO "使用LuaTeX运行Lua脚本"
|
||||
luajittex --luaonly test_lua_script.lua > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "LuaTeX运行Lua脚本失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_lua_script.lua
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
LOG_INFO "texlive-luajittex卸载成功"
|
||||
else
|
||||
LOG_INFO "保持texlive-luajittex安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,125 +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 : Generate PDF output
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(虽然题目说无需定义,但实际脚本中需要,这里补充定义)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expected=$2
|
||||
local error_code=$3
|
||||
local message=$4
|
||||
if [ $actual -ne $expected ]; then
|
||||
LOG_ERROR "$message"
|
||||
exit $error_code
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH_CMD函数(虽然题目说无需定义,但实际脚本中需要,这里补充定义)
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local node_ip=$2
|
||||
local node_password=$3
|
||||
local node_user=$4
|
||||
# 这里只是示例,实际应根据环境实现SSH连接和执行命令
|
||||
sshpass -p $node_password ssh -o StrictHostKeyChecking=no $node_user@$node_ip "$cmd"
|
||||
}
|
||||
|
||||
# 测试脚本开始
|
||||
LOG_INFO "开始测试 Generate PDF output 功能"
|
||||
|
||||
# 步骤1: 检查是否已安装 texlive-luajittex 软件包
|
||||
LOG_INFO "步骤1: 检查 texlive-luajittex 是否已安装"
|
||||
if rpm -q texlive-luajittex &> /dev/null; then
|
||||
LOG_INFO "texlive-luajittex 已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "texlive-luajittex 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤2: 检查yum源中是否有 texlive-luajittex 软件包
|
||||
LOG_INFO "步骤2: 检查yum源中是否有 texlive-luajittex 软件包"
|
||||
if ! dnf list available texlive-luajittex &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到 texlive-luajittex 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装 texlive-luajittex
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤3: 安装 texlive-luajittex"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-luajittex 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查 luajittex 命令是否支持 -output-format=pdf 参数
|
||||
LOG_INFO "步骤4: 检查 luajittex 命令是否支持 -output-format=pdf 参数"
|
||||
if ! luajittex --help | grep -q "\-output-format"; then
|
||||
LOG_ERROR "luajittex 命令不支持 -output-format 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 生成一个简单的TeX文件用于测试
|
||||
LOG_INFO "步骤5: 生成测试用的TeX文件"
|
||||
cat > test.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "生成测试TeX文件失败"
|
||||
|
||||
# 步骤6: 使用 luajittex 生成PDF
|
||||
LOG_INFO "步骤6: 使用 luajittex 生成PDF输出"
|
||||
luajittex -output-format=pdf test.tex
|
||||
CHECK_RESULT $? 0 0 "luajittex 生成PDF失败"
|
||||
|
||||
# 步骤7: 检查是否成功生成PDF文件
|
||||
LOG_INFO "步骤7: 检查是否成功生成PDF文件"
|
||||
if [ -f test.pdf ]; then
|
||||
LOG_INFO "成功生成PDF文件: test.pdf"
|
||||
else
|
||||
LOG_ERROR "未找到生成的PDF文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8: 清理测试文件
|
||||
LOG_INFO "步骤8: 清理测试文件"
|
||||
rm -f test.tex test.pdf test.log test.aux
|
||||
|
||||
# 步骤9: 如果之前未安装,则卸载 texlive-luajittex
|
||||
if [ "$INSTALLED_BEFORE" = false ]; then
|
||||
LOG_INFO "步骤9: 卸载 texlive-luajittex"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-luajittex 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: Generate PDF output 功能验证通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 package removal
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否以root用户运行
|
||||
if [[ $(id -u) -ne 0 ]]; then
|
||||
LOG_ERROR "此脚本需要以root权限运行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在软件包 ${PACKAGE_NAME}"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 在yum源中存在"
|
||||
|
||||
# 步骤2: 检查当前环境是否已安装该软件包
|
||||
LOG_INFO "步骤2: 检查当前环境是否已安装软件包 ${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
INSTALLED=$?
|
||||
if [[ ${INSTALLED} -eq 0 ]]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
NEED_UNINSTALL=0
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
NEED_UNINSTALL=1
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包作为测试步骤
|
||||
if [[ ${NEED_UNINSTALL} -eq 1 ]]; then
|
||||
LOG_INFO "步骤3: 安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 安装成功"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查软件包安装后的状态
|
||||
LOG_INFO "步骤4: 验证软件包 ${PACKAGE_NAME} 安装状态"
|
||||
rpm -q ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "验证软件包 ${PACKAGE_NAME} 安装状态失败"
|
||||
|
||||
# 步骤5: 执行软件包移除测试
|
||||
LOG_INFO "步骤5: 执行软件包移除测试"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "移除软件包 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 移除成功"
|
||||
|
||||
# 步骤6: 验证软件包是否成功移除
|
||||
LOG_INFO "步骤6: 验证软件包 ${PACKAGE_NAME} 是否成功移除"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 1 0 "软件包 ${PACKAGE_NAME} 移除后仍存在"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已成功移除"
|
||||
|
||||
# 步骤7: 环境恢复
|
||||
LOG_INFO "步骤7: 环境恢复"
|
||||
if [[ ${NEED_UNINSTALL} -eq 1 ]]; then
|
||||
# 如果脚本开始时未安装,则不需要重新安装
|
||||
LOG_INFO "测试前未安装 ${PACKAGE_NAME},保持未安装状态"
|
||||
else
|
||||
# 如果脚本开始时已安装,则重新安装
|
||||
LOG_INFO "重新安装软件包 ${PACKAGE_NAME} 以恢复环境"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "重新安装软件包 ${PACKAGE_NAME} 失败"
|
||||
LOG_INFO "环境恢复完成,软件包 ${PACKAGE_NAME} 已重新安装"
|
||||
fi
|
||||
|
||||
# 步骤8: 最终验证
|
||||
LOG_INFO "步骤8: 最终环境验证"
|
||||
if [[ ${NEED_UNINSTALL} -eq 1 ]]; then
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 1 0 "环境恢复后软件包 ${PACKAGE_NAME} 不应存在"
|
||||
LOG_INFO "环境恢复验证通过:软件包 ${PACKAGE_NAME} 未安装"
|
||||
else
|
||||
rpm -q ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "环境恢复后软件包 ${PACKAGE_NAME} 应存在"
|
||||
LOG_INFO "环境恢复验证通过:软件包 ${PACKAGE_NAME} 已安装"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test shell escape feature
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试shell escape功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查texlive-luajittex软件包是否在yum源中"
|
||||
if ! dnf list available texlive-luajittex &>/dev/null; then
|
||||
LOG_ERROR "texlive-luajittex软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装texlive-luajittex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex"
|
||||
if rpm -q texlive-luajittex &>/dev/null; then
|
||||
LOG_INFO "texlive-luajittex已安装,测试完成后将保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将在测试前安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
# 测试shell escape功能
|
||||
LOG_INFO "测试shell escape功能"
|
||||
# 使用luajittex执行带有shell escape的简单LaTeX文档
|
||||
cat > test_shell_escape.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Test shell escape: \write18{echo "Hello from shell escape"}
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 尝试编译带有shell escape的文档
|
||||
LOG_INFO "编译带有shell escape的LaTeX文档"
|
||||
luajittex -shell-escape test_shell_escape.tex
|
||||
CHECK_RESULT $? 0 0 "shell escape功能测试失败"
|
||||
|
||||
# 检查是否生成了输出
|
||||
LOG_INFO "检查是否生成了输出文件"
|
||||
if [ -f test_shell_escape.log ]; then
|
||||
LOG_INFO "成功生成了日志文件"
|
||||
else
|
||||
LOG_ERROR "未生成日志文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_shell_escape.tex test_shell_escape.log test_shell_escape.aux
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "shell escape功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,103 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test SyncTeX generation
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试SyncTeX生成功能
|
||||
LOG_INFO "开始测试SyncTeX生成功能"
|
||||
|
||||
# 判断yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex软件包"
|
||||
if ! dnf list available texlive-luajittex &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装texlive-luajittex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex"
|
||||
if rpm -q texlive-luajittex &>/dev/null; then
|
||||
LOG_INFO "texlive-luajittex已安装,测试后保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将在测试中安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--synctex参数
|
||||
LOG_INFO "检查luajittex命令是否支持--synctex参数"
|
||||
if ! luajittex --help | grep -q "synctex"; then
|
||||
LOG_ERROR "luajittex命令不支持--synctex参数"
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的简单LaTeX文件
|
||||
LOG_INFO "创建测试用的LaTeX文件"
|
||||
cat > test_synctex.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, SyncTeX!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 使用luajittex生成PDF和SyncTeX文件
|
||||
LOG_INFO "使用luajittex生成PDF和SyncTeX文件"
|
||||
luajittex --synctex=1 test_synctex.tex
|
||||
CHECK_RESULT $? 0 0 "luajittex执行失败"
|
||||
|
||||
# 检查是否生成了SyncTeX文件
|
||||
LOG_INFO "检查是否生成了SyncTeX文件"
|
||||
if [ -f "test_synctex.synctex.gz" ]; then
|
||||
LOG_INFO "SyncTeX文件生成成功"
|
||||
else
|
||||
LOG_ERROR "未找到SyncTeX文件"
|
||||
CHECK_RESULT 1 0 0 "SyncTeX文件未生成"
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_synctex.tex test_synctex.pdf test_synctex.log test_synctex.aux test_synctex.synctex.gz
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
LOG_INFO "环境已恢复到测试前状态"
|
||||
else
|
||||
LOG_INFO "保持texlive-luajittex安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "SyncTeX生成功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +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 : Display version information
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex软件包"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装texlive-luajittex
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否存在
|
||||
LOG_INFO "检查luajittex命令是否存在"
|
||||
which luajittex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不存在"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
dnf remove -y texlive-luajittex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查luajittex是否支持--version参数
|
||||
LOG_INFO "检查luajittex是否支持--version参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-version"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex不支持--version参数"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
dnf remove -y texlive-luajittex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行luajittex --version命令
|
||||
LOG_INFO "执行luajittex --version命令"
|
||||
luajittex --version
|
||||
CHECK_RESULT $? 0 0 "执行luajittex --version失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装texlive-luajittex,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,120 +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 : 使用 --draftmode 参数启用草稿模式(不生成输出PDF)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 texlive-luajittex 和 luajithbtex 的 --draftmode 参数"
|
||||
|
||||
# 检查软件包是否在 yum 源中
|
||||
LOG_INFO "检查 yum 源中是否存在 texlive-luajittex 软件包"
|
||||
dnf list available texlive-luajittex &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中不存在 texlive-luajittex 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查 yum 源中是否存在 luajithbtex 软件包"
|
||||
dnf list available luajithbtex &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum 源中不存在 luajithbtex 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "检查 texlive-luajittex 和 luajithbtex 是否已安装"
|
||||
if rpm -q texlive-luajittex &>/dev/null && rpm -q luajithbtex &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将安装软件包作为测试步骤"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装 texlive-luajittex 和 luajithbtex 软件包"
|
||||
dnf install -y texlive-luajittex luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 测试 luajittex 的 --draftmode 参数
|
||||
LOG_INFO "测试 luajittex 的 --draftmode 参数"
|
||||
luajittex --draftmode --help &>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "luajittex 不支持 --draftmode 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试 luajithbtex 的 --draftmode 参数
|
||||
LOG_INFO "测试 luajithbtex 的 --draftmode 参数"
|
||||
luajithbtex --draftmode --help &>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "luajithbtex 不支持 --draftmode 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试用的简单 LaTeX 文件
|
||||
LOG_INFO "创建测试用的 LaTeX 文件"
|
||||
cat > test_draftmode.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Test draft mode.
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用 luajittex 执行 --draftmode 测试
|
||||
LOG_INFO "使用 luajittex 执行 --draftmode 测试"
|
||||
luajittex --draftmode test_draftmode.tex
|
||||
CHECK_RESULT $? 0 0 "luajittex --draftmode 执行失败"
|
||||
|
||||
# 检查是否未生成 PDF 文件
|
||||
LOG_INFO "检查 luajittex 是否未生成 PDF 文件"
|
||||
if [ -f test_draftmode.pdf ]; then
|
||||
LOG_ERROR "luajittex --draftmode 不应生成 PDF 文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 使用 luajithbtex 执行 --draftmode 测试
|
||||
LOG_INFO "使用 luajithbtex 执行 --draftmode 测试"
|
||||
luajithbtex --draftmode test_draftmode.tex
|
||||
CHECK_RESULT $? 0 0 "luajithbtex --draftmode 执行失败"
|
||||
|
||||
# 检查是否未生成 PDF 文件
|
||||
LOG_INFO "检查 luajithbtex 是否未生成 PDF 文件"
|
||||
if [ -f test_draftmode.pdf ]; then
|
||||
LOG_ERROR "luajithbtex --draftmode 不应生成 PDF 文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_draftmode.tex test_draftmode.log test_draftmode.aux
|
||||
|
||||
# 如果测试前未安装软件包,则卸载
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载 texlive-luajittex 和 luajithbtex 软件包"
|
||||
dnf remove -y texlive-luajittex luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 使用 --halt-on-error 参数在遇到第一个错误时停止处理
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本开始
|
||||
|
||||
# 环境初始化
|
||||
LOG_INFO "开始测试:测试 --halt-on-error 参数功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
|
||||
# 步骤1:检查软件包是否已在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中,测试无法继续"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装软件包"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试后将保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将在测试步骤中安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:验证 --halt-on-error 参数是否存在
|
||||
LOG_INFO "步骤4:验证 luajittex 命令是否支持 --halt-on-error 参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-halt\-on\-error"
|
||||
CHECK_RESULT $? 0 0 "luajittex 命令不支持 --halt-on-error 参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex 命令不支持 --halt-on-error 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试 --halt-on-error 参数功能
|
||||
LOG_INFO "步骤5:测试 --halt-on-error 参数在遇到第一个错误时停止处理"
|
||||
# 创建一个包含错误的测试tex文件
|
||||
TEST_TEX_FILE="test_halt_error.tex"
|
||||
cat > ${TEST_TEX_FILE} << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
This is a test.
|
||||
\undefinedcommand
|
||||
This line should not be processed.
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用 --halt-on-error 参数运行 luajittex
|
||||
luajittex --halt-on-error ${TEST_TEX_FILE} 2>&1 | tee luajittex_output.txt
|
||||
# 检查命令是否因错误而提前退出
|
||||
LUAJITTEX_EXIT_CODE=$?
|
||||
if [ ${LUAJITTEX_EXIT_CODE} -ne 0 ]; then
|
||||
LOG_INFO "luajittex 因遇到错误而提前退出,退出码:${LUAJITTEX_EXIT_CODE}"
|
||||
# 检查输出中是否包含错误信息,且后续行未被处理
|
||||
if grep -q "undefinedcommand" luajittex_output.txt && ! grep -q "should not be processed" luajittex_output.txt; then
|
||||
LOG_INFO "测试通过:--halt-on-error 参数在遇到第一个错误时成功停止处理"
|
||||
else
|
||||
LOG_ERROR "测试失败:--halt-on-error 参数未在第一个错误时停止处理"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "测试失败:luajittex 未因错误而提前退出"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
rm -f ${TEST_TEX_FILE} luajittex_output.txt
|
||||
|
||||
# 步骤6:环境恢复
|
||||
LOG_INFO "步骤6:恢复测试环境"
|
||||
if [ "${INSTALLED_BEFORE_TEST}" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:--halt-on-error 参数功能测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用 --help 参数显示帮助信息并退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex和texlive-luajithbtex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texlive-luajithbtex"
|
||||
rpm -q texlive-luajittex texlive-luajithbtex > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
# 如果未安装,则进行安装
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "软件包未安装,开始安装"
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有texlive-luajittex软件包"
|
||||
# 检查yum源中是否有texlive-luajithbtex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajithbtex软件包"
|
||||
dnf list available texlive-luajithbtex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有texlive-luajithbtex软件包"
|
||||
# 安装软件包
|
||||
LOG_INFO "安装texlive-luajittex和texlive-luajithbtex"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texlive-luajithbtex失败"
|
||||
else
|
||||
LOG_INFO "软件包已安装,跳过安装步骤"
|
||||
fi
|
||||
|
||||
# 测试luajittex --help参数
|
||||
LOG_INFO "测试luajittex --help参数"
|
||||
luajittex --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex --help参数不存在或不支持"
|
||||
|
||||
# 测试luajithbtex --help参数
|
||||
LOG_INFO "测试luajithbtex --help参数"
|
||||
luajithbtex --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajithbtex --help参数不存在或不支持"
|
||||
|
||||
# 如果脚本开始时未安装,则卸载软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "清理环境,卸载安装的软件包"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texlive-luajithbtex失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用 --ini 参数进入 iniluajithbtex 模式,用于转储格式文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装texlive-luajittex和texlive-luajithbtex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texlive-luajithbtex"
|
||||
rpm -q texlive-luajittex texlive-luajithbtex
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,测试后将卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex和texlive-luajithbtex"
|
||||
dnf list available texlive-luajittex texlive-luajithbtex
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-luajittex或texlive-luajithbtex"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texlive-luajithbtex"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texlive-luajithbtex失败"
|
||||
fi
|
||||
|
||||
# 测试--ini参数是否支持
|
||||
LOG_INFO "测试luajithbtex命令是否支持--ini参数"
|
||||
luajithbtex --help | grep -E "\-\-ini"
|
||||
CHECK_RESULT $? 0 0 "luajithbtex命令不支持--ini参数"
|
||||
|
||||
# 执行测试用例:使用--ini参数进入iniluajithbtex模式,用于转储格式文件
|
||||
LOG_INFO "执行测试:使用--ini参数进入iniluajithbtex模式"
|
||||
luajithbtex --ini
|
||||
CHECK_RESULT $? 0 0 "luajithbtex --ini执行失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texlive-luajithbtex"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texlive-luajithbtex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用 --jiton 参数开启JIT编译器(默认关闭)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex和texlive-luajithbtex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texlive-luajithbtex"
|
||||
rpm -q texlive-luajittex texlive-luajithbtex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex和texlive-luajithbtex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex和texlive-luajithbtex软件包"
|
||||
dnf list available texlive-luajittex texlive-luajithbtex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到texlive-luajittex或texlive-luajithbtex软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex或texlive-luajithbtex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texlive-luajithbtex软件包"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texlive-luajithbtex软件包失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--jiton参数
|
||||
LOG_INFO "检查luajittex命令是否支持--jiton参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--jiton"
|
||||
CHECK_RESULT $? 0 0 "luajittex命令不支持--jiton参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--jiton参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查luajithbtex命令是否支持--jiton参数
|
||||
LOG_INFO "检查luajithbtex命令是否支持--jiton参数"
|
||||
luajithbtex --help 2>&1 | grep -q -- "--jiton"
|
||||
CHECK_RESULT $? 0 0 "luajithbtex命令不支持--jiton参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajithbtex命令不支持--jiton参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 使用--jiton参数运行luajittex命令
|
||||
LOG_INFO "使用--jiton参数运行luajittex命令"
|
||||
luajittex --jiton --version
|
||||
CHECK_RESULT $? 0 0 "使用--jiton参数运行luajittex命令失败"
|
||||
|
||||
# 使用--jiton参数运行luajithbtex命令
|
||||
LOG_INFO "使用--jiton参数运行luajithbtex命令"
|
||||
luajithbtex --jiton --version
|
||||
CHECK_RESULT $? 0 0 "使用--jiton参数运行luajithbtex命令失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texlive-luajithbtex软件包"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texlive-luajithbtex软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用 --jobname 参数设置作业名称
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试texlive-luajittex和luajithbtex的jobname参数功能"
|
||||
LOG_INFO "步骤1: 检查软件包是否在yum源中"
|
||||
dnf list available texlive-luajittex 2>/dev/null | grep -q texlive-luajittex
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包texlive-luajittex不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
dnf list available texlive-luajithbtex 2>/dev/null | grep -q texlive-luajithbtex
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包texlive-luajithbtex不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2: 检查当前是否已安装软件包"
|
||||
INSTALLED=0
|
||||
rpm -q texlive-luajittex >/dev/null 2>&1 && rpm -q texlive-luajithbtex >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
INSTALLED=1
|
||||
LOG_INFO "软件包已安装,测试后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
fi
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装软件包"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
LOG_INFO "步骤4: 检查luajittex命令是否支持--jobname参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-jobname"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--jobname参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤5: 检查luajithbtex命令是否支持--jobname参数"
|
||||
luajithbtex --help 2>&1 | grep -q "\-\-jobname"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajithbtex命令不支持--jobname参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤6: 创建测试LaTeX文件"
|
||||
cat > test_jobname.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, world!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
LOG_INFO "步骤7: 使用luajittex命令的--jobname参数设置作业名称"
|
||||
luajittex --jobname=luajittex_output test_jobname.tex
|
||||
CHECK_RESULT $? 0 0 "luajittex命令执行失败"
|
||||
if [ -f "luajittex_output.log" ]; then
|
||||
LOG_INFO "luajittex的jobname参数功能正常"
|
||||
else
|
||||
LOG_ERROR "luajittex的jobname参数功能异常"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "步骤8: 使用luajithbtex命令的--jobname参数设置作业名称"
|
||||
luajithbtex --jobname=luajithbtex_output test_jobname.tex
|
||||
CHECK_RESULT $? 0 0 "luajithbtex命令执行失败"
|
||||
if [ -f "luajithbtex_output.log" ]; then
|
||||
LOG_INFO "luajithbtex的jobname参数功能正常"
|
||||
else
|
||||
LOG_ERROR "luajithbtex的jobname参数功能异常"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
LOG_INFO "步骤9: 清理临时文件"
|
||||
rm -f test_jobname.tex *.log *.aux *.dvi *.pdf luajittex_output.* luajithbtex_output.*
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤10: 卸载软件包"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,96 +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 : 使用 --lua 参数指定Lua初始化脚本文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex和texlive-luajithbtex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texlive-luajithbtex"
|
||||
if dnf list installed texlive-luajittex &>/dev/null && dnf list installed texlive-luajithbtex &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,脚本结束时将保持安装状态"
|
||||
INSTALLED_ALREADY=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED_ALREADY=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex和texlive-luajithbtex"
|
||||
if ! dnf list available texlive-luajittex &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available texlive-luajithbtex &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在texlive-luajithbtex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED_ALREADY -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texlive-luajithbtex"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texlive-luajithbtex失败"
|
||||
fi
|
||||
|
||||
# 测试luajittex命令的--lua参数
|
||||
LOG_INFO "测试luajittex命令的--lua参数"
|
||||
# 创建一个简单的Lua初始化脚本文件
|
||||
cat > test_lua_init.lua << "EOF"
|
||||
print("Lua initialization script loaded")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua初始化脚本文件失败"
|
||||
|
||||
# 执行luajittex命令,使用--lua参数指定Lua初始化脚本
|
||||
LOG_INFO "执行luajittex --lua test_lua_init.lua --version"
|
||||
luajittex --lua test_lua_init.lua --version
|
||||
CHECK_RESULT $? 0 0 "luajittex命令执行失败"
|
||||
|
||||
# 测试luajithbtex命令的--lua参数
|
||||
LOG_INFO "测试luajithbtex命令的--lua参数"
|
||||
LOG_INFO "执行luajithbtex --lua test_lua_init.lua --version"
|
||||
luajithbtex --lua test_lua_init.lua --version
|
||||
CHECK_RESULT $? 0 0 "luajithbtex命令执行失败"
|
||||
|
||||
# 测试不支持的参数
|
||||
LOG_INFO "测试luajittex命令的不支持的参数"
|
||||
luajittex --unsupported-param 2>&1 | grep -q "unrecognized option"
|
||||
CHECK_RESULT $? 0 0 "luajittex命令应不支持--unsupported-param参数"
|
||||
|
||||
LOG_INFO "测试luajithbtex命令的不支持的参数"
|
||||
luajithbtex --unsupported-param 2>&1 | grep -q "unrecognized option"
|
||||
CHECK_RESULT $? 0 0 "luajithbtex命令应不支持--unsupported-param参数"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_lua_init.lua
|
||||
CHECK_RESULT $? 0 0 "删除测试文件失败"
|
||||
|
||||
# 如果脚本开始时未安装软件包,则卸载
|
||||
if [ $INSTALLED_ALREADY -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texlive-luajithbtex"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texlive-luajithbtex失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 同时使用 --lua 和 --jobname 参数指定脚本和作业名
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex和texlive-luajithbtex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texlive-luajithbtex"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
texlive_luajittex_installed=$?
|
||||
rpm -q texlive-luajithbtex > /dev/null 2>&1
|
||||
texlive_luajithbtex_installed=$?
|
||||
|
||||
if [ $texlive_luajittex_installed -eq 0 ] && [ $texlive_luajithbtex_installed -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex和texlive-luajithbtex已安装"
|
||||
installed_before_test=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex和texlive-luajithbtex未安装,将在测试过程中安装"
|
||||
installed_before_test=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex和texlive-luajithbtex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex和texlive-luajithbtex软件包"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajithbtex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有texlive-luajithbtex软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $installed_before_test -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texlive-luajithbtex"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texlive-luajithbtex失败"
|
||||
fi
|
||||
|
||||
# 创建测试用的Lua脚本
|
||||
LOG_INFO "创建测试用的Lua脚本"
|
||||
cat > test_script.lua << "EOF"
|
||||
print("Hello from Lua script!")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua脚本失败"
|
||||
|
||||
# 测试同时使用--lua和--jobname参数
|
||||
LOG_INFO "测试同时使用--lua和--jobname参数"
|
||||
luajittex --lua=test_script.lua --jobname=testjob test.tex > output.log 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex命令执行失败"
|
||||
|
||||
# 检查输出文件中是否包含预期的作业名
|
||||
LOG_INFO "检查输出文件中是否包含预期的作业名"
|
||||
grep -q "testjob" testjob.log 2>/dev/null
|
||||
CHECK_RESULT $? 0 0 "输出文件中未找到预期的作业名"testjob""
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_script.lua output.log testjob.log test.aux test.log
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $installed_before_test -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texlive-luajithbtex"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texlive-luajithbtex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用 --luaonly 参数运行一个Lua文件后退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用 --luaonly 参数运行一个Lua文件后退出"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex-luajithbtex-luaonly软件包"
|
||||
if ! dnf list available texlive-luajittex-luajithbtex-luaonly &>/dev/null; then
|
||||
LOG_ERROR "软件包texlive-luajittex-luajithbtex-luaonly不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查是否已安装texlive-luajittex-luajithbtex-luaonly软件包"
|
||||
if rpm -q texlive-luajittex-luajithbtex-luaonly &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-luajittex-luajithbtex-luaonly软件包"
|
||||
dnf install -y texlive-luajittex-luajithbtex-luaonly
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 检查命令是否支持 --luaonly 参数
|
||||
LOG_INFO "检查luajittex命令是否支持--luaonly参数"
|
||||
if ! luajittex --help 2>&1 | grep -q -- "--luaonly"; then
|
||||
LOG_ERROR "luajittex命令不支持--luaonly参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的Lua测试文件
|
||||
LOG_INFO "创建测试用的Lua文件"
|
||||
cat > test_luaonly.lua << "EOF"
|
||||
print("Hello from Lua!")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua文件失败"
|
||||
|
||||
# 使用 --luaonly 参数运行Lua文件
|
||||
LOG_INFO "使用--luaonly参数运行Lua文件"
|
||||
luajittex --luaonly test_luaonly.lua
|
||||
CHECK_RESULT $? 0 0 "使用--luaonly参数运行Lua文件失败"
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f test_luaonly.lua
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-luajittex-luajithbtex-luaonly软件包"
|
||||
dnf remove -y texlive-luajittex-luajithbtex-luaonly
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,107 +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 : 使用 --output-format 参数指定输出格式为PDF
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 初始化变量
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
COMMAND_NAME="luajithbtex"
|
||||
EXPECTED_FORMAT="pdf"
|
||||
LOG_INFO "开始测试 ${COMMAND_NAME} 的 --output-format 参数功能"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查 ${PACKAGE_NAME} 是否在yum源中"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前是否已安装
|
||||
LOG_INFO "步骤2:检查 ${PACKAGE_NAME} 是否已安装"
|
||||
INSTALLED=false
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
INSTALLED=true
|
||||
LOG_INFO "${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
|
||||
else
|
||||
LOG_INFO "${PACKAGE_NAME} 未安装,将进行安装测试"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令是否存在
|
||||
LOG_INFO "步骤4:检查 ${COMMAND_NAME} 命令是否存在"
|
||||
command -v ${COMMAND_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "${COMMAND_NAME} 命令不存在"
|
||||
|
||||
# 步骤5:检查 --output-format 参数是否支持
|
||||
LOG_INFO "步骤5:检查 --output-format 参数是否支持"
|
||||
${COMMAND_NAME} --help 2>&1 | grep -q -- "--output-format"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "${COMMAND_NAME} 不支持 --output-format 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:测试 --output-format 参数指定PDF格式
|
||||
LOG_INFO "步骤6:测试 --output-format 参数指定输出格式为PDF"
|
||||
TEST_FILE="test_output_format.tex"
|
||||
cat > ${TEST_FILE} << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Test document for output format.
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
${COMMAND_NAME} --output-format=${EXPECTED_FORMAT} ${TEST_FILE}
|
||||
CHECK_RESULT $? 0 0 "使用 --output-format=${EXPECTED_FORMAT} 参数执行失败"
|
||||
|
||||
# 步骤7:验证输出文件格式
|
||||
LOG_INFO "步骤7:验证输出文件格式"
|
||||
OUTPUT_FILE="${TEST_FILE%.tex}.${EXPECTED_FORMAT}"
|
||||
if [ -f "${OUTPUT_FILE}" ]; then
|
||||
LOG_INFO "成功生成输出文件: ${OUTPUT_FILE}"
|
||||
file "${OUTPUT_FILE}" | grep -i "${EXPECTED_FORMAT}" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "输出文件格式不是预期的 ${EXPECTED_FORMAT}"
|
||||
else
|
||||
LOG_ERROR "未找到预期的输出文件: ${OUTPUT_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤8:清理测试文件
|
||||
LOG_INFO "步骤8:清理测试文件"
|
||||
rm -f ${TEST_FILE} ${OUTPUT_FILE} ${TEST_FILE%.tex}.log ${TEST_FILE%.tex}.aux
|
||||
|
||||
# 步骤9:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤9:卸载 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,122 +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 : 使用 --recorder 参数启用文件名记录器
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex和texlive-luajithbtex
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texlive-luajithbtex"
|
||||
rpm -q texlive-luajittex texlive-luajithbtex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有相关软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex和texlive-luajithbtex软件包"
|
||||
dnf list available texlive-luajittex texlive-luajithbtex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex或texlive-luajithbtex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装texlive-luajittex和texlive-luajithbtex"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texlive-luajithbtex失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--recorder参数
|
||||
LOG_INFO "检查luajittex命令是否支持--recorder参数"
|
||||
luajittex --help | grep -q "\-\-recorder"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--recorder参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查luajithbtex命令是否支持--recorder参数
|
||||
LOG_INFO "检查luajithbtex命令是否支持--recorder参数"
|
||||
luajithbtex --help | grep -q "\-\-recorder"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajithbtex命令不支持--recorder参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的测试TeX文件
|
||||
LOG_INFO "创建测试TeX文件"
|
||||
TEST_TEX="test_recorder.tex"
|
||||
cat > $TEST_TEX << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Test document for recorder parameter.
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试TeX文件失败"
|
||||
|
||||
# 使用luajittex命令并启用--recorder参数
|
||||
LOG_INFO "使用luajittex命令并启用--recorder参数"
|
||||
luajittex --recorder $TEST_TEX
|
||||
CHECK_RESULT $? 0 0 "luajittex命令执行失败"
|
||||
|
||||
# 检查是否生成了记录文件
|
||||
LOG_INFO "检查是否生成了记录文件"
|
||||
if [ -f "${TEST_TEX%.tex}.fls" ]; then
|
||||
LOG_INFO "成功生成记录文件: ${TEST_TEX%.tex}.fls"
|
||||
else
|
||||
LOG_ERROR "未生成记录文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理luajittex生成的中间文件
|
||||
LOG_INFO "清理luajittex生成的中间文件"
|
||||
rm -f ${TEST_TEX%.tex}.aux ${TEST_TEX%.tex}.log ${TEST_TEX%.tex}.fls
|
||||
|
||||
# 使用luajithbtex命令并启用--recorder参数
|
||||
LOG_INFO "使用luajithbtex命令并启用--recorder参数"
|
||||
luajithbtex --recorder $TEST_TEX
|
||||
CHECK_RESULT $? 0 0 "luajithbtex命令执行失败"
|
||||
|
||||
# 检查是否生成了记录文件
|
||||
LOG_INFO "检查是否生成了记录文件"
|
||||
if [ -f "${TEST_TEX%.tex}.fls" ]; then
|
||||
LOG_INFO "成功生成记录文件: ${TEST_TEX%.tex}.fls"
|
||||
else
|
||||
LOG_ERROR "未生成记录文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f $TEST_TEX ${TEST_TEX%.tex}.aux ${TEST_TEX%.tex}.log ${TEST_TEX%.tex}.fls
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texlive-luajithbtex软件包"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texlive-luajithbtex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,102 +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 : 使用 --safer 参数禁用易受攻击的Lua命令
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试luajittex和luajithbtex的--safer参数功能"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包texlive-luajittex和texlive-luajithbtex是否在yum源中"
|
||||
dnf list available texlive-luajittex texlive-luajithbtex >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包texlive-luajittex或texlive-luajithbtex不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
LOG_INFO "检查软件包是否已安装"
|
||||
if rpm -q texlive-luajittex texlive-luajithbtex >/dev/null 2>&1; then
|
||||
already_installed=1
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
else
|
||||
already_installed=0
|
||||
LOG_INFO "软件包未安装,将进行安装测试"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texlive-luajithbtex"
|
||||
dnf install -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 测试luajittex --safer参数
|
||||
LOG_INFO "测试luajittex --safer参数"
|
||||
luajittex --safer --version >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex不支持--safer参数"
|
||||
|
||||
# 测试luajithbtex --safer参数
|
||||
LOG_INFO "测试luajithbtex --safer参数"
|
||||
luajithbtex --safer --version >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajithbtex不支持--safer参数"
|
||||
|
||||
# 创建测试Lua文件
|
||||
LOG_INFO "创建测试Lua文件"
|
||||
cat > test_safer.lua << "EOF"
|
||||
os.execute("echo unsafe")
|
||||
EOF
|
||||
|
||||
# 测试luajittex执行不安全命令
|
||||
LOG_INFO "测试luajittex在不安全模式下执行命令"
|
||||
luajittex --lua test_safer.lua test.tex 2>&1 | grep -q "unsafe"
|
||||
CHECK_RESULT $? 0 0 "luajittex在不安全模式下未执行命令"
|
||||
|
||||
# 测试luajittex在安全模式下执行命令
|
||||
LOG_INFO "测试luajittex在安全模式下执行命令"
|
||||
luajittex --safer --lua test_safer.lua test.tex 2>&1 | grep -q "attempt to call a nil value"
|
||||
CHECK_RESULT $? 0 0 "luajittex在安全模式下未禁用不安全命令"
|
||||
|
||||
# 测试luajithbtex执行不安全命令
|
||||
LOG_INFO "测试luajithbtex在不安全模式下执行命令"
|
||||
luajithbtex --lua test_safer.lua test.tex 2>&1 | grep -q "unsafe"
|
||||
CHECK_RESULT $? 0 0 "luajithbtex在不安全模式下未执行命令"
|
||||
|
||||
# 测试luajithbtex在安全模式下执行命令
|
||||
LOG_INFO "测试luajithbtex在安全模式下执行命令"
|
||||
luajithbtex --safer --lua test_safer.lua test.tex 2>&1 | grep -q "attempt to call a nil value"
|
||||
CHECK_RESULT $? 0 0 "luajithbtex在安全模式下未禁用不安全命令"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_safer.lua test.aux test.log test.pdf
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y texlive-luajittex texlive-luajithbtex
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用 --shell-escape 参数启用系统命令
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用 --shell-escape 参数启用系统命令"
|
||||
|
||||
# 定义需要测试的软件包
|
||||
PACKAGE="texlive-luajittex"
|
||||
COMMAND="luajithbtex"
|
||||
PARAM="--shell-escape"
|
||||
|
||||
# 步骤1:检查软件包是否已在系统中安装
|
||||
LOG_INFO "步骤1:检查软件包是否已安装"
|
||||
if dnf list installed "$PACKAGE" &>/dev/null; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否存在该软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否存在软件包"
|
||||
if ! dnf list available "$PACKAGE" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到软件包:$PACKAGE"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包"
|
||||
dnf install -y "$PACKAGE"
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令是否存在
|
||||
LOG_INFO "步骤4:检查命令是否存在"
|
||||
if ! command -v "$COMMAND" &>/dev/null; then
|
||||
LOG_ERROR "命令不存在:$COMMAND"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:检查参数是否支持
|
||||
LOG_INFO "步骤5:检查参数是否支持"
|
||||
if ! "$COMMAND" --help 2>&1 | grep -q "$PARAM"; then
|
||||
LOG_ERROR "参数不支持:$PARAM"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:执行测试命令
|
||||
LOG_INFO "步骤6:执行测试命令"
|
||||
"$COMMAND" "$PARAM" --version
|
||||
CHECK_RESULT $? 0 0 "执行命令失败"
|
||||
|
||||
# 步骤7:清理环境
|
||||
LOG_INFO "步骤7:清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y "$PACKAGE"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "软件包在测试前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 使用 --synctex 参数启用SyncTeX支持
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "1. 检查yum源中是否存在软件包 ${PACKAGE_NAME}"
|
||||
dnf list available ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查系统是否已安装该软件包
|
||||
LOG_INFO "2. 检查系统是否已安装软件包 ${PACKAGE_NAME}"
|
||||
rpm -q ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE="yes"
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将进行安装测试"
|
||||
INSTALLED_BEFORE="no"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "3. 安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查luajittex命令是否支持--synctex参数
|
||||
LOG_INFO "4. 检查luajittex命令是否支持--synctex参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-synctex"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--synctex参数"
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "清理环境:卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:使用--synctex参数测试luajittex命令
|
||||
LOG_INFO "5. 使用--synctex参数测试luajittex命令"
|
||||
cat > test_synctex.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, SyncTeX!
|
||||
\end{document}
|
||||
EOF
|
||||
luajittex --synctex=1 test_synctex.tex
|
||||
CHECK_RESULT $? 0 0 "使用--synctex参数执行luajittex失败"
|
||||
|
||||
# 步骤6:检查是否生成了.synctex文件
|
||||
LOG_INFO "6. 检查是否生成了.synctex文件"
|
||||
if [ -f test_synctex.synctex.gz ]; then
|
||||
LOG_INFO "成功生成test_synctex.synctex.gz文件"
|
||||
else
|
||||
LOG_ERROR "未生成.synctex文件"
|
||||
CHECK_RESULT 1 0 0 "SyncTeX支持测试失败"
|
||||
fi
|
||||
|
||||
# 步骤7:清理测试文件
|
||||
LOG_INFO "7. 清理测试文件"
|
||||
rm -f test_synctex.tex test_synctex.synctex.gz test_synctex.log test_synctex.aux
|
||||
|
||||
# 步骤8:如果测试前未安装,则卸载软件包
|
||||
if [ "${INSTALLED_BEFORE}" = "no" ]; then
|
||||
LOG_INFO "8. 卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "8. 测试前已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +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 : 测试启用草稿模式(不生成输出PDF)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试启用草稿模式(不生成输出PDF)"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
COMMAND="luajittex"
|
||||
PARAM="--draftmode"
|
||||
|
||||
# 步骤1:检查yum源中是否有指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否有软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
CHECK_RESULT $? 0 0 "检查软件包在yum源中是否存在失败"
|
||||
|
||||
# 步骤2:检查系统是否已安装该软件包
|
||||
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
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令是否存在
|
||||
LOG_INFO "步骤4:检查命令 $COMMAND 是否存在"
|
||||
if ! command -v $COMMAND &>/dev/null; then
|
||||
LOG_ERROR "命令 $COMMAND 不存在"
|
||||
exit 255
|
||||
fi
|
||||
CHECK_RESULT $? 0 0 "检查命令 $COMMAND 是否存在失败"
|
||||
|
||||
# 步骤5:检查参数是否支持
|
||||
LOG_INFO "步骤5:检查命令 $COMMAND 是否支持参数 $PARAM"
|
||||
if ! $COMMAND --help 2>&1 | grep -q "$PARAM"; then
|
||||
LOG_ERROR "命令 $COMMAND 不支持参数 $PARAM"
|
||||
exit 255
|
||||
fi
|
||||
CHECK_RESULT $? 0 0 "检查命令参数 $PARAM 是否支持失败"
|
||||
|
||||
# 步骤6:执行测试命令,启用草稿模式
|
||||
LOG_INFO "步骤6:执行测试命令,启用草稿模式"
|
||||
$COMMAND $PARAM --version
|
||||
CHECK_RESULT $? 0 0 "执行命令 $COMMAND $PARAM 失败"
|
||||
|
||||
# 步骤7:清理环境,如果脚本开始时未安装,则卸载软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤7:卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤7:软件包 $PACKAGE_NAME 在脚本开始前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试启用草稿模式(不生成输出PDF)"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,133 +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 : 测试启用文件:行:错误样式消息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数(虽然题目说直接使用,但实际环境中可能未定义,这里提供兼容性定义)
|
||||
if ! type LOG_INFO &>/dev/null; then
|
||||
LOG_INFO() { echo "[INFO] $*"; }
|
||||
fi
|
||||
if ! type LOG_ERROR &>/dev/null; then
|
||||
LOG_ERROR() { echo "[ERROR] $*"; }
|
||||
fi
|
||||
|
||||
# 定义检查结果函数(兼容性定义)
|
||||
if ! type CHECK_RESULT &>/dev/null; then
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_INFO "检查通过: $message"
|
||||
else
|
||||
LOG_ERROR "检查失败: $message (实际: $actual, 期望: $expect)"
|
||||
exit $actual
|
||||
fi
|
||||
fi
|
||||
}
|
||||
fi
|
||||
|
||||
# 定义SSH_CMD函数(兼容性定义)
|
||||
if ! type SSH_CMD &>/dev/null; then
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=${4:-root}
|
||||
sshpass -p "$password" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$user@$ip" "$cmd"
|
||||
}
|
||||
fi
|
||||
|
||||
# 测试用例描述:测试启用文件:行:错误样式消息
|
||||
LOG_INFO "开始测试: 测试启用文件:行:错误样式消息"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定的软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查系统是否已经安装了该软件包
|
||||
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
|
||||
|
||||
# 步骤3: 安装软件包(如果未安装)
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查luajittex命令是否支持--file-line-error参数
|
||||
LOG_INFO "步骤4: 检查luajittex命令是否支持--file-line-error参数"
|
||||
if ! luajittex --help | grep -q -- "--file-line-error"; then
|
||||
LOG_ERROR "luajittex命令不支持--file-line-error参数"
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境: 卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5: 执行luajittex命令并测试--file-line-error参数
|
||||
LOG_INFO "步骤5: 执行luajittex命令测试--file-line-error参数"
|
||||
# 创建一个简单的TeX文件用于测试
|
||||
TEST_TEX_FILE="test_luajittex.tex"
|
||||
cat > "$TEST_TEX_FILE" << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, world!
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 执行luajittex命令并启用文件:行:错误样式消息
|
||||
luajittex --file-line-error "$TEST_TEX_FILE"
|
||||
CHECK_RESULT $? 0 0 "执行luajittex命令失败"
|
||||
|
||||
# 步骤6: 清理测试文件
|
||||
LOG_INFO "步骤6: 清理测试文件"
|
||||
rm -f "$TEST_TEX_FILE" test_luajittex.log test_luajittex.aux test_luajittex.dvi
|
||||
|
||||
# 步骤7: 如果测试开始时未安装软件包,则卸载
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤7: 卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "步骤7: 测试开始时软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成: 测试启用文件:行:错误样式消息"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +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 : 测试使用--fmt参数指定格式文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试texlive-luajittex软件包的luajittex命令--fmt参数功能"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex软件包"
|
||||
if ! dnf list available texlive-luajittex &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查环境是否已安装软件包
|
||||
LOG_INFO "检查系统是否已安装texlive-luajittex软件包"
|
||||
if rpm -q texlive-luajittex &>/dev/null; then
|
||||
LOG_INFO "系统已安装texlive-luajittex,测试结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "系统未安装texlive-luajittex,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 若未安装,则安装软件包
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex软件包失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--fmt参数
|
||||
LOG_INFO "检查luajittex命令是否支持--fmt参数"
|
||||
luajittex --help | grep -q -- "--fmt"
|
||||
CHECK_RESULT $? 0 0 "luajittex命令不支持--fmt参数"
|
||||
|
||||
# 测试使用--fmt参数指定格式文件
|
||||
LOG_INFO "测试使用--fmt参数指定格式文件"
|
||||
luajittex --fmt=tex
|
||||
CHECK_RESULT $? 0 0 "使用--fmt参数执行luajittex命令失败"
|
||||
|
||||
# 环境清理:若测试前未安装,则卸载软件包
|
||||
if [ "$ALREADY_INSTALLED" = false ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,120 +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 : 测试在遇到第一个错误时停止处理
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 设置环境变量
|
||||
LOG_INFO="echo"
|
||||
LOG_ERROR="echo"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在软件包 $PACKAGE_NAME"
|
||||
dnf list available $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查系统是否已安装该软件包
|
||||
LOG_INFO "步骤2:检查系统是否已安装软件包 $PACKAGE_NAME"
|
||||
INSTALLED=0
|
||||
rpm -q $PACKAGE_NAME > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查luajittex命令是否支持--halt-on-error参数
|
||||
LOG_INFO "步骤4:检查luajittex命令是否支持--halt-on-error参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-halt\-on\-error"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--halt-on-error参数"
|
||||
# 清理环境:如果之前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试luajittex --halt-on-error功能
|
||||
LOG_INFO "步骤5:测试luajittex --halt-on-error功能(遇到第一个错误时停止处理)"
|
||||
# 创建一个包含错误的测试TeX文件
|
||||
TEST_TEX_FILE="test_error.tex"
|
||||
cat > $TEST_TEX_FILE << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
正确内容
|
||||
\undefinedcommand % 这是一个未定义的命令,会导致错误
|
||||
更多内容
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用--halt-on-error参数运行luajittex
|
||||
luajittex --halt-on-error $TEST_TEX_FILE > luajittex_output.txt 2>&1
|
||||
EXIT_CODE=$?
|
||||
|
||||
# 检查luajittex是否在遇到第一个错误时停止
|
||||
LOG_INFO "检查luajittex是否在遇到错误时立即停止"
|
||||
if [ $EXIT_CODE -ne 0 ]; then
|
||||
LOG_INFO "luajittex因错误而停止,退出码:$EXIT_CODE"
|
||||
# 检查输出中是否包含错误信息
|
||||
if grep -q "undefined" luajittex_output.txt; then
|
||||
LOG_INFO "测试成功:luajittex在遇到第一个错误时停止处理"
|
||||
CHECK_RESULT 0 0 0 "luajittex --halt-on-error功能测试成功"
|
||||
else
|
||||
LOG_ERROR "测试失败:未在输出中找到预期的错误信息"
|
||||
CHECK_RESULT 1 0 0 "luajittex --halt-on-error功能测试失败"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "测试失败:luajittex未因错误而停止"
|
||||
CHECK_RESULT 1 0 0 "luajittex --halt-on-error功能测试失败"
|
||||
fi
|
||||
|
||||
# 步骤6:清理测试文件
|
||||
LOG_INFO "步骤6:清理测试文件"
|
||||
rm -f $TEST_TEX_FILE luajittex_output.txt
|
||||
|
||||
# 步骤7:恢复环境
|
||||
LOG_INFO "步骤7:恢复环境"
|
||||
if [ $INSTALLED -eq 0 ]; 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 "$@"
|
||||
@@ -1,112 +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 : 测试以ini模式运行,用于转储格式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色变量(可选,但非必需,这里保留以支持LOG_INFO和LOG_ERROR的格式)
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $package_name"
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $package_name 在yum源中"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_option() {
|
||||
local command=$1
|
||||
local option=$2
|
||||
LOG_INFO "检查命令 $command 是否支持参数 $option"
|
||||
$command --help 2>&1 | grep -q -- "$option"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $command 支持参数 $option"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
run_test() {
|
||||
local package_name="texlive-luajittex"
|
||||
local command_name="luajittex"
|
||||
local command_option="--ini"
|
||||
local test_installed=false
|
||||
|
||||
LOG_INFO "开始测试: 测试以ini模式运行,用于转储格式"
|
||||
|
||||
# 步骤1: 检查软件包是否已安装
|
||||
LOG_INFO "步骤1: 检查 $package_name 是否已安装"
|
||||
if rpm -q "$package_name" &>/dev/null; then
|
||||
LOG_INFO "$package_name 已安装"
|
||||
test_installed=true
|
||||
else
|
||||
LOG_INFO "$package_name 未安装"
|
||||
test_installed=false
|
||||
fi
|
||||
|
||||
# 步骤2: 检查软件包是否在yum源中
|
||||
check_package_in_repo "$package_name"
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "$test_installed" = false ]; then
|
||||
LOG_INFO "步骤3: 安装 $package_name"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装 $package_name 失败"
|
||||
else
|
||||
LOG_INFO "步骤3: 跳过安装,软件包已存在"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查命令参数是否支持
|
||||
check_command_option "$command_name" "$command_option"
|
||||
|
||||
# 步骤5: 执行测试命令
|
||||
LOG_INFO "步骤5: 执行 $command_name $command_option"
|
||||
$command_name $command_option
|
||||
CHECK_RESULT $? 0 0 "执行 $command_name $command_option 失败"
|
||||
|
||||
# 步骤6: 环境恢复
|
||||
LOG_INFO "步骤6: 环境恢复"
|
||||
if [ "$test_installed" = 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 "测试完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
run_test
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--interaction参数设置交互模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex
|
||||
LOG_INFO "检查texlive-luajittex是否已安装"
|
||||
dnf list installed texlive-luajittex >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex已安装,测试后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到texlive-luajittex软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "开始安装texlive-luajittex"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--interaction参数
|
||||
LOG_INFO "检查luajittex命令是否支持--interaction参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--interaction"
|
||||
CHECK_RESULT $? 0 255 "luajittex命令不支持--interaction参数"
|
||||
|
||||
# 测试使用--interaction参数设置交互模式
|
||||
LOG_INFO "测试使用--interaction参数设置交互模式"
|
||||
luajittex --interaction=nonstopmode --version
|
||||
CHECK_RESULT $? 0 0 "使用--interaction参数执行失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
else
|
||||
LOG_INFO "保持原有的texlive-luajittex安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试选择Lua字符串的哈希函数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已经安装texlive-luajittex软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex软件包"
|
||||
rpm -q texlive-luajittex
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex软件包已安装,测试结束后保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex软件包未安装,将在测试前安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex软件包失败"
|
||||
fi
|
||||
|
||||
# 测试选择Lua字符串的哈希函数
|
||||
LOG_INFO "测试选择Lua字符串的哈希函数"
|
||||
luajittex --jithash
|
||||
CHECK_RESULT $? 0 0 "执行luajittex --jithash命令失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装texlive-luajittex软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试开启JIT编译器
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试开启JIT编译器"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
if ! dnf list available $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查环境是否已安装软件包"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装,将在测试步骤中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令参数是否支持
|
||||
LOG_INFO "步骤4:检查命令参数是否支持"
|
||||
if ! luajittex --help 2>&1 | grep -q "\-\-jiton"; then
|
||||
LOG_ERROR "命令 luajittex 不支持参数 --jiton"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:执行测试命令
|
||||
LOG_INFO "步骤5:执行测试命令 luajittex --jiton"
|
||||
luajittex --jiton
|
||||
CHECK_RESULT $? 0 0 "执行 luajittex --jiton 失败"
|
||||
|
||||
# 步骤6:清理环境
|
||||
LOG_INFO "步骤6:清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,140 +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 : 测试使用--jobname参数设置作业名称
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
COMMAND_NAME="luajittex"
|
||||
PARAM_NAME="--jobname"
|
||||
TEST_FILE="test.tex"
|
||||
JOB_NAME="test_output"
|
||||
|
||||
# 清理函数,用于恢复环境
|
||||
cleanup() {
|
||||
LOG_INFO "开始清理测试环境"
|
||||
|
||||
# 如果测试文件存在则删除
|
||||
if [ -f "$TEST_FILE" ]; then
|
||||
rm -f "$TEST_FILE"
|
||||
LOG_INFO "删除测试文件: $TEST_FILE"
|
||||
fi
|
||||
|
||||
# 删除作业文件
|
||||
if [ -f "${JOB_NAME}.pdf" ]; then
|
||||
rm -f "${JOB_NAME}.pdf"
|
||||
LOG_INFO "删除生成的PDF文件: ${JOB_NAME}.pdf"
|
||||
fi
|
||||
|
||||
if [ -f "${JOB_NAME}.log" ]; then
|
||||
rm -f "${JOB_NAME}.log"
|
||||
LOG_INFO "删除生成的日志文件: ${JOB_NAME}.log"
|
||||
fi
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$WAS_INSTALLED" -eq 0 ]; then
|
||||
LOG_INFO "测试前环境未安装软件包,执行卸载"
|
||||
dnf remove -y "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "成功卸载软件包: $PACKAGE_NAME"
|
||||
else
|
||||
LOG_ERROR "卸载软件包失败: $PACKAGE_NAME"
|
||||
fi
|
||||
else
|
||||
LOG_INFO "测试前环境已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "环境清理完成"
|
||||
}
|
||||
|
||||
# 设置trap,确保脚本退出时执行清理
|
||||
trap cleanup EXIT
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
LOG_INFO "检查yum源中是否存在软件包: $PACKAGE_NAME"
|
||||
dnf list available "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: $PACKAGE_NAME"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在软件包: $PACKAGE_NAME"
|
||||
|
||||
# 检查命令参数是否支持
|
||||
LOG_INFO "检查命令参数是否支持: $PARAM_NAME"
|
||||
# 首先检查命令是否存在
|
||||
which "$COMMAND_NAME" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
# 尝试获取帮助信息检查参数
|
||||
"$COMMAND_NAME" --help 2>&1 | grep -q "$PARAM_NAME"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令不支持参数: $PARAM_NAME"
|
||||
exit 255
|
||||
fi
|
||||
fi
|
||||
LOG_INFO "命令支持参数: $PARAM_NAME"
|
||||
|
||||
# 检查当前是否已安装软件包
|
||||
LOG_INFO "检查当前环境是否已安装软件包: $PACKAGE_NAME"
|
||||
rpm -q "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
WAS_INSTALLED=1
|
||||
LOG_INFO "环境已安装软件包: $PACKAGE_NAME"
|
||||
else
|
||||
WAS_INSTALLED=0
|
||||
LOG_INFO "环境未安装软件包: $PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$WAS_INSTALLED" -eq 0 ]; then
|
||||
LOG_INFO "开始安装软件包: $PACKAGE_NAME"
|
||||
dnf install -y "$PACKAGE_NAME" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
LOG_INFO "成功安装软件包: $PACKAGE_NAME"
|
||||
fi
|
||||
|
||||
# 创建测试tex文件
|
||||
LOG_INFO "创建测试TeX文件: $TEST_FILE"
|
||||
cat > "$TEST_FILE" << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, LuaJITTeX!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 测试使用--jobname参数设置作业名称
|
||||
LOG_INFO "测试使用--jobname参数设置作业名称"
|
||||
"$COMMAND_NAME" --jobname="$JOB_NAME" "$TEST_FILE" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "执行luajittex命令失败"
|
||||
|
||||
# 检查是否生成了指定名称的PDF文件
|
||||
LOG_INFO "检查是否生成了指定名称的PDF文件"
|
||||
if [ -f "${JOB_NAME}.pdf" ]; then
|
||||
LOG_INFO "成功生成PDF文件: ${JOB_NAME}.pdf"
|
||||
CHECK_RESULT 0 0 0 "PDF文件生成验证"
|
||||
else
|
||||
LOG_ERROR "未找到生成的PDF文件: ${JOB_NAME}.pdf"
|
||||
CHECK_RESULT 1 0 0 "PDF文件生成验证"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试用例执行完成: 测试使用--jobname参数设置作业名称"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--lua参数指定Lua初始化脚本
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试texlive-luajittex软件包的--lua参数功能"
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available texlive-luajittex 2>/dev/null | grep -q texlive-luajittex
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包texlive-luajittex不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查当前是否已安装texlive-luajittex"
|
||||
rpm -q texlive-luajittex >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试步骤中安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查luajittex命令是否支持--lua参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--lua"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--lua参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载安装的软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:创建一个简单的Lua测试脚本"
|
||||
cat > test_lua.lua << "EOF"
|
||||
print("Lua script loaded successfully")
|
||||
texio.write_nl("log", "Lua script executed from luajittex")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua测试脚本失败"
|
||||
|
||||
LOG_INFO "步骤6:使用--lua参数执行luajittex命令"
|
||||
luajittex --lua test_lua.lua --interaction=nonstopmode \\relax 2>&1 | tee output.log
|
||||
CHECK_RESULT $? 0 0 "执行luajittex命令失败"
|
||||
|
||||
LOG_INFO "步骤7:验证Lua脚本是否成功执行"
|
||||
grep -q "Lua script executed from luajittex" output.log
|
||||
CHECK_RESULT $? 0 0 "Lua脚本未成功执行"
|
||||
|
||||
LOG_INFO "步骤8:清理临时文件"
|
||||
rm -f test_lua.lua output.log test_lua.tex
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤9:卸载测试安装的软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试字节编译一个Lua文件后退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex软件包"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex已安装,标记为已安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,标记为未安装状态"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中未找到texlive-luajittex软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否存在
|
||||
LOG_INFO "检查luajittex命令是否存在"
|
||||
which luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "luajittex命令不存在"
|
||||
|
||||
# 检查--luaconly参数是否支持
|
||||
LOG_INFO "检查--luaconly参数是否支持"
|
||||
luajittex --help 2>&1 | grep -q -- "--luaconly"
|
||||
CHECK_RESULT $? 0 255 "luajittex不支持--luaconly参数"
|
||||
|
||||
# 创建一个简单的Lua测试文件
|
||||
LOG_INFO "创建测试Lua文件"
|
||||
cat > test.lua << "EOF"
|
||||
print("Hello from LuaJITTeX")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua测试文件失败"
|
||||
|
||||
# 测试字节编译Lua文件
|
||||
LOG_INFO "测试字节编译Lua文件"
|
||||
luajittex --luaconly test.lua
|
||||
CHECK_RESULT $? 0 0 "字节编译Lua文件失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test.lua
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,149 +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 : 测试运行一个Lua文件后退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "INFO: $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "ERROR: $*"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $package_name"
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $package_name 在yum源中存在"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_param() {
|
||||
local command=$1
|
||||
local param=$2
|
||||
LOG_INFO "检查命令 $command 是否支持参数: $param"
|
||||
$command --help 2>&1 | grep -q "$param"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $param"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $command 支持参数 $param"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查软件包 $package_name 是否已安装"
|
||||
rpm -q "$package_name" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "安装软件包: $package_name"
|
||||
dnf install -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "卸载软件包: $package_name"
|
||||
dnf remove -y "$package_name"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
}
|
||||
|
||||
# 创建测试用的Lua文件
|
||||
create_test_lua_file() {
|
||||
LOG_INFO "创建测试用的Lua文件"
|
||||
cat > test_luaonly.lua << "EOF"
|
||||
print("Hello from Lua!")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua文件失败"
|
||||
}
|
||||
|
||||
# 清理测试文件
|
||||
cleanup_test_files() {
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_luaonly.lua
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
local package_name="texlive-luajittex"
|
||||
local command_name="luajittex"
|
||||
local command_param="--luaonly"
|
||||
local test_lua_file="test_luaonly.lua"
|
||||
|
||||
# 步骤1: 检查软件包是否在yum源中
|
||||
check_package_in_repo "$package_name"
|
||||
|
||||
# 步骤2: 检查命令参数是否支持
|
||||
check_command_param "$command_name" "$command_param"
|
||||
|
||||
# 步骤3: 检查软件包是否已安装
|
||||
local was_installed=false
|
||||
if check_package_installed "$package_name"; then
|
||||
LOG_INFO "软件包 $package_name 已安装"
|
||||
was_installed=true
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装"
|
||||
was_installed=false
|
||||
fi
|
||||
|
||||
# 步骤4: 如果未安装,则安装软件包
|
||||
if [ "$was_installed" = false ]; then
|
||||
install_package "$package_name"
|
||||
fi
|
||||
|
||||
# 步骤5: 创建测试用的Lua文件
|
||||
create_test_lua_file
|
||||
|
||||
# 步骤6: 执行测试命令
|
||||
LOG_INFO "执行测试命令: $command_name $command_param $test_lua_file"
|
||||
$command_name $command_param $test_lua_file
|
||||
CHECK_RESULT $? 0 0 "运行Lua文件失败"
|
||||
|
||||
# 步骤7: 清理测试文件
|
||||
cleanup_test_files
|
||||
|
||||
# 步骤8: 如果之前未安装,则卸载软件包
|
||||
if [ "$was_installed" = false ]; then
|
||||
uninstall_package "$package_name"
|
||||
else
|
||||
LOG_INFO "保持软件包 $package_name 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +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 : 测试禁用系统命令执行
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义测试命令和参数
|
||||
TEST_CMD="luajittex"
|
||||
TEST_ARGS="--no-shell-escape"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包 texlive-luajittex 是否在yum源中"
|
||||
dnf list available texlive-luajittex &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 texlive-luajittex 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查环境是否已安装
|
||||
LOG_INFO "检查环境是否已安装 texlive-luajittex"
|
||||
rpm -q texlive-luajittex &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装 texlive-luajittex,脚本结束后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "环境未安装 texlive-luajittex,将进行安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装软件包 texlive-luajittex"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装软件包 texlive-luajittex 失败"
|
||||
fi
|
||||
|
||||
# 检查命令是否存在
|
||||
LOG_INFO "检查命令 $TEST_CMD 是否存在"
|
||||
command -v $TEST_CMD &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $TEST_CMD 不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查参数是否支持
|
||||
LOG_INFO "检查命令 $TEST_CMD 是否支持参数 $TEST_ARGS"
|
||||
$TEST_CMD --help 2>&1 | grep -q "\-\-no-shell-escape"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $TEST_CMD 不支持参数 $TEST_ARGS"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 执行测试命令
|
||||
LOG_INFO "执行命令 $TEST_CMD $TEST_ARGS"
|
||||
$TEST_CMD $TEST_ARGS
|
||||
CMD_EXIT_CODE=$?
|
||||
|
||||
# 检查命令执行结果
|
||||
if [ $CMD_EXIT_CODE -eq 0 ]; then
|
||||
LOG_INFO "命令执行成功"
|
||||
else
|
||||
LOG_ERROR "命令执行失败,退出码: $CMD_EXIT_CODE"
|
||||
exit $CMD_EXIT_CODE
|
||||
fi
|
||||
|
||||
# 清理环境
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 texlive-luajittex"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 texlive-luajittex 失败"
|
||||
else
|
||||
LOG_INFO "环境已安装,保持软件包 texlive-luajittex 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--output-format参数指定输出格式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex软件包"
|
||||
rpm -q texlive-luajittex &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex已安装,标记为已存在"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,标记为未安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在texlive-luajittex软件包"
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
LOG_INFO "texlive-luajittex安装成功"
|
||||
fi
|
||||
|
||||
# 测试--output-format参数
|
||||
LOG_INFO "测试luajittex命令的--output-format参数"
|
||||
luajittex --output-format &>/dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "--output-format参数不存在或不支持"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "--output-format参数存在且支持"
|
||||
|
||||
# 测试使用--output-format参数指定输出格式
|
||||
LOG_INFO "测试使用--output-format参数指定输出格式"
|
||||
echo "\relax" > test_input.tex
|
||||
luajittex --output-format=dvi test_input.tex &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "使用--output-format参数指定输出格式失败"
|
||||
LOG_INFO "使用--output-format参数指定输出格式成功"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_input.tex test_input.dvi test_input.log test_input.aux
|
||||
|
||||
# 恢复环境:如果之前未安装,则卸载软件包
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
LOG_INFO "texlive-luajittex卸载成功"
|
||||
else
|
||||
LOG_INFO "保持texlive-luajittex安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,82 +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 : 测试启用文件名记录器
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex软件包"
|
||||
if rpm -q texlive-luajittex > /dev/null 2>&1; then
|
||||
LOG_INFO "检测到texlive-luajittex软件包已安装,标记为已安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "检测到texlive-luajittex软件包未安装,标记为未安装状态"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
if dnf list available texlive-luajittex > /dev/null 2>&1; then
|
||||
LOG_INFO "yum源中存在texlive-luajittex软件包"
|
||||
else
|
||||
LOG_ERROR "yum源中不存在texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "开始安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex软件包失败"
|
||||
LOG_INFO "texlive-luajittex软件包安装成功"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--recorder参数
|
||||
LOG_INFO "检查luajittex命令是否支持--recorder参数"
|
||||
luajittex --help | grep -q "\-\-recorder"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--recorder参数"
|
||||
# 如果之前未安装,则需要卸载
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理环境,卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex软件包失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "luajittex命令支持--recorder参数"
|
||||
|
||||
# 测试启用文件名记录器
|
||||
LOG_INFO "开始测试启用文件名记录器"
|
||||
luajittex --recorder --version
|
||||
CHECK_RESULT $? 0 0 "luajittex --recorder命令执行失败"
|
||||
LOG_INFO "luajittex --recorder命令执行成功"
|
||||
|
||||
# 清理环境,如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理环境,卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex软件包失败"
|
||||
LOG_INFO "环境清理完成"
|
||||
else
|
||||
LOG_INFO "测试前已安装texlive-luajittex,保持安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +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 : 测试禁用易受攻击的Lua命令
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称和命令
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
COMMAND="luajittex"
|
||||
PARAMETER="--safer"
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
|
||||
# 步骤2:检查当前环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装软件包"
|
||||
INSTALLED=0
|
||||
if rpm -q ${PACKAGE_NAME} &>/dev/null; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查命令参数是否存在或支持
|
||||
LOG_INFO "步骤4:检查命令参数是否存在或支持"
|
||||
${COMMAND} --help 2>&1 | grep -q "${PARAMETER}"
|
||||
CHECK_RESULT $? 0 0 "参数 ${PARAMETER} 不存在或不支持"
|
||||
|
||||
# 步骤5:测试禁用易受攻击的Lua命令
|
||||
LOG_INFO "步骤5:测试禁用易受攻击的Lua命令"
|
||||
${COMMAND} ${PARAMETER} --version
|
||||
CHECK_RESULT $? 0 0 "执行命令 ${COMMAND} ${PARAMETER} 失败"
|
||||
|
||||
# 步骤6:清理环境,恢复到之前的状态
|
||||
LOG_INFO "步骤6:清理环境,恢复到之前的状态"
|
||||
if [ ${INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试启用系统命令执行
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试启用系统命令执行"
|
||||
LOG_INFO "步骤1:检查texlive-luajittex软件包是否在yum源中"
|
||||
dnf list available texlive-luajittex 2>&1 | grep -q texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "texlive-luajittex软件包不在yum源中"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texlive-luajittex软件包不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已经安装了texlive-luajittex"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex已经安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将在测试过程中安装,并在脚本结束前卸载"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查luajittex命令是否支持--shell-escape参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--shell-escape"
|
||||
CHECK_RESULT $? 0 0 "luajittex命令不支持--shell-escape参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--shell-escape参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:执行luajittex --shell-escape命令"
|
||||
luajittex --shell-escape --version
|
||||
CHECK_RESULT $? 0 0 "执行luajittex --shell-escape命令失败"
|
||||
|
||||
LOG_INFO "步骤6:清理环境"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
else
|
||||
LOG_INFO "系统原本已安装texlive-luajittex,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试启用SyncTeX支持
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查环境是否已安装texlive-luajittex
|
||||
LOG_INFO "检查texlive-luajittex是否已安装"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到texlive-luajittex软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
# 测试luajittex命令是否存在
|
||||
LOG_INFO "检查luajittex命令是否存在"
|
||||
command -v luajittex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex命令不存在"
|
||||
|
||||
# 测试luajittex --synctex参数是否支持
|
||||
LOG_INFO "测试luajittex --synctex参数支持"
|
||||
luajittex --help | grep -q "\-\-synctex"
|
||||
CHECK_RESULT $? 0 0 "luajittex不支持--synctex参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex不支持--synctex参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的TeX文件用于测试
|
||||
LOG_INFO "创建测试TeX文件"
|
||||
cat > test_synctex.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, SyncTeX!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试TeX文件失败"
|
||||
|
||||
# 使用luajittex --synctex处理TeX文件
|
||||
LOG_INFO "使用luajittex --synctex处理TeX文件"
|
||||
luajittex --synctex=1 test_synctex.tex > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex --synctex执行失败"
|
||||
|
||||
# 检查是否生成了.synctex文件
|
||||
LOG_INFO "检查是否生成.synctex文件"
|
||||
if [ -f test_synctex.synctex.gz ]; then
|
||||
LOG_INFO "成功生成.synctex.gz文件"
|
||||
else
|
||||
LOG_ERROR "未生成.synctex.gz文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_synctex.tex test_synctex.log test_synctex.aux test_synctex.synctex.gz
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则在测试结束后卸载软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装texlive-luajittex,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--credits参数显示软件致谢信息并退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装texlive-luajittex和texluajit软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texluajit软件包"
|
||||
rpm -q texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
already_installed=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
already_installed=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex和texluajit软件包"
|
||||
dnf list available texlive-luajittex texluajit > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到texlive-luajittex或texluajit软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex或texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit软件包失败"
|
||||
fi
|
||||
|
||||
# 测试--credits参数显示软件致谢信息并退出
|
||||
LOG_INFO "测试使用--credits参数显示软件致谢信息并退出"
|
||||
texluajit --credits > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texluajit命令不支持--credits参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texluajit命令不支持--credits参数"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 验证--credits参数输出包含致谢信息
|
||||
LOG_INFO "验证--credits参数输出包含致谢信息"
|
||||
texluajit --credits 2>&1 | grep -i "credit\|致谢\|thanks" > /dev/null
|
||||
CHECK_RESULT $? 0 0 "--credits参数未显示软件致谢信息"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ $already_installed -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit软件包失败"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +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 : 测试使用--draftmode参数开启草稿模式(不生成输出PDF)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试脚本:测试使用--draftmode参数开启草稿模式(不生成输出PDF)
|
||||
|
||||
# 检查环境是否已安装软件包
|
||||
LOG_INFO "检查环境是否已安装 texlive-luajittex 和 texluajit 软件包..."
|
||||
rpm -q texlive-luajittex texluajit
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
ENV_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
ENV_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有软件包
|
||||
LOG_INFO "检查yum源中是否有 texlive-luajittex 和 texluajit 软件包..."
|
||||
dnf list available texlive-luajittex texluajit 2>/dev/null | grep -q "texlive-luajittex\|texluajit"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到 texlive-luajittex 或 texluajit 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$ENV_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "安装 texlive-luajittex 和 texluajit 软件包..."
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 测试 luajittex 命令是否存在
|
||||
LOG_INFO "检查 luajittex 命令是否存在..."
|
||||
command -v luajittex
|
||||
CHECK_RESULT $? 0 0 "luajittex 命令不存在"
|
||||
|
||||
# 测试 --draftmode 参数是否支持
|
||||
LOG_INFO "测试 luajittex 命令是否支持 --draftmode 参数..."
|
||||
luajittex --help | grep -q "\-\-draftmode"
|
||||
CHECK_RESULT $? 0 0 "luajittex 命令不支持 --draftmode 参数"
|
||||
|
||||
# 创建一个简单的LaTeX测试文件
|
||||
LOG_INFO "创建测试LaTeX文件..."
|
||||
cat > test_draftmode.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Test draft mode.
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用 --draftmode 参数运行 luajittex
|
||||
LOG_INFO "使用 --draftmode 参数运行 luajittex..."
|
||||
luajittex --draftmode test_draftmode.tex
|
||||
CHECK_RESULT $? 0 0 "luajittex --draftmode 执行失败"
|
||||
|
||||
# 检查是否未生成PDF文件
|
||||
LOG_INFO "检查是否未生成PDF文件..."
|
||||
if [ -f test_draftmode.pdf ]; then
|
||||
LOG_ERROR "生成了PDF文件,但草稿模式不应生成PDF"
|
||||
exit 1
|
||||
else
|
||||
LOG_INFO "未生成PDF文件,符合草稿模式预期"
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件..."
|
||||
rm -f test_draftmode.tex test_draftmode.log test_draftmode.aux
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ "$ENV_INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载 texlive-luajittex 和 texluajit 软件包..."
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,112 +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 : 测试使用--fmt参数加载指定的格式文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
BINARY_NAME="texluajit"
|
||||
FMT_FILE="plain.fmt"
|
||||
TEST_FILE="test.tex"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查yum源中是否存在软件包 ${PACKAGE_NAME}"
|
||||
dnf list available "${PACKAGE_NAME}" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包 ${PACKAGE_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查当前是否已安装软件包
|
||||
LOG_INFO "检查当前是否已安装软件包 ${PACKAGE_NAME}"
|
||||
rpm -q "${PACKAGE_NAME}" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
ALREADY_INSTALLED=1
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
|
||||
else
|
||||
ALREADY_INSTALLED=0
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将在测试结束后卸载"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y "${PACKAGE_NAME}" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查texluajit命令是否存在
|
||||
LOG_INFO "检查命令 ${BINARY_NAME} 是否存在"
|
||||
command -v "${BINARY_NAME}" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "命令 ${BINARY_NAME} 不存在"
|
||||
|
||||
# 步骤5:检查--fmt参数是否支持
|
||||
LOG_INFO "检查 ${BINARY_NAME} 是否支持 --fmt 参数"
|
||||
"${BINARY_NAME}" --help 2>&1 | grep -q "\-\-fmt"
|
||||
CHECK_RESULT $? 0 0 "命令 ${BINARY_NAME} 不支持 --fmt 参数"
|
||||
|
||||
# 步骤6:查找格式文件
|
||||
LOG_INFO "查找格式文件 ${FMT_FILE}"
|
||||
FMT_PATH=$(find /usr -name "${FMT_FILE}" 2>/dev/null | head -1)
|
||||
if [ -z "${FMT_PATH}" ]; then
|
||||
LOG_ERROR "未找到格式文件 ${FMT_FILE}"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "找到格式文件: ${FMT_PATH}"
|
||||
|
||||
# 步骤7:创建测试TeX文件
|
||||
LOG_INFO "创建测试TeX文件"
|
||||
cat > "${TEST_FILE}" << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 步骤8:使用--fmt参数加载格式文件并编译测试文件
|
||||
LOG_INFO "使用 --fmt 参数加载格式文件并编译测试TeX文件"
|
||||
"${BINARY_NAME}" --fmt="${FMT_PATH}" "${TEST_FILE}"
|
||||
CHECK_RESULT $? 0 0 "使用 --fmt 参数编译TeX文件失败"
|
||||
|
||||
# 步骤9:检查是否生成了PDF文件
|
||||
LOG_INFO "检查是否生成了PDF文件"
|
||||
if [ -f "${TEST_FILE%.tex}.pdf" ]; then
|
||||
LOG_INFO "成功生成PDF文件: ${TEST_FILE%.tex}.pdf"
|
||||
else
|
||||
LOG_ERROR "未生成PDF文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤10:清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f "${TEST_FILE}" "${TEST_FILE%.tex}.pdf" "${TEST_FILE%.tex}.log" "${TEST_FILE%.tex}.aux" 2>/dev/null
|
||||
|
||||
# 步骤11:如果测试前未安装,则卸载软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y "${PACKAGE_NAME}" > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,89 +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 : 测试使用--halt-on-error参数在第一个错误处停止处理
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试使用--halt-on-error参数在第一个错误处停止处理"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在texlive-luajittex和texluajit软件包"
|
||||
dnf list available texlive-luajittex texluajit 2>/dev/null | grep -E "^texlive-luajittex|^texluajit" > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex或texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查当前环境是否已安装texlive-luajittex和texluajit"
|
||||
rpm -q texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,标记为已安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为未安装状态"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查luajittex命令是否支持--halt-on-error参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-halt-on-error"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--halt-on-error参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤5:清理环境,卸载安装的软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:创建一个包含错误的TeX文件用于测试"
|
||||
cat > test_halt.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\undefinedcommand
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
LOG_INFO "步骤6:使用--halt-on-error参数运行luajittex,预期在第一个错误处停止"
|
||||
luajittex --halt-on-error test_halt.tex 2>&1 | tee output.log
|
||||
CHECK_RESULT $? 1 0 "luajittex未在第一个错误处停止,退出码不符合预期"
|
||||
|
||||
LOG_INFO "步骤7:检查输出中是否包含错误信息"
|
||||
grep -q "undefined command" output.log
|
||||
CHECK_RESULT $? 0 0 "输出中未找到预期的错误信息"
|
||||
|
||||
LOG_INFO "步骤8:清理测试文件"
|
||||
rm -f test_halt.tex output.log test_halt.aux test_halt.log
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤9:清理环境,卸载安装的软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
else
|
||||
LOG_INFO "步骤9:环境已安装软件包,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,82 +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 : 测试使用--help参数显示帮助信息并退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断环境是否已安装texlive-luajittex和texluajit软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texluajit软件包"
|
||||
rpm -q texlive-luajittex texluajit > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "软件包未安装,开始安装"
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texluajit软件包
|
||||
LOG_INFO "检查yum源中是否有texluajit软件包"
|
||||
dnf list available texluajit > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 安装软件包
|
||||
LOG_INFO "安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit软件包失败"
|
||||
|
||||
# 设置安装标志
|
||||
need_uninstall=1
|
||||
else
|
||||
LOG_INFO "软件包已安装,无需重新安装"
|
||||
need_uninstall=0
|
||||
fi
|
||||
|
||||
# 测试luajittex命令的--help参数
|
||||
LOG_INFO "测试luajittex命令的--help参数"
|
||||
luajittex --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex命令不支持--help参数或执行失败"
|
||||
|
||||
# 测试texluajit命令的--help参数
|
||||
LOG_INFO "测试texluajit命令的--help参数"
|
||||
texluajit --help > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "texluajit命令不支持--help参数或执行失败"
|
||||
|
||||
# 环境恢复
|
||||
if [ $need_uninstall -eq 1 ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit软件包失败"
|
||||
else
|
||||
LOG_INFO "保持软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--ini参数进入iniluajittex模式,用于转储格式文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装texlive-luajittex和texlive-luajit
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texlive-luajit软件包"
|
||||
rpm -q texlive-luajittex texlive-luajit >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,标记为已存在安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为未安装状态"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex和texlive-luajit软件包"
|
||||
dnf list available texlive-luajittex texlive-luajit >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex或texlive-luajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "开始安装texlive-luajittex和texlive-luajit软件包"
|
||||
dnf install -y texlive-luajittex texlive-luajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texlive-luajit软件包失败"
|
||||
LOG_INFO "软件包安装成功"
|
||||
fi
|
||||
|
||||
# 测试--ini参数进入iniluajittex模式
|
||||
LOG_INFO "测试使用--ini参数进入iniluajittex模式,用于转储格式文件"
|
||||
luajittex --ini --help >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex不支持--ini参数"
|
||||
LOG_INFO "luajittex支持--ini参数"
|
||||
|
||||
# 创建测试文件
|
||||
LOG_INFO "创建测试文件test.tex"
|
||||
cat > test.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, LuaJITTeX!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 使用--ini参数运行luajittex
|
||||
LOG_INFO "使用--ini参数运行luajittex处理测试文件"
|
||||
luajittex --ini test.tex > output.log 2>&1
|
||||
CHECK_RESULT $? 0 0 "luajittex --ini执行失败"
|
||||
LOG_INFO "luajittex --ini执行成功"
|
||||
|
||||
# 检查输出文件
|
||||
LOG_INFO "检查是否生成test.fmt文件"
|
||||
if [ -f "test.fmt" ]; then
|
||||
LOG_INFO "成功生成test.fmt文件"
|
||||
else
|
||||
LOG_ERROR "未生成test.fmt文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test.tex test.fmt output.log test.log
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果最初未安装,则卸载软件包
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texlive-luajit软件包"
|
||||
dnf remove -y texlive-luajittex texlive-luajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texlive-luajit软件包失败"
|
||||
LOG_INFO "软件包卸载成功,环境已恢复"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +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 : 测试使用--jithash参数为Lua字符串选择哈希函数(lua51或luajit20)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="texlive-luajittex"
|
||||
SUB_PACKAGE="texluajit"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "检查yum源中是否存在软件包: ${PACKAGE_NAME}"
|
||||
dnf list available ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: ${PACKAGE_NAME}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查系统是否已安装指定软件包
|
||||
LOG_INFO "检查系统是否已安装软件包: ${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} &> /dev/null; then
|
||||
LOG_INFO "软件包已安装,跳过安装步骤"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "软件包未安装,开始安装"
|
||||
INSTALLED="false"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤3:验证texluajit命令是否存在
|
||||
LOG_INFO "验证texluajit命令是否存在"
|
||||
command -v texluajit &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "texluajit命令不存在"
|
||||
|
||||
# 步骤4:测试--jithash参数支持情况
|
||||
LOG_INFO "测试--jithash参数支持情况"
|
||||
texluajit --help | grep -q "\-\-jithash"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texluajit命令不支持--jithash参数"
|
||||
# 如果之前未安装,需要卸载
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "清理安装的软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试使用--jithash参数为Lua字符串选择哈希函数lua51
|
||||
LOG_INFO "测试使用--jithash参数为Lua字符串选择哈希函数lua51"
|
||||
texluajit --jithash=lua51 -e "print("test lua51 hash")" 2>&1 | grep -q "test lua51 hash"
|
||||
CHECK_RESULT $? 0 0 "使用--jithash=lua51参数执行失败"
|
||||
|
||||
# 步骤6:测试使用--jithash参数为Lua字符串选择哈希函数luajit20
|
||||
LOG_INFO "测试使用--jithash参数为Lua字符串选择哈希函数luajit20"
|
||||
texluajit --jithash=luajit20 -e "print("test luajit20 hash")" 2>&1 | grep -q "test luajit20 hash"
|
||||
CHECK_RESULT $? 0 0 "使用--jithash=luajit20参数执行失败"
|
||||
|
||||
# 步骤7:测试无效的--jithash参数值
|
||||
LOG_INFO "测试无效的--jithash参数值"
|
||||
texluajit --jithash=invalid -e "print("test")" 2>&1 | grep -q "invalid hash"
|
||||
CHECK_RESULT $? 0 0 "无效的--jithash参数值未按预期失败"
|
||||
|
||||
# 步骤8:环境恢复
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,79 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--jiton参数打开JIT编译器(默认为关闭)
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex和texluajit
|
||||
LOG_INFO "检查texlive-luajittex和texluajit是否已安装"
|
||||
rpm -q texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex和texluajit已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "texlive-luajittex和texluajit未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex和texluajit软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex和texluajit软件包"
|
||||
dnf list available texlive-luajittex texluajit > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有texlive-luajittex或texluajit软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有texlive-luajittex或texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
# 检查texluajit命令是否支持--jiton参数
|
||||
LOG_INFO "检查texluajit命令是否支持--jiton参数"
|
||||
texluajit --help 2>&1 | grep -q -- "--jiton"
|
||||
CHECK_RESULT $? 0 0 "texluajit命令不支持--jiton参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texluajit命令不支持--jiton参数"
|
||||
# 如果之前未安装,需要卸载已安装的软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试使用--jiton参数打开JIT编译器
|
||||
LOG_INFO "测试使用--jiton参数打开JIT编译器"
|
||||
texluajit --jiton --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用--jiton参数执行texluajit失败"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,88 +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 : 测试使用--jobname参数设置作业名称
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装texlive-luajittex和texluajit
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texluajit"
|
||||
if dnf list installed texlive-luajittex &> /dev/null && dnf list installed texluajit &> /dev/null; then
|
||||
LOG_INFO "texlive-luajittex和texluajit已安装,脚本结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex和texluajit未安装,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex和texluajit"
|
||||
if ! dnf list available texlive-luajittex &> /dev/null; then
|
||||
LOG_ERROR "yum源中不存在texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
if ! dnf list available texluajit &> /dev/null; then
|
||||
LOG_ERROR "yum源中不存在texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texluajit"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
# 测试--jobname参数设置作业名称
|
||||
LOG_INFO "测试使用--jobname参数设置作业名称"
|
||||
# 创建一个简单的LaTeX测试文件
|
||||
cat > test_jobname.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\end{document}
|
||||
EOF
|
||||
|
||||
# 使用luajittex编译,并设置作业名称
|
||||
luajittex --jobname=myjob test_jobname.tex
|
||||
CHECK_RESULT $? 0 0 "使用--jobname参数执行luajittex失败"
|
||||
|
||||
# 检查是否生成了名为myjob的作业文件
|
||||
LOG_INFO "检查是否生成了名为myjob的作业文件"
|
||||
if [ -f "myjob.log" ]; then
|
||||
LOG_INFO "成功生成了作业文件myjob.log"
|
||||
else
|
||||
LOG_ERROR "未生成作业文件myjob.log"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理生成的测试文件
|
||||
LOG_INFO "清理生成的测试文件"
|
||||
rm -f test_jobname.tex myjob.aux myjob.log myjob.pdf
|
||||
|
||||
# 如果脚本开始时未安装,则在结束时卸载软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,82 +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 : 测试使用--lua参数指定Lua初始化脚本文件执行LuajitTeX
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试使用--lua参数指定Lua初始化脚本文件执行LuajitTeX"
|
||||
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在texlive-luajittex和texluajit软件包"
|
||||
dnf list available texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex或texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查当前环境是否已安装texlive-luajittex和texluajit"
|
||||
rpm -q texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试过程中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 创建一个简单的Lua初始化脚本文件用于测试"
|
||||
cat > test_init.lua << "EOF"
|
||||
print("Hello from Lua init script!")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua初始化脚本文件失败"
|
||||
|
||||
LOG_INFO "步骤5: 使用--lua参数指定Lua初始化脚本文件执行luajittex命令"
|
||||
luajittex --lua=test_init.lua --version > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "使用--lua参数执行luajittex失败"
|
||||
|
||||
LOG_INFO "步骤6: 测试--lua参数指定的文件不存在时的情况"
|
||||
luajittex --lua=nonexistent.lua --version > /dev/null 2>&1
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "参数检查正确:当指定不存在的Lua文件时,命令按预期失败"
|
||||
else
|
||||
LOG_ERROR "参数检查失败:当指定不存在的Lua文件时,命令未按预期失败"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7: 清理测试过程中创建的临时文件"
|
||||
rm -f test_init.lua
|
||||
CHECK_RESULT $? 0 0 "删除临时文件失败"
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "步骤8: 卸载测试过程中安装的软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
else
|
||||
LOG_INFO "步骤8: 测试前软件包已安装,跳过卸载步骤"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:测试使用--lua参数指定Lua初始化脚本文件执行LuajitTeX成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--luaconly参数字节编译Lua文件后退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试texlive-luajittex软件包的--luaconly参数功能"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在texlive-luajittex软件包"
|
||||
dnf list available texlive-luajittex 2>&1 | grep -q "texlive-luajittex"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装texlive-luajittex"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
if [ $installed -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex已安装,测试后保持安装状态"
|
||||
else
|
||||
LOG_INFO "texlive-luajittex未安装,将进行安装"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3:创建测试Lua文件"
|
||||
cat > test.lua << "EOF"
|
||||
print("Hello from Lua")
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建Lua文件失败"
|
||||
|
||||
LOG_INFO "步骤4:检查luajittex命令是否支持--luaconly参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--luaconly"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--luaconly参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:使用--luaconly参数编译Lua文件"
|
||||
luajittex --luaconly test.lua
|
||||
CHECK_RESULT $? 0 0 "使用--luaconly参数编译Lua文件失败"
|
||||
|
||||
LOG_INFO "步骤6:验证生成的字节码文件"
|
||||
if [ -f "test.luac" ]; then
|
||||
LOG_INFO "成功生成字节码文件test.luac"
|
||||
else
|
||||
LOG_ERROR "未生成字节码文件test.luac"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤7:清理测试文件"
|
||||
rm -f test.lua test.luac
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "步骤8:卸载texlive-luajittex软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--luaonly参数运行Lua文件后退出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试 texlive-luajittex 软件包"
|
||||
LOG_INFO "检查软件包是否已在yum源中"
|
||||
dnf list available texlive-luajittex 2>/dev/null | grep -q texlive-luajittex
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到 texlive-luajittex 软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "检查当前环境是否已安装 texlive-luajittex"
|
||||
rpm -q texlive-luajittex > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex 已安装,测试结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex 未安装,将安装软件包作为测试步骤"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装 texlive-luajittex 软件包"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装 texlive-luajittex 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查 texlua 命令是否支持 --luaonly 参数"
|
||||
texlua --help 2>&1 | grep -q -- "--luaonly"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "texlua 命令不支持 --luaonly 参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "创建测试用的 Lua 文件"
|
||||
cat > test_luaonly.lua << "EOF"
|
||||
print("Hello from Lua")
|
||||
os.exit(0)
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建 Lua 文件失败"
|
||||
|
||||
LOG_INFO "测试使用 --luaonly 参数运行 Lua 文件"
|
||||
texlua --luaonly test_luaonly.lua
|
||||
CHECK_RESULT $? 0 0 "使用 --luaonly 参数运行 Lua 文件失败"
|
||||
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_luaonly.lua
|
||||
CHECK_RESULT $? 0 0 "删除测试文件失败"
|
||||
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载 texlive-luajittex 软件包"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载 texlive-luajittex 失败"
|
||||
else
|
||||
LOG_INFO "测试开始前 texlive-luajittex 已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--safer参数禁用易受攻击的Lua命令
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:测试使用--safer参数禁用易受攻击的Lua命令"
|
||||
LOG_INFO "步骤1:检查yum源中是否存在texlive-luajittex和texluajit软件包"
|
||||
dnf list texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-luajittex或texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤2:检查是否已安装texlive-luajittex和texluajit"
|
||||
if rpm -q texlive-luajittex texluajit > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包已安装,测试后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,将在测试后卸载"
|
||||
INSTALLED=0
|
||||
LOG_INFO "步骤3:安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
LOG_INFO "步骤4:检查luajittex命令是否支持--safer参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--safer"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--safer参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤5:卸载安装的软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "步骤6:创建一个测试Lua文件,包含易受攻击的命令"
|
||||
cat > test_vulnerable.lua << "EOF"
|
||||
local f = io.popen("echo "This is a vulnerable command"", "r")
|
||||
local result = f:read("*a")
|
||||
f:close()
|
||||
print(result)
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试Lua文件失败"
|
||||
LOG_INFO "步骤7:使用--safer参数运行luajittex,预期执行失败"
|
||||
luajittex --safer test_vulnerable.lua 2>&1 | grep -q "disabled"
|
||||
CHECK_RESULT $? 0 0 "使用--safer参数时,易受攻击的Lua命令未被禁用"
|
||||
LOG_INFO "步骤8:清理测试文件"
|
||||
rm -f test_vulnerable.lua
|
||||
CHECK_RESULT $? 0 0 "删除测试文件失败"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤9:卸载安装的软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
LOG_INFO "测试完成:--safer参数成功禁用易受攻击的Lua命令"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -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 : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--shell-escape参数启用系统命令
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:使用--shell-escape参数启用系统命令"
|
||||
LOG_INFO "步骤一:检查软件包texlive-luajittex是否在yum源中"
|
||||
dnf list available texlive-luajittex &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包texlive-luajittex不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包texlive-luajittex在yum源中"
|
||||
|
||||
LOG_INFO "步骤二:检查环境是否已安装texlive-luajittex"
|
||||
rpm -q texlive-luajittex &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "环境已安装texlive-luajittex,脚本结束将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "环境未安装texlive-luajittex,将进行安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤三:安装texlive-luajittex"
|
||||
dnf install -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤四:检查luajittex命令是否支持--shell-escape参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-shell\-escape"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--shell-escape参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载texlive-luajittex"
|
||||
dnf remove -y texlive-luajittex
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "luajittex命令支持--shell-escape参数"
|
||||
|
||||
LOG_INFO "步骤五:创建一个简单的LaTeX测试文件"
|
||||
cat > test_shell_escape.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, World!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建LaTeX测试文件失败"
|
||||
|
||||
LOG_INFO "步骤六:使用--shell-escape参数执行luajittex命令"
|
||||
luajittex --shell-escape test_shell_escape.tex
|
||||
CHECK_RESULT $? 0 0 "使用--shell-escape参数执行luajittex失败"
|
||||
|
||||
LOG_INFO "步骤七:清理测试文件"
|
||||
rm -f test_shell_escape.tex test_shell_escape.log test_shell_escape.aux
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤八:清理环境,卸载texlive-luajittex"
|
||||
dnf remove -y texlive-luajittex
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:使用--shell-escape参数启用系统命令测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,102 +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 : 测试使用--shell-restricted参数将系统命令限制在texmf.cnf中给出的命令列表内
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装texlive-luajittex和texluajit软件包
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texluajit软件包"
|
||||
rpm -q texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包已安装,标记为已安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "软件包未安装,标记为未安装状态"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否存在texlive-luajittex和texluajit软件包
|
||||
LOG_INFO "检查yum源中是否存在texlive-luajittex和texluajit软件包"
|
||||
dnf list available texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在texlive-luajittex或texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "开始安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit软件包失败"
|
||||
LOG_INFO "安装texlive-luajittex和texluajit软件包成功"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--shell-restricted参数
|
||||
LOG_INFO "检查luajittex命令是否支持--shell-restricted参数"
|
||||
luajittex --help 2>&1 | grep -q "\-\-shell-restricted"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--shell-restricted参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "luajittex命令支持--shell-restricted参数"
|
||||
|
||||
# 创建一个简单的LaTeX测试文件
|
||||
LOG_INFO "创建测试LaTeX文件"
|
||||
cat > test.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, world!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试LaTeX文件失败"
|
||||
|
||||
# 使用--shell-restricted参数运行luajittex
|
||||
LOG_INFO "使用--shell-restricted参数运行luajittex"
|
||||
luajittex --shell-restricted test.tex
|
||||
CHECK_RESULT $? 0 0 "使用--shell-restricted参数运行luajittex失败"
|
||||
LOG_INFO "使用--shell-restricted参数运行luajittex成功"
|
||||
|
||||
# 检查生成的PDF文件
|
||||
LOG_INFO "检查是否生成PDF文件"
|
||||
if [ -f test.pdf ]; then
|
||||
LOG_INFO "成功生成PDF文件"
|
||||
rm -f test.pdf
|
||||
else
|
||||
LOG_ERROR "未生成PDF文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test.tex test.log test.aux
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit软件包失败"
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包成功"
|
||||
else
|
||||
LOG_INFO "测试前软件包已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,104 +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 : 测试使用--synctex参数启用SyncTeX同步
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已经安装texlive-luajittex和texluajit
|
||||
LOG_INFO "检查是否已安装texlive-luajittex和texluajit"
|
||||
rpm -q texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex和texluajit已安装,测试结束后保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex和texluajit未安装,将在测试前安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有texlive-luajittex和texluajit软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex和texluajit软件包"
|
||||
dnf list available texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有texlive-luajittex或texluajit软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texluajit软件包"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
# 检查luajittex命令是否支持--synctex参数
|
||||
LOG_INFO "检查luajittex命令是否支持--synctex参数"
|
||||
luajittex --help 2>&1 | grep -q -- "--synctex"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "luajittex命令不支持--synctex参数"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建一个简单的LaTeX测试文件
|
||||
LOG_INFO "创建LaTeX测试文件"
|
||||
cat > test_synctex.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
Hello, SyncTeX!
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 使用--synctex参数编译LaTeX文件
|
||||
LOG_INFO "使用--synctex参数编译LaTeX文件"
|
||||
luajittex --synctex=1 test_synctex.tex
|
||||
CHECK_RESULT $? 0 0 "使用--synctex参数编译失败"
|
||||
|
||||
# 检查是否生成了.synctex文件
|
||||
LOG_INFO "检查是否生成了.synctex文件"
|
||||
if [ -f test_synctex.synctex.gz ]; then
|
||||
LOG_INFO "成功生成.synctex文件"
|
||||
else
|
||||
LOG_ERROR "未生成.synctex文件"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_synctex.tex test_synctex.log test_synctex.aux test_synctex.synctex.gz
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit软件包"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-03-04
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试使用--utc参数将初始时间设置为UTC
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试使用--utc参数将初始时间设置为UTC
|
||||
LOG_INFO "开始测试使用--utc参数将初始时间设置为UTC"
|
||||
|
||||
# 检查环境是否已安装texlive-luajittex和texluajit
|
||||
LOG_INFO "检查texlive-luajittex和texluajit是否已安装"
|
||||
dnf list installed texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "texlive-luajittex和texluajit已安装,测试后保持安装状态"
|
||||
installed_before=1
|
||||
else
|
||||
LOG_INFO "texlive-luajittex和texluajit未安装,将在测试过程中安装"
|
||||
installed_before=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有软件包
|
||||
LOG_INFO "检查yum源中是否有texlive-luajittex和texluajit"
|
||||
dnf list available texlive-luajittex texluajit > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到texlive-luajittex或texluajit"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $installed_before -eq 0 ]; then
|
||||
LOG_INFO "安装texlive-luajittex和texluajit"
|
||||
dnf install -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "安装texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
# 测试luajittex命令是否支持--utc参数
|
||||
LOG_INFO "测试luajittex命令是否支持--utc参数"
|
||||
luajittex --help | grep -q -- "--utc"
|
||||
CHECK_RESULT $? 0 0 "luajittex命令不支持--utc参数"
|
||||
|
||||
# 创建测试文件
|
||||
LOG_INFO "创建测试TeX文件"
|
||||
cat > test_utc.tex << "EOF"
|
||||
\documentclass{article}
|
||||
\begin{document}
|
||||
UTC test: \the\year-\the\month-\the\day
|
||||
\end{document}
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 使用--utc参数执行luajittex
|
||||
LOG_INFO "使用--utc参数执行luajittex"
|
||||
luajittex --utc test_utc.tex
|
||||
CHECK_RESULT $? 0 0 "luajittex执行失败"
|
||||
|
||||
# 检查输出文件是否存在
|
||||
LOG_INFO "检查输出文件"
|
||||
if [ -f test_utc.log ]; then
|
||||
LOG_INFO "luajittex成功生成输出文件"
|
||||
else
|
||||
LOG_ERROR "未找到输出文件test_utc.log"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f test_utc.tex test_utc.log test_utc.aux test_utc.dvi test_utc.synctex.gz
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $installed_before -eq 0 ]; then
|
||||
LOG_INFO "卸载texlive-luajittex和texluajit"
|
||||
dnf remove -y texlive-luajittex texluajit
|
||||
CHECK_RESULT $? 0 0 "卸载texlive-luajittex和texluajit失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user