]> Cypherpunks repositories - gostls13.git/commitdiff
archive/zip: move r.zip off disk, into reader_test.go
authorBrad Fitzpatrick <bradfitz@golang.org>
Wed, 14 Mar 2012 21:41:06 +0000 (14:41 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 14 Mar 2012 21:41:06 +0000 (14:41 -0700)
Makes certain virus scanners happier.

R=golang-dev, rsc, adg
CC=golang-dev
https://golang.org/cl/5823053

src/pkg/archive/zip/reader_test.go
src/pkg/archive/zip/testdata/r.zip [deleted file]

index c2db0dc4a7c65ee5586ae920bba979cdd852d3cb..5f1d1b28a989f43bcb8a7616d9bd48f99aa76c51 100644 (file)
@@ -7,10 +7,12 @@ package zip
 import (
        "bytes"
        "encoding/binary"
+       "encoding/hex"
        "io"
        "io/ioutil"
        "os"
        "path/filepath"
+       "regexp"
        "testing"
        "time"
 )
@@ -62,13 +64,14 @@ var tests = []ZipTest{
                },
        },
        {
-               Name: "r.zip",
+               Name:   "r.zip",
+               Source: returnRecursiveZip,
                File: []ZipTestFile{
                        {
-                               Name:  "r/r.zip",
-                               File:  "r.zip",
-                               Mtime: "03-04-10 00:24:16",
-                               Mode:  0666,
+                               Name:    "r/r.zip",
+                               Content: rZipBytes(),
+                               Mtime:   "03-04-10 00:24:16",
+                               Mode:    0666,
                        },
                },
        },
@@ -415,3 +418,49 @@ func returnCorruptNotStreamedZip() (r io.ReaderAt, size int64) {
                // is what matters.
        })
 }
+
+// rZipBytes returns the bytes of a recursive zip file, without
+// putting it on disk and triggering certain virus scanners.
+func rZipBytes() []byte {
+       s := `
+0000000 50 4b 03 04 14 00 00 00 08 00 08 03 64 3c f9 f4
+0000010 89 64 48 01 00 00 b8 01 00 00 07 00 00 00 72 2f
+0000020 72 2e 7a 69 70 00 25 00 da ff 50 4b 03 04 14 00
+0000030 00 00 08 00 08 03 64 3c f9 f4 89 64 48 01 00 00
+0000040 b8 01 00 00 07 00 00 00 72 2f 72 2e 7a 69 70 00
+0000050 2f 00 d0 ff 00 25 00 da ff 50 4b 03 04 14 00 00
+0000060 00 08 00 08 03 64 3c f9 f4 89 64 48 01 00 00 b8
+0000070 01 00 00 07 00 00 00 72 2f 72 2e 7a 69 70 00 2f
+0000080 00 d0 ff c2 54 8e 57 39 00 05 00 fa ff c2 54 8e
+0000090 57 39 00 05 00 fa ff 00 05 00 fa ff 00 14 00 eb
+00000a0 ff c2 54 8e 57 39 00 05 00 fa ff 00 05 00 fa ff
+00000b0 00 14 00 eb ff 42 88 21 c4 00 00 14 00 eb ff 42
+00000c0 88 21 c4 00 00 14 00 eb ff 42 88 21 c4 00 00 14
+00000d0 00 eb ff 42 88 21 c4 00 00 14 00 eb ff 42 88 21
+00000e0 c4 00 00 00 00 ff ff 00 00 00 ff ff 00 34 00 cb
+00000f0 ff 42 88 21 c4 00 00 00 00 ff ff 00 00 00 ff ff
+0000100 00 34 00 cb ff 42 e8 21 5e 0f 00 00 00 ff ff 0a
+0000110 f0 66 64 12 61 c0 15 dc e8 a0 48 bf 48 af 2a b3
+0000120 20 c0 9b 95 0d c4 67 04 42 53 06 06 06 40 00 06
+0000130 00 f9 ff 6d 01 00 00 00 00 42 e8 21 5e 0f 00 00
+0000140 00 ff ff 0a f0 66 64 12 61 c0 15 dc e8 a0 48 bf
+0000150 48 af 2a b3 20 c0 9b 95 0d c4 67 04 42 53 06 06
+0000160 06 40 00 06 00 f9 ff 6d 01 00 00 00 00 50 4b 01
+0000170 02 14 00 14 00 00 00 08 00 08 03 64 3c f9 f4 89
+0000180 64 48 01 00 00 b8 01 00 00 07 00 00 00 00 00 00
+0000190 00 00 00 00 00 00 00 00 00 00 00 72 2f 72 2e 7a
+00001a0 69 70 50 4b 05 06 00 00 00 00 01 00 01 00 35 00
+00001b0 00 00 6d 01 00 00 00 00`
+       s = regexp.MustCompile(`[0-9a-f]{7}`).ReplaceAllString(s, "")
+       s = regexp.MustCompile(`\s+`).ReplaceAllString(s, "")
+       b, err := hex.DecodeString(s)
+       if err != nil {
+               panic(err)
+       }
+       return b
+}
+
+func returnRecursiveZip() (r io.ReaderAt, size int64) {
+       b := rZipBytes()
+       return bytes.NewReader(b), int64(len(b))
+}
diff --git a/src/pkg/archive/zip/testdata/r.zip b/src/pkg/archive/zip/testdata/r.zip
deleted file mode 100644 (file)
index ea0fa2f..0000000
Binary files a/src/pkg/archive/zip/testdata/r.zip and /dev/null differ