From 465594ad98b388e782bb12a445160fd6f8bd89bb Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Wed, 25 Nov 2020 15:25:52 +0800 Subject: [PATCH 01/10] depends: depends change Add dependencies and merge all dependencies into the same file Signed-off-by: Ke Zhiming --- distro/depends/virttest | 19 +++++++++++++++++++ distro/depends/virttest-dev | 2 -- 2 files changed, 19 insertions(+), 2 deletions(-) delete mode 100644 distro/depends/virttest-dev diff --git a/distro/depends/virttest b/distro/depends/virttest index 2ac12a4..b03aed4 100644 --- a/distro/depends/virttest +++ b/distro/depends/virttest @@ -2,3 +2,22 @@ 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 +gcc +python3-devel diff --git a/distro/depends/virttest-dev b/distro/depends/virttest-dev deleted file mode 100644 index c5a8616..0000000 --- a/distro/depends/virttest-dev +++ /dev/null @@ -1,2 +0,0 @@ -gcc -python3-devel -- Gitee From 1ba1d41b5790765a108b464996b7577a74cf2fb1 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 b97b341f8e12cd36496851d344dd180171057a81 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 bd673db3c64d9eb0fa7e3d2dc02b7cc20a00c0bb 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 0c13ac1fa9f13a8071ed122c6886c845694b7b72 Mon Sep 17 00:00:00 2001 From: Ke Zhiming Date: Mon, 7 Dec 2020 16:21:26 +0800 Subject: [PATCH 05/10] vmxml: add vm template xml Add vm template 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..0d74d4e --- /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..62bd0c6 --- /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 + + + + + + +
+ + +
+ + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + +
+ + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + +