void VertexProgramTest::runOne(MultiTestResult &r, Window &w) { // to test a single sub-test, set the name here: const char *single = getenv("PIGLIT_TEST"); (void) w; setup(); for (int i = 0; Programs[i].name; i++) { if (!single || strcmp(single, Programs[i].name) == 0) { if (!testProgram(Programs[i])) { r.numFailed++; } else { r.numPassed++; } } } testBadProgram(r); r.pass = (r.numFailed == 0); }
void beginProgram (int argumentCount, char **argumentVector) { #if defined(GRUB_RUNTIME) #else /* at exit */ atexit(endProgram); #endif /* at exit */ initializeSystemObject(); prepareLocale(); if ((programPath = getProgramPath())) { registerProgramMemory("program-path", &programPath); } else { programPath = argumentVector[0]; } if (!isExplicitPath(programPath)) { char *path = findProgram(programPath); if (!path) path = testProgram(".", programPath); if (path) programPath = path; } if (isExplicitPath(programPath)) { #if defined(HAVE_REALPATH) && defined(PATH_MAX) if (!isAbsolutePath(programPath)) { char buffer[PATH_MAX]; char *path = realpath(programPath, buffer); if (path) { char *realPath = strdup(path); if (realPath) { programPath = realPath; } else { logMallocError(); } } else { logSystemError("realpath"); } } #endif /* defined(HAVE_REALPATH) && defined(PATH_MAX) */ if (!isAbsolutePath(programPath)) { char *directory; if ((directory = getWorkingDirectory())) { char *path; if ((path = makePath(directory, programPath))) programPath = path; free(directory); } } } programName = locatePathName(programPath); pushLogPrefix(programName); }
static char * findProgram (const char *name) { char *path = NULL; const char *string; if ((string = getenv("PATH"))) { int count; char **array; if ((array = splitString(string, ':', &count))) { int index; for (index=0; index<count; ++index) { const char *directory = array[index]; if (!*directory) directory = "."; if ((path = testProgram(directory, name))) break; } deallocateStrings(array); } } return path; }