diff --git a/src/System.Formats.Tar.TestData/GenerateTarFiles.sh b/src/System.Formats.Tar.TestData/GenerateTarFiles.sh
new file mode 100755
index 0000000000..2870cab019
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/GenerateTarFiles.sh
@@ -0,0 +1,472 @@
+#/bin/bash
+
+# Script that generates tar files for the contents of all the folders located inside the folder
+# runtime-assets/src/System.Formats.Tar.TestData/TarTestData/unarchived/
+# and saves them in additional new folders under 'TarTestData', one folder for each compression method.
+# The user executing this script must be part of the sudo group.
+
+# The tests should verify these preselected permission and ownership values
+TarUser="dotnet"
+TarGroup="devdiv"
+TarUserId=7913
+TarGroupId=3579
+
+# These DevMajor and DevMinor numbers have no meaning, but those are the
+# numbers that the tests should look for when reading device files.
+CharDevMajor=49
+CharDevMinor=86
+BlockDevMajor=71
+BlockDevMinor=53
+# The Mode for all filesystem entries is set to 744 (rwx,r,r) inside the method ChangeUnarchivedMode
+
+# pax_gea is a special case for the pax format that includes global extended attributes
+FormatsArray=( "v7" "ustar" "pax" "pax_gea" "oldgnu" "gnu" )
+
+
+GEAKey="globexthdr.MyGlobalExtendedAttribute"
+GEAValue="hello"
+GEAPAXOptions="--pax-option=$GEAKey=$GEAValue"
+
+### FUNCTIONS ###
+
+function Echo()
+{
+ Color=$1
+ Message=$2
+ OriginalColor="\e[0m"
+
+ echo -e "$Color$Message$OriginalColor"
+}
+
+function EchoError()
+{
+ red="\e[31m"
+ Echo $red "$1"
+}
+
+function EchoWarning()
+{
+ yellow="\e[33m"
+ Echo $yellow "$1"
+}
+
+function EchoSuccess()
+{
+ green="\e[32m"
+ Echo $green "$1"
+}
+
+function EchoInfo()
+{
+ cyan="\e[36m"
+ Echo $cyan "$1"
+}
+
+function CheckLastErrorOrExit()
+{
+ message=$1
+
+ if [ $? -ne 0 ]; then
+ EchoError "Failure: $message"
+ EchoError "Script failed to finish."
+ exit 1
+ else
+ EchoSuccess "Success: $message"
+ fi
+}
+
+function ConfirmDirExists()
+{
+ Dir=$1
+
+ if [ ! -d $Dir ]; then
+ EchoError "Directory did not exist: $Dir"
+ exit 1
+ fi
+}
+
+function DeleteAndRecreateDir()
+{
+ Dir=$1
+
+ if [ -d $Dir ]; then
+ EchoWarning "Deleting folder: $Dir"
+ sudo rm -r $Dir
+ fi
+
+ EchoWarning "Creating folder: $Dir"
+ mkdir $Dir
+
+ ConfirmDirExists $Dir
+}
+
+function ExecuteTar()
+{
+ FullPathFolderToArchive=$1
+ Arguments=$2
+ FileName=$3
+ Format=$4
+ WithGEA=$5
+
+ EchoSuccess "----------------------------------------------"
+
+ GEAArgument=""
+ FormatArgument="$Format"
+ if [ $Format = "pax_gea" ] && [ $WithGEA = 1 ]; then
+ EchoWarning "Creating extra pax file with global a extended attributes entry"
+ FormatArgument="pax"
+ GEAArgument="$GEAPAXOptions"
+ fi
+
+ # IMPORTANT: This will ensure we archive entries that have relative paths to this folder
+ EchoInfo "cd $FullPathFolderToArchive"
+ cd $FullPathFolderToArchive
+
+ TarCommand="tar $Arguments $FileName * --format=$FormatArgument $GEAArgument"
+ EchoInfo "$TarCommand"
+
+ # Execute the command as the user that owns the files
+ # to archive, otherwise tar fails to pack them
+ sudo $TarCommand
+
+ if [ $? -ne 0 ]; then
+ EchoError "Tar command failed!"
+ if [ -f $FileName ]; then
+ EchoError "Deleting malformed file: $FileName"
+ sudo rm $FileName
+ fi
+ else
+ EchoSuccess "Tar archive created successfully: $FileName"
+ fi
+
+ EchoSuccess "----------------------------------------------"
+}
+
+function GenerateArchive()
+{
+ DirsRoot=$1
+ TargetDir=$2
+ Arguments=$3
+ Extension=$4
+
+ UnarchivedDir="$DirsRoot/unarchived"
+ FoldersToArchiveArray=($(ls $UnarchivedDir))
+
+ for Format in "${FormatsArray[@]}"; do
+
+ OutputDir="$TargetDir/$Format"
+ DeleteAndRecreateDir $OutputDir
+
+ for FolderToArchive in "${FoldersToArchiveArray[@]}"; do
+
+ FullPathFolderToArchive="$UnarchivedDir/$FolderToArchive/"
+ FileName="$OutputDir/$FolderToArchive$Extension"
+
+ WithGEA=0
+ if [ $Format = "pax_gea" ]; then
+ WithGEA=1
+ fi
+
+ ExecuteTar "$FullPathFolderToArchive" "$Arguments" "$FileName" "$Format" $WithGEA
+
+ done
+ done
+
+ # Tar was executed elevated, need to ensure the
+ # generated archives are readable by current user
+ ResetOwnership $TargetDir
+}
+
+function GenerateTarArchives()
+{
+ DirsRoot=$1
+ TargetDir=$2
+ CompressionMethod=$3
+
+ if [ $CompressionMethod = "tar" ]; then
+ GenerateArchive $DirsRoot $TargetDir "cvf" ".tar"
+
+ elif [ $CompressionMethod = "targz" ]; then
+ GenerateArchive $DirsRoot $TargetDir "cvzf" ".tar.gz"
+
+ else
+ EchoError "Unsupported compression method: $CompressionMethod"
+ exit 1
+ fi
+}
+
+function GenerateCompressionMethodDir()
+{
+ DirsRoot=$1
+ CompressionMethod=$2
+
+ TargetDir="$DirsRoot/$CompressionMethod"
+ DeleteAndRecreateDir $TargetDir
+
+ GenerateTarArchives "$DirsRoot" "$TargetDir" "$CompressionMethod"
+}
+
+function Generate()
+{
+ DirsRoot=$1
+
+ CompressionMethodsArray=( "tar" "targz" )
+
+ for CompressionMethod in "${CompressionMethodsArray[@]}"; do
+ GenerateCompressionMethodDir "$DirsRoot" "$CompressionMethod"
+ done
+}
+
+function ConfirmUserAndGroupExist()
+{
+ EchoWarning "Checking if user '$TarUser' and group '$TarGroup' exist..."
+
+ if [ $(getent group $TarGroup) ]; then
+ EchoSuccess "Group '$TarGroup' exists. No action taken."
+
+ else
+ EchoWarning "Group '$TarGroup' does not exist. Adding it."
+ sudo groupadd $TarGroup
+ EchoWarning "Changing id of '$TarGroup' to $TarGroupId"
+ sudo groupmod -g $TarGroupId $TarGroup
+ fi
+
+ if id $TarUser &>/dev/null; then
+ EchoSuccess "User '$TarUser' exists. No action taken."
+
+ else
+ EchoWarning "User '$TarUser' does not exist. Adding it."
+ sudo useradd $TarUser
+ EchoWarning "Changing id of '$TarUser' to $TarUserId"
+ sudo usermod -u $TarUserId $TarUser
+ EchoWarning "Adding new '$TarUser' user to new '$TarGroup' group."
+ sudo usermod -a -G $TarGroup $TarUser
+ EchoWarning "Setting password for new '$TarUser' user."
+ sudo passwd $TarUser
+ fi
+}
+
+function ResetOwnership()
+{
+ Folder=$1
+
+ CurrentUser=$(id -u)
+ CurrentGroup=$(id -g)
+
+ sudo chown -R $CurrentUser:$CurrentGroup "$Folder"
+ CheckLastErrorOrExit "Chown $CurrentUser:$CurrentGroup $Folder"
+}
+
+function ChangeUnarchivedOwnership()
+{
+ DirsRoot=$1
+
+ CurrentUser=$(id -u)
+ CurrentGroup=$(id -g)
+ UnarchivedDir=$DirsRoot/unarchived
+ UnarchivedDirContents=$UnarchivedDir/*
+ UnarchivedChildrenArray=($(ls $UnarchivedDir))
+
+ # First, we recursively change ownership of all files and folders
+ EchoWarning "Changing ownership of contents of 'unarchived' folder to '$TarUser:$TarGroup'."
+ sudo chown -R $TarUser:$TarGroup $UnarchivedDirContents
+ CheckLastErrorOrExit "Chown $TarUser:$TarGroup $UnarchivedDirContents"
+
+ # Second, we revert the ownership of the parent folders (no recursion).
+ # This is so we can later 'cd' into them. This is a requirement for the 'tar' command
+ # so that it archives entries relative to that folder.
+ for UnarchivedChildDir in "${UnarchivedChildrenArray[@]}"; do
+ EchoWarning "Preserving ownership of child folder: $UnarchivedChildDir"
+ sudo chown $CurrentUser:$CurrentGroup $UnarchivedDir/$UnarchivedChildDir
+ CheckLastErrorOrExit "Chown $CurrentUser:$CurrentGroup $UnarchivedChildDir"
+ done
+}
+
+function ResetUnarchivedOwnership()
+{
+ DirsRoot=$1
+
+ ResetOwnership "$DirsRoot/unarchived"
+}
+
+function ChangeUnarchivedMode()
+{
+ DirsRoot=$1
+
+ EchoWarning "Setting 744 (rwx,r,r) permissions to contents of 'unarchived' folder."
+
+ UnarchivedDirContents=$DirsRoot/unarchived/*
+
+ # 744
+ sudo chmod -R a=r $UnarchivedDirContents
+ CheckLastErrorOrExit "Chmod a=r $UnarchivedDirContents"
+
+ sudo chmod -R u+wx $UnarchivedDirContents
+ CheckLastErrorOrExit "Chmod u+wx $UnarchivedDirContents"
+
+ sudo chmod -R g-wx $UnarchivedDirContents
+ CheckLastErrorOrExit "Chmod g-wx $UnarchivedDirContents"
+
+ sudo chmod -R o-wx $UnarchivedDirContents
+ CheckLastErrorOrExit "Chmod o-wx $UnarchivedDirContents"
+}
+
+# Character device, block device and fifo file (named pipe).
+function CreateSpecialFiles()
+{
+ DirsRoot=$1
+
+ DevicesDir=$DirsRoot/unarchived/specialfiles
+ CharacterDevice=$DevicesDir/chardev
+ BlockDevice=$DevicesDir/blockdev
+ FifoFile=$DevicesDir/fifofile
+
+ currentUser=$(id -u)
+ currentGroup=$(id -g)
+
+ if [ -d $DevicesDir ]; then
+ EchoSuccess "Devices folder exists. No action taken."
+ else
+ # Empty directories can't get added to git
+ EchoWarning "Devices folder does not exist. Creating it: $DevicesDir"
+ mkdir $DevicesDir
+ fi
+
+ if [ -c $CharacterDevice ]; then
+ EchoSuccess "Character device exists. No action taken."
+ else
+ EchoWarning "Character device does not exist. Creating it: $CharacterDevice"
+ sudo mknod $CharacterDevice c $CharDevMajor $CharDevMinor
+ CheckLastErrorOrExit "Creating character device $CharacterDevice"
+ sudo chown $currentUser:$currentGroup $CharacterDevice
+ CheckLastErrorOrExit "chown $currentUser:$currentGroup $CharacterDevice"
+ fi
+
+ if [ -b $BlockDevice ]; then
+ EchoSuccess "Block device exists. No action taken."
+ else
+ EchoWarning "Block device does not exist. Creating it: $BlockDevice"
+ sudo mknod $BlockDevice b $BlockDevMajor $BlockDevMinor
+ CheckLastErrorOrExit "Creating block device $BlockDevice"
+ sudo chown $currentUser:$currentGroup $BlockDevice
+ CheckLastErrorOrExit "chown $currentUser:$currentGroup $BlockDevice"
+ fi
+
+ if [ -p $FifoFile ]; then
+ EchoSuccess "Fifo file exists. No action taken."
+ else
+ EchoWarning "Fifo file does not exist. Creating it: $FifoFile"
+ sudo mknod $FifoFile p
+ CheckLastErrorOrExit "Creating fifo file $FifoFile"
+ sudo chown $currentUser:$currentGroup $FifoFile
+ CheckLastErrorOrExit "chown $currentUser:$currentGroup $FifoFile"
+ fi
+}
+
+function CreateLongDirAndLongFile()
+{
+ DirsRoot=$1
+
+ TestName=$2
+ DirName=$3
+ FileName=$4
+ TestDir="$DirsRoot/unarchived/$TestName"
+
+ if [ ! -d $TestDir ]; then
+ EchoInfo "Restoring $TestName root directory"
+ sudo mkdir $TestDir
+ CheckLastErrorOrExit "mkdir $TestDir"
+ fi
+
+ # The long directory is optional
+ LongDirPath="$TestDir"
+ if [ ! -z $DirName ]; then
+ LongDirPath="$TestDir/$DirName"
+ if [ ! -d $LongDirPath ]; then
+ EchoInfo "Restoring $TestName directory that VS does not support"
+ sudo mkdir $LongDirPath
+ CheckLastErrorOrExit "mkdir $LongDirPath"
+ fi
+ fi
+
+ LongFilePath="$LongDirPath/$FileName"
+
+ if [ ! -f $LongFilePath ]; then
+ EchoInfo "Restoring $TestName file that VS does not support"
+ sudo sh -c "echo \"Hello $TestName\" >> $LongFilePath"
+ CheckLastErrorOrExit "echo 'Hello $TestName' > $LongFilePath"
+ fi
+}
+
+# These files cannot be packed correctly by nuget, or have too long paths that VS cannot render them and fails to load the test project.
+function ResetUnsupportedFiles()
+{
+ DirsRoot=$1
+
+ # Creates a file at the test root folder with a name that is between 100 and 255 bytes
+ CreateLongDirAndLongFile $DirsRoot "longfilename_over100_under255" "" "000000000011111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233333333334444444444.txt"
+
+ # Creates a directory at the test root folder with a name that is 255 bytes in length,
+ # and a file inside of that folder, with a name that is 255 bytes in length
+ CreateLongDirAndLongFile $DirsRoot "longpath_over255" "000000000011111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223333333333444444444455555" "00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999000000000011111111112222222222333333333344444444445.txt"
+
+ # Creates a directory at the test root folder with a name that is 98 bytes in length,
+ # and a file inside of that folder, with a name that is 99 bytes in length
+ CreateLongDirAndLongFile $DirsRoot "longpath_splitable_under255" "00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999" "00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999.txt"
+
+ # Creates a directory at the test root folder with a name that is 255 bytes in length,
+ # then a file inside of that folder, with a name that is 255 bytes in length,
+ # and then a symbolic link inside of that folder, with the name 'link.txt'
+ CreateLongDirAndLongFile $DirsRoot "file_longsymlink" "000000000011111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223333333333444444444455555" "00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999000000000011111111112222222222333333333344444444445.txt"
+ SymlinkPath="$DirsRoot/unarchived/file_longsymlink/link.txt"
+ TargetPath="000000000011111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223333333333444444444455555/00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999000000000011111111112222222222333333333344444444445.txt"
+ if [ ! -L $SymlinkPath ]; then
+ EchoInfo "Restoring $TestName that nupkg does not support"
+ sudo ln -s $TargetPath $SymlinkPath
+ CheckLastErrorOrExit "ln -s $TargetPath $SymlinkPath"
+ fi
+}
+
+# Keep the root folders, delete the unsupported contents
+function RemoveUnsupportedFiles()
+{
+ DirsRoot=$1
+
+ TestDirs=( "file_longsymlink" "longfilename_over100_under255" "longpath_over255" "longpath_splitable_under255" "specialfiles" )
+
+ EchoInfo "Deleting unsupported folders..."
+ for FolderName in "${TestDirs[@]}"; do
+ TestDir="$DirsRoot/unarchived/$FolderName"
+ if [ -d $TestDir ]; then
+ EchoWarning "Deleting unsupported root folder: $TestDir"
+ sudo rm -r $TestDir
+ CheckLastErrorOrExit "rm -r $TestDir"
+ else
+ EchoError "Folder was not found: $TestDir"
+ fi
+ done
+}
+
+function BeginGeneration()
+{
+ DirsRoot=$1
+ ConfirmUserAndGroupExist
+ ConfirmDirExists $DirsRoot
+ ResetUnsupportedFiles $DirsRoot
+ ChangeUnarchivedMode $DirsRoot
+ ChangeUnarchivedOwnership $DirsRoot
+ CreateSpecialFiles $DirsRoot
+ Generate $DirsRoot
+ ResetUnarchivedOwnership $DirsRoot
+ RemoveUnsupportedFiles $DirsRoot
+ EchoSuccess "Script finished successfully!"
+}
+
+### SCRIPT EXECUTION ###
+
+# IMPORTANT: Do not move the script to another location.
+# It assumes it's located inside the 'TarTestData' folder, and on the same level as the 'unarchived' folder.
+ScriptPath=$(readlink -f $0)
+DirsRoot=$(dirname $ScriptPath)
+
+BeginGeneration $DirsRoot
diff --git a/src/System.Formats.Tar.TestData/README.md b/src/System.Formats.Tar.TestData/README.md
new file mode 100644
index 0000000000..42271e765f
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/README.md
@@ -0,0 +1,91 @@
+# System.Formats.Tar.TestData
+
+This package contains test assets for the `System.Formats.Tar` assembly.
+
+## Script
+
+The files can be autogenerated with the `GenerateTarFiles.sh` script. This script needs to be executed in a Linux machine (preferably Ubuntu, since that's where it was tested). The OS should have the Unix `tar` tool available.
+
+The user executing this script must be part of the sudo group (but should _not_ execute the script with `sudo`).
+
+The script is executed without arguments. Make sure to mark the script as executable before executing it:
+
+```bash
+$ chmod +x GenerateTarFiles.sh
+$ ./GenerateTarFiles.sh
+```
+
+## Output
+
+The script generates uncompressed (`*.tar`) and compressed (`*.tar.gz`) files in all the supported formats: V7, Ustar, PAX and GNU.
+
+In the case of GNU, there are two variants supported by the Unix `tar` tool. We generate both, inside the `gnu` and `old_gnu` folders.
+
+In the case of PAX, the Unix `tar` tool can generate archives without and with a Global Extended Attributes entry at the beginning. For that, we generate files inside the `pax` and `pax_gea` folders, respectively.
+
+## Excluded unarchived files
+
+The final `*.nupkg` also includes the `unarchived` folder, which contains all the files that are expected to be found inside the `*.tar` and `*.tar.gz` files. But there are some file categories that are excluded because either NuGet or Visual Studio do not support them:
+
+- Files and directories with very long paths.
+- Hard links. They get packged by `*.nupkg` as regular files (this might be expected, since there is no way to differentiate between regular files or hard links).
+- Special files: Block device, character device, fifo.
+
+These files are generated by the script on the fly, archived with the `tar` tool, and then deleted at the end of the script execution to prevent getting them packed.
+
+## Expected metadata
+
+The script makes sure all the unarchived files are marked with the following metadata information before archiving them:
+
+- `uname`: `dotnet`
+- `gname`: `devdiv`
+- `uid`: `7913`
+- `gid`: `3579`
+- `mode`: `744` - This translates to u+rwx, g+r, o+r
+
+Device files get the following numbers:
+
+- Character devices:
+ - `devmajor`: `49`
+ - `devminor`: `86`
+- Block devices:
+ - `devmajor`: `71`
+ - `devminor`: `53`
+
+PAX files with a Global Extended Attribute entry at the beginning of the archive, get the following custom attribute added:
+
+`key`: `globexthdr.MyGlobalExtendedAttribute`
+`value`: `hello`
+
+## Consumption in dotnet/runtime
+
+When running tests, the "current directory" is the location where all these test assets can be found.
+
+To access an unarchived asset file:
+
+```cs
+string path = Path.Join(Directory.GetCurrentDirectory(), "unarchived", "file_hardlink", "file.txt");
+```
+
+To access a tar file:
+
+```cs
+string path = Path.Join(Directory.GetCurrentDirectory(), "tar", "pax_gea", "file_hardlink.tar");
+```
+
+To access a `tar.gz` file:
+
+```cs
+string path = Path.Join(Directory.GetCurrentDirectory(), "targz", "pax_gea", "file_hardlink.tar.gz");
+```
+
+## Test cases
+
+- `file`: Contains a regular file named `file.txt`
+- `file_hardlink`: Contains a regular file named `file.txt` and a hard link named `hardlink.txt` whose target is the `file.txt` inode.
+- `file_symlink`: Contains a regular file named `file.txt` and a symboliclink named `link.txt` whose target is `file.txt`.
+- `folder_file`: Contains a directory named `folder`, which contains a regular file named `file.txt`.
+- `folder_file_utf8`: Contains a directory named `földër` which contains a regular file named `áöñ.txt`.
+- `folder_subfolder_file`: Contains a directory named `parent`, which contains a directory named `child`, which contains a regular file named `file.txt`.
+- `foldersymlink_folder_subfolder_file`: Contains at the root a directory named `parent`, which contains a directory named `child`, which contains a regular file named `file.txt`, and at the root, it also contains a symbolic link named `childlink` that points to the `child` directory.
+- `many_small_files`: Contains 10 directories, named from `0` to `9`, and each directory contains 10 regular files, each file named `0.txt` to `9.txt`.
diff --git a/src/System.Formats.Tar.TestData/System.Formats.Tar.TestData.csproj b/src/System.Formats.Tar.TestData/System.Formats.Tar.TestData.csproj
new file mode 100644
index 0000000000..1fef94fc9b
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/System.Formats.Tar.TestData.csproj
@@ -0,0 +1,9 @@
+
+
+ $(NoWarn);NU5123
+
+
+
+
+
+
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/file.tar b/src/System.Formats.Tar.TestData/tar/gnu/file.tar
new file mode 100644
index 0000000000..31207a655e
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/file_hardlink.tar b/src/System.Formats.Tar.TestData/tar/gnu/file_hardlink.tar
new file mode 100644
index 0000000000..6fb31515ad
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/file_hardlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/file_longsymlink.tar b/src/System.Formats.Tar.TestData/tar/gnu/file_longsymlink.tar
new file mode 100644
index 0000000000..a2cd0775d4
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/file_longsymlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/file_symlink.tar b/src/System.Formats.Tar.TestData/tar/gnu/file_symlink.tar
new file mode 100644
index 0000000000..ba8dd04271
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/file_symlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/folder_file.tar b/src/System.Formats.Tar.TestData/tar/gnu/folder_file.tar
new file mode 100644
index 0000000000..2fed5918ab
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/folder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/folder_file_utf8.tar b/src/System.Formats.Tar.TestData/tar/gnu/folder_file_utf8.tar
new file mode 100644
index 0000000000..d756381802
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/folder_file_utf8.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/gnu/folder_subfolder_file.tar
new file mode 100644
index 0000000000..136e7dc802
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/foldersymlink_folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/gnu/foldersymlink_folder_subfolder_file.tar
new file mode 100644
index 0000000000..a98cf16934
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/foldersymlink_folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/longfilename_over100_under255.tar b/src/System.Formats.Tar.TestData/tar/gnu/longfilename_over100_under255.tar
new file mode 100644
index 0000000000..d1cbcfb953
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/longfilename_over100_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/longpath_over255.tar b/src/System.Formats.Tar.TestData/tar/gnu/longpath_over255.tar
new file mode 100644
index 0000000000..cf49750e52
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/longpath_over255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/longpath_splitable_under255.tar b/src/System.Formats.Tar.TestData/tar/gnu/longpath_splitable_under255.tar
new file mode 100644
index 0000000000..149e7b7111
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/longpath_splitable_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/many_small_files.tar b/src/System.Formats.Tar.TestData/tar/gnu/many_small_files.tar
new file mode 100644
index 0000000000..6b1bbd5f18
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/many_small_files.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/gnu/specialfiles.tar b/src/System.Formats.Tar.TestData/tar/gnu/specialfiles.tar
new file mode 100644
index 0000000000..a022f7e46b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/gnu/specialfiles.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/file.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/file.tar
new file mode 100644
index 0000000000..31207a655e
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/file_hardlink.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/file_hardlink.tar
new file mode 100644
index 0000000000..6fb31515ad
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/file_hardlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/file_longsymlink.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/file_longsymlink.tar
new file mode 100644
index 0000000000..38c19c513c
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/file_longsymlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/file_symlink.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/file_symlink.tar
new file mode 100644
index 0000000000..ba8dd04271
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/file_symlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/folder_file.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/folder_file.tar
new file mode 100644
index 0000000000..2fed5918ab
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/folder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/folder_file_utf8.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/folder_file_utf8.tar
new file mode 100644
index 0000000000..d756381802
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/folder_file_utf8.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/folder_subfolder_file.tar
new file mode 100644
index 0000000000..136e7dc802
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/foldersymlink_folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/foldersymlink_folder_subfolder_file.tar
new file mode 100644
index 0000000000..a98cf16934
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/foldersymlink_folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/longfilename_over100_under255.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/longfilename_over100_under255.tar
new file mode 100644
index 0000000000..3b36ad0ae1
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/longfilename_over100_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/longpath_over255.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/longpath_over255.tar
new file mode 100644
index 0000000000..b6d1c5788b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/longpath_over255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/longpath_splitable_under255.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/longpath_splitable_under255.tar
new file mode 100644
index 0000000000..5d32846548
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/longpath_splitable_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/many_small_files.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/many_small_files.tar
new file mode 100644
index 0000000000..6b1bbd5f18
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/many_small_files.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/oldgnu/specialfiles.tar b/src/System.Formats.Tar.TestData/tar/oldgnu/specialfiles.tar
new file mode 100644
index 0000000000..a022f7e46b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/oldgnu/specialfiles.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/file.tar b/src/System.Formats.Tar.TestData/tar/pax/file.tar
new file mode 100644
index 0000000000..7f5e39d398
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/file_hardlink.tar b/src/System.Formats.Tar.TestData/tar/pax/file_hardlink.tar
new file mode 100644
index 0000000000..154a5a0e22
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/file_hardlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/file_longsymlink.tar b/src/System.Formats.Tar.TestData/tar/pax/file_longsymlink.tar
new file mode 100644
index 0000000000..1c87e713a4
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/file_longsymlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/file_symlink.tar b/src/System.Formats.Tar.TestData/tar/pax/file_symlink.tar
new file mode 100644
index 0000000000..d8d68b6d1d
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/file_symlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/folder_file.tar b/src/System.Formats.Tar.TestData/tar/pax/folder_file.tar
new file mode 100644
index 0000000000..ce87d15e0e
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/folder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/folder_file_utf8.tar b/src/System.Formats.Tar.TestData/tar/pax/folder_file_utf8.tar
new file mode 100644
index 0000000000..7ea27bcdff
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/folder_file_utf8.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/pax/folder_subfolder_file.tar
new file mode 100644
index 0000000000..d63996dba8
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/foldersymlink_folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/pax/foldersymlink_folder_subfolder_file.tar
new file mode 100644
index 0000000000..d798fa8ff2
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/foldersymlink_folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/longfilename_over100_under255.tar b/src/System.Formats.Tar.TestData/tar/pax/longfilename_over100_under255.tar
new file mode 100644
index 0000000000..37329165d2
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/longfilename_over100_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/longpath_over255.tar b/src/System.Formats.Tar.TestData/tar/pax/longpath_over255.tar
new file mode 100644
index 0000000000..be6f105cb5
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/longpath_over255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/longpath_splitable_under255.tar b/src/System.Formats.Tar.TestData/tar/pax/longpath_splitable_under255.tar
new file mode 100644
index 0000000000..3a14ec9bff
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/longpath_splitable_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/many_small_files.tar b/src/System.Formats.Tar.TestData/tar/pax/many_small_files.tar
new file mode 100644
index 0000000000..17ea62b515
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/many_small_files.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax/specialfiles.tar b/src/System.Formats.Tar.TestData/tar/pax/specialfiles.tar
new file mode 100644
index 0000000000..6b7364bdb6
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax/specialfiles.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/file.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/file.tar
new file mode 100644
index 0000000000..5408050acc
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/file_hardlink.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/file_hardlink.tar
new file mode 100644
index 0000000000..fa829d51da
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/file_hardlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/file_longsymlink.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/file_longsymlink.tar
new file mode 100644
index 0000000000..50c2e7db88
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/file_longsymlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/file_symlink.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/file_symlink.tar
new file mode 100644
index 0000000000..4d56898ad8
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/file_symlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/folder_file.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/folder_file.tar
new file mode 100644
index 0000000000..5dca6ff417
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/folder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/folder_file_utf8.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/folder_file_utf8.tar
new file mode 100644
index 0000000000..3f7523a2fa
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/folder_file_utf8.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/folder_subfolder_file.tar
new file mode 100644
index 0000000000..d5bf78b1e4
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/foldersymlink_folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/foldersymlink_folder_subfolder_file.tar
new file mode 100644
index 0000000000..074e7c83ae
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/foldersymlink_folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/longfilename_over100_under255.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/longfilename_over100_under255.tar
new file mode 100644
index 0000000000..fe6da05033
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/longfilename_over100_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/longpath_over255.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/longpath_over255.tar
new file mode 100644
index 0000000000..3c4588c66e
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/longpath_over255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/longpath_splitable_under255.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/longpath_splitable_under255.tar
new file mode 100644
index 0000000000..efd42a1848
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/longpath_splitable_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/many_small_files.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/many_small_files.tar
new file mode 100644
index 0000000000..7612e14cb8
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/many_small_files.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/pax_gea/specialfiles.tar b/src/System.Formats.Tar.TestData/tar/pax_gea/specialfiles.tar
new file mode 100644
index 0000000000..36867376ec
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/pax_gea/specialfiles.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/file.tar b/src/System.Formats.Tar.TestData/tar/ustar/file.tar
new file mode 100644
index 0000000000..3651ef2e5a
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/file_hardlink.tar b/src/System.Formats.Tar.TestData/tar/ustar/file_hardlink.tar
new file mode 100644
index 0000000000..480c4ddabe
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/file_hardlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/file_symlink.tar b/src/System.Formats.Tar.TestData/tar/ustar/file_symlink.tar
new file mode 100644
index 0000000000..1fd68a2274
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/file_symlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/folder_file.tar b/src/System.Formats.Tar.TestData/tar/ustar/folder_file.tar
new file mode 100644
index 0000000000..d71d8c4f99
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/folder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/folder_file_utf8.tar b/src/System.Formats.Tar.TestData/tar/ustar/folder_file_utf8.tar
new file mode 100644
index 0000000000..368a1d51a0
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/folder_file_utf8.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/ustar/folder_subfolder_file.tar
new file mode 100644
index 0000000000..c1cf3b33d7
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/foldersymlink_folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/ustar/foldersymlink_folder_subfolder_file.tar
new file mode 100644
index 0000000000..5da90a78e3
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/foldersymlink_folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/longpath_splitable_under255.tar b/src/System.Formats.Tar.TestData/tar/ustar/longpath_splitable_under255.tar
new file mode 100644
index 0000000000..5e8fc9267b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/longpath_splitable_under255.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/many_small_files.tar b/src/System.Formats.Tar.TestData/tar/ustar/many_small_files.tar
new file mode 100644
index 0000000000..7c7002e2d7
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/many_small_files.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/ustar/specialfiles.tar b/src/System.Formats.Tar.TestData/tar/ustar/specialfiles.tar
new file mode 100644
index 0000000000..15b8094248
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/ustar/specialfiles.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/file.tar b/src/System.Formats.Tar.TestData/tar/v7/file.tar
new file mode 100644
index 0000000000..ea7f10622b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/file_hardlink.tar b/src/System.Formats.Tar.TestData/tar/v7/file_hardlink.tar
new file mode 100644
index 0000000000..ab1f7d5933
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/file_hardlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/file_symlink.tar b/src/System.Formats.Tar.TestData/tar/v7/file_symlink.tar
new file mode 100644
index 0000000000..7578dedbc6
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/file_symlink.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/folder_file.tar b/src/System.Formats.Tar.TestData/tar/v7/folder_file.tar
new file mode 100644
index 0000000000..f6fdf6c4dd
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/folder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/folder_file_utf8.tar b/src/System.Formats.Tar.TestData/tar/v7/folder_file_utf8.tar
new file mode 100644
index 0000000000..7f222002d7
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/folder_file_utf8.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/v7/folder_subfolder_file.tar
new file mode 100644
index 0000000000..eb9d45ec34
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/foldersymlink_folder_subfolder_file.tar b/src/System.Formats.Tar.TestData/tar/v7/foldersymlink_folder_subfolder_file.tar
new file mode 100644
index 0000000000..10db76ae21
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/foldersymlink_folder_subfolder_file.tar differ
diff --git a/src/System.Formats.Tar.TestData/tar/v7/many_small_files.tar b/src/System.Formats.Tar.TestData/tar/v7/many_small_files.tar
new file mode 100644
index 0000000000..77504deb46
Binary files /dev/null and b/src/System.Formats.Tar.TestData/tar/v7/many_small_files.tar differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/file.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/file.tar.gz
new file mode 100644
index 0000000000..ef2229a6f8
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/file_hardlink.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/file_hardlink.tar.gz
new file mode 100644
index 0000000000..e7f1bfb168
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/file_hardlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/file_longsymlink.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/file_longsymlink.tar.gz
new file mode 100644
index 0000000000..9a52642579
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/file_longsymlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/file_symlink.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/file_symlink.tar.gz
new file mode 100644
index 0000000000..74e3cdce62
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/file_symlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/folder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/folder_file.tar.gz
new file mode 100644
index 0000000000..602feed507
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/folder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/folder_file_utf8.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/folder_file_utf8.tar.gz
new file mode 100644
index 0000000000..6a581dad22
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/folder_file_utf8.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..05c0003211
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/foldersymlink_folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/foldersymlink_folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..6055e0a39a
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/foldersymlink_folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/longfilename_over100_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/longfilename_over100_under255.tar.gz
new file mode 100644
index 0000000000..714e993c35
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/longfilename_over100_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/longpath_over255.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/longpath_over255.tar.gz
new file mode 100644
index 0000000000..e83561edbd
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/longpath_over255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/longpath_splitable_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/longpath_splitable_under255.tar.gz
new file mode 100644
index 0000000000..132c9b6a6b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/longpath_splitable_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/many_small_files.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/many_small_files.tar.gz
new file mode 100644
index 0000000000..f4ba4a499f
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/many_small_files.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/gnu/specialfiles.tar.gz b/src/System.Formats.Tar.TestData/targz/gnu/specialfiles.tar.gz
new file mode 100644
index 0000000000..2be9406f6a
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/gnu/specialfiles.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/file.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/file.tar.gz
new file mode 100644
index 0000000000..ef2229a6f8
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/file_hardlink.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/file_hardlink.tar.gz
new file mode 100644
index 0000000000..e7f1bfb168
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/file_hardlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/file_longsymlink.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/file_longsymlink.tar.gz
new file mode 100644
index 0000000000..e80da5282a
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/file_longsymlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/file_symlink.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/file_symlink.tar.gz
new file mode 100644
index 0000000000..74e3cdce62
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/file_symlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/folder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/folder_file.tar.gz
new file mode 100644
index 0000000000..602feed507
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/folder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/folder_file_utf8.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/folder_file_utf8.tar.gz
new file mode 100644
index 0000000000..6a581dad22
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/folder_file_utf8.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..05c0003211
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/foldersymlink_folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/foldersymlink_folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..6055e0a39a
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/foldersymlink_folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/longfilename_over100_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/longfilename_over100_under255.tar.gz
new file mode 100644
index 0000000000..496cd3c4de
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/longfilename_over100_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/longpath_over255.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/longpath_over255.tar.gz
new file mode 100644
index 0000000000..4bb9d865ef
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/longpath_over255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/longpath_splitable_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/longpath_splitable_under255.tar.gz
new file mode 100644
index 0000000000..244f315da9
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/longpath_splitable_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/many_small_files.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/many_small_files.tar.gz
new file mode 100644
index 0000000000..f4ba4a499f
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/many_small_files.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/oldgnu/specialfiles.tar.gz b/src/System.Formats.Tar.TestData/targz/oldgnu/specialfiles.tar.gz
new file mode 100644
index 0000000000..2be9406f6a
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/oldgnu/specialfiles.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/file.tar.gz
new file mode 100644
index 0000000000..2105912d30
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/file_hardlink.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/file_hardlink.tar.gz
new file mode 100644
index 0000000000..c57b1f8f8f
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/file_hardlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/file_longsymlink.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/file_longsymlink.tar.gz
new file mode 100644
index 0000000000..c743d094e9
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/file_longsymlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/file_symlink.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/file_symlink.tar.gz
new file mode 100644
index 0000000000..6362df8b2b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/file_symlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/folder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/folder_file.tar.gz
new file mode 100644
index 0000000000..0522980cc7
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/folder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/folder_file_utf8.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/folder_file_utf8.tar.gz
new file mode 100644
index 0000000000..f61257d989
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/folder_file_utf8.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..bb0241f895
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/foldersymlink_folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/foldersymlink_folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..a8fe0245f4
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/foldersymlink_folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/longfilename_over100_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/longfilename_over100_under255.tar.gz
new file mode 100644
index 0000000000..4d5747e47b
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/longfilename_over100_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/longpath_over255.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/longpath_over255.tar.gz
new file mode 100644
index 0000000000..99ac074b33
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/longpath_over255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/longpath_splitable_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/longpath_splitable_under255.tar.gz
new file mode 100644
index 0000000000..f9d728db38
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/longpath_splitable_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/many_small_files.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/many_small_files.tar.gz
new file mode 100644
index 0000000000..960f702f83
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/many_small_files.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax/specialfiles.tar.gz b/src/System.Formats.Tar.TestData/targz/pax/specialfiles.tar.gz
new file mode 100644
index 0000000000..4a748071dd
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax/specialfiles.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/file.tar.gz
new file mode 100644
index 0000000000..27a48f5838
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/file_hardlink.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/file_hardlink.tar.gz
new file mode 100644
index 0000000000..3217b63eae
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/file_hardlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/file_longsymlink.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/file_longsymlink.tar.gz
new file mode 100644
index 0000000000..9bcef973fc
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/file_longsymlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/file_symlink.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/file_symlink.tar.gz
new file mode 100644
index 0000000000..59cec7ea79
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/file_symlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/folder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/folder_file.tar.gz
new file mode 100644
index 0000000000..2c7f1a2b5a
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/folder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/folder_file_utf8.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/folder_file_utf8.tar.gz
new file mode 100644
index 0000000000..be05b5d9de
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/folder_file_utf8.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..983526ae69
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/foldersymlink_folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/foldersymlink_folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..7b82ae4d52
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/foldersymlink_folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/longfilename_over100_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/longfilename_over100_under255.tar.gz
new file mode 100644
index 0000000000..966a18ed83
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/longfilename_over100_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/longpath_over255.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/longpath_over255.tar.gz
new file mode 100644
index 0000000000..1420e12f7e
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/longpath_over255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/longpath_splitable_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/longpath_splitable_under255.tar.gz
new file mode 100644
index 0000000000..b5b1af6575
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/longpath_splitable_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/many_small_files.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/many_small_files.tar.gz
new file mode 100644
index 0000000000..7d387764c6
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/many_small_files.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/pax_gea/specialfiles.tar.gz b/src/System.Formats.Tar.TestData/targz/pax_gea/specialfiles.tar.gz
new file mode 100644
index 0000000000..1eb26c62f4
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/pax_gea/specialfiles.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/file.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/file.tar.gz
new file mode 100644
index 0000000000..8756248fe4
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/file_hardlink.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/file_hardlink.tar.gz
new file mode 100644
index 0000000000..b8fd8beed7
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/file_hardlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/file_symlink.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/file_symlink.tar.gz
new file mode 100644
index 0000000000..cc10c6753d
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/file_symlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/folder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/folder_file.tar.gz
new file mode 100644
index 0000000000..15fb0ee3f7
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/folder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/folder_file_utf8.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/folder_file_utf8.tar.gz
new file mode 100644
index 0000000000..33f73b1f96
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/folder_file_utf8.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..ff7173cf0f
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/foldersymlink_folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/foldersymlink_folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..cb7339b026
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/foldersymlink_folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/longpath_splitable_under255.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/longpath_splitable_under255.tar.gz
new file mode 100644
index 0000000000..fd09282ca5
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/longpath_splitable_under255.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/many_small_files.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/many_small_files.tar.gz
new file mode 100644
index 0000000000..87c1258fd2
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/many_small_files.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/ustar/specialfiles.tar.gz b/src/System.Formats.Tar.TestData/targz/ustar/specialfiles.tar.gz
new file mode 100644
index 0000000000..c196029b1d
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/ustar/specialfiles.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/file.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/file.tar.gz
new file mode 100644
index 0000000000..b2a1600fe5
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/file_hardlink.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/file_hardlink.tar.gz
new file mode 100644
index 0000000000..e89af0d968
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/file_hardlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/file_symlink.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/file_symlink.tar.gz
new file mode 100644
index 0000000000..2e07a63c8f
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/file_symlink.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/folder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/folder_file.tar.gz
new file mode 100644
index 0000000000..df57d2f279
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/folder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/folder_file_utf8.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/folder_file_utf8.tar.gz
new file mode 100644
index 0000000000..c159d44039
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/folder_file_utf8.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..b91105e2e5
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/foldersymlink_folder_subfolder_file.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/foldersymlink_folder_subfolder_file.tar.gz
new file mode 100644
index 0000000000..cb4b022755
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/foldersymlink_folder_subfolder_file.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/targz/v7/many_small_files.tar.gz b/src/System.Formats.Tar.TestData/targz/v7/many_small_files.tar.gz
new file mode 100644
index 0000000000..a56f51f82e
Binary files /dev/null and b/src/System.Formats.Tar.TestData/targz/v7/many_small_files.tar.gz differ
diff --git a/src/System.Formats.Tar.TestData/unarchived/file/file.txt b/src/System.Formats.Tar.TestData/unarchived/file/file.txt
new file mode 100755
index 0000000000..5c93e55f83
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/file/file.txt
@@ -0,0 +1 @@
+Hello file
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/file_hardlink/file.txt b/src/System.Formats.Tar.TestData/unarchived/file_hardlink/file.txt
new file mode 100755
index 0000000000..2b46a26e4b
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/file_hardlink/file.txt
@@ -0,0 +1 @@
+Hello file_hardlink
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/file_hardlink/hardlink.txt b/src/System.Formats.Tar.TestData/unarchived/file_hardlink/hardlink.txt
new file mode 100755
index 0000000000..2b46a26e4b
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/file_hardlink/hardlink.txt
@@ -0,0 +1 @@
+Hello file_hardlink
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/file_symlink/file.txt b/src/System.Formats.Tar.TestData/unarchived/file_symlink/file.txt
new file mode 100755
index 0000000000..d4fd899dc9
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/file_symlink/file.txt
@@ -0,0 +1 @@
+Hello file_symlink
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/file_symlink/link.txt b/src/System.Formats.Tar.TestData/unarchived/file_symlink/link.txt
new file mode 120000
index 0000000000..4c330738cc
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/file_symlink/link.txt
@@ -0,0 +1 @@
+file.txt
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/folder_file/folder/file.txt b/src/System.Formats.Tar.TestData/unarchived/folder_file/folder/file.txt
new file mode 100755
index 0000000000..e4837e35fa
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/folder_file/folder/file.txt
@@ -0,0 +1 @@
+Hello folder_file
\ No newline at end of file
diff --git "a/src/System.Formats.Tar.TestData/unarchived/folder_file_utf8/f\303\266ld\303\253r/\303\241\303\266\303\261.txt" "b/src/System.Formats.Tar.TestData/unarchived/folder_file_utf8/f\303\266ld\303\253r/\303\241\303\266\303\261.txt"
new file mode 100755
index 0000000000..cb445a7e26
--- /dev/null
+++ "b/src/System.Formats.Tar.TestData/unarchived/folder_file_utf8/f\303\266ld\303\253r/\303\241\303\266\303\261.txt"
@@ -0,0 +1 @@
+Hello folder_file_utf8
diff --git a/src/System.Formats.Tar.TestData/unarchived/folder_subfolder_file/parent/child/file.txt b/src/System.Formats.Tar.TestData/unarchived/folder_subfolder_file/parent/child/file.txt
new file mode 100755
index 0000000000..74ac49b3f1
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/folder_subfolder_file/parent/child/file.txt
@@ -0,0 +1 @@
+Hello folder_subfolder_file
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/foldersymlink_folder_subfolder_file/childlink b/src/System.Formats.Tar.TestData/unarchived/foldersymlink_folder_subfolder_file/childlink
new file mode 120000
index 0000000000..08298ac088
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/foldersymlink_folder_subfolder_file/childlink
@@ -0,0 +1 @@
+parent/child
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/foldersymlink_folder_subfolder_file/parent/child/file.txt b/src/System.Formats.Tar.TestData/unarchived/foldersymlink_folder_subfolder_file/parent/child/file.txt
new file mode 100755
index 0000000000..5e02d1a211
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/foldersymlink_folder_subfolder_file/parent/child/file.txt
@@ -0,0 +1 @@
+Hello foldersymlink_folder_subfolder_file
\ No newline at end of file
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/0.txt
new file mode 100755
index 0000000000..8c4a643065
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/0.txt
@@ -0,0 +1 @@
+many_small_files 0/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/1.txt
new file mode 100755
index 0000000000..17ccd0b01d
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/1.txt
@@ -0,0 +1 @@
+many_small_files 0/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/2.txt
new file mode 100755
index 0000000000..2dc9083aff
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/2.txt
@@ -0,0 +1 @@
+many_small_files 0/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/3.txt
new file mode 100755
index 0000000000..6eb631c5dd
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/3.txt
@@ -0,0 +1 @@
+many_small_files 0/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/4.txt
new file mode 100755
index 0000000000..5a4c2a6478
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/4.txt
@@ -0,0 +1 @@
+many_small_files 0/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/5.txt
new file mode 100755
index 0000000000..4167fba61f
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/5.txt
@@ -0,0 +1 @@
+many_small_files 0/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/6.txt
new file mode 100755
index 0000000000..ac15bb98ac
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/6.txt
@@ -0,0 +1 @@
+many_small_files 0/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/7.txt
new file mode 100755
index 0000000000..a75ed2042b
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/7.txt
@@ -0,0 +1 @@
+many_small_files 0/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/8.txt
new file mode 100755
index 0000000000..34c0d0bca3
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/8.txt
@@ -0,0 +1 @@
+many_small_files 0/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/9.txt
new file mode 100755
index 0000000000..79a91ec19f
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/0/9.txt
@@ -0,0 +1 @@
+many_small_files 0/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/0.txt
new file mode 100755
index 0000000000..cb38c3a399
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/0.txt
@@ -0,0 +1 @@
+many_small_files 1/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/1.txt
new file mode 100755
index 0000000000..9a9518d4b5
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/1.txt
@@ -0,0 +1 @@
+many_small_files 1/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/2.txt
new file mode 100755
index 0000000000..d4bd374762
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/2.txt
@@ -0,0 +1 @@
+many_small_files 1/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/3.txt
new file mode 100755
index 0000000000..a2cf1398ac
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/3.txt
@@ -0,0 +1 @@
+many_small_files 1/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/4.txt
new file mode 100755
index 0000000000..3fbe9351af
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/4.txt
@@ -0,0 +1 @@
+many_small_files 1/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/5.txt
new file mode 100755
index 0000000000..54560d3c48
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/5.txt
@@ -0,0 +1 @@
+many_small_files 1/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/6.txt
new file mode 100755
index 0000000000..e2eb0230da
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/6.txt
@@ -0,0 +1 @@
+many_small_files 1/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/7.txt
new file mode 100755
index 0000000000..e60d85a1d5
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/7.txt
@@ -0,0 +1 @@
+many_small_files 1/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/8.txt
new file mode 100755
index 0000000000..a4155ff66b
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/8.txt
@@ -0,0 +1 @@
+many_small_files 1/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/9.txt
new file mode 100755
index 0000000000..1dc46b77c9
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/1/9.txt
@@ -0,0 +1 @@
+many_small_files 1/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/0.txt
new file mode 100755
index 0000000000..d0198af04c
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/0.txt
@@ -0,0 +1 @@
+many_small_files 2/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/1.txt
new file mode 100755
index 0000000000..160f854bcd
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/1.txt
@@ -0,0 +1 @@
+many_small_files 2/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/2.txt
new file mode 100755
index 0000000000..d446f86e48
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/2.txt
@@ -0,0 +1 @@
+many_small_files 2/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/3.txt
new file mode 100755
index 0000000000..d8906b2d49
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/3.txt
@@ -0,0 +1 @@
+many_small_files 2/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/4.txt
new file mode 100755
index 0000000000..9fc00a0490
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/4.txt
@@ -0,0 +1 @@
+many_small_files 2/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/5.txt
new file mode 100755
index 0000000000..afaf0cecc6
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/5.txt
@@ -0,0 +1 @@
+many_small_files 2/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/6.txt
new file mode 100755
index 0000000000..db57686db2
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/6.txt
@@ -0,0 +1 @@
+many_small_files 2/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/7.txt
new file mode 100755
index 0000000000..537ba91b9f
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/7.txt
@@ -0,0 +1 @@
+many_small_files 2/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/8.txt
new file mode 100755
index 0000000000..9fc7645201
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/8.txt
@@ -0,0 +1 @@
+many_small_files 2/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/9.txt
new file mode 100755
index 0000000000..9f0f09de76
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/2/9.txt
@@ -0,0 +1 @@
+many_small_files 2/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/0.txt
new file mode 100755
index 0000000000..bdb0cb1ca1
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/0.txt
@@ -0,0 +1 @@
+many_small_files 3/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/1.txt
new file mode 100755
index 0000000000..e0011d5f51
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/1.txt
@@ -0,0 +1 @@
+many_small_files 3/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/2.txt
new file mode 100755
index 0000000000..fdaef10f56
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/2.txt
@@ -0,0 +1 @@
+many_small_files 3/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/3.txt
new file mode 100755
index 0000000000..b5bdcdd733
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/3.txt
@@ -0,0 +1 @@
+many_small_files 3/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/4.txt
new file mode 100755
index 0000000000..c13e8665dd
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/4.txt
@@ -0,0 +1 @@
+many_small_files 3/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/5.txt
new file mode 100755
index 0000000000..a561549f81
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/5.txt
@@ -0,0 +1 @@
+many_small_files 3/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/6.txt
new file mode 100755
index 0000000000..6a0f02e21b
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/6.txt
@@ -0,0 +1 @@
+many_small_files 3/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/7.txt
new file mode 100755
index 0000000000..87bfbfd1e0
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/7.txt
@@ -0,0 +1 @@
+many_small_files 3/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/8.txt
new file mode 100755
index 0000000000..562e1c4ea6
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/8.txt
@@ -0,0 +1 @@
+many_small_files 3/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/9.txt
new file mode 100755
index 0000000000..8d209a99e1
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/3/9.txt
@@ -0,0 +1 @@
+many_small_files 3/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/0.txt
new file mode 100755
index 0000000000..2a30fadd39
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/0.txt
@@ -0,0 +1 @@
+many_small_files 4/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/1.txt
new file mode 100755
index 0000000000..bdc3de3aaf
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/1.txt
@@ -0,0 +1 @@
+many_small_files 4/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/2.txt
new file mode 100755
index 0000000000..fa5ab26caf
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/2.txt
@@ -0,0 +1 @@
+many_small_files 4/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/3.txt
new file mode 100755
index 0000000000..ff77d918fe
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/3.txt
@@ -0,0 +1 @@
+many_small_files 4/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/4.txt
new file mode 100755
index 0000000000..471dd0151c
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/4.txt
@@ -0,0 +1 @@
+many_small_files 4/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/5.txt
new file mode 100755
index 0000000000..fb9aaef067
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/5.txt
@@ -0,0 +1 @@
+many_small_files 4/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/6.txt
new file mode 100755
index 0000000000..588157c0e0
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/6.txt
@@ -0,0 +1 @@
+many_small_files 4/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/7.txt
new file mode 100755
index 0000000000..dcbac790cc
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/7.txt
@@ -0,0 +1 @@
+many_small_files 4/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/8.txt
new file mode 100755
index 0000000000..e4f00071a2
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/8.txt
@@ -0,0 +1 @@
+many_small_files 4/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/9.txt
new file mode 100755
index 0000000000..0bee0cfb31
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/4/9.txt
@@ -0,0 +1 @@
+many_small_files 4/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/0.txt
new file mode 100755
index 0000000000..020c42b7cd
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/0.txt
@@ -0,0 +1 @@
+many_small_files 5/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/1.txt
new file mode 100755
index 0000000000..dd2c26aaab
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/1.txt
@@ -0,0 +1 @@
+many_small_files 5/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/2.txt
new file mode 100755
index 0000000000..c462abded7
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/2.txt
@@ -0,0 +1 @@
+many_small_files 5/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/3.txt
new file mode 100755
index 0000000000..6f5cda4b3d
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/3.txt
@@ -0,0 +1 @@
+many_small_files 5/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/4.txt
new file mode 100755
index 0000000000..6c30a5c944
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/4.txt
@@ -0,0 +1 @@
+many_small_files 5/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/5.txt
new file mode 100755
index 0000000000..95b155a03d
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/5.txt
@@ -0,0 +1 @@
+many_small_files 5/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/6.txt
new file mode 100755
index 0000000000..bbf13119ed
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/6.txt
@@ -0,0 +1 @@
+many_small_files 5/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/7.txt
new file mode 100755
index 0000000000..8cf5008609
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/7.txt
@@ -0,0 +1 @@
+many_small_files 5/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/8.txt
new file mode 100755
index 0000000000..afd4e8ceeb
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/8.txt
@@ -0,0 +1 @@
+many_small_files 5/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/9.txt
new file mode 100755
index 0000000000..7b52c0f85d
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/5/9.txt
@@ -0,0 +1 @@
+many_small_files 5/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/0.txt
new file mode 100755
index 0000000000..b84fad1320
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/0.txt
@@ -0,0 +1 @@
+many_small_files 6/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/1.txt
new file mode 100755
index 0000000000..a36087ff32
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/1.txt
@@ -0,0 +1 @@
+many_small_files 6/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/2.txt
new file mode 100755
index 0000000000..0e2044aa2d
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/2.txt
@@ -0,0 +1 @@
+many_small_files 6/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/3.txt
new file mode 100755
index 0000000000..3291f2158f
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/3.txt
@@ -0,0 +1 @@
+many_small_files 6/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/4.txt
new file mode 100755
index 0000000000..088b154581
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/4.txt
@@ -0,0 +1 @@
+many_small_files 6/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/5.txt
new file mode 100755
index 0000000000..d8ca9eb1d3
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/5.txt
@@ -0,0 +1 @@
+many_small_files 6/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/6.txt
new file mode 100755
index 0000000000..46b76aefa8
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/6.txt
@@ -0,0 +1 @@
+many_small_files 6/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/7.txt
new file mode 100755
index 0000000000..78d867c02d
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/7.txt
@@ -0,0 +1 @@
+many_small_files 6/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/8.txt
new file mode 100755
index 0000000000..6177fd1990
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/8.txt
@@ -0,0 +1 @@
+many_small_files 6/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/9.txt
new file mode 100755
index 0000000000..e4f2c4bc5b
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/6/9.txt
@@ -0,0 +1 @@
+many_small_files 6/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/0.txt
new file mode 100755
index 0000000000..bc2bb992b3
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/0.txt
@@ -0,0 +1 @@
+many_small_files 7/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/1.txt
new file mode 100755
index 0000000000..1c15b973a9
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/1.txt
@@ -0,0 +1 @@
+many_small_files 7/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/2.txt
new file mode 100755
index 0000000000..1f3bae56eb
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/2.txt
@@ -0,0 +1 @@
+many_small_files 7/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/3.txt
new file mode 100755
index 0000000000..870095015c
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/3.txt
@@ -0,0 +1 @@
+many_small_files 7/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/4.txt
new file mode 100755
index 0000000000..80447ccd53
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/4.txt
@@ -0,0 +1 @@
+many_small_files 7/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/5.txt
new file mode 100755
index 0000000000..210489eda4
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/5.txt
@@ -0,0 +1 @@
+many_small_files 7/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/6.txt
new file mode 100755
index 0000000000..b726dbbc84
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/6.txt
@@ -0,0 +1 @@
+many_small_files 7/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/7.txt
new file mode 100755
index 0000000000..4e95a15c98
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/7.txt
@@ -0,0 +1 @@
+many_small_files 7/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/8.txt
new file mode 100755
index 0000000000..7b5b392588
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/8.txt
@@ -0,0 +1 @@
+many_small_files 7/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/9.txt
new file mode 100755
index 0000000000..ef731f3c27
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/7/9.txt
@@ -0,0 +1 @@
+many_small_files 7/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/0.txt
new file mode 100755
index 0000000000..1c3e15e9c0
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/0.txt
@@ -0,0 +1 @@
+many_small_files 8/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/1.txt
new file mode 100755
index 0000000000..fbeed997e3
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/1.txt
@@ -0,0 +1 @@
+many_small_files 8/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/2.txt
new file mode 100755
index 0000000000..923990fe04
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/2.txt
@@ -0,0 +1 @@
+many_small_files 8/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/3.txt
new file mode 100755
index 0000000000..4dc4f677f1
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/3.txt
@@ -0,0 +1 @@
+many_small_files 8/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/4.txt
new file mode 100755
index 0000000000..9217cf8d67
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/4.txt
@@ -0,0 +1 @@
+many_small_files 8/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/5.txt
new file mode 100755
index 0000000000..3b0d109e9f
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/5.txt
@@ -0,0 +1 @@
+many_small_files 8/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/6.txt
new file mode 100755
index 0000000000..115cd5a42c
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/6.txt
@@ -0,0 +1 @@
+many_small_files 8/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/7.txt
new file mode 100755
index 0000000000..360ccbc973
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/7.txt
@@ -0,0 +1 @@
+many_small_files 8/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/8.txt
new file mode 100755
index 0000000000..48cf70af27
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/8.txt
@@ -0,0 +1 @@
+many_small_files 8/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/9.txt
new file mode 100755
index 0000000000..f5d2887d9c
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/8/9.txt
@@ -0,0 +1 @@
+many_small_files 8/9
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/0.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/0.txt
new file mode 100755
index 0000000000..ed08cf721c
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/0.txt
@@ -0,0 +1 @@
+many_small_files 9/0
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/1.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/1.txt
new file mode 100755
index 0000000000..34a5f48c50
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/1.txt
@@ -0,0 +1 @@
+many_small_files 9/1
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/2.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/2.txt
new file mode 100755
index 0000000000..f7ebfcb679
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/2.txt
@@ -0,0 +1 @@
+many_small_files 9/2
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/3.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/3.txt
new file mode 100755
index 0000000000..871a19a5c6
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/3.txt
@@ -0,0 +1 @@
+many_small_files 9/3
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/4.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/4.txt
new file mode 100755
index 0000000000..e7bea54a32
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/4.txt
@@ -0,0 +1 @@
+many_small_files 9/4
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/5.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/5.txt
new file mode 100755
index 0000000000..a5ba44b197
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/5.txt
@@ -0,0 +1 @@
+many_small_files 9/5
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/6.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/6.txt
new file mode 100755
index 0000000000..00df2bc15e
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/6.txt
@@ -0,0 +1 @@
+many_small_files 9/6
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/7.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/7.txt
new file mode 100755
index 0000000000..8a66fdda51
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/7.txt
@@ -0,0 +1 @@
+many_small_files 9/7
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/8.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/8.txt
new file mode 100755
index 0000000000..d257c882d6
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/8.txt
@@ -0,0 +1 @@
+many_small_files 9/8
diff --git a/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/9.txt b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/9.txt
new file mode 100755
index 0000000000..068f804b46
--- /dev/null
+++ b/src/System.Formats.Tar.TestData/unarchived/many_small_files/9/9.txt
@@ -0,0 +1 @@
+many_small_files 9/9
diff --git a/src/System.IO.Compression.TestData/System.IO.Compression.TestData.csproj b/src/System.IO.Compression.TestData/System.IO.Compression.TestData.csproj
index 2feefb8f76..fd585ff542 100644
--- a/src/System.IO.Compression.TestData/System.IO.Compression.TestData.csproj
+++ b/src/System.IO.Compression.TestData/System.IO.Compression.TestData.csproj
@@ -1 +1,5 @@
-
\ No newline at end of file
+
+
+ $(NoWarn);NU5123
+
+
\ No newline at end of file