// 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 elf

import (
	"io"
	"path"
	"reflect"
	"testing"
)

// TODO: remove duplicate code
func TestSymbols(t *testing.T) {
	do := func(file string, ts []Symbol, getfunc func(*File) ([]Symbol, error)) {
		var f *File
		var err error
		if path.Ext(file) == ".gz" {
			var r io.ReaderAt
			if r, err = decompress(file); err == nil {
				f, err = NewFile(r)
			}
		} else {
			f, err = Open(file)
		}
		if err != nil {
			t.Errorf("TestSymbols: cannot open file %s: %v", file, err)
			return
		}
		defer f.Close()
		fs, err := getfunc(f)
		if err != nil && err != ErrNoSymbols {
			t.Error(err)
			return
		} else if err == ErrNoSymbols {
			fs = []Symbol{}
		}
		if !reflect.DeepEqual(ts, fs) {
			t.Errorf("%s: Symbols = %v, want %v", file, ts, fs)
		}
	}
	for file, ts := range symbolsGolden {
		do(file, ts, (*File).Symbols)
	}
	for file, ts := range dynamicSymbolsGolden {
		do(file, ts, (*File).DynamicSymbols)
	}
}

// golden symbol table data generated by testdata/getgoldsym.c

var symbolsGolden = map[string][]Symbol{
	"testdata/gcc-amd64-linux-exec": {
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1,
			Value:   0x400200,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x2,
			Value:   0x40021C,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x3,
			Value:   0x400240,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x4,
			Value:   0x400268,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x5,
			Value:   0x400288,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x6,
			Value:   0x4002E8,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x7,
			Value:   0x400326,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x8,
			Value:   0x400330,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x9,
			Value:   0x400350,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xA,
			Value:   0x400368,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xB,
			Value:   0x400398,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xC,
			Value:   0x4003B0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xD,
			Value:   0x4003E0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xE,
			Value:   0x400594,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xF,
			Value:   0x4005A4,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x10,
			Value:   0x4005B8,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x11,
			Value:   0x4005E0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x12,
			Value:   0x600688,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x13,
			Value:   0x600698,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x14,
			Value:   0x6006A8,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x15,
			Value:   0x6006B0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x16,
			Value:   0x600850,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x17,
			Value:   0x600858,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x18,
			Value:   0x600880,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x19,
			Value:   0x600898,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1A,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1B,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1C,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1D,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1E,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1F,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x20,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x21,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "init.c",
			Info:    0x4,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "initfini.c",
			Info:    0x4,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "call_gmon_start",
			Info:    0x2,
			Other:   0x0,
			Section: 0xD,
			Value:   0x40040C,
			Size:    0x0,
		},
		Symbol{
			Name:    "crtstuff.c",
			Info:    0x4,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "__CTOR_LIST__",
			Info:    0x1,
			Other:   0x0,
			Section: 0x12,
			Value:   0x600688,
			Size:    0x0,
		},
		Symbol{
			Name:    "__DTOR_LIST__",
			Info:    0x1,
			Other:   0x0,
			Section: 0x13,
			Value:   0x600698,
			Size:    0x0,
		},
		Symbol{
			Name:    "__JCR_LIST__",
			Info:    0x1,
			Other:   0x0,
			Section: 0x14,
			Value:   0x6006A8,
			Size:    0x0,
		},
		Symbol{
			Name:    "__do_global_dtors_aux",
			Info:    0x2,
			Other:   0x0,
			Section: 0xD,
			Value:   0x400430,
			Size:    0x0,
		},
		Symbol{
			Name:    "completed.6183",
			Info:    0x1,
			Other:   0x0,
			Section: 0x19,
			Value:   0x600898,
			Size:    0x1,
		},
		Symbol{
			Name:    "p.6181",
			Info:    0x1,
			Other:   0x0,
			Section: 0x18,
			Value:   0x600890,
			Size:    0x0,
		},
		Symbol{
			Name:    "frame_dummy",
			Info:    0x2,
			Other:   0x0,
			Section: 0xD,
			Value:   0x400470,
			Size:    0x0,
		},
		Symbol{
			Name:    "crtstuff.c",
			Info:    0x4,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "__CTOR_END__",
			Info:    0x1,
			Other:   0x0,
			Section: 0x12,
			Value:   0x600690,
			Size:    0x0,
		},
		Symbol{
			Name:    "__DTOR_END__",
			Info:    0x1,
			Other:   0x0,
			Section: 0x13,
			Value:   0x6006A0,
			Size:    0x0,
		},
		Symbol{
			Name:    "__FRAME_END__",
			Info:    0x1,
			Other:   0x0,
			Section: 0x11,
			Value:   0x400680,
			Size:    0x0,
		},
		Symbol{
			Name:    "__JCR_END__",
			Info:    0x1,
			Other:   0x0,
			Section: 0x14,
			Value:   0x6006A8,
			Size:    0x0,
		},
		Symbol{
			Name:    "__do_global_ctors_aux",
			Info:    0x2,
			Other:   0x0,
			Section: 0xD,
			Value:   0x400560,
			Size:    0x0,
		},
		Symbol{
			Name:    "initfini.c",
			Info:    0x4,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "hello.c",
			Info:    0x4,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "_GLOBAL_OFFSET_TABLE_",
			Info:    0x1,
			Other:   0x2,
			Section: 0x17,
			Value:   0x600858,
			Size:    0x0,
		},
		Symbol{
			Name:    "__init_array_end",
			Info:    0x0,
			Other:   0x2,
			Section: 0x12,
			Value:   0x600684,
			Size:    0x0,
		},
		Symbol{
			Name:    "__init_array_start",
			Info:    0x0,
			Other:   0x2,
			Section: 0x12,
			Value:   0x600684,
			Size:    0x0,
		},
		Symbol{
			Name:    "_DYNAMIC",
			Info:    0x1,
			Other:   0x2,
			Section: 0x15,
			Value:   0x6006B0,
			Size:    0x0,
		},
		Symbol{
			Name:    "data_start",
			Info:    0x20,
			Other:   0x0,
			Section: 0x18,
			Value:   0x600880,
			Size:    0x0,
		},
		Symbol{
			Name:    "__libc_csu_fini",
			Info:    0x12,
			Other:   0x0,
			Section: 0xD,
			Value:   0x4004C0,
			Size:    0x2,
		},
		Symbol{
			Name:    "_start",
			Info:    0x12,
			Other:   0x0,
			Section: 0xD,
			Value:   0x4003E0,
			Size:    0x0,
		},
		Symbol{
			Name:    "__gmon_start__",
			Info:    0x20,
			Other:   0x0,
			Section: 0x0,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "_Jv_RegisterClasses",
			Info:    0x20,
			Other:   0x0,
			Section: 0x0,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "puts@@GLIBC_2.2.5",
			Info:    0x12,
			Other:   0x0,
			Section: 0x0,
			Value:   0x0,
			Size:    0x18C,
		},
		Symbol{
			Name:    "_fini",
			Info:    0x12,
			Other:   0x0,
			Section: 0xE,
			Value:   0x400594,
			Size:    0x0,
		},
		Symbol{
			Name:    "__libc_start_main@@GLIBC_2.2.5",
			Info:    0x12,
			Other:   0x0,
			Section: 0x0,
			Value:   0x0,
			Size:    0x1C2,
		},
		Symbol{
			Name:    "_IO_stdin_used",
			Info:    0x11,
			Other:   0x0,
			Section: 0xF,
			Value:   0x4005A4,
			Size:    0x4,
		},
		Symbol{
			Name:    "__data_start",
			Info:    0x10,
			Other:   0x0,
			Section: 0x18,
			Value:   0x600880,
			Size:    0x0,
		},
		Symbol{
			Name:    "__dso_handle",
			Info:    0x11,
			Other:   0x2,
			Section: 0x18,
			Value:   0x600888,
			Size:    0x0,
		},
		Symbol{
			Name:    "__libc_csu_init",
			Info:    0x12,
			Other:   0x0,
			Section: 0xD,
			Value:   0x4004D0,
			Size:    0x89,
		},
		Symbol{
			Name:    "__bss_start",
			Info:    0x10,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x600898,
			Size:    0x0,
		},
		Symbol{
			Name:    "_end",
			Info:    0x10,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x6008A0,
			Size:    0x0,
		},
		Symbol{
			Name:    "_edata",
			Info:    0x10,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x600898,
			Size:    0x0,
		},
		Symbol{
			Name:    "main",
			Info:    0x12,
			Other:   0x0,
			Section: 0xD,
			Value:   0x400498,
			Size:    0x1B,
		},
		Symbol{
			Name:    "_init",
			Info:    0x12,
			Other:   0x0,
			Section: 0xB,
			Value:   0x400398,
			Size:    0x0,
		},
	},
	"testdata/go-relocation-test-clang-x86.obj": {
		Symbol{
			Name:    "go-relocation-test-clang.c",
			Info:    0x4,
			Other:   0x0,
			Section: 0xFFF1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    ".Linfo_string0",
			Info:    0x0,
			Other:   0x0,
			Section: 0xC,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    ".Linfo_string1",
			Info:    0x0,
			Other:   0x0,
			Section: 0xC,
			Value:   0x2C,
			Size:    0x0,
		},
		Symbol{
			Name:    ".Linfo_string2",
			Info:    0x0,
			Other:   0x0,
			Section: 0xC,
			Value:   0x47,
			Size:    0x0,
		},
		Symbol{
			Name:    ".Linfo_string3",
			Info:    0x0,
			Other:   0x0,
			Section: 0xC,
			Value:   0x4C,
			Size:    0x0,
		},
		Symbol{
			Name:    ".Linfo_string4",
			Info:    0x0,
			Other:   0x0,
			Section: 0xC,
			Value:   0x4E,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x1,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x2,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x3,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x4,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x6,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x7,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x8,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xA,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xC,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xD,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xE,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0xF,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "",
			Info:    0x3,
			Other:   0x0,
			Section: 0x10,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "v",
			Info:    0x11,
			Other:   0x0,
			Section: 0xFFF2,
			Value:   0x4,
			Size:    0x4,
		},
	},
	"testdata/hello-world-core.gz": {},
}

var dynamicSymbolsGolden = map[string][]Symbol{
	"testdata/gcc-amd64-linux-exec": {
		Symbol{
			Name:    "__gmon_start__",
			Info:    0x20,
			Other:   0x0,
			Section: 0x0,
			Value:   0x0,
			Size:    0x0,
		},
		Symbol{
			Name:    "puts",
			Info:    0x12,
			Other:   0x0,
			Section: 0x0,
			Value:   0x0,
			Size:    0x18C,
		},
		Symbol{
			Name:    "__libc_start_main",
			Info:    0x12,
			Other:   0x0,
			Section: 0x0,
			Value:   0x0,
			Size:    0x1C2,
		},
	},
	"testdata/go-relocation-test-clang-x86.obj": {},
	"testdata/hello-world-core.gz":              {},
}
