github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/pkg/memio/uintn_test.go (about)

     1  // Copyright 2012-2019 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 memio
     6  
     7  import "testing"
     8  
     9  func TestUint8(t *testing.T) {
    10  	for _, tt := range []struct {
    11  		name       string
    12  		valueUint8 Uint8
    13  		value8     uint8
    14  		expString  string
    15  		expSize    int64
    16  	}{
    17  		{
    18  			name:       "uint8",
    19  			valueUint8: Uint8(45),
    20  			value8:     uint8(45),
    21  			expString:  "0x2d",
    22  			expSize:    1,
    23  		},
    24  	} {
    25  		t.Run(tt.name+"Size8", func(t *testing.T) {
    26  			if tt.valueUint8.Size() != tt.expSize {
    27  				t.Errorf("%q failed. Got: %d, Want: %d", tt.name+"Size8", tt.valueUint8.Size(), tt.expSize)
    28  			}
    29  		})
    30  
    31  		t.Run(tt.name+"String8", func(t *testing.T) {
    32  			if tt.valueUint8.String() != tt.expString {
    33  				t.Errorf("%q failed. Got: %q, Want: %q", tt.name+"String8", tt.valueUint8.String(), tt.expString)
    34  			}
    35  		})
    36  	}
    37  }
    38  
    39  func TestUint16(t *testing.T) {
    40  	for _, tt := range []struct {
    41  		name      string
    42  		value     Uint16
    43  		value16   uint16
    44  		expString string
    45  		expSize   int64
    46  	}{
    47  		{
    48  			name:      "uint16",
    49  			value:     Uint16(45),
    50  			value16:   uint16(45),
    51  			expString: "0x002d",
    52  			expSize:   2,
    53  		},
    54  	} {
    55  		t.Run(tt.name+"Size16", func(t *testing.T) {
    56  			if tt.value.Size() != tt.expSize {
    57  				t.Errorf("%q failed. Got: %d, Want: %d", tt.name+"Size16", tt.value.Size(), tt.expSize)
    58  			}
    59  		})
    60  
    61  		t.Run(tt.name+"String16", func(t *testing.T) {
    62  			if tt.value.String() != tt.expString {
    63  				t.Errorf("%q failed. Got: %q, Want: %q", tt.name+"String16", tt.value.String(), tt.expString)
    64  			}
    65  		})
    66  	}
    67  }
    68  
    69  func TestUint32(t *testing.T) {
    70  	for _, tt := range []struct {
    71  		name      string
    72  		value     Uint32
    73  		value32   uint32
    74  		expString string
    75  		expSize   int64
    76  	}{
    77  		{
    78  			name:      "uint32",
    79  			value:     Uint32(45),
    80  			value32:   uint32(45),
    81  			expString: "0x0000002d",
    82  			expSize:   4,
    83  		},
    84  	} {
    85  		t.Run(tt.name+"Size32", func(t *testing.T) {
    86  			if tt.value.Size() != tt.expSize {
    87  				t.Errorf("%q failed. Got: %d, Want: %d", tt.name+"Size32", tt.value.Size(), tt.expSize)
    88  			}
    89  		})
    90  
    91  		t.Run(tt.name+"String32", func(t *testing.T) {
    92  			if tt.value.String() != tt.expString {
    93  				t.Errorf("%q failed. Got: %q, Want: %q", tt.name+"String32", tt.value.String(), tt.expString)
    94  			}
    95  		})
    96  	}
    97  }
    98  
    99  func TestUint64(t *testing.T) {
   100  	for _, tt := range []struct {
   101  		name      string
   102  		value     Uint64
   103  		value64   uint64
   104  		expString string
   105  		expSize   int64
   106  	}{
   107  
   108  		{
   109  			name:      "uint64",
   110  			value:     Uint64(45),
   111  			value64:   uint64(45),
   112  			expString: "0x000000000000002d",
   113  			expSize:   8,
   114  		},
   115  	} {
   116  		t.Run(tt.name+"Size64", func(t *testing.T) {
   117  			if tt.value.Size() != tt.expSize {
   118  				t.Errorf("%q failed. Got: %d, Want: %d", tt.name+"Size", tt.value.Size(), tt.expSize)
   119  			}
   120  		})
   121  
   122  		t.Run(tt.name+"String64", func(t *testing.T) {
   123  			if tt.value.String() != tt.expString {
   124  				t.Errorf("%q failed. Got: %q, Want: %q", tt.name+"String", tt.value.String(), tt.expString)
   125  			}
   126  		})
   127  	}
   128  }
   129  
   130  func TestUintByteSlice(t *testing.T) {
   131  	for _, tt := range []struct {
   132  		name      string
   133  		value     ByteSlice
   134  		valueByte []byte
   135  		expString string
   136  		expSize   int64
   137  	}{
   138  		{
   139  			name:      "ByteSlice1",
   140  			value:     ByteSlice([]byte{1}),
   141  			valueByte: []byte{1},
   142  			expString: "0x01",
   143  			expSize:   1,
   144  		},
   145  		{
   146  			name:      "ByteSlice2",
   147  			value:     ByteSlice([]byte{1, 2}),
   148  			valueByte: []byte{1, 2},
   149  			expString: "0x0102",
   150  			expSize:   2,
   151  		},
   152  		{
   153  			name:      "ByteSlice4",
   154  			value:     ByteSlice([]byte{1, 2, 3, 4}),
   155  			valueByte: []byte{1, 2, 3, 4},
   156  			expString: "0x01020304",
   157  			expSize:   4,
   158  		},
   159  		{
   160  			name:      "ByteSlice8",
   161  			value:     ByteSlice([]byte{1, 2, 3, 4, 5, 6, 7, 8}),
   162  			valueByte: []byte{1, 2, 3, 4, 5, 6, 7, 8},
   163  			expString: "0x0102030405060708",
   164  			expSize:   8,
   165  		},
   166  	} {
   167  		t.Run(tt.name+"SizeByteSlice", func(t *testing.T) {
   168  			if tt.value.Size() != tt.expSize {
   169  				t.Errorf("%q failed. Got: %d, Want: %d", tt.name+"SizeByteSlice", tt.value.Size(), tt.expSize)
   170  			}
   171  		})
   172  
   173  		t.Run(tt.name+"StringByteSlice", func(t *testing.T) {
   174  			if tt.value.String() != tt.expString {
   175  				t.Errorf("%q failed. Got: %q, Want: %q", tt.name+"StringByteSlice", tt.value.String(), tt.expString)
   176  			}
   177  		})
   178  	}
   179  }