*/
#ifdef O_BINARY
#define RD_FLAGS O_RDONLY | O_BINARY
-#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC | O_BINARY
#else
-#define RD_FLAGS O_RDONLY
-#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC
+#define RD_FLAGS O_RDONLY
#endif
typedef int (*functest) (const char *filename, const char *result,
int options; /* parser options for the test */
};
-static int update_results = 0;
static int checkTestFile(const char *filename);
#if defined(_WIN32) && !defined(__CYGWIN__)
return(1);
}
-static int compareFiles(const char *r1 /* temp */, const char *r2 /* result */) {
+static int compareFiles(const char *r1, const char *r2) {
int res1, res2;
int fd1, fd2;
char bytes1[4096];
char bytes2[4096];
- if (update_results) {
- fd1 = open(r1, RD_FLAGS);
- if (fd1 < 0)
- return(-1);
- fd2 = open(r2, WR_FLAGS, 0644);
- if (fd2 < 0) {
- close(fd1);
- return(-1);
- }
- do {
- res1 = read(fd1, bytes1, 4096);
- if (res1 <= 0)
- break;
- res2 = write(fd2, bytes1, res1);
- if (res2 <= 0 || res2 != res1)
- break;
- } while (1);
- close(fd2);
- close(fd1);
- return(res1 != 0);
- }
-
fd1 = open(r1, RD_FLAGS);
if (fd1 < 0)
return(-1);
int idx = 0;
struct stat info;
- if (update_results) {
- fd = open(filename, WR_FLAGS, 0644);
- if (fd < 0) {
- fprintf(stderr, "failed to open %s for writing", filename);
- return(-1);
- }
- res = write(fd, mem, size);
- close(fd);
- return(res != size);
- }
-
- if (stat(filename, &info) < 0) {
- fprintf(stderr, "failed to stat %s\n", filename);
+ if (stat(filename, &info) < 0)
return(-1);
- }
- if (info.st_size != size) {
- fprintf(stderr, "file %s is %ld bytes, result is %d bytes\n",
- filename, info.st_size, size);
+ if (info.st_size != size)
return(-1);
- }
fd = open(filename, RD_FLAGS);
- if (fd < 0) {
- fprintf(stderr, "failed to open %s for reading", filename);
+ if (fd < 0)
return(-1);
- }
while (idx < size) {
res = read(fd, bytes, 4096);
if (res <= 0)
idx += res;
}
close(fd);
- if (idx != size) {
- fprintf(stderr,"Compare error index %d, size %d\n", idx, size);
- }
return(idx != size);
}
ctxt = xmlCreatePushParserCtxt(NULL, NULL, base + cur, 4, filename);
xmlCtxtUseOptions(ctxt, options);
cur += 4;
- do {
+ while (cur < size) {
if (cur + 1024 >= size) {
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
xmlParseChunk(ctxt, base + cur, 1024, 0);
cur += 1024;
}
- } while (cur < size);
+ }
doc = ctxt->myDoc;
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
if ((base == NULL) || (res != 0)) {
if (base != NULL)
xmlFree((char *)base);
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ fprintf(stderr, "Result for %s failed\n", filename);
return(-1);
}
xmlFree((char *)base);
if ((base == NULL) || (res != 0)) {
if (base != NULL)
xmlFree((char *)base);
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ fprintf(stderr, "Result for %s failed\n", filename);
return(-1);
}
xmlFree((char *)base);
xmlDocDumpMemory(doc, (xmlChar **) &base, &size);
}
res = compareFileMem(result, base, size);
- if (res != 0) {
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
- return(-1);
- }
}
if (doc != NULL) {
if (base != NULL)
xmlFree((char *)base);
xmlFreeDoc(doc);
}
+ if (res != 0) {
+ fprintf(stderr, "Result for %s failed\n", filename);
+ return(-1);
+ }
if (err != NULL) {
res = compareFileMem(err, testErrors, testErrorsSize);
if (res != 0) {
free(temp);
}
if (ret) {
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ fprintf(stderr, "Result for %s failed\n", filename);
return(-1);
}
}
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ fprintf(stderr, "Result for %s failed\n", filename);
}
}
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ fprintf(stderr, "Result for %s failed\n", filename);
res = 1;
}
}
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ fprintf(stderr, "Result for %s failed\n", filename);
res = 1;
}
}
result[499] = 0;
memcpy(xml + len, ".xml", 5);
- if (!checkTestFile(xml) && !update_results) {
+ if (!checkTestFile(xml)) {
fprintf(stderr, "Missing xml file %s\n", xml);
return(-1);
}
- if (!checkTestFile(result) && !update_results) {
+ if (!checkTestFile(result)) {
fprintf(stderr, "Missing result file %s\n", result);
return(-1);
}
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ fprintf(stderr, "Result for %s failed\n", filename);
ret = 1;
}
if (temp != NULL) {
prefix[len] = 0;
snprintf(buf, 499, "result/c14n/%s/%s", subdir,prefix);
- if (!checkTestFile(buf) && !update_results) {
+ if (!checkTestFile(buf)) {
fprintf(stderr, "Missing result file %s", buf);
return(-1);
}
} else {
error = NULL;
}
- if ((result) &&(!checkTestFile(result)) && !update_results) {
+ if ((result) &&(!checkTestFile(result))) {
fprintf(stderr, "Missing result file %s\n", result);
- } else if ((error) &&(!checkTestFile(error)) && !update_results) {
+ } else if ((error) &&(!checkTestFile(error))) {
fprintf(stderr, "Missing error file %s\n", error);
} else {
mem = xmlMemUsed();
for (a = 1; a < argc;a++) {
if (!strcmp(argv[a], "-v"))
verbose = 1;
- else if (!strcmp(argv[a], "-u"))
- update_results = 1;
else if (!strcmp(argv[a], "-quiet"))
tests_quiet = 1;
else {