@@ -577,6 +577,68 @@ mod tests {
577577 ) ;
578578 }
579579
580+ #[ test]
581+ fn can_parse_ccg8_binary_fl16_ai300 ( ) {
582+ let mut pd_bin_path = PathBuf :: from ( env ! ( "CARGO_MANIFEST_DIR" ) ) ;
583+ pd_bin_path. push ( "test_bins/fl16-ai300-pd-0.0.22.bin" ) ;
584+
585+ let data = fs:: read ( pd_bin_path) . unwrap ( ) ;
586+ let ccg3_ver = read_versions ( & data, SiliconId :: Ccg3 ) ;
587+ let ccg5_ver = read_versions ( & data, SiliconId :: Ccg5 ) ;
588+ let ccg6_ver = read_versions ( & data, SiliconId :: Ccg6 ) ;
589+ let ccg8_ver = read_versions ( & data, SiliconId :: Ccg8 ) ;
590+ assert ! ( ccg3_ver. is_none( ) ) ;
591+ assert ! ( ccg5_ver. is_none( ) ) ;
592+ assert ! ( ccg6_ver. is_none( ) ) ;
593+ assert ! ( ccg8_ver. is_some( ) ) ;
594+
595+ assert_eq ! (
596+ ccg8_ver,
597+ Some ( {
598+ PdFirmwareFile {
599+ backup_fw: PdFirmware {
600+ silicon_id: 0x11C5 ,
601+ silicon_family: 0x3580 ,
602+ base_version: BaseVersion {
603+ major: 3 ,
604+ minor: 7 ,
605+ patch: 0 ,
606+ build_number: 407 ,
607+ } ,
608+ app_version: AppVersion {
609+ application: Application :: Notebook ,
610+ major: 0 ,
611+ minor: 0 ,
612+ circuit: 0x22 ,
613+ } ,
614+ start_row: 290 ,
615+ size: 129912 ,
616+ row_size: 0x100 ,
617+ } ,
618+ main_fw: PdFirmware {
619+ silicon_id: 0x11C5 ,
620+ silicon_family: 0x3580 ,
621+ base_version: BaseVersion {
622+ major: 3 ,
623+ minor: 7 ,
624+ patch: 0 ,
625+ build_number: 407 ,
626+ } ,
627+ app_version: AppVersion {
628+ application: Application :: Notebook ,
629+ major: 0 ,
630+ minor: 0 ,
631+ circuit: 0x22 ,
632+ } ,
633+ start_row: 29 ,
634+ size: 42816 ,
635+ row_size: 0x100 ,
636+ } ,
637+ }
638+ } )
639+ ) ;
640+ }
641+
580642 #[ test]
581643 fn can_parse_ccg8_binary_gnss ( ) {
582644 let mut pd_bin_path = PathBuf :: from ( env ! ( "CARGO_MANIFEST_DIR" ) ) ;
0 commit comments