From 6713f46426c70f601ac33471d16be7b0e1aae349 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 12 Dec 2025 14:18:13 -0800 Subject: [PATCH] archive/tar, compress/bzip2: base64 some troublesome testdata files This avoids complaints from scanners that look for and open tar and bz2 files, and complain if they look weird. In this case, they do look weird, because they are intentionally strange. This kind of thing shouldn't be necessary, but we already have the machinery to do it so it's easy enough. Fixes #76799 Change-Id: Ib302b3aef30108a1325f91fcb2d166f8e1863792 Reviewed-on: https://go-review.googlesource.com/c/go/+/729780 Reviewed-by: David Chase Auto-Submit: Ian Lance Taylor LUCI-TryBot-Result: Go LUCI Reviewed-by: Michael Knyszek Reviewed-by: Joseph Tsai --- src/archive/tar/reader_test.go | 30 +++-- src/archive/tar/testdata/gnu-sparse-big.tar | Bin 5120 -> 0 bytes .../tar/testdata/gnu-sparse-big.tar.base64 | 90 +++++++++++++ src/archive/tar/testdata/neg-size.tar | Bin 512 -> 0 bytes src/archive/tar/testdata/neg-size.tar.base64 | 9 ++ src/archive/tar/testdata/pax-sparse-big.tar | Bin 6144 -> 0 bytes .../tar/testdata/pax-sparse-big.tar.base64 | 108 +++++++++++++++ src/archive/tar/testdata/writer-big-long.tar | Bin 1536 -> 0 bytes .../tar/testdata/writer-big-long.tar.base64 | 27 ++++ src/archive/tar/writer_test.go | 28 +++- src/compress/bzip2/bzip2_test.go | 12 +- .../bzip2/testdata/fail-issue5747.bz2 | Bin 7232 -> 0 bytes .../bzip2/testdata/fail-issue5747.bz2.base64 | 127 ++++++++++++++++++ 13 files changed, 414 insertions(+), 17 deletions(-) delete mode 100644 src/archive/tar/testdata/gnu-sparse-big.tar create mode 100644 src/archive/tar/testdata/gnu-sparse-big.tar.base64 delete mode 100644 src/archive/tar/testdata/neg-size.tar create mode 100644 src/archive/tar/testdata/neg-size.tar.base64 delete mode 100644 src/archive/tar/testdata/pax-sparse-big.tar create mode 100644 src/archive/tar/testdata/pax-sparse-big.tar.base64 delete mode 100644 src/archive/tar/testdata/writer-big-long.tar create mode 100644 src/archive/tar/testdata/writer-big-long.tar.base64 delete mode 100644 src/compress/bzip2/testdata/fail-issue5747.bz2 create mode 100644 src/compress/bzip2/testdata/fail-issue5747.bz2.base64 diff --git a/src/archive/tar/reader_test.go b/src/archive/tar/reader_test.go index fca53dae74..de3d365304 100644 --- a/src/archive/tar/reader_test.go +++ b/src/archive/tar/reader_test.go @@ -10,6 +10,7 @@ import ( "errors" "fmt" "hash/crc32" + "internal/obscuretestdata" "io" "maps" "math" @@ -25,10 +26,11 @@ import ( func TestReader(t *testing.T) { vectors := []struct { - file string // Test input file - headers []*Header // Expected output headers - chksums []string // CRC32 checksum of files, leave as nil if not checked - err error // Expected error to occur + file string // Test input file + obscured bool // Obscured with obscuretestdata package + headers []*Header // Expected output headers + chksums []string // CRC32 checksum of files, leave as nil if not checked + err error // Expected error to occur }{{ file: "testdata/gnu.tar", headers: []*Header{{ @@ -523,8 +525,9 @@ func TestReader(t *testing.T) { file: "testdata/pax-nul-path.tar", err: ErrHeader, }, { - file: "testdata/neg-size.tar", - err: ErrHeader, + file: "testdata/neg-size.tar.base64", + obscured: true, + err: ErrHeader, }, { file: "testdata/issue10968.tar", err: ErrHeader, @@ -629,15 +632,24 @@ func TestReader(t *testing.T) { }} for _, v := range vectors { - t.Run(path.Base(v.file), func(t *testing.T) { - f, err := os.Open(v.file) + t.Run(strings.TrimSuffix(path.Base(v.file), ".base64"), func(t *testing.T) { + path := v.file + if v.obscured { + tf, err := obscuretestdata.DecodeToTempFile(path) + if err != nil { + t.Fatalf("obscuredtestdata.DecodeToTempFile(%s): %v", path, err) + } + path = tf + } + + f, err := os.Open(path) if err != nil { t.Fatalf("unexpected error: %v", err) } defer f.Close() var fr io.Reader = f - if strings.HasSuffix(v.file, ".bz2") { + if strings.HasSuffix(v.file, ".bz2") || strings.HasSuffix(v.file, ".bz2.base64") { fr = bzip2.NewReader(fr) } diff --git a/src/archive/tar/testdata/gnu-sparse-big.tar b/src/archive/tar/testdata/gnu-sparse-big.tar deleted file mode 100644 index 1a5cfc96d92983b42dab09b51bec236fe00d24c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 zcmYe#E7dJ7NGvK&WuO@_fB*&@v>8wwCI?c&U|<9U<_rqKG;!KK9|iA4$uNFwAh z(LG1BDGd;nOd;HlV4+|L3I(V*%L?&h*u>fXD6hgM&KaQJha%1hHHi0zdj!NPWD+XL zy~Mf*MHfO-7>YQu-cj~w2#kgR?Lxr7(8$=t)Xdz%l6EZGxqj4SN<)Blv5qjAQa6t3 zr(FmjVu^Mv+PQwzWJ*JTcCn5ynNl~7>Ze@@AYzGjEZVt#)MQFSfOfHtFqu*}j_Mx` Lfzc2cx*-4no2;l4 diff --git a/src/archive/tar/testdata/gnu-sparse-big.tar.base64 b/src/archive/tar/testdata/gnu-sparse-big.tar.base64 new file mode 100644 index 0000000000..c25505083b --- /dev/null +++ b/src/archive/tar/testdata/gnu-sparse-big.tar.base64 @@ -0,0 +1,90 @@ +Z251LXNwYXJzZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDAw +MAAwMDAwMDAwADAwMDAwMDA2MDAwADAwMDAwMDAwMDAwADAyMjIyNwAgUwAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAw +MDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAlQL4gAw +MDAwMDAwMTAwMACAAAAAAAAABKgXxgAwMDAwMDAwMTAwMACAAAAAAAAABvwjqgAwMDAwMDAwMTAw +MACAAAAAAAAACVAvjgAwMDAwMDAwMTAwMAABgAAAAAAAAA34R1gAAAAAAAAAAAAAAAAAAAAAAACA +AAAAAAAAC6Q7cgAwMDAwMDAwMTAwMACAAAAAAAAADfhHVgAwMDAwMDAwMTAwMAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1 +Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5AAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAADAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2 +Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3 +ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4 +OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5AAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAADAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5 +MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkw +MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= diff --git a/src/archive/tar/testdata/neg-size.tar b/src/archive/tar/testdata/neg-size.tar deleted file mode 100644 index 21edf38cc3c3d98c834d07b6d31e8325898ec492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcma)(y$ypf6of6Y0Mc841tQ%uKO%FmLwaN+C{kErtgOKT*}*+|c47w+qNH(i_T6`9 z$^gnvt>$wLeQpM#*<5EsKtJ9uH<6)~%E3&=F&Kzfi~{+q#!cOa=AzbjSO$1IxR;aN z*g3HiZShf(vs!BvbKPiG1!!GY>l3F=j$kqh!InX?lk@{OAsyh#2%!qzcGBC1;;FXq z6(OUFiyZLnA-?TXGNUXTUA0xix-DD8En}aw{C@tp7XnB4F0(23$NLG-y>mPO&s&?~ diff --git a/src/archive/tar/testdata/neg-size.tar.base64 b/src/archive/tar/testdata/neg-size.tar.base64 new file mode 100644 index 0000000000..b7e26a05b1 --- /dev/null +++ b/src/archive/tar/testdata/neg-size.tar.base64 @@ -0,0 +1,9 @@ +EwMwMBMDLTgyMTk1MDI5NnQTE4NzfINzEzAwcXfhZrsDMDAwAAAAEDAxMRNz9DEwMTAwdBMTg3N8 +g3NzADATc3yDc3P0eFMTc/QxMDEwMHQTE4NzfINzc/QwE3N8g3Nz9HFTMNR0MBMwMHEw9DAAAAAQ +MDGAABAwMTETc/QxMDH0MHQTMDBx1OFmuwMAAAD/gICAADExNTYyMQAgMBP///+AMTAwdHhTMDB0 +MBMwMHF3MDEwMTAwdBMTg3N8g3Nz9HhTMDB0MBMwMHF34Wa7AzAwMAAAABAwMTETc/QxMDEwMHQT +E4NzfINzc/QwE3N8g3Nz9HhTE3P0MTAxMDB0ExODc3yDc3MwMBNzfINzczB4UzAwdDATMDBxMDAA +gAAAEDAxc/QxMDEwMHQTAAAAIOFmuwMwNAAAABAwMTET////gDEwMHR4UzAwdDATMDBxd+FmuwMw +MDAAAAAQMDExE3ODc3P0eFMTc/QxMDEwMHQTE4NzfINzc/QzMTEwMzM2MjQ4NDYxMjgzODBzfINz +c/R4UzAwdDATMDBxMDAwAAAAEDAxAAAQMDExE3P0MTAxMDB0EzAwcdThZrsDMDQAAAAQg3N8g3Nz +9DATc3yDc3P0eFMwMHQwEzAwcTAwMAAAABAwMQAAEDAxMRNz9DEwMTAwdBMwMHgw4Wa7AwAAEDA= diff --git a/src/archive/tar/testdata/pax-sparse-big.tar b/src/archive/tar/testdata/pax-sparse-big.tar deleted file mode 100644 index 65d1f8eceb084955d03ef41f6efbbed0ab3ab07d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 zcmeHJOKQU~5cOK8@CD-NV_D9^+a{}0C_R9nS~%o~)PTw9quL1*1m0OePDUHejKqB2 z(=-0k-Nxu&V_iX)C*3XFNn2;KDHk19HnLNu`2FnvN=6yyTxEGTWfNn$&hAfJUw-WT z#p9gk>(8HJV7=Ju?a?-j1kv{3qm&5xc=w?9rhykjgnT@;M()2-EV}6ypIW4 zm*mBPoymBf{O?}zAMMUW`UKowz+L0vu6oVGGx7QtN_hQ0MUzwMKOAx<{8wZ(tg^0& zWSp?T=YcN*zYKgC_%p!)+e8FXL%{zBiBeXoUd6Lgn;H871mdv{nV}k5sUZL?#j{eI p8T$bQ;;{~yp&DALApk7Jvr?NG`vC;vu@0G`8d`_|BJgeqTmi{^;4uII diff --git a/src/archive/tar/testdata/pax-sparse-big.tar.base64 b/src/archive/tar/testdata/pax-sparse-big.tar.base64 new file mode 100644 index 0000000000..640ef32159 --- /dev/null +++ b/src/archive/tar/testdata/pax-sparse-big.tar.base64 @@ -0,0 +1,108 @@ +UGF4SGVhZGVycy4wL3BheC1zcGFyc2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDAw +MAAwMDAwMDAwADAwMDAwMDAwMTcyADAwMDAwMDAwMDAwADAxMjIyNwAgeAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy +MiBHTlUuc3BhcnNlLm1ham9yPTEKMjIgR05VLnNwYXJzZS5taW5vcj0wCjMwIEdOVS5zcGFyc2Uu +bmFtZT1wYXgtc3BhcnNlCjM1IEdOVS5zcGFyc2UucmVhbHNpemU9NjAwMDAwMDAwMDAKMTMgc2l6 +ZT0zNTg0CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdO +VVNwYXJzZUZpbGUuMC9wYXgtc3BhcnNlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAwMDAA +MDAwMDAwMAAwMDAwMDAwNzAwMAAwMDAwMDAwMDAwMAAwMTM3MzcAIDAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMAAwMDAwMDAw +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgo5 +OTk5OTk5NDg4CjUxMgoxOTk5OTk5OTQ4OAo1MTIKMjk5OTk5OTk0ODgKNTEyCjM5OTk5OTk5NDg4 +CjUxMgo0OTk5OTk5OTQ4OAo1MTIKNTk5OTk5OTk0ODgKNTEyCgAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3 +ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4 +OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5AAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAADAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5 +MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkw +MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx +MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5AAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAADAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEy +MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/src/archive/tar/testdata/writer-big-long.tar b/src/archive/tar/testdata/writer-big-long.tar deleted file mode 100644 index 09fc5dd3dd7fc5de3b6d22461fa23152fd499a41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1536 zcmdT@%L>CF5cHg{@C({q<0CobV>|>an6xwspR=A26VBn zaX^Kt?_`f1Z)$wO|DLIY?J3lf^OSK^BIf(k6O@V|Yg?ui2v9Nql1oNtkxU->H^Dlm V!!&06{D$v3HgTJv%r&)bzX73UunhnJ diff --git a/src/archive/tar/testdata/writer-big-long.tar.base64 b/src/archive/tar/testdata/writer-big-long.tar.base64 new file mode 100644 index 0000000000..171d287068 --- /dev/null +++ b/src/archive/tar/testdata/writer-big-long.tar.base64 @@ -0,0 +1,27 @@ +bG9uZ25hbWUvbG9uZ25hbWUvbG9uZ25hbWUvbG9uZ25hbWUvbG9uZ25hbWUvbG9uZ25hbWUvbG9u +Z25hbWUvbG9uZ25hbWUvbG9uZ25hbWUvbG9uZ25hbWUvbG9uZ25hbWUvbDAwMDAwMDAAMDAwMDAw +MAAwMDAwMDAwADAwMDAwMDAwMjU2ADAwMDAwMDAwMDAwADAzMTQyMAAgeAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx +NTQgcGF0aD1sb25nbmFtZS9sb25nbmFtZS9sb25nbmFtZS9sb25nbmFtZS9sb25nbmFtZS9sb25n +bmFtZS9sb25nbmFtZS9sb25nbmFtZS9sb25nbmFtZS9sb25nbmFtZS9sb25nbmFtZS9sb25nbmFt +ZS9sb25nbmFtZS9sb25nbmFtZS9sb25nbmFtZS8xNmdpZy50eHQKMjAgc2l6ZT0xNzE3OTg2OTE4 +NAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxv +bmduYW1lL2xvbmduYW1lL2xvbmduYW1lL2xvbmduYW1lL2xvbmduYW1lL2xvbmduYW1lL2xvbmdu +YW1lL2xvbmduYW1lL2xvbmduYW1lL2xvbmduYW1lL2xvbmduYW1lL2wwMDAwNjQ0ADAwMDE3NTAA +MDAwMTc1MAAwMDAwMDAwMDAwMAAxMjMzMjc3MDUwNwAwMzY0NjIAIDAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDBndWlsbGF1bWUAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAGd1aWxsYXVtZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMAAwMDAwMDAw +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/src/archive/tar/writer_test.go b/src/archive/tar/writer_test.go index 9e484432ea..759000f6b9 100644 --- a/src/archive/tar/writer_test.go +++ b/src/archive/tar/writer_test.go @@ -8,6 +8,7 @@ import ( "bytes" "encoding/hex" "errors" + "internal/obscuretestdata" "io" "io/fs" "maps" @@ -74,8 +75,9 @@ func TestWriter(t *testing.T) { ) vectors := []struct { - file string // Optional filename of expected output - tests []testFnc + file string // Optional filename of expected output + obscured bool // Whether file is obscured + tests []testFnc }{{ // The writer test file was produced with this command: // tar (GNU tar) 1.26 @@ -151,7 +153,8 @@ func TestWriter(t *testing.T) { // bsdtar -xvf writer-big-long.tar // // This file is in PAX format. - file: "testdata/writer-big-long.tar", + file: "testdata/writer-big-long.tar.base64", + obscured: true, tests: []testFnc{ testHeader{Header{ Typeflag: TypeReg, @@ -393,7 +396,8 @@ func TestWriter(t *testing.T) { testClose{}, }, }, { - file: "testdata/gnu-sparse-big.tar", + file: "testdata/gnu-sparse-big.tar.base64", + obscured: true, tests: []testFnc{ testHeader{Header{ Typeflag: TypeGNUSparse, @@ -425,7 +429,8 @@ func TestWriter(t *testing.T) { testClose{nil}, }, }, { - file: "testdata/pax-sparse-big.tar", + file: "testdata/pax-sparse-big.tar.base64", + obscured: true, tests: []testFnc{ testHeader{Header{ Typeflag: TypeReg, @@ -483,7 +488,7 @@ func TestWriter(t *testing.T) { return x == y } for _, v := range vectors { - t.Run(path.Base(v.file), func(t *testing.T) { + t.Run(strings.TrimSuffix(path.Base(v.file), ".base64"), func(t *testing.T) { const maxSize = 10 << 10 // 10KiB buf := new(bytes.Buffer) tw := NewWriter(iotest.TruncateWriter(buf, maxSize)) @@ -522,7 +527,16 @@ func TestWriter(t *testing.T) { } if v.file != "" { - want, err := os.ReadFile(v.file) + path := v.file + if v.obscured { + tf, err := obscuretestdata.DecodeToTempFile(path) + if err != nil { + t.Fatalf("obscuretestdata.DecodeToTempFile(%s): %v", path, err) + } + path = tf + } + + want, err := os.ReadFile(path) if err != nil { t.Fatalf("ReadFile() = %v, want nil", err) } diff --git a/src/compress/bzip2/bzip2_test.go b/src/compress/bzip2/bzip2_test.go index e6065cb43f..13e2d3c1fa 100644 --- a/src/compress/bzip2/bzip2_test.go +++ b/src/compress/bzip2/bzip2_test.go @@ -8,8 +8,10 @@ import ( "bytes" "encoding/hex" "fmt" + "internal/obscuretestdata" "io" "os" + "strings" "testing" ) @@ -22,6 +24,14 @@ func mustDecodeHex(s string) []byte { } func mustLoadFile(f string) []byte { + if strings.HasSuffix(f, ".base64") { + tf, err := obscuretestdata.DecodeToTempFile(f) + if err != nil { + panic(fmt.Sprintf("obscuretestdata.DecodeToTempFile(%s): %v", f, err)) + } + f = tf + } + b, err := os.ReadFile(f) if err != nil { panic(err) @@ -106,7 +116,7 @@ func TestReader(t *testing.T) { }(), }, { desc: "RLE2 buffer overrun - issue 5747", - input: mustLoadFile("testdata/fail-issue5747.bz2"), + input: mustLoadFile("testdata/fail-issue5747.bz2.base64"), fail: true, }, { desc: "out-of-range selector - issue 8363", diff --git a/src/compress/bzip2/testdata/fail-issue5747.bz2 b/src/compress/bzip2/testdata/fail-issue5747.bz2 deleted file mode 100644 index 2bf2b6ad99f473b6a1b61c5b049eb5be89c61057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7232 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