github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/cmds/exp/cbmem/timestamps_test.go (about)

     1  // Copyright 2016-2017 the u-root Authors. All rights reserved
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package main
     6  
     7  import (
     8  	"fmt"
     9  	"os"
    10  	"path/filepath"
    11  	"testing"
    12  )
    13  
    14  func TestReadTimeStamps(t *testing.T) {
    15  	tmpDir := t.TempDir()
    16  	for _, tt := range []struct {
    17  		name string
    18  		addr uint32
    19  		want string
    20  	}{
    21  		{
    22  			name: "addr = 0",
    23  			addr: 0,
    24  			want: "no time stamps",
    25  		},
    26  		{
    27  			name: "addr = 0xffffffff, err",
    28  			addr: 0xffffffff,
    29  			want: "creating TSHeader offsetReader @ 0xffffffff: cbmem tables can only be in 32-bit space and (0xffffffff-0x10000000f is outside it",
    30  		},
    31  		{
    32  			name: "addr = 0x000004ff, no err",
    33  			addr: 0x000004ff,
    34  			want: "26728810564608",
    35  		},
    36  	} {
    37  		t.Run(tt.name, func(t *testing.T) {
    38  			c := CBmem{}
    39  			c.TimeStampsTable.Addr = tt.addr
    40  
    41  			// Creating file
    42  			file, err := os.Create(filepath.Join(tmpDir, "file"))
    43  			if err != nil {
    44  				t.Errorf("Failed to create file: %v", err)
    45  			}
    46  			defer file.Close()
    47  
    48  			if err := genFile(file, t.Logf, apu2); err != nil {
    49  				t.Errorf("could not gen file: %v", err)
    50  			}
    51  
    52  			got, err := c.readTimeStamps(file)
    53  			if err != nil {
    54  				if err.Error() != tt.want {
    55  					t.Errorf("readTimeStamps() = %q, want: %q", err.Error(), tt.want)
    56  				}
    57  			} else {
    58  				if fmt.Sprint(got.BaseTime) != tt.want {
    59  					t.Errorf("readTimeStamps() = '%d', want: %q", got.BaseTime, tt.want)
    60  				}
    61  			}
    62  		})
    63  	}
    64  }