*/
#include "tvec.h"
+#include "tvec-types.h"
+
#include "versioncmp.h"
enum {
RV0 = NROUT, RV1, NREG
};
-static void test_versioncmp(const struct tvec_reg *in, struct tvec_reg *out,
- void *ctx)
- { out[RRC].v.i = versioncmp(in[RV0].v.str.p, in[RV1].v.str.p); }
+static const struct tvec_regdef versioncmp_regs[] = {
+ { "v0", &tvty_text, RV0, 0 },
+ { "v1", &tvty_text, RV1, 0 },
+ { "rc", &tvty_ienum, RRC, 0, { &tvenum_cmp } },
+ TVEC_ENDREGS
+};
static void swap_test(struct tvec_state *tv, tvec_testfn *fn, void *ctx)
{
tv->in[RRC].v.i = -tv->in[RRC].v.i;
fn(tv->in, tv->out, 0); tvec_check(tv, "swapped");
}
-static const struct tvec_env swap_testenv = { 0, 0, 0, 0, swap_test, 0, 0 };
-static const struct tvec_irange cmp_range = { -1, +1 };
-static const struct tvec_regdef versioncmp_regs[] = {
- { "v0", RV0, &tvty_string, 0 },
- { "v1", RV1, &tvty_string, 0 },
- { "rc", RRC, &tvty_int, 0, { &cmp_range } },
- { 0, 0, 0, 0 }
-};
+static void test_versioncmp(const struct tvec_reg *in, struct tvec_reg *out,
+ void *ctx)
+ { out[RRC].v.i = versioncmp(in[RV0].v.text.p, in[RV1].v.text.p); }
-static const struct tvec_test tests[] = {
- { "versioncmp", versioncmp_regs, &swap_testenv, test_versioncmp },
- { 0, 0, 0, 0 }
-};
+static const struct tvec_env swap_testenv = { 0, 0, 0, 0, swap_test, 0, 0 };
+static const struct tvec_test versioncmp_test =
+ { "versioncmp", versioncmp_regs, &swap_testenv, test_versioncmp };
+
+static const struct tvec_test *const tests[] = { &versioncmp_test, 0 };
-static const struct tvec_info testinfo =
+static const struct tvec_config testconfig =
{ tests, NROUT, NREG, sizeof(struct tvec_reg) };
int main(int argc, char *argv[])
- { return (tvec_main(argc, argv, &testinfo, 0)); }
+ { return (tvec_main(argc, argv, &testconfig, 0)); }
/*----- That's all, folks -------------------------------------------------*/