From d853693bf9d13dc0333aabc0b01a24aaa05eac18 Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Wed, 25 Nov 2020 15:25:52 +0800 Subject: [PATCH 01/10] depends: add new dependency Add new dependency Signed-off-by: Ke Zhiming --- distro/depends/virttest | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/distro/depends/virttest b/distro/depends/virttest index 2ac12a4..52d962f 100644 --- a/distro/depends/virttest +++ b/distro/depends/virttest @@ -2,3 +2,20 @@ tcpdump nc qemu qemu-img +edk2-aarch64 +edk2-devel +libvirt +python3-libvirt +openssh-server +wget +expect +psmisc +device-mapper-multipath +numactl +gdb +bridge-utils +targetcli +python3-pip +pciutils +dmidecode +firewalld -- Gitee From fb2212a28c5939be9c9e4d6197b49972eda22d29 Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Wed, 25 Nov 2020 15:41:56 +0800 Subject: [PATCH 02/10] pkgbuild: add packing for lkp_test_virttest 1. Add packing for lkp_test_virttest 2. Avocado packaging adds new parts Signed-off-by: Ke Zhiming --- pkg/virttest/PKGBUILD | 95 +++++++++++++++++++++++++++---------------- 1 file changed, 61 insertions(+), 34 deletions(-) diff --git a/pkg/virttest/PKGBUILD b/pkg/virttest/PKGBUILD index 5aee2a4..e2a0b12 100644 --- a/pkg/virttest/PKGBUILD +++ b/pkg/virttest/PKGBUILD @@ -3,46 +3,73 @@ pkgver=git pkgrel=1 arch=('i386' 'x86_64' 'aarch64') url="https://gitee.com/openeuler/avocado-vt" -license=('GPL' 'GPL' 'GPL' 'GPL') -source=("https://gitee.com/openeuler/avocado.git" "https://gitee.com/openeuler/avocado-vt.git" "https://gitee.com/openeuler/tp-qemu.git" "https://gitee.com/openeuler/tp-libvirt.git") -md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP') +license=('GPL' 'GPL' 'GPL' 'GPL' 'GPL') +source=("https://gitee.com/openeuler/avocado.git" "https://gitee.com/openeuler/avocado-vt.git" "https://gitee.com/openeuler/tp-qemu.git" "https://gitee.com/openeuler/tp-libvirt.git" "https://gitee.com/openeuler/EulerRobot.git") +md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP') install_virttest() { - local branch=$1 - - cd "$srcdir/tp-qemu" - git checkout -f "$branch" - - cd "$srcdir/tp-libvirt" - git checkout -f "$branch" - - cd "$srcdir/avocado" - git checkout -f "$branch" - sed -i "s/^libvirt-python/#&/" requirements-selftests.txt - pip3 install -r requirements-selftests.txt - python3 setup.py install - - cd "$srcdir/avocado-vt" - git checkout -f "$branch" - sed -i "/^branch: /d" test-providers.d/io-github-autotest-qemu.ini - sed -i "/^uri: /c uri: $srcdir/tp-qemu" test-providers.d/io-github-autotest-qemu.ini - sed -i "/^uri: /a branch: $branch" test-providers.d/io-github-autotest-qemu.ini - sed -i "/^branch: /d" test-providers.d/io-github-autotest-libvirt.ini - sed -i "/^uri: /c uri: $srcdir/tp-libvirt" test-providers.d/io-github-autotest-libvirt.ini - sed -i "/^uri: /a branch: $branch" test-providers.d/io-github-autotest-libvirt.ini - rm -f test-providers.d/io-github-spiceqa-spice.ini - pip3 install -r requirements.txt - python3 setup.py install - - avocado vt-bootstrap --vt-type qemu --vt-skip-verify-download-assets --yes-to-all - avocado vt-bootstrap --vt-type libvirt --vt-skip-verify-download-assets --yes-to-all + local branch=$1 + + cd "$srcdir/tp-qemu" + git checkout -f "$branch" + + cd "$srcdir/tp-libvirt" + git checkout -f "$branch" + + cd "$srcdir/avocado" + git checkout -f "$branch" + sed -i "s/^libvirt-python/#&/" requirements-selftests.txt + pip3 install -r requirements-selftests.txt + python3 setup.py install + + cd "$srcdir/avocado-vt" + git checkout -f "$branch" + sed -i "/^branch: /d" test-providers.d/io-github-autotest-qemu.ini + sed -i "/^uri: /c uri: $srcdir/tp-qemu" test-providers.d/io-github-autotest-qemu.ini + sed -i "/^uri: /a branch: $branch" test-providers.d/io-github-autotest-qemu.ini + sed -i "/^branch: /d" test-providers.d/io-github-autotest-libvirt.ini + sed -i "/^uri: /c uri: $srcdir/tp-libvirt" test-providers.d/io-github-autotest-libvirt.ini + sed -i "/^uri: /a branch: $branch" test-providers.d/io-github-autotest-libvirt.ini + rm -f test-providers.d/io-github-spiceqa-spice.ini + pip3 install -r requirements.txt + python3 setup.py install + + avocado vt-bootstrap --vt-type qemu --vt-skip-verify-download-assets --yes-to-all + avocado vt-bootstrap --vt-type libvirt --vt-skip-verify-download-assets --yes-to-all } build() { - install_virttest "openEuler-20.03" + install_virttest "openEuler-20.03" +} + +avocado_copy() { + mkdir -p "${pkgdir}/lkp/benchmarks" + cp -rf "/usr/local/bin/avocado" "${pkgdir}/lkp/benchmarks" + mkdir -p "${pkgdir}/usr/local/bin/" + cp -rf "/usr/local/bin/"* "${pkgdir}/usr/local/bin/" + mkdir -p "${pkgdir}/usr/local/lib" + cp -rf "/usr/local/lib/"* "${pkgdir}/usr/local/lib/" + mkdir -p "${pkgdir}/usr/share/" + cp -rf "/usr/share/avocado-plugins-vt" "${pkgdir}/usr/share/" + mkdir -p "${pkgdir}/var/lib/avocado" + cp -rf "/var/lib/avocado/"* "${pkgdir}/var/lib/avocado/" + mkdir -p "{$pkgdir}/root/avocado/job-results/" +} + +lkp_virttest_copy() { + mkdir -p "${pkgdir}/${LKP_SRC}/distro/depends" + cp -rf "${srcdir}/EulerRobot/distro/depends/"* "${pkgdir}/${LKP_SRC}/distro/depends/" + mkdir -p "${pkgdir}/${LKP_SRC}/pkg/virttest" + cp -rf "${srcdir}/EulerRobot/pkg/virttest"* "${pkgdir}/${LKP_SRC}/pkg/virttest/" + mkdir -p "${pkgdir}/${LKP_SRC}/stats" + cp -rf "${srcdir}/EulerRobot/stats/"* "${pkgdir}/${LKP_SRC}/stats/" + mkdir -p "${pkgdir}/${LKP_SRC}/tests" + cp -rf "${srcdir}/EulerRobot/tests/"* "${pkgdir}/${LKP_SRC}/tests/" + mkdir -p "${pkgdir}/${LKP_SRC}/virttest" + cp -rf "${srcdir}/EulerRobot/config/vmxml/"* "${pkgdir}/${LKP_SRC}/virttest/" } package() { - mkdir -p "${pkgdir}/lkp/benchmarks" - cp -f "/usr/local/bin/avocado" "${pkgdir}/lkp/benchmarks" + lkp_virttest_copy + avocado_copy } -- Gitee From 5c01460fa7767b15dbd38431f54f43944a841c72 Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Wed, 25 Nov 2020 15:54:31 +0800 Subject: [PATCH 03/10] xml2yaml: yaml format adjustment of output 1. Yaml format adjustment of output 2. Script format correction 3. Variable delte duplicate 4. Add serial number to virttest item Signed-off-by: Ke Zhiming --- script/xml2yaml.sh | 88 ++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 49 deletions(-) diff --git a/script/xml2yaml.sh b/script/xml2yaml.sh index 128818c..7b044bf 100755 --- a/script/xml2yaml.sh +++ b/script/xml2yaml.sh @@ -1,14 +1,14 @@ #!/bin/bash write_line() { - echo "$*" | tee -a virttest_tmp.yaml + echo "$*" | tee -a virttest_tmp.yaml } write_lines() { - local line="" - for line; do - write_line "$line" - done + local line="" + for line; do + write_line "$line" + done } rm -f virttest_tmp.yaml @@ -17,54 +17,44 @@ write_line "testcase: virttest" write_line "category: functional" extra_keys=(VT_GUEST_OS VT_MACHINE_TYPE VT_NO_FILTER VT_ONLY_FILTER ENV_TYPE NO_FILTER ONLY_FILTER VT_QEMU_BIN VT_QEMU_DST_BIN VT_EXTRA_PARAMS) -all_keys=(NAME SUFFIX REFERENCE VT_TYPE VT_GUEST_OS VT_MACHINE_TYPE) +all_keys=(NAME SUFFIX REFERENCE VT_TYPE) vt_keys=(SUFFIX VT_GUEST_OS VT_MACHINE_TYPE) all_keys+=("${extra_keys[@]}") vt_keys+=("${extra_keys[@]}") yaml_lines=() yaml_state=0 +test_num=0 while read xml_line; do - case "$xml_line" in - *\*) - TEST_CASE=start - for key in "${all_keys[@]}"; do - eval "$key=" - done - ;; - *\<*\>*\*) - [ "$TEST_CASE" = "start" ] || continue - eval "$(echo "$xml_line" | awk -F'<|>' '{print$2}')='$(echo "$xml_line" | awk -F'<|>' '{print$3}')'" - ;; - *\*) - TEST_CASE="" - vt_params="" - for key in "${vt_keys[@]}"; do - vt_params="$vt_params$(eval echo \$$key)" - done - case_lines=("" "---") - for key in "${all_keys[@]}"; do - case "$key" in - REFERENCE) ;; - VT_TYPE) case_lines+=("vt_type: ${VT_TYPE:-libvirt}") ;; - NAME) [ "$NAME" != "$REFERENCE" ] && case_lines+=("vt_name: $NAME") ;; - ENV_TYPE) [ -n "$ENV_TYPE" ] && case_lines+=("vt_env_type: $ENV_TYPE") ;; - *) [ -n "$(eval echo \$$key)" ] && case_lines+=("$(echo "$key" | tr [A-Z] [a-z]): $(eval echo \$$key)") ;; - esac - done - case_lines+=("" "virttest:" " vt_reference:" " - $REFERENCE") - if [ $yaml_state -eq 0 ]; then - if [ ${#case_lines[@]} -eq 7 ]; then - yaml_state=1 - unset case_lines[1] - write_lines "${case_lines[@]}" - write_lines "${yaml_lines[@]}" - unset yaml_lines - else - yaml_lines+=("${case_lines[@]}") - fi - else - write_lines "${case_lines[@]}" - fi - ;; - esac + + case "$xml_line" in + *\*) + TEST_CASE=start + for key in "${all_keys[@]}"; do + eval "$key=" + done + ;; + *\<*\>*\*) + [ "$TEST_CASE" = "start" ] || continue + eval "$(echo "$xml_line" | awk -F'<|>' '{print$2}')='$(echo "$xml_line" | awk -F'<|>' '{print$3}')'" + ;; + *\*) + TEST_CASE="" + vt_params="" + for key in "${vt_keys[@]}"; do + vt_params="$vt_params$(eval echo \$$key)" + done + case_lines=("" "virttest-$test_num:" " vt_reference:" " - $REFERENCE") + let test_num++ + for key in "${all_keys[@]}"; do + case "$key" in + REFERENCE) ;; + VT_TYPE) case_lines+=(" vt_type: ${VT_TYPE:-libvirt}") ;; + NAME) [ "$NAME" != "$REFERENCE" ] && case_lines+=(" vt_name: $NAME") ;; + ENV_TYPE) [ -n "$ENV_TYPE" ] && case_lines+=(" vt_env_type: $ENV_TYPE") ;; + *) [ -n "$(eval echo \$$key)" ] && case_lines+=(" $(echo "$key" | tr [A-Z] [a-z]): $(eval echo \$$key)") ;; + esac + done + write_lines "${case_lines[@]}" + ;; + esac done <<< "$(xmllint --format "$@")" -- Gitee From ac8665306d06c47bf691fb360a45235938c0892c Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Wed, 25 Nov 2020 16:05:06 +0800 Subject: [PATCH 04/10] stats: results statistical modification 1. Add overall result statistics 2. Add failure feature statistics Signed-off-by: Ke Zhiming --- stats/virttest | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/stats/virttest b/stats/virttest index 90ea7b2..26d6145 100755 --- a/stats/virttest +++ b/stats/virttest @@ -1,3 +1,20 @@ #!/bin/bash -grep -E ".+\.result\..+: [0-9]+$" +tmp_log=$HOME/$(basename $0)_$RANDOM + +tee -a ${tmp_log:?} > /dev/null 2>&1 + +cat $tmp_log |grep -E ".+\.result\..+: [0-9]+$" + +echo "--------------rate not 100------------" +cat $tmp_log |grep -E ".+\.result\.rate: [0-9]+$" |grep -v 100 + +echo "--------------result stats------------" +ok=`cat $tmp_log |grep -E ".+\.result\.ok: [0-9]+$" |awk '{sum += $2} END {print sum}'` +all=`cat $tmp_log |grep -E ".+\.result\.all: [0-9]+$" |awk '{sum += $2} END {print sum}'` + +echo "result.ok: $ok" +echo "result.all: $all" +echo "result.rate: $(($ok*100/$all))" + +rm -rf ${tmp_log:?} -- Gitee From 1ad9f84ce7a38f7478366c63a4ea1e6f0d2ecf32 Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Wed, 25 Nov 2020 16:24:07 +0800 Subject: [PATCH 05/10] virttest: bugfix 1. Script format correction 2. Download the image and save it to the disk fs 3. Livirt/qemu.conf configure user/group as root 4. Bugfix of avocado log_path 5. Remove exit to ensure multiple testcases execution Signed-off-by: Ke Zhiming --- tests/virttest | 261 ++++++++++++++++++++++++++++--------------------- 1 file changed, 152 insertions(+), 109 deletions(-) diff --git a/tests/virttest b/tests/virttest index e1a98c8..7d221be 100755 --- a/tests/virttest +++ b/tests/virttest @@ -19,128 +19,161 @@ . $LKP_SRC/lib/env.sh . $LKP_SRC/lib/upload.sh +images_aarch64=("f28-aarch64.qcow2" "openEuler-20.09-aarch64.qcow2") +images_x84=("" "") +file_server="${image_server}/initrd/qemu-image" +images_path="/var/lib/avocado/data/avocado-vt/images/" + set_up() { - iptables -F - - if ! brctl show virbr0 > /dev/null; then - log_cmd systemctl restart libvirtd - fi - ps -fC qemu-img | grep qemu-img && log_cmd killall -9 qemu-img - log_cmd targetcli clearconfig confirm=True - - # virttest qemu path - if ! ls /usr/bin/qemu-kvm > /dev/null; then - # upstream qemu path - if [ -e /usr/libexec/qemu-kvm ]; then - log_cmd ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm - fi - fi - - if [ "$vt_type" = "libvirt" ]; then - local vt_xml=$LKP_SRC/virttest/avocado-vt-vm1-$os_arch.xml - if [ "$os_arch" = "aarch64" ]; then - case "$vt_guest_os" in - *openEuler.20.03) log_cmd sed -i "s/[^/]*\.qcow2/openEuler-20.03-aarch64.qcow2/" $vt_xml ;; - * ) log_cmd sed -i "s/[^/]*\.qcow2/f28-aarch64.qcow2/" $vt_xml ;; - esac - - # upstream edk2 path - if [ ! -e /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw ]; then - # Fedora/CentOS/Redhat edk (aavmf) path - if [ -e /usr/share/AAVMF/AAVMF_CODE.fd ]; then - log_cmd sed -i "s|/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw|/usr/share/AAVMF/AAVMF_CODE.fd|" $vt_xml - fi - fi - fi - log_cmd virsh define $vt_xml - fi + iptables -F + + if ! brctl show virbr0 > /dev/null; then + log_cmd systemctl restart libvirtd ||systemctl unmask libvirtd && systemctl restart libvirtd + fi + ps -fC qemu-img | grep qemu-img && log_cmd killall -9 qemu-img + log_cmd targetcli clearconfig confirm=True + + # virttest qemu path + if ! ls /usr/bin/qemu-kvm > /dev/null; then + # upstream qemu path + if [ -e /usr/libexec/qemu-kvm ]; then + log_cmd ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm + fi + fi + + if [ "$vt_type" = "libvirt" ]; then + local vt_xml=$LKP_SRC/virttest/avocado-vt-vm1-$arch.xml + if [ "$arch" = "aarch64" ]; then + case "$vt_guest_os" in + *openEuler.20.03) log_cmd sed -i "s/[^/]*\.qcow2/openEuler-20.09-aarch64.qcow2/" $vt_xml ;; + *openEuler.20.09) log_cmd sed -i "s/[^/]*\.qcow2/openEuler-20.09-aarch64.qcow2/" $vt_xml ;; + * ) log_cmd sed -i "s/[^/]*\.qcow2/f28-aarch64.qcow2/" $vt_xml ;; + esac + + # upstream edk2 path + if [ ! -e /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw ]; then + # Fedora/CentOS/Redhat edk (aavmf) path + if [ -e /usr/share/AAVMF/AAVMF_CODE.fd ]; then + log_cmd sed -i "s|/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw|/usr/share/AAVMF/AAVMF_CODE.fd|" $vt_xml + fi + fi + fi + log_cmd virsh define $vt_xml + fi } tear_down() { - local errno=$1 - - # collect aexpect (eg: serial console) logs - ls -d /tmp/aexpect_* | while read aexpect; do - case "$(awk '$5=="command:"{print;exit}' $aexpect/server-log | sed "s/^.*command: *//")" in - ssh* ) aexpect_errno=$errno; command=ssh i ;; - scp* ) aexpect_errno=$errno; command=scp ;; - tshark* ) aexpect_errno=0 ; command=tshark ;; - tcpdump* ) aexpect_errno=0 ; command=tcpdump ;; - virsh*console*) aexpect_errno=x ; command=console ;; - * ) aexpect_errno=0 ; command=others ;; - esac - if [ "$errno" = "$aexpect_errno" ]; then - rm -rf "$aexpect" - continue - fi - date=$(ls -lrt --full-time "$aexpect" | awk 'NF>=9{print$6,$7,$8;exit}' | sed 's/^\(.\{19\}\).*$/\1/;s/[:-]//g;s/ /-/g') - ls "$aexpect" | while read file; do - if [ ! -s "$aexpect/$file" ]; then - rm -rf "$aexpect/$file" - fi - done - if ! mv "$aexpect" "$logs_dir/latest/sysinfo/post/aexpect-$command-$date-${aexpect##*_}"; then - rm -rf "$aexpect" - fi - done - - if [ "$errno" != "0" ]; then - ps -fC qemu-img qemu-kvm aexpect-helper && killall qemu-img qemu-kvm aexpect-helper - local pids=$(ps -ef | awk '$8!="awk"&&/avocado.*run/{print$2}') - sleep 1 - killall -9 qemu-img qemu-kvm aexpect-helper - [ -n "$pids" ] && kill -9 $pids - - ps aux > "$logs_dir/latest/sysinfo/post/ps_aux" - ps -e f > "$logs_dir/latest/sysinfo/post/ps-e_f" - rpm -qa | sort > "$logs_dir/latest/sysinfo/post/rpm-qa" - tail -n 2048 /var/log/messages > "$logs_dir/latest/sysinfo/post/tail_n_2048_var_log_messages" - tar -zcvf "$logs_dir/latest/sysinfo/post/var_log_libvirt.tar.gz" /var/log/libvirt - fi - - if [ "$vt_type" = "libvirt" ]; then - virsh list --all | awk '/shut off$/{print$2}' | while read vm; do - if ! log_cmd virsh undefine $vm --nvram; then - log_cmd virsh undefine $vm - fi - done - fi - - return $errno + local errno=$1 + + # collect aexpect (eg: serial console) logs + ls -d /tmp/aexpect_* | while read aexpect; do + case "$(awk '$5=="command:"{print;exit}' $aexpect/server-log | sed "s/^.*command: *//")" in + ssh* ) aexpect_errno=$errno; command=ssh ;; + scp* ) aexpect_errno=$errno; command=scp ;; + tshark* ) aexpect_errno=0 ; command=tshark ;; + tcpdump* ) aexpect_errno=0 ; command=tcpdump ;; + virsh*console*) aexpect_errno=x ; command=console ;; + * ) aexpect_errno=0 ; command=others ;; + esac + if [ "$errno" = "$aexpect_errno" ]; then + rm -rf "$aexpect" + continue + fi + date=$(ls -lrt --full-time "$aexpect" | awk 'NF>=9{print$6,$7,$8;exit}' | sed 's/^\(.\{19\}\).*$/\1/;s/[:-]//g;s/ /-/g') + ls "$aexpect" | while read file; do + if [ ! -s "$aexpect/$file" ]; then + rm -rf "$aexpect/$file" + fi + done + if ! mv "$aexpect" "$logs_dir/latest/sysinfo/post/aexpect-$command-$date-${aexpect##*_}"; then + rm -rf "$aexpect" + fi + done + + if [ "$errno" != "0" ]; then + ps -fC qemu-img qemu-kvm aexpect-helper && killall qemu-img qemu-kvm aexpect-helper + local pids=$(ps -ef | awk '$8!="awk"&&/avocado.*run/{print$2}') + sleep 1 + killall -9 qemu-img qemu-kvm aexpect-helper + [ -n "$pids" ] && kill -9 $pids + + ps aux > "$logs_dir/latest/sysinfo/post/ps_aux" + ps -e f > "$logs_dir/latest/sysinfo/post/ps-e_f" + rpm -qa | sort > "$logs_dir/latest/sysinfo/post/rpm-qa" + tail -n 2048 /var/log/messages > "$logs_dir/latest/sysinfo/post/tail_n_2048_var_log_messages" + tar -zcvf "$logs_dir/latest/sysinfo/post/var_log_libvirt.tar.gz" /var/log/libvirt + fi + + if [ "$vt_type" = "libvirt" ]; then + virsh list --all | awk '/shut off$/{print$2}' | while read vm; do + if ! log_cmd virsh undefine $vm --nvram; then + log_cmd virsh undefine $vm + fi + done + fi + + return $errno +} + +images_download() { + if [ "$arch" = "aarch64" ];then + images=${images_aarch64[@]} + else + images=${images_x86_64[@]} + fi + + for image in ${images[@]};do + if [ ! -f $images_path/$image.succ ]; then + wget $file_server/$image -O $images_path/$image + wget $file_server/$image.succ -O $images_path/$image.succ + else + wget $file_server/$image.succ -O $images_path/tmp.succ + diff $images_path/tmp.succ $images_path/$image.succ + if [ $? -ne 0 ]; then + wget $file_server/$image -O $images_path/$image + wget $file_server/$image.succ -O $images_path/$image.succ + fi + fi + done } run_test() { - ( - set_up - # used to collect aexpect (eg: serial console) logs - export AEXPECT_DEBUG=on - log_cmd "$@" - tear_down $? - return $? - ) + ( + set_up + # used to collect aexpect (eg: serial console) logs + export AEXPECT_DEBUG=on + log_cmd "$@" + tear_down $? + return $? + ) } +# avocado-vt requirements check +pip3 list | grep simplejson || pip3 install simplejson +pip3 list | grep psutil || pip3 install psutil +pip3 list | grep netifaces || pip3 install netifaces + conf_file=$(find /usr/local/lib/ -name "avocado.conf") [ -e "$conf_file" ] || die "Missing config file avocado.conf" -logs_dir=$(awk -F= '/logs_dir/{print$2}' "$conf_file" | xargs | sed "s/^~/|$(cd ~; pwd)/|") +logs_dir=$(awk -F= '/logs_dir/{print$2}' "$conf_file" | xargs | sed "s#^~#$(cd ~; pwd)#") [ -z "$logs_dir" ] && die "Not found logs_dir in avocado.conf" -if [ "$os_arch" = "aarch64" ]; then - [ "$vt_machine_type" = "q35" ] && die "$os_arch vt_machine_type=$vt_machine_type" +if [ "$arch" = "aarch64" ]; then + [ "$vt_machine_type" = "q35" ] && die "$arch vt_machine_type=$vt_machine_type" else - [ "$vt_machine_type" = "arm64-pci" ] && die "$os_arch vt_machine_type=$vt_machine_type" + [ "$vt_machine_type" = "arm64-pci" ] && die "$arch vt_machine_type=$vt_machine_type" fi [ -z "$vt_name" ] && vt_name=$vt_reference [ -z "$vt_type" ] && vt_type="libvirt" [ -z "$vt_guest_os" ] && vt_guest_os="Guest.Linux.Fedora.28" [ -z "$vt_machine_type" ] && - if [ "$os_arch" = "aarch64" ]; then - vt_machine_type="arm64-pci" - else - vt_machine_type="q35" - fi + if [ "$arch" = "aarch64" ]; then + vt_machine_type="arm64-pci" + else + vt_machine_type="q35" + fi [ -z "$job_timeout" ] && job_timeout=600 base_params=(--vt-type "$vt_type") @@ -156,19 +189,32 @@ vt_tests=$(avocado list "${vt_reference:?}" "${base_params[@]}" "${extra_params[ vt_tests=$(echo "$vt_tests" | awk '{print$2}') for _no_filter in $no_filter; do - vt_tests=$(echo "$vt_tests" | grep -Ev "$_no_filter") || break + vt_tests=$(echo "$vt_tests" | grep -Ev "$_no_filter") || break done for _only_filter in $only_filter; do - vt_tests=$(echo "$vt_tests" | grep -E "$_only_filter") || break + vt_tests=$(echo "$vt_tests" | grep -E "$_only_filter") || break done [ -z "$vt_tests" ] && die "Not found tests: avocado list ${vt_reference:?} ${base_params[@]} ${extra_params[@]}" ok=0 all=0 + +# image file system config +mount /dev/sda ${images_path} || echo y | mkfs.ext4 /dev/sda && mount /dev/sda ${images_path} + +# download images +images_download + +# config qemu +if [ ! -e /etc/libvirt/qemu.conf.bak_by_CI ];then + cp -a /etc/libvirt/qemu.conf /etc/libvirt/qemu.conf.bak_by_CI + sed -i 's/^#user/user/;s/^#group/group/' /etc/libvirt/qemu.conf +fi + for vt_test in $vt_tests; do - run_test avocado run "${vt_test:?}" "${base_params[@]}" --job-timeout "$job_timeout" 2>&1 - [ $? -eq 0 ] && ((ok++)) - ((all++)) + run_test avocado run "${vt_test:?}" "${base_params[@]}" --job-timeout "$job_timeout" 2>&1 + [ $? -eq 0 ] && ((ok++)) + ((all++)) done echo "$vt_name.result.ok: $ok" @@ -177,6 +223,3 @@ echo "$vt_name.result.rate: $(($ok*100/$all))" upload_files -t results "${logs_dir:?}/"* rm -rf "${logs_dir:?}/"* - -[ $ok -eq $all ] -exit $? -- Gitee From 7e55b3d70e0edb74b130ae1a0f46b8ce549acac6 Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Wed, 25 Nov 2020 16:32:39 +0800 Subject: [PATCH 06/10] vmxml: add images xml Add the images xml, including aarch64 and x86_64 Signed-off-by: Ke Zhiming --- config/vmxml/avocado-vt-vm1-aarch64.xml | 156 ++++++++++++++++ config/vmxml/avocado-vt-vm1-x86_64.xml | 235 ++++++++++++++++++++++++ 2 files changed, 391 insertions(+) create mode 100644 config/vmxml/avocado-vt-vm1-aarch64.xml create mode 100644 config/vmxml/avocado-vt-vm1-x86_64.xml diff --git a/config/vmxml/avocado-vt-vm1-aarch64.xml b/config/vmxml/avocado-vt-vm1-aarch64.xml new file mode 100644 index 0000000..e394f98 --- /dev/null +++ b/config/vmxml/avocado-vt-vm1-aarch64.xml @@ -0,0 +1,156 @@ + + avocado-vt-vm1 + 4194304 + 4194304 + 8 + + /machine + + + hvm + /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw + /var/lib/libvirt/qemu/nvram/avocado-vt-vm1.fd + + + + + + + + + + + + + + + destroy + restart + restart + + /usr/libexec/qemu-kvm + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0:+0 + + + diff --git a/config/vmxml/avocado-vt-vm1-x86_64.xml b/config/vmxml/avocado-vt-vm1-x86_64.xml new file mode 100644 index 0000000..62db660 --- /dev/null +++ b/config/vmxml/avocado-vt-vm1-x86_64.xml @@ -0,0 +1,235 @@ + + avocado-vt-vm1 + 4194304 + 4194304 + 8 + + /machine + + + hvm + + + + + + + + + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-kvm + + + + + + +
+ + +
+ + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + +
+ + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + +