github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/pkg/uefivars/boot/efiDppACPI_test.go (about)

     1  // Copyright 2020 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  // SPDX-License-Identifier: BSD-3-Clause
     6  //
     7  
     8  package boot
     9  
    10  import (
    11  	"testing"
    12  )
    13  
    14  //func ParseDppAcpiExDevPath(h EfiDevicePathProtocolHdr, b []byte) (*DppAcpiExDevPath, error)
    15  func TestParseDppAcpiExDevPath(t *testing.T) {
    16  	in := []byte{
    17  		0, 0, 0, 1,
    18  		0, 0, 0, 2,
    19  		0, 0, 0, 3,
    20  	}
    21  	//not sure what's supposed to go into these fields, so use made-up values
    22  	in = append(in, cstr("HIDSTR")...)
    23  	in = append(in, cstr("UIDSTR")...)
    24  	in = append(in, cstr("CIDSTR")...)
    25  	hdr := EfiDevicePathProtocolHdr{
    26  		ProtoType:    2,
    27  		ProtoSubType: 2,
    28  		Length:       uint16(len(in) + 4),
    29  	}
    30  
    31  	p, err := ParseDppAcpiExDevPath(hdr, in)
    32  	if err != nil {
    33  		t.Error(err)
    34  	} else {
    35  		want := "ACPI_EX(0x00000001,0x00000002,0x00000003,HIDSTR,UIDSTR,CIDSTR)"
    36  		got := p.String()
    37  		if got != want {
    38  			t.Errorf("want %s, got %s", want, got)
    39  		}
    40  		gotp := p.ProtoSubTypeStr()
    41  		wantp := "Expanded Device Path"
    42  		if gotp != wantp {
    43  			t.Errorf("want %s, got %s", wantp, gotp)
    44  		}
    45  	}
    46  }
    47  
    48  func cstr(s string) []byte { return append([]byte(s), 0) }
    49  
    50  //func ParseDppAcpiDevPath(h EfiDevicePathProtocolHdr, b []byte) (*DppAcpiDevPath, error)
    51  func TestParseDppAcpiDevPath(t *testing.T) {
    52  	in := []byte{
    53  		0, 0, 0, 1,
    54  		0, 0, 0, 2,
    55  	}
    56  	hdr := EfiDevicePathProtocolHdr{
    57  		ProtoType:    2,
    58  		ProtoSubType: 4,
    59  		Length:       uint16(len(in) + 4),
    60  	}
    61  	p, err := ParseDppAcpiDevPath(hdr, in)
    62  	if err != nil {
    63  		t.Error(err)
    64  	} else {
    65  		want := "ACPI(0x00000001,0x00000002)"
    66  		got := p.String()
    67  		if got != want {
    68  			t.Errorf("want %s, got %s", want, got)
    69  		}
    70  		gotp := p.ProtoSubTypeStr()
    71  		wantp := "NVDIMM"
    72  		if gotp != wantp {
    73  			t.Errorf("want %s, got %s", wantp, gotp)
    74  		}
    75  	}
    76  }