代码拉取完成,页面将自动刷新
同步操作将从 zxs-un/openEuler on riscv64 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Version: 2022-Feb-16
来源:lvxiaoqian 的一次 Pull Request
来源中使用的Shell命令非常巧妙,但跳过部分产物的行为及可能导致Clang产生的潜在问题,本文作者保留意见。
在对RPM打包的软件进行多架构适配时,往往原有的spec是针对少部分处理器架构编写的。
此时进行构建,经常会出现一些文件 not found 问题。
在openEuler适配RISC-V的过程中,这种现象在构建软件的测试阶段(test suite,%check)时有发生。
产物收集阶段(%file)的文件或过程不可随意跳过。
测试阶段(%check)的某些测试用例因架构运行速度太慢而失败,但软件本身可用; 除了增加 patch 延长超时,亦可于分案例测试时在 spec 中采用脚本命令跳过。
|
竖线,Shell 的管道命令,当竖线左边的命令成功执行(对Shell返回0为成功)时,左边命令的输出就会成为右边命令的输入。常见的如 ls dir | grep file
。||
双竖线,当双竖线左边的命令执行失败(对Shell返回非零正数为失败,而-1为异常)时,就执行双竖线右边的命令。:
冒号,Shell 的空命令,即什么都不做,但对Shell返回0,表示成功。如此,想要跳过一个可能会失败的测试:
sh testcase.sh || :
即便testcase.sh
执行失败,仍然会执行:
对Shell返回成功。
可以更进一步,将默默跳过、假装成功,改进为输出信息、假装成功:
sh testcase.sh || echo " testcase.sh failed, but manually skipped"
巧妙之处:若有朝一日testcase.sh
测试成功,则不会执行||
右边部分,对Shell仍然返回成功,而不需要更改脚本。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。