From cbe945c74c8047a01c9b918fa93955a50824e318 Mon Sep 17 00:00:00 2001 From: Alexander Bulekov Date: Mon, 23 Nov 2020 13:43:52 -0500 Subject: [PATCH 1/5] fuzz: Add more i386 configurations for fuzzing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds configurations for fuzzing the following devices on oss-fuzz: * vmxnet3 CC: Dmitry Fleytman * ne2k * pcnet * rtl8139 CC: Jason Wang * eepro100 CC: Stefan Weil * sdhci CC: Philippe Mathieu-Daudé * ehci * ohci * ac97 * cs4231a * es1370 * sb16 CC: Gerd Hoffmann * megasas CC: Hannes Reinecke * parallel CC: Michael S. Tsirkin CC: Paolo Bonzini Signed-off-by: Alexander Bulekov Message-Id: <20201123184352.242907-1-alxndr@bu.edu> Signed-off-by: Thomas Huth --- tests/qtest/fuzz/generic_fuzz_configs.h | 80 +++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/tests/qtest/fuzz/generic_fuzz_configs.h b/tests/qtest/fuzz/generic_fuzz_configs.h index b4c5fefeca..fbc9779f7f 100644 --- a/tests/qtest/fuzz/generic_fuzz_configs.h +++ b/tests/qtest/fuzz/generic_fuzz_configs.h @@ -114,6 +114,86 @@ const generic_fuzz_config predefined_configs[] = { .name = "pc-q35", .args = "-machine q35", .objects = "*", + },{ + .name = "vmxnet3", + .args = "-machine q35 -nodefaults " + "-device vmxnet3,netdev=net0 -netdev user,id=net0", + .objects = "vmxnet3" + },{ + .name = "ne2k_pci", + .args = "-machine q35 -nodefaults " + "-device ne2k_pci,netdev=net0 -netdev user,id=net0", + .objects = "ne2k*" + },{ + .name = "pcnet", + .args = "-machine q35 -nodefaults " + "-device pcnet,netdev=net0 -netdev user,id=net0", + .objects = "pcnet" + },{ + .name = "rtl8139", + .args = "-machine q35 -nodefaults " + "-device rtl8139,netdev=net0 -netdev user,id=net0", + .objects = "rtl8139" + },{ + .name = "i82550", + .args = "-machine q35 -nodefaults " + "-device i82550,netdev=net0 -netdev user,id=net0", + .objects = "eepro*" + },{ + .name = "sdhci-v3", + .args = "-nodefaults -device sdhci-pci,sd-spec-version=3 " + "-device sd-card,drive=mydrive " + "-drive if=sd,index=0,file=null-co://,format=raw,id=mydrive -nographic", + .objects = "sd*" + },{ + .name = "ehci", + .args = "-machine q35 -nodefaults " + "-device ich9-usb-ehci1,bus=pcie.0,addr=1d.7," + "multifunction=on,id=ich9-ehci-1 " + "-device ich9-usb-uhci1,bus=pcie.0,addr=1d.0," + "multifunction=on,masterbus=ich9-ehci-1.0,firstport=0 " + "-device ich9-usb-uhci2,bus=pcie.0,addr=1d.1," + "multifunction=on,masterbus=ich9-ehci-1.0,firstport=2 " + "-device ich9-usb-uhci3,bus=pcie.0,addr=1d.2," + "multifunction=on,masterbus=ich9-ehci-1.0,firstport=4 " + "-drive if=none,id=usbcdrom,media=cdrom " + "-device usb-tablet,bus=ich9-ehci-1.0,port=1,usb_version=1 " + "-device usb-storage,bus=ich9-ehci-1.0,port=2,drive=usbcdrom", + .objects = "*usb* *hci*", + },{ + .name = "ohci", + .args = "-machine q35 -nodefaults -device pci-ohci -device usb-kbd", + .objects = "*usb* *ohci*", + },{ + .name = "megaraid", + .args = "-machine q35 -nodefaults -device megasas -device scsi-cd,drive=null0 " + "-blockdev driver=null-co,read-zeroes=on,node-name=null0", + .objects = "megasas*", + },{ + .name = "ac97", + .args = "-machine q35 -nodefaults " + "-device ac97,audiodev=snd0 -audiodev none,id=snd0 -nodefaults", + .objects = "ac97*", + },{ + .name = "cs4231a", + .args = "-machine q35 -nodefaults " + "-device cs4231a,audiodev=snd0 -audiodev none,id=snd0 -nodefaults", + .objects = "cs4231a* i8257*", + },{ + .name = "es1370", + .args = "-machine q35 -nodefaults " + "-device es1370,audiodev=snd0 -audiodev none,id=snd0 -nodefaults", + .objects = "es1370*", + },{ + .name = "sb16", + .args = "-machine q35 -nodefaults " + "-device sb16,audiodev=snd0 -audiodev none,id=snd0 -nodefaults", + .objects = "sb16* i8257*", + },{ + .name = "parallel", + .args = "-machine q35 -nodefaults " + "-parallel file:/dev/null", + .objects = "parallel*", } }; From d61368d1e971a63dce1d4b1f9bc39f0588f359b6 Mon Sep 17 00:00:00 2001 From: Alexander Bulekov Date: Wed, 16 Dec 2020 15:33:27 -0500 Subject: [PATCH 2/5] fuzz: fix the generic-fuzz-floppy config On the pc-i440fx machine, the floppy drive relies on the i8257 DMA controller. Add this device to the floppy fuzzer config, and silence the warning about a missing format specifier for the null-co:// drive. Signed-off-by: Alexander Bulekov Message-Id: <20201216203328.41112-1-alxndr@bu.edu> Signed-off-by: Thomas Huth --- tests/qtest/fuzz/generic_fuzz_configs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/qtest/fuzz/generic_fuzz_configs.h b/tests/qtest/fuzz/generic_fuzz_configs.h index fbc9779f7f..7fed035345 100644 --- a/tests/qtest/fuzz/generic_fuzz_configs.h +++ b/tests/qtest/fuzz/generic_fuzz_configs.h @@ -92,9 +92,9 @@ const generic_fuzz_config predefined_configs[] = { },{ .name = "floppy", .args = "-machine pc -nodefaults -device floppy,id=floppy0 " - "-drive id=disk0,file=null-co://,file.read-zeroes=on,if=none " + "-drive id=disk0,file=null-co://,file.read-zeroes=on,if=none,format=raw " "-device floppy,drive=disk0,drive-type=288", - .objects = "fd* floppy*", + .objects = "fd* floppy* i8257", },{ .name = "xhci", .args = "-machine q35 -nodefaults " From d44423ad14d0fd9d90b86f2b50f24c7993b22777 Mon Sep 17 00:00:00 2001 From: Wainer dos Santos Moschetta Date: Fri, 11 Dec 2020 15:38:25 -0300 Subject: [PATCH 3/5] tests/acceptance: Bump avocado requirements to 83.0 To use Avocado's testlogs plug-in on CI it is required to use its 83.0 or greater version. Signed-off-by: Wainer dos Santos Moschetta Reviewed-by: Willian Rampazzo Message-Id: <20201211183827.915232-2-wainersm@redhat.com> Signed-off-by: Thomas Huth --- tests/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements.txt b/tests/requirements.txt index a1c631fa59..62e8ffd28c 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,5 +1,5 @@ # Add Python module requirements, one per line, to be installed # in the tests/venv Python virtual environment. For more info, # refer to: https://pip.pypa.io/en/stable/user_guide/#id1 -avocado-framework==81.0 +avocado-framework==83.0 pycdlib==1.11.0 From ba2232bae6d67706b6a72e487fd57ccf38486a14 Mon Sep 17 00:00:00 2001 From: Wainer dos Santos Moschetta Date: Fri, 11 Dec 2020 15:38:26 -0300 Subject: [PATCH 4/5] gitlab-ci: Refactor code that show logs of failed acceptances Replace the code (python) on after_script of the acceptance jobs that is currently used to show the logs of failed tests. Instead it is used the Avocado's testlogs plug-in which works likewise. Signed-off-by: Wainer dos Santos Moschetta Reviewed-by: Willian Rampazzo Message-Id: <20201211183827.915232-3-wainersm@redhat.com> Signed-off-by: Thomas Huth --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98bff03b47..85aa20ffde 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,13 +58,14 @@ include: - echo "[datadir.paths]" > ~/.config/avocado/avocado.conf - echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']" >> ~/.config/avocado/avocado.conf + - echo -e '[job.output.testlogs]\nstatuses = ["FAIL"]' + >> ~/.config/avocado/avocado.conf - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then du -chs ${CI_PROJECT_DIR}/avocado-cache ; fi - export AVOCADO_ALLOW_UNTRUSTED_CODE=1 after_script: - cd build - - python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP", "CANCEL")]' | xargs cat - du -chs ${CI_PROJECT_DIR}/avocado-cache build-system-ubuntu: From df063546c2de1a5045e356253abd9a2e6e2bec6d Mon Sep 17 00:00:00 2001 From: Wainer dos Santos Moschetta Date: Fri, 11 Dec 2020 15:38:27 -0300 Subject: [PATCH 5/5] gitlab-ci: Archive logs of acceptance tests Keep the logs of acceptance tests for two days on GitLab. If you want to make it available for more time, click on the 'Keep' button on the Job page at web UI. By default GitLab will archive artifacts only if the job succeed. Instead let's keep it on both success and failure, so it gives the opportunity to the developer/maintainer to check the error logs as well as to the logs of CANCEL tests (not shown on the job logs). Signed-off-by: Wainer dos Santos Moschetta Reviewed-by: Willian Rampazzo Reviewed-by: Thomas Huth Message-Id: <20201211183827.915232-4-wainersm@redhat.com> Signed-off-by: Thomas Huth --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 85aa20ffde..bf3df843e2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -49,8 +49,12 @@ include: - ${CI_PROJECT_DIR}/avocado-cache policy: pull-push artifacts: + name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" + when: always + expire_in: 2 days paths: - build/tests/results/latest/results.xml + - build/tests/results/latest/test-results reports: junit: build/tests/results/latest/results.xml before_script: