tests/qtest: Only run fuzz-megasas-test if megasas device is available
This test fails when QEMU is built without the megasas device, restrict it to its availability. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									6e31b3a5c3
								
							
						
					
					
						commit
						c887d3339e
					
				| @ -1969,6 +1969,7 @@ S: Supported | ||||
| F: hw/scsi/megasas.c | ||||
| F: hw/scsi/mfi.h | ||||
| F: tests/qtest/megasas-test.c | ||||
| F: tests/qtest/fuzz-megasas-test.c | ||||
| 
 | ||||
| Network packet abstractions | ||||
| M: Dmitry Fleytman <dmitry.fleytman@gmail.com> | ||||
|  | ||||
							
								
								
									
										49
									
								
								tests/qtest/fuzz-megasas-test.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								tests/qtest/fuzz-megasas-test.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| /*
 | ||||
|  * QTest fuzzer-generated testcase for megasas device | ||||
|  * | ||||
|  * Copyright (c) 2020 Li Qiang <liq3ea@gmail.com> | ||||
|  * | ||||
|  * This work is licensed under the terms of the GNU GPL, version 2 or later. | ||||
|  * See the COPYING file in the top-level directory. | ||||
|  */ | ||||
| 
 | ||||
| #include "qemu/osdep.h" | ||||
| 
 | ||||
| #include "libqos/libqtest.h" | ||||
| 
 | ||||
| /*
 | ||||
|  * This used to trigger the assert in scsi_dma_complete | ||||
|  * https://bugs.launchpad.net/qemu/+bug/1878263
 | ||||
|  */ | ||||
| static void test_lp1878263_megasas_zero_iov_cnt(void) | ||||
| { | ||||
|     QTestState *s; | ||||
| 
 | ||||
|     s = qtest_init("-nographic -monitor none -serial none " | ||||
|                    "-M q35 -device megasas -device scsi-cd,drive=null0 " | ||||
|                    "-blockdev driver=null-co,read-zeroes=on,node-name=null0"); | ||||
|     qtest_outl(s, 0xcf8, 0x80001818); | ||||
|     qtest_outl(s, 0xcfc, 0xc101); | ||||
|     qtest_outl(s, 0xcf8, 0x8000181c); | ||||
|     qtest_outl(s, 0xcf8, 0x80001804); | ||||
|     qtest_outw(s, 0xcfc, 0x7); | ||||
|     qtest_outl(s, 0xcf8, 0x8000186a); | ||||
|     qtest_writeb(s, 0x14, 0xfe); | ||||
|     qtest_writeb(s, 0x0, 0x02); | ||||
|     qtest_outb(s, 0xc1c0, 0x17); | ||||
|     qtest_quit(s); | ||||
| } | ||||
| 
 | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     const char *arch = qtest_get_arch(); | ||||
| 
 | ||||
|     g_test_init(&argc, &argv, NULL); | ||||
| 
 | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         qtest_add_func("fuzz/test_lp1878263_megasas_zero_iov_cnt", | ||||
|                        test_lp1878263_megasas_zero_iov_cnt); | ||||
|     } | ||||
| 
 | ||||
|     return g_test_run(); | ||||
| } | ||||
| @ -11,29 +11,6 @@ | ||||
| 
 | ||||
| #include "libqos/libqtest.h" | ||||
| 
 | ||||
| /*
 | ||||
|  * This used to trigger the assert in scsi_dma_complete | ||||
|  * https://bugs.launchpad.net/qemu/+bug/1878263
 | ||||
|  */ | ||||
| static void test_lp1878263_megasas_zero_iov_cnt(void) | ||||
| { | ||||
|     QTestState *s; | ||||
| 
 | ||||
|     s = qtest_init("-nographic -monitor none -serial none " | ||||
|                    "-M q35 -device megasas -device scsi-cd,drive=null0 " | ||||
|                    "-blockdev driver=null-co,read-zeroes=on,node-name=null0"); | ||||
|     qtest_outl(s, 0xcf8, 0x80001818); | ||||
|     qtest_outl(s, 0xcfc, 0xc101); | ||||
|     qtest_outl(s, 0xcf8, 0x8000181c); | ||||
|     qtest_outl(s, 0xcf8, 0x80001804); | ||||
|     qtest_outw(s, 0xcfc, 0x7); | ||||
|     qtest_outl(s, 0xcf8, 0x8000186a); | ||||
|     qtest_writeb(s, 0x14, 0xfe); | ||||
|     qtest_writeb(s, 0x0, 0x02); | ||||
|     qtest_outb(s, 0xc1c0, 0x17); | ||||
|     qtest_quit(s); | ||||
| } | ||||
| 
 | ||||
| static void test_lp1878642_pci_bus_get_irq_level_assert(void) | ||||
| { | ||||
|     QTestState *s; | ||||
| @ -103,8 +80,6 @@ int main(int argc, char **argv) | ||||
|     g_test_init(&argc, &argv, NULL); | ||||
| 
 | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         qtest_add_func("fuzz/test_lp1878263_megasas_zero_iov_cnt", | ||||
|                        test_lp1878263_megasas_zero_iov_cnt); | ||||
|         qtest_add_func("fuzz/test_lp1878642_pci_bus_get_irq_level_assert", | ||||
|                        test_lp1878642_pci_bus_get_irq_level_assert); | ||||
|         qtest_add_func("fuzz/test_mmio_oob_from_memory_region_cache", | ||||
|  | ||||
| @ -17,7 +17,9 @@ slow_qtests = { | ||||
|   'test-hmp' : 120, | ||||
| } | ||||
| 
 | ||||
| qtests_generic = [ | ||||
| qtests_generic = \ | ||||
|   (config_all_devices.has_key('CONFIG_MEGASAS_SCSI_PCI') ? ['fuzz-megasas-test'] : []) + \ | ||||
|   [ | ||||
|   'cdrom-test', | ||||
|   'device-introspect-test', | ||||
|   'machine-none-test', | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Philippe Mathieu-Daudé
						Philippe Mathieu-Daudé