#define SF_SHOW 1u
};
-static int common_setup(struct tvec_state *tv,
+static void common_setup(struct tvec_state *tv,
const struct tvec_env *env, void *pctx, void *ctx)
{
struct test_context *tctx = ctx;
tctx->tv = tv;
tctx->f = 0;
- return (0);
}
static int common_set(struct tvec_state *tv, const char *name,
TYPEREGS(SERREG)
#undef SERREG
-static int before_single_serialize(struct tvec_state *tv, void *ctx)
+static void before_single_serialize(struct tvec_state *tv, void *ctx)
{
if (!(tv->in[RRC].f&TVRF_LIVE)) {
tv->in[RRC].v.i = 0; tv->in[RRC].f |= TVRF_LIVE;
tv->out[RRC].f |= TVRF_LIVE;
}
- return (0);
}
-static int before_single_deserialize(struct tvec_state *tv, void *ctx)
+static void before_single_deserialize(struct tvec_state *tv, void *ctx)
{
if (!(tv->in[RRC].f&TVRF_LIVE)) {
tv->in[RRC].v.i = 0; tv->in[RRC].f |= TVRF_LIVE;
tv->in[RLEFT].v.u = 0; tv->in[RLEFT].f |= TVRF_LIVE;
tv->out[RLEFT].f |= TVRF_LIVE;
}
- return (0);
}
static const struct tvec_env single_serialize_testenv = {
TVEC_ENDREGS
};
-static int before_multi_serialize(struct tvec_state *tv, void *ctx)
+static void before_multi_serialize(struct tvec_state *tv, void *ctx)
{
if (!(tv->in[RRC].f&TVRF_LIVE)) {
tv->in[RRC].v.i = 0; tv->in[RRC].f |= TVRF_LIVE;
tv->out[RRC].f |= TVRF_LIVE;
}
- return (0);
}
static const struct tvec_env multi_serialize_testenv = {
0
};
+/*----- Crash test --------------------------------------------------------*/
+
+static void test_crash(const struct tvec_reg *in, struct tvec_reg *out, void *ctx)
+{
+ out[RVOUT].v.u = in[RV].v.u;
+ if (in[RSAB].v.i) abort();
+}
+
+static const struct tvec_remotefork crash_testenv =
+ { TVEC_REMOTEFORK(0, 0) };
+
+static const struct tvec_regdef crash_regs[] = {
+ { "crash", RSAB, &tvty_ienum, 0, { &tvenum_bool } },
+ { "x", RV, &tvty_uint, 0, { &tvrange_uint } },
+ { "z", RVOUT, &tvty_uint, 0, { &tvrange_uint } },
+ TVEC_ENDREGS
+};
+
/*----- Front end ---------------------------------------------------------*/
static const struct tvec_test tests[] = {
TYPEREGS(DEFSINGLE)
#undef DEFSINGLE
+ { "crash", crash_regs, &crash_testenv._env, test_crash } ,
+
TVEC_ENDTESTS
};