使用shell进行调用脚本或者命令driver的测试

本文通过一系列测试案例验证了GCC编译器在不同选项(如-M、-S、-c等)下配合-o选项生成目标文件的功能。使用特定的硬件平台配置进行编译,并检查期望的输出文件是否存在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

compile=gcc
test_filename=driver.c
test_filename_base=${test_filename%.*}
test_basename=test


# echo and run the specified command
echo_and_run()
{
   echo $@
   eval $@

   if [ $? -ne 0 ]; then
       exit 1
   fi
}

####################################################################################################

# 测试全编译时的-o选项
echo_and_run ${compile} --xtensa-core=HiDSP170 ${test_filename}
[ -e "a.out" ] || echo "$LINENO : FAILED";
[ -e "a.out" ] && echo "$LINENO : PASS"; rm "a.out"; 
echo_and_run ${compile} --xtensa-core=HiDSP170 ${test_filename} -o ${test_basename}.out
[ -e "${test_basename}.out" ] || echo "$LINENO : FAILED"; 
[ -e "${test_basename}.out" ] && echo "$LINENO : PASS"; rm "${test_basename}.out";


# 测试-M时的-o选项
echo_and_run ${compile} --xtensa-core=HiRISC170 -M -MM -E -S -c ${test_filename}
[ -e "${test_filename_base}.s" ] || { echo "$LINENO : FAILED"; exit; }
[ -e "${test_filename_base}.s" ] && echo "$LINENO : PASS"; rm "${test_filename_base}.s"; 
echo_and_run ${compile} --xtensa-core=HiRISC170 -M -MM -E -S -c ${test_filename} -o ${test_basename}.s
[ -e "${test_basename}.s" ] || echo "$LINENO : FAILED";
[ -e "${test_basename}.s" ] && echo "$LINENO : PASS"; rm "${test_basename}.s";

# 测试-S时的-o选项
echo_and_run ${compile} --xtensa-core=HiRISC170 -S -c ${test_filename}
[ -e "${test_filename_base}.s" ] || echo "$LINENO : FAILED";
[ -e "${test_filename_base}.s" ] && echo "$LINENO : PASS"; rm "${test_filename_base}.s"; 
echo_and_run ${compile} --xtensa-core=HiRISC170 -S ${test_filename} -o ${test_basename}.s
[ -e "${test_basename}.s" ] || echo "$LINENO : FAILED";
[ -e "${test_basename}.s" ] && echo "$LINENO : PASS"; rm "${test_basename}.s";

# 测试-c时的-o选项
echo_and_run ${compile} --xtensa-core=HiRISC170 -c ${test_filename}
[ -e "${test_filename_base}.o" ] || echo "$LINENO : FAILED";
[ -e "${test_filename_base}.o" ] && echo "$LINENO : PASS"; rm "${test_filename_base}.o"; 
echo_and_run ${compile} --xtensa-core=HiRISC170 -S ${test_filename} -o ${test_basename}.o
[ -e "${test_basename}.o" ] || echo "$LINENO : FAILED";
[ -e "${test_basename}.o" ] && echo "$LINENO : PASS"; rm "${test_basename}.o";

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值