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
10
scp.c
10
scp.c
|
@ -15378,8 +15378,12 @@ if (sim_switches & SWMASK ('D')) {
|
|||
}
|
||||
for (i = 0; (dptr = sim_devices[i]) != NULL; i++) {
|
||||
t_stat tstat = SCPE_OK;
|
||||
t_bool was_disabled = ((dptr->flags & DEV_DIS) != 0);
|
||||
|
||||
sim_switches = saved_switches;
|
||||
if (was_disabled)
|
||||
tstat = set_dev_enbdis (dptr, NULL, 1, NULL);
|
||||
if (tstat == SCPE_OK) {
|
||||
switch (DEV_TYPE(dptr)) {
|
||||
#if defined(USE_SIM_CARD)
|
||||
case DEV_CARD:
|
||||
|
@ -15395,9 +15399,15 @@ for (i = 0; (dptr = sim_devices[i]) != NULL; i++) {
|
|||
case DEV_TAPE:
|
||||
tstat = sim_tape_test (dptr);
|
||||
break;
|
||||
case DEV_MUX:
|
||||
tstat = tmxr_sock_test (dptr);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (was_disabled)
|
||||
set_dev_enbdis (dptr, NULL, 0, NULL);
|
||||
if (tstat != SCPE_OK)
|
||||
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 */
|
||||
|
||||
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);
|
||||
t_stat tmxr_startup (void);
|
||||
t_stat tmxr_shutdown (void);
|
||||
t_stat tmxr_sock_test (DEVICE *dptr);
|
||||
t_stat tmxr_start_poll (void);
|
||||
t_stat tmxr_stop_poll (void);
|
||||
void _tmxr_debug (uint32 dbits, TMLN *lp, const char *msg, char *buf, int bufsize);
|
||||
|
|
Loading…
Add table
Reference in a new issue