SOCK: Add tmxr (and socket) library tests
This commit is contained in:
parent
16e7ffa901
commit
3d2394a2fb
3 changed files with 73 additions and 16 deletions
40
scp.c
40
scp.c
|
@ -15378,26 +15378,36 @@ if (sim_switches & SWMASK ('D')) {
|
||||||
}
|
}
|
||||||
for (i = 0; (dptr = sim_devices[i]) != NULL; i++) {
|
for (i = 0; (dptr = sim_devices[i]) != NULL; i++) {
|
||||||
t_stat tstat = SCPE_OK;
|
t_stat tstat = SCPE_OK;
|
||||||
|
t_bool was_disabled = ((dptr->flags & DEV_DIS) != 0);
|
||||||
|
|
||||||
sim_switches = saved_switches;
|
sim_switches = saved_switches;
|
||||||
switch (DEV_TYPE(dptr)) {
|
if (was_disabled)
|
||||||
|
tstat = set_dev_enbdis (dptr, NULL, 1, NULL);
|
||||||
|
if (tstat == SCPE_OK) {
|
||||||
|
switch (DEV_TYPE(dptr)) {
|
||||||
#if defined(USE_SIM_CARD)
|
#if defined(USE_SIM_CARD)
|
||||||
case DEV_CARD:
|
case DEV_CARD:
|
||||||
tstat = sim_card_test (dptr);
|
tstat = sim_card_test (dptr);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case DEV_DISK:
|
case DEV_DISK:
|
||||||
tstat = sim_disk_test (dptr);
|
tstat = sim_disk_test (dptr);
|
||||||
break;
|
break;
|
||||||
case DEV_ETHER:
|
case DEV_ETHER:
|
||||||
tstat = sim_ether_test (dptr);
|
tstat = sim_ether_test (dptr);
|
||||||
break;
|
break;
|
||||||
case DEV_TAPE:
|
case DEV_TAPE:
|
||||||
tstat = sim_tape_test (dptr);
|
tstat = sim_tape_test (dptr);
|
||||||
break;
|
break;
|
||||||
default:
|
case DEV_MUX:
|
||||||
break;
|
tstat = tmxr_sock_test (dptr);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (was_disabled)
|
||||||
|
set_dev_enbdis (dptr, NULL, 0, NULL);
|
||||||
if (tstat != SCPE_OK)
|
if (tstat != SCPE_OK)
|
||||||
stat = tstat;
|
stat = tstat;
|
||||||
}
|
}
|
||||||
|
|
48
sim_tmxr.c
48
sim_tmxr.c
|
@ -1038,7 +1038,8 @@ if (mp->last_poll_time == 0) { /* first poll initializa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((poll_time - mp->last_poll_time) < mp->poll_interval*1000)
|
if (sim_is_running &&
|
||||||
|
((poll_time - mp->last_poll_time) < mp->poll_interval*1000))
|
||||||
return -1; /* too soon to try */
|
return -1; /* too soon to try */
|
||||||
|
|
||||||
srand((unsigned int)poll_time);
|
srand((unsigned int)poll_time);
|
||||||
|
@ -5447,3 +5448,48 @@ if ((dptr) && (dbits & dptr->dctrl)) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Testing of sim_sock and tmxr */
|
||||||
|
|
||||||
|
#include <setjmp.h>
|
||||||
|
|
||||||
|
t_stat tmxr_sock_test (DEVICE *dptr)
|
||||||
|
{
|
||||||
|
char cmd[CBUFSIZE];
|
||||||
|
int line;
|
||||||
|
TMXR *tmxr;
|
||||||
|
TMLN *ln;
|
||||||
|
t_stat stat = SCPE_OK;
|
||||||
|
SOCKET sock_mux = INVALID_SOCKET;
|
||||||
|
SOCKET sock_line = INVALID_SOCKET;
|
||||||
|
SIM_TEST_INIT;
|
||||||
|
|
||||||
|
sim_printf ("Testing %s:\n", dptr->name);
|
||||||
|
dptr->dctrl = 0xFFFFFFFF;
|
||||||
|
dptr->dctrl &= ~TMXR_DBG_TRC;
|
||||||
|
sprintf (cmd, "%s -u localhost:65500", dptr->name);
|
||||||
|
SIM_TEST(attach_cmd (0, cmd));
|
||||||
|
tmxr = (TMXR *)dptr->units->tmxr;
|
||||||
|
ln = &tmxr->ldsc[tmxr->lines - 1];
|
||||||
|
SIM_TEST(detach_cmd (0, dptr->name));
|
||||||
|
if (tmxr->lines > 1) {
|
||||||
|
tmxr->modem_control = FALSE;
|
||||||
|
for (line=0; line < tmxr->lines; line++)
|
||||||
|
tmxr->ldsc[line].modem_control = FALSE;
|
||||||
|
snprintf (cmd + strlen (cmd), sizeof (cmd) - strlen (cmd), ",Line=%d,localhost:65501", tmxr->lines - 1);
|
||||||
|
SIM_TEST(attach_cmd (0, cmd));
|
||||||
|
sock_line = sim_connect_sock_ex (NULL, "localhost:65501", NULL, NULL, 0);
|
||||||
|
sim_os_ms_sleep (100);
|
||||||
|
SIM_TEST((tmxr_poll_conn (tmxr) == tmxr->lines - 1) ? SCPE_OK : SCPE_IERR);
|
||||||
|
sock_mux = sim_connect_sock ("", "localhost", "65500");
|
||||||
|
sim_os_ms_sleep (100);
|
||||||
|
SIM_TEST((tmxr_poll_conn (tmxr) == 0) ? SCPE_OK : SCPE_IERR);
|
||||||
|
show_cmd (0, "MUX");
|
||||||
|
sim_close_sock (sock_mux);
|
||||||
|
sock_mux = INVALID_SOCKET;
|
||||||
|
sim_close_sock (sock_line);
|
||||||
|
sock_line = INVALID_SOCKET;
|
||||||
|
SIM_TEST(detach_cmd (0, dptr->name));
|
||||||
|
}
|
||||||
|
return stat;
|
||||||
|
}
|
||||||
|
|
|
@ -307,6 +307,7 @@ const char *tmxr_send_line_name (const SEND *snd);
|
||||||
const char *tmxr_expect_line_name (const EXPECT *exp);
|
const char *tmxr_expect_line_name (const EXPECT *exp);
|
||||||
t_stat tmxr_startup (void);
|
t_stat tmxr_startup (void);
|
||||||
t_stat tmxr_shutdown (void);
|
t_stat tmxr_shutdown (void);
|
||||||
|
t_stat tmxr_sock_test (DEVICE *dptr);
|
||||||
t_stat tmxr_start_poll (void);
|
t_stat tmxr_start_poll (void);
|
||||||
t_stat tmxr_stop_poll (void);
|
t_stat tmxr_stop_poll (void);
|
||||||
void _tmxr_debug (uint32 dbits, TMLN *lp, const char *msg, char *buf, int bufsize);
|
void _tmxr_debug (uint32 dbits, TMLN *lp, const char *msg, char *buf, int bufsize);
|
||||||
|
|
Loading…
Add table
Reference in a new issue