From 35780cf5e2e552ccf61a010e662a3efa9951630d Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 11 Apr 2020 13:03:00 -0700 Subject: [PATCH] SCP: Enhance SCP library testing to report and stop on errors --- scp.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/scp.c b/scp.c index 047c9038..0d14ab76 100644 --- a/scp.c +++ b/scp.c @@ -15380,6 +15380,10 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) { t_stat tstat = SCPE_OK; t_bool was_disabled = ((dptr->flags & DEV_DIS) != 0); + if (DEV_TYPE(dptr) == 0) { + sim_printf ("Skipping %s - non library device type\n", dptr->name); + continue; /* skip unspecified devices */ + } sim_switches = saved_switches; if (was_disabled) tstat = set_dev_enbdis (dptr, NULL, 1, NULL); @@ -15405,11 +15409,21 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) { default: break; } + if (was_disabled) + set_dev_enbdis (dptr, NULL, 0, NULL); } - if (was_disabled) - set_dev_enbdis (dptr, NULL, 0, NULL); - if (tstat != SCPE_OK) + else + tstat = SCPE_OK; /* can't enable, just skip device */ + if (tstat != SCPE_OK) { stat = tstat; + sim_printf ("%s device tests returned: %d - %s\n", dptr->name, tstat, sim_error_text (tstat)); + if (sim_ttisatty()) { + if (get_yn ("Continue with additional tests? [N]", SCPE_STOP) == SCPE_STOP) + break; + } + else + break; + } } return stat; }