1
0
Fork 1
mirror of https://github.com/vbatts/tar-split.git synced 2025-07-04 23:38:29 +00:00

archive/tar: port RawHeader() changes

This is a port of commits adding RawHeader() to go-1.11 archive/tar.

In addition:
* simplify the rawBytes.Write() code in readHeader()
* ignore errors from rawBytes.Write(), as (at least for go-1.11)
  it never returns an error, only panics (if the buffer grew too large)

Also, remove the internal/testenv from tar_tar.go to enable go test.
As working symlink detection is non-trivial on Windows, just skip
the test on that platform.

In addition to `go test`, I did some minimal manual testing, and
it seems this code creates tar-data.json.gz which is identical
to the one made by the old version.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
Kir Kolyshkin 2018-09-05 13:37:46 -07:00
parent 73fdb78c36
commit 9a95e02602
2 changed files with 77 additions and 10 deletions

View file

@ -8,7 +8,6 @@ import (
"bytes"
"errors"
"fmt"
"internal/testenv"
"io"
"io/ioutil"
"math"
@ -16,6 +15,7 @@ import (
"path"
"path/filepath"
"reflect"
"runtime"
"strings"
"testing"
"time"
@ -260,8 +260,10 @@ func TestFileInfoHeaderDir(t *testing.T) {
}
func TestFileInfoHeaderSymlink(t *testing.T) {
testenv.MustHaveSymlink(t)
switch runtime.GOOS {
case "android", "nacl", "plan9", "windows":
t.Skip("symlinks not supported")
}
tmpdir, err := ioutil.TempDir("", "TestFileInfoHeaderSymlink")
if err != nil {
t.Fatal(err)