diff options
-rw-r--r-- | src/tet3/tcc/exec.c | 22 | ||||
-rw-r--r-- | src/tet3/tcm/ictp.c | 65 |
2 files changed, 19 insertions, 68 deletions
diff --git a/src/tet3/tcc/exec.c b/src/tet3/tcc/exec.c index 3389270e..e7b018ff 100644 --- a/src/tet3/tcc/exec.c +++ b/src/tet3/tcc/exec.c @@ -75,8 +75,7 @@ char *path, **argv, *tcdir, *outfile; static #endif /* TET_LITE */ /* -LITE-CUT-LINE- */ char buf[sizeof fmt + LNUMSZ]; - char *resdir; - char resbuf[MAXPATH + sizeof("TET_RESDIR=")]; + char resbuf[MAXPATH + sizeof("TET_RESFILE=")]; struct systab *sp; long remid; #ifdef TET_LITE /* -LITE-CUT-LINE- */ @@ -106,17 +105,14 @@ char *path, **argv, *tcdir, *outfile; sp->sy_activity = prp->pr_activity; } - /* put the results directory into the environment */ - resdir = resdirname(); - if (resdir) { - sprintf(resbuf, "TET_RESDIR=%s", resdir); - TRACE3(tet_Ttcc, 6, "putenv \"%s\" on system %s", - resbuf, tet_i2a(*prp->pr_sys)); - if (tcc_putenv(*prp->pr_sys, resbuf) < 0) { - prperror(prp, *prp->pr_sys, tet_tcerrno, - "tcc_putenv(TET_RESDIR) failed", NULL); - return(-1L); - } + /* put the results filename into the environment */ + sprintf(resbuf, "TET_RESFILE=%.*s", MAXPATH, prp->pr_tetxres); + TRACE3(tet_Ttcc, 6, "putenv \"%s\" on system %s", + resbuf, tet_i2a(*prp->pr_sys)); + if (tcc_putenv(*prp->pr_sys, resbuf) < 0) { + prperror(prp, *prp->pr_sys, tet_tcerrno, + "tcc_putenv(TET_RESDIR) failed", NULL); + return(-1L); } /* change to the test case directory */ diff --git a/src/tet3/tcm/ictp.c b/src/tet3/tcm/ictp.c index 61df0130..2051e63b 100644 --- a/src/tet3/tcm/ictp.c +++ b/src/tet3/tcm/ictp.c @@ -161,7 +161,7 @@ static char srcFile[] = __FILE__; /* file name for error reporting */ #ifdef TET_LITE /* -LITE-CUT-LINE- */ char *tet_tmpresfile; static char *tmpresenv; - static char *resenv, *resfile; + static char *resfile; #else /* -START-LITE-CUT- */ TET_IMPORT int tet_iclast = ~(~0 << S_ICBITS) - 2; /* used in auto sync before cleanup */ @@ -799,65 +799,24 @@ static int ismaster() TET_IMPORT void tet_openres(progname) char *progname; { - char *resdir, *p; - char buf[MAXPATH]; - static char resvar[] = "TET_RESFILE"; - char *resname; static char tmpvar[] = "TET_TMPRESFILE"; - char *tmpname; - - /* set results filename from the program name */ - if (progname) { - /* results file is prog.log */ - resname = malloc(strlen(tet_basename(progname)) + 5); - if (!resname) - fatal(errno, "can't allocate resname in tet_openres()", - NULL); - sprintf(resname, "%s.log", tet_basename(progname)); - - /* temporary results file is prog.log.tmp */ - tmpname = malloc(strlen(resname) + 5); - if (!tmpname) - fatal(errno, "can't allocate tmpname in tet_openres()", - NULL); - sprintf(tmpname, "%s.tmp", resname); - } - else { - resname = strdup("tet_xres"); - if (!resname) - fatal(errno, "can't allocate resname in tet_openres()", - NULL); - tmpname = strdup("tet_res.tmp"); - if (!tmpname) - fatal(errno, "can't allocate tmpname in tet_openres()", - NULL); - } - - /* set full path name of execution results file and temp results - file, in a form convenient for placing in the environment */ - if (!(resdir = getenv("TET_RESDIR"))) { - if (GETCWD(buf, sizeof(buf)) == NULL) - fatal(errno, "getcwd() failed", NULL); - resdir = buf; - } + char buf[MAXPATH]; + char *p; - resenv = malloc(strlen(resdir)+sizeof(resvar)+strlen(resname)+5); - if (resenv == NULL) - fatal(errno, "can't allocate resenv in tet_openres()", - (char *) 0); - TRACE2(tet_Tbuf, 6, "allocate resenv = %s", tet_i2x(resenv)); + /* get results filename from the environment */ + resfile = getenv("TET_RESFILE"); + if (!resfile) + fatal(0, "TET_RESFILE not set in the environment", NULL); - tmpresenv = malloc(strlen(resdir)+sizeof(tmpvar)+strlen(tmpname)+5); + tmpresenv = malloc(strlen(tmpvar) + strlen(resfile) + + strlen("=.tmp") + 1); if (tmpresenv == NULL) fatal(errno, "can't allocate tmpresenv in tet_openres()", (char *) 0); TRACE2(tet_Tbuf, 6, "allocate tmpresenv = %s", tet_i2x(tmpresenv)); - (void) sprintf(resenv, "%s=%s/%s", resvar, resdir, resname); - resfile = resenv + sizeof(resvar); - - (void) sprintf(tmpresenv, "%s=%s/%s", tmpvar, resdir, tmpname); + sprintf(tmpresenv, "%s=%s.tmp", tmpvar, resfile); tet_tmpresfile = tmpresenv + sizeof(tmpvar); /* create the leading directories for the results file */ @@ -883,10 +842,6 @@ char *progname; /* override umask (must be writable by set-uid children) */ (void) CHMOD(resfile, MODE666); - /* put pathname in environment to be picked up in exec'ed programs */ - if (tet_putenv(resenv) != 0) - tet_error(0, "tet_putenv() failed when setting TET_RESFILE"); - tet_combined_ok = 1; } |