{
struct archive_entry *ae;
struct archive *a;
-#if !defined(_WIN32) || defined(__CYGWIN__)
- FILE * fp;
- int fd;
- fpos_t pos;
-#endif
/*
* If we have "bunzip2 -q", try using that.
return;
}
-#if !defined(_WIN32) || defined(__CYGWIN__)
- /* bunzip2 will write to stderr, redirect it to a file */
- fflush(stderr);
- fgetpos(stderr, &pos);
- assert((fd = dup(fileno(stderr))) != -1);
- fp = freopen("stderr1", "w", stderr);
-#endif
-
assert((a = archive_read_new()) != NULL);
assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
assertEqualIntA(a, ARCHIVE_OK,
assertA(archive_read_next_header(a, &ae) < (ARCHIVE_WARN));
assertEqualIntA(a, ARCHIVE_WARN, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
- /* restore stderr and verify results */
- if (fp != NULL) {
- fflush(stderr);
- dup2(fd, fileno(stderr));
- clearerr(stderr);
- (void)fsetpos(stderr, &pos);
- }
- close(fd);
- assertTextFileContents("bunzip2: (stdin) is not a bzip2 file.\n", "stderr1");
-#endif
}