@ -2439,6 +2439,74 @@ static void test_acpi_aarch64_virt_oem_fields(void)
g_free ( args ) ;
}
# define LOONGARCH64_INIT_TEST_DATA(data) \
test_data data = { \
. machine = " virt " , \
. arch = " loongarch64 " , \
. tcg_only = true , \
. uefi_fl1 = " pc-bios/edk2-loongarch64-code.fd " , \
. uefi_fl2 = " pc-bios/edk2-loongarch64-vars.fd " , \
. cd = " tests/data/uefi-boot-images/ " \
" bios-tables-test.loongarch64.iso.qcow2 " , \
. ram_start = 0 , \
. scan_len = 128ULL * MiB , \
}
static void test_acpi_loongarch64_virt ( void )
{
LOONGARCH64_INIT_TEST_DATA ( data ) ;
test_acpi_one ( " -cpu la464 " , & data ) ;
free_test_data ( & data ) ;
}
static void test_acpi_loongarch64_virt_topology ( void )
{
LOONGARCH64_INIT_TEST_DATA ( data ) ;
data . variant = " .topology " ;
test_acpi_one ( " -cpu la464 -smp sockets=1,cores=2,threads=2 " , & data ) ;
free_test_data ( & data ) ;
}
static void test_acpi_loongarch64_virt_numamem ( void )
{
LOONGARCH64_INIT_TEST_DATA ( data ) ;
data . variant = " .numamem " ;
test_acpi_one ( " -cpu la464 -m 128 "
" -object memory-backend-ram,id=ram0,size=64M "
" -object memory-backend-ram,id=ram1,size=64M "
" -numa node,memdev=ram0 -numa node,memdev=ram1 "
" -numa dist,src=0,dst=1,val=21 " ,
& data ) ;
free_test_data ( & data ) ;
}
static void test_acpi_loongarch64_virt_memhp ( void )
{
LOONGARCH64_INIT_TEST_DATA ( data ) ;
data . variant = " .memhp " ;
test_acpi_one ( " -cpu la464 -m 128,slots=2,maxmem=256M "
" -object memory-backend-ram,id=ram0,size=128M " ,
& data ) ;
free_test_data ( & data ) ;
}
static void test_acpi_loongarch64_virt_oem_fields ( void )
{
LOONGARCH64_INIT_TEST_DATA ( data ) ;
char * args ;
args = test_acpi_create_args ( & data , " -cpu la464 " OEM_TEST_ARGS ) ;
data . qts = qtest_init ( args ) ;
test_acpi_load_tables ( & data ) ;
test_oem_fields ( & data ) ;
qtest_quit ( data . qts ) ;
free_test_data ( & data ) ;
g_free ( args ) ;
}
int main ( int argc , char * argv [ ] )
{
@ -2614,6 +2682,17 @@ int main(int argc, char *argv[])
qtest_add_func ( " acpi/virt/numamem " ,
test_acpi_riscv64_virt_tcg_numamem ) ;
}
} else if ( strcmp ( arch , " loongarch64 " ) = = 0 ) {
if ( has_tcg ) {
qtest_add_func ( " acpi/virt " , test_acpi_loongarch64_virt ) ;
qtest_add_func ( " acpi/virt/topology " ,
test_acpi_loongarch64_virt_topology ) ;
qtest_add_func ( " acpi/virt/numamem " ,
test_acpi_loongarch64_virt_numamem ) ;
qtest_add_func ( " acpi/virt/memhp " , test_acpi_loongarch64_virt_memhp ) ;
qtest_add_func ( " acpi/virt/oem-fields " ,
test_acpi_loongarch64_virt_oem_fields ) ;
}
}
ret = g_test_run ( ) ;
boot_sector_cleanup ( disk ) ;