diff --git a/tests/fedora-flags/runtest.sh b/tests/fedora-flags/runtest.sh index 96d1cc8..7c63e07 100755 --- a/tests/fedora-flags/runtest.sh +++ b/tests/fedora-flags/runtest.sh @@ -1,20 +1,22 @@ #!/bin/bash -set -ex pipefail +set -x -cflags=`rpm -D '%toolchain clang' -E %{build_cflags}` -cxxflags=`rpm -D '%toolchain clang' -E %{build_cxxflags}` -ldflags=`rpm -D '%toolchain clang' -E %{build_ldflags}` +status=0 +# arhmfp not tested due to rhbz#1918924. +arches="s390x ppc64le x86_64 i386 aarch64" -# Test a c program -clang $cflags -c hello.c -o hello.o -clang $cflags -c main.c -o main.o -clang $ldflags -o hello main.o hello.o -./hello | grep "Hello World" +for arch in $arches; do + root="fedora-rawhide-$arch" + mock -r $root --install clang + mock -r $root --copyin main.c main.cpp hello.c hello.cpp test-clang.sh . + if mock -r $root --shell bash test-clang.sh; then + echo "$arch: PASS" + else + echo "$arch: FAIL" + status=1 + fi +done -# Test a cxx program -clang++ $cxxflags -c hello.cpp -o hello-cpp.o -clang++ $cxxflags -c main.cpp -o main-cpp.o -clang++ $ldflags -o hello-cpp main-cpp.o hello-cpp.o -./hello-cpp | grep "Hello World" +exit $status diff --git a/tests/fedora-flags/test-clang.sh b/tests/fedora-flags/test-clang.sh new file mode 100644 index 0000000..2a06dd8 --- /dev/null +++ b/tests/fedora-flags/test-clang.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -ex pipefail + +function check_flags { + if [ -z "$1" ]; then + echo "FAIL: failed to get rpm flags" + exit 1 + fi +} + +cflags=`rpm -D '%toolchain clang' -E %{build_cflags}` +cxxflags=`rpm -D '%toolchain clang' -E %{build_cxxflags}` +ldflags=`rpm -D '%toolchain clang' -E %{build_ldflags}` + +check_flags "$cflags" +check_flags "$cxxflags" +check_flags "$ldflags" + +# Test a c program +clang $cflags -c hello.c -o hello.o +clang $cflags -c main.c -o main.o +clang $ldflags -o hello main.o hello.o +./hello | grep "Hello World" + +# Test a cxx program +clang++ $cxxflags -c hello.cpp -o hello-cpp.o +clang++ $cxxflags -c main.cpp -o main-cpp.o +clang++ $ldflags -o hello-cpp main-cpp.o hello-cpp.o +./hello-cpp | grep "Hello World" diff --git a/tests/tests.yml b/tests/tests.yml index c720883..fc4368a 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -22,6 +22,8 @@ - glibc-static - gcc # Required for fedora-flags: + - mock + - qemu-user-static - annobin - redhat-rpm-config # Required for clang-format-diff