@@ -355,18 +355,19 @@ impl fmt::Display for FirmwareRevision {
355355
356356#[ cfg( test) ]
357357mod tests {
358- use std:: prelude:: v1:: * ;
358+ use std:: { prelude:: v1:: * , sync :: OnceLock } ;
359359
360- use lazy_static:: lazy_static;
361360 use pretty_assertions:: assert_eq;
362361
363362 use super :: * ;
364363 use crate :: bitfield:: Position ;
365364
366365 const PRIMES : & [ usize ] = & [ 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 ] ;
367366 const DMIDECODE_BIN : & [ u8 ] = include_bytes ! ( "../../tests/data/dmi.0.bin" ) ;
368- lazy_static ! {
369- static ref ENTRY_POINT : crate :: EntryPoint = crate :: EntryPoint :: search( DMIDECODE_BIN ) . unwrap( ) ;
367+
368+ fn entrypoint ( ) -> & ' static crate :: EntryPoint {
369+ static ENTRYPOINT : OnceLock < crate :: EntryPoint > = OnceLock :: new ( ) ;
370+ ENTRYPOINT . get_or_init ( || crate :: EntryPoint :: search ( DMIDECODE_BIN ) . unwrap ( ) )
370371 }
371372
372373 #[ test]
@@ -542,8 +543,8 @@ mod tests {
542543 minor : 0xFF ,
543544 } ) ,
544545 } ;
545- let bios_result = ENTRY_POINT
546- . structures ( & DMIDECODE_BIN [ ( ENTRY_POINT . smbios_address ( ) as usize ) ..] )
546+ let bios_result = entrypoint ( )
547+ . structures ( & DMIDECODE_BIN [ ( entrypoint ( ) . smbios_address ( ) as usize ) ..] )
547548 . find_map ( |s| {
548549 if let Ok ( crate :: Structure :: Bios ( bios) ) = s {
549550 Some ( bios)
@@ -580,8 +581,8 @@ mod tests {
580581 "Targeted content distribution is supported" ,
581582 "UEFI is supported" ,
582583 ] ;
583- let bios_result = ENTRY_POINT
584- . structures ( & DMIDECODE_BIN [ ( ENTRY_POINT . smbios_address ( ) as usize ) ..] )
584+ let bios_result = entrypoint ( )
585+ . structures ( & DMIDECODE_BIN [ ( entrypoint ( ) . smbios_address ( ) as usize ) ..] )
585586 . find_map ( |s| {
586587 if let Ok ( crate :: Structure :: Bios ( bios) ) = s {
587588 Some ( bios)
@@ -607,8 +608,8 @@ mod tests {
607608 fn dmi_bin_revisions ( ) {
608609 let bios_revision = "2.8" ;
609610 let firmware_revision = "N/A" ;
610- let bios_result = ENTRY_POINT
611- . structures ( & DMIDECODE_BIN [ ( ENTRY_POINT . smbios_address ( ) as usize ) ..] )
611+ let bios_result = entrypoint ( )
612+ . structures ( & DMIDECODE_BIN [ ( entrypoint ( ) . smbios_address ( ) as usize ) ..] )
612613 . find_map ( |s| {
613614 if let Ok ( crate :: Structure :: Bios ( bios) ) = s {
614615 Some ( bios)
@@ -632,8 +633,8 @@ mod tests {
632633 #[ test]
633634 fn dmi_bin_bios_size ( ) {
634635 let size = 32u64 << 20 ;
635- let bios_result = ENTRY_POINT
636- . structures ( & DMIDECODE_BIN [ ( ENTRY_POINT . smbios_address ( ) as usize ) ..] )
636+ let bios_result = entrypoint ( )
637+ . structures ( & DMIDECODE_BIN [ ( entrypoint ( ) . smbios_address ( ) as usize ) ..] )
637638 . find_map ( |s| {
638639 if let Ok ( crate :: Structure :: Bios ( bios) ) = s {
639640 Some ( bios)
0 commit comments