12990abeaSNicholas Piggin // SPDX-License-Identifier: GPL-2.0-only 22990abeaSNicholas Piggin /* 32990abeaSNicholas Piggin * Machine independent migration tests 42990abeaSNicholas Piggin * 52990abeaSNicholas Piggin * This is just a very simple test that is intended to stress the migration 62990abeaSNicholas Piggin * support in the test harness. This could be expanded to test more guest 72990abeaSNicholas Piggin * library code, but architecture-specific tests should be used to test 82990abeaSNicholas Piggin * migration of tricky machine state. 92990abeaSNicholas Piggin */ 102990abeaSNicholas Piggin #include <libcflat.h> 112990abeaSNicholas Piggin #include <migrate.h> 12*956004acSNicholas Piggin #include <asm/time.h> 132990abeaSNicholas Piggin 14*956004acSNicholas Piggin #define NR_MIGRATIONS 15 152990abeaSNicholas Piggin 162990abeaSNicholas Piggin int main(int argc, char **argv) 172990abeaSNicholas Piggin { 18*956004acSNicholas Piggin report_prefix_push("migration harness"); 192990abeaSNicholas Piggin 20fa8914bcSNicholas Piggin if (argc > 1 && !strcmp(argv[1], "skip")) { 21fa8914bcSNicholas Piggin migrate_skip(); 22fa8914bcSNicholas Piggin report(true, "migration skipping"); 23fa8914bcSNicholas Piggin } else { 24fa8914bcSNicholas Piggin int i; 25fa8914bcSNicholas Piggin 262990abeaSNicholas Piggin for (i = 0; i < NR_MIGRATIONS; i++) 272990abeaSNicholas Piggin migrate_quiet(); 28*956004acSNicholas Piggin report(true, "cooperative migration"); 29*956004acSNicholas Piggin 30*956004acSNicholas Piggin migrate_begin_continuous(); 31*956004acSNicholas Piggin mdelay(2000); 32*956004acSNicholas Piggin migrate_end_continuous(); 33*956004acSNicholas Piggin mdelay(1000); 34*956004acSNicholas Piggin migrate_begin_continuous(); 35*956004acSNicholas Piggin mdelay(2000); 36*956004acSNicholas Piggin migrate_end_continuous(); 37*956004acSNicholas Piggin report(true, "continuous migration"); 38fa8914bcSNicholas Piggin } 392990abeaSNicholas Piggin 402990abeaSNicholas Piggin report_prefix_pop(); 412990abeaSNicholas Piggin 422990abeaSNicholas Piggin return report_summary(); 432990abeaSNicholas Piggin } 44