Lines Matching refs:st

155 append_sym_test(struct sym_test *st)
157 *sym_insert = st;
158 sym_insert = &st->st_next;
328 mkprog(struct sym_test *st)
334 for (int i = 0; i < MAXHDR && st->st_hdrs[i] != NULL; i++) {
335 addprogfmt("#include <%s>\n", st->st_hdrs[i]);
338 if (st->st_rtype != NULL) {
339 for (s = st->st_rtype; *s; s++) {
353 switch (st->st_type) {
361 addprogfmt("\ttest_value = %s;\n}", st->st_name);
365 addprogfmt("#if !defined(%s)", st->st_name);
366 if (st->st_defval != NULL)
367 addprogfmt("|| %s != %s", st->st_name, st->st_defval);
369 st->st_name);
375 for (int i = 0; st->st_atypes[i] != NULL && i < MAXARG; i++) {
380 if (strcmp(st->st_atypes[i], "void") == 0) {
383 if (strcmp(st->st_atypes[i], "") == 0) {
389 for (char *a = st->st_atypes[i]; *a; a++) {
406 if (st->st_atypes[0] == NULL) {
418 if (strcmp(st->st_rtype, "") != 0 &&
419 strcmp(st->st_rtype, "void") != 0) {
424 addprogfmt("%s(", st->st_name);
425 for (int i = 0; st->st_atypes[i] != NULL && i < MAXARG; i++) {
426 if (strcmp(st->st_atypes[i], "") != 0 &&
427 strcmp(st->st_atypes[i], "void") != 0) {
438 st->st_prog = custr_cstr(st_custr);
442 add_envs(struct sym_test *st, char *envs, char **err)
445 if (expand_env_list(envs, &st->st_test_mask, &st->st_need_mask,
454 add_headers(struct sym_test *st, char *hdrs, char **err)
464 st->st_hdrs[i++] = mystrdup(h);
471 add_arg_types(struct sym_test *st, char *atype, char **err)
481 st->st_atypes[i++] = mystrdup(a);
493 struct sym_test *st;
503 st = myzalloc(sizeof (*st));
504 st->st_type = SYM_TYPE;
505 st->st_name = mystrdup(decl);
506 st->st_rtype = mystrdup(decl);
508 if ((add_envs(st, envs, err) < 0) ||
509 (add_headers(st, hdrs, err) < 0)) {
512 append_sym_test(st);
524 struct sym_test *st;
535 st = myzalloc(sizeof (*st));
536 st->st_type = SYM_VALUE;
537 st->st_name = mystrdup(name);
538 st->st_rtype = mystrdup(type);
540 if ((add_envs(st, envs, err) < 0) ||
541 (add_headers(st, hdrs, err) < 0)) {
544 append_sym_test(st);
553 struct sym_test *st;
565 st = myzalloc(sizeof (*st));
566 st->st_type = SYM_DEFINE;
567 st->st_name = mystrdup(name);
575 st->st_defval = mystrdup(value);
577 if ((add_envs(st, envs, err) < 0) ||
578 (add_headers(st, hdrs, err) < 0)) {
582 append_sym_test(st);
595 struct sym_test *st;
607 st = myzalloc(sizeof (*st));
608 st->st_type = SYM_FUNC;
609 st->st_name = mystrdup(name);
610 st->st_rtype = mystrdup(rtype);
612 if ((add_envs(st, envs, err) < 0) ||
613 (add_headers(st, hdrs, err) < 0) ||
614 (add_arg_types(st, atype, err) < 0)) {
617 append_sym_test(st);
623 next_sym_test(struct sym_test *st)
625 return (st == NULL ? sym_tests : st->st_next);
629 sym_test_prog(struct sym_test *st)
631 if (st->st_prog == NULL) {
632 mkprog(st);
634 return (st->st_prog);
638 sym_test_name(struct sym_test *st)
640 return (st->st_name);
649 sym_test_env(struct sym_test *st, struct compile_env *cenv, int *need)
656 if (b & st->st_test_mask) {
657 *need = (st->st_need_mask & b) ? 1 : 0;
846 do_compile(test_t t, struct sym_test *st, struct compile_env *cenv, int need)
859 prog = sym_test_prog(st);
901 (void) fprintf(logf, "PROGRAM:\n%s\n", sym_test_prog(st));
935 struct sym_test *st;
940 for (st = next_sym_test(NULL); st; st = next_sym_test(st)) {
941 if ((sym != NULL) && strcmp(sym, sym_test_name(st))) {
945 for (cenv = sym_test_env(st, NULL, &need);
947 cenv = sym_test_env(st, cenv, &need)) {
948 t = test_start("%s : %c%s", sym_test_name(st),
950 if (do_compile(t, st, cenv, need) == 0) {