aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/newlink/hex_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/newlink/hex_test.go')
-rw-r--r--src/cmd/newlink/hex_test.go74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/cmd/newlink/hex_test.go b/src/cmd/newlink/hex_test.go
deleted file mode 100644
index b76b266558..0000000000
--- a/src/cmd/newlink/hex_test.go
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
- "encoding/hex"
- "fmt"
- "io/ioutil"
- "regexp"
- "strconv"
- "strings"
- "testing"
-)
-
-// mustParseHexdumpFile returns a block of data generated by
-// parsing the hex dump in the named file.
-// If the file cannot be read or does not contain a valid hex dump,
-// mustParseHexdumpFile calls t.Fatal.
-func mustParseHexdumpFile(t *testing.T, file string) []byte {
- hex, err := ioutil.ReadFile(file)
- if err != nil {
- t.Fatal(err)
- }
- data, err := parseHexdump(string(hex))
- if err != nil {
- t.Fatal(err)
- }
- return data
-}
-
-// parseHexdump parses the hex dump in text, which should be the
-// output of "hexdump -C" or Plan 9's "xd -b",
-// and returns the original data used to produce the dump.
-// It is meant to enable storing golden binary files as text, so that
-// changes to the golden files can be seen during code reviews.
-func parseHexdump(text string) ([]byte, error) {
- var out []byte
- for _, line := range strings.Split(text, "\n") {
- if i := strings.Index(line, "|"); i >= 0 { // remove text dump
- line = line[:i]
- }
- f := strings.Fields(line)
- if len(f) > 1+16 {
- return nil, fmt.Errorf("parsing hex dump: too many fields on line %q", line)
- }
- if len(f) == 0 || len(f) == 1 && f[0] == "*" { // all zeros block omitted
- continue
- }
- addr64, err := strconv.ParseUint(f[0], 16, 0)
- if err != nil {
- return nil, fmt.Errorf("parsing hex dump: invalid address %q", f[0])
- }
- addr := int(addr64)
- if len(out) < addr {
- out = append(out, make([]byte, addr-len(out))...)
- }
- for _, x := range f[1:] {
- val, err := strconv.ParseUint(x, 16, 8)
- if err != nil {
- return nil, fmt.Errorf("parsing hexdump: invalid hex byte %q", x)
- }
- out = append(out, byte(val))
- }
- }
- return out, nil
-}
-
-func hexdump(data []byte) string {
- text := hex.Dump(data) + fmt.Sprintf("%08x\n", len(data))
- text = regexp.MustCompile(`\n([0-9a-f]+(\s+00){16}.*\n)+`).ReplaceAllString(text, "\n*\n")
- return text
-}