static void
-basic_tar(const char *target, const char *pack_options, const char *unpack_options)
+basic_tar(const char *target, const char *pack_options,
+ const char *unpack_options, const char *flist)
{
struct stat st, st2;
#ifndef _WIN32
assertEqualInt(0, mkdir(target, 0775));
/* Use the tar program to create an archive. */
- r = systemf("%s cf - %s `cat filelist` >%s/archive 2>%s/pack.err", testprog, pack_options, target, target);
+#ifndef _WIN32
+ r = systemf("%s cf - %s `cat %s` >%s/archive 2>%s/pack.err", testprog, pack_options, flist, target, target);
+#else
+ r = systemf("%s cf - %s %s >%s/archive 2>%s/pack.err", testprog, pack_options, flist, target, target);
+#endif
failure("Error invoking %s cf -", testprog, pack_options);
assertEqualInt(r, 0);
int fd;
int filelist;
int oldumask;
+ const char *flist;
oldumask = umask(0);
/* All done. */
close(filelist);
+#ifndef _WIN32
+ flist = "filelist";
+#else
+ flist = "file linkfile symlink dir";
+#endif
/* Archive/dearchive with a variety of options. */
- basic_tar("copy", "", "");
+ basic_tar("copy", "", "", flist);
/* tar doesn't handle cpio symlinks correctly */
/* basic_tar("copy_odc", "--format=odc", ""); */
- basic_tar("copy_ustar", "--format=ustar", "");
+ basic_tar("copy_ustar", "--format=ustar", "", flist);
umask(oldumask);
}