util,tests: Updated compiler-tests to support paths with spaces

This script was failing if the gem5 directory path contained a space.
E.g: `/home/bobbys home/gem5`. This script has thereby been improved to
handle this.

Change-Id: Id56ff5a0e9aa31eef14de2111b040f7f2b0b286c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/31534
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Bobby R. Bruce
2020-07-17 23:02:37 -07:00
parent f434df815d
commit 06a408f9c6

View File

@@ -70,14 +70,14 @@ test_dir="${gem5_root}/.compile-test-out"
exits="${test_dir}/exit-codes.csv"
# Create the testing output directory and files
rm -rf $test_dir_final
rm -rf $test_dir
mkdir $test_dir
touch $exits
echo "compiler,build_target,exit_code" >> $exits
rm -rf "${test_dir_final}"
rm -rf "${test_dir}"
mkdir "${test_dir}"
touch "${exits}"
echo "compiler,build_target,exit_code" >> "${exits}"
for compiler in ${images[@]}; do
echo "Starting build tests with '$compiler'..."
echo "Starting build tests with '${compiler}'..."
# Generate a randomized list of build targets
build_permutation=($(shuf -i 0-$((${#builds[@]} - 1)) ))
@@ -96,33 +96,34 @@ for compiler in ${images[@]}; do
# Grab compiler image
docker pull $repo_name >/dev/null
mkdir "$test_dir/$compiler"
mkdir "${test_dir}/${compiler}"
for build_index in ${build_indices[@]}; do
for build_opt in ${opts[@]}; do
build="${builds[$build_index]}"
build_out="build/$build/gem5$build_opt"
build_stdout="$test_dir/$compiler/$build$build_opt.stdout"
build_stderr="$test_dir/$compiler/$build$build_opt.stderr"
build_stdout="${test_dir}/${compiler}/${build}${build_opt}.stdout"
build_stderr="${test_dir}/${compiler}/${build}${build_opt}.stderr"
# Clean the build
rm -rf "${build_dir}"
touch $build_stdout
touch $build_stderr
touch "${build_stdout}"
touch "${build_stderr}"
echo " * Building target '$build$build_opt' with '$compiler'..."
echo " * Building target '${build}${build_opt}' with '${compiler}'..."
# Build with container
{
docker run --rm -v ${gem5_root}:/gem5 -u $UID:$GID -w /gem5 \
$repo_name scons $build_out $build_args
}>$build_stdout 2>$build_stderr
docker run --rm -v "${gem5_root}":"/gem5" -u $UID:$GID \
-w /gem5 $repo_name scons "${build_out}" "${build_args}"
}>"${build_stdout}" 2>"${build_stderr}"
result=$?
echo "$compiler,$build/gem5$build_opt,$result" >> $exits
if [ $result -ne 0 ]; then
echo " ! Failed with exit code $result."
echo "${compiler},${build}/gem5${build_opt},${result}" >>"${exits}"
if [ ${result} -ne 0 ]; then
echo " ! Failed with exit code ${result}."
else
echo " Done."
fi