|
774 | 774 | If Selective self-test is pending on power-up, resume after 0 minute delay. |
775 | 775 | """ |
776 | 776 |
|
| 777 | +output_transcend_vendor = """ |
| 778 | +scopepro-cli 1.21 2023/11/24 |
| 779 | +Copyright (c) 2021-24, Transcend information, Inc. All rights reserved. |
| 780 | +
|
| 781 | +[/dev/sda] |
| 782 | +---------- Disk Information ---------- |
| 783 | +Model :TS32XBTMM1600 |
| 784 | +FW Version :O0918B |
| 785 | +Serial No :F318410080 |
| 786 | +Support Interface :SATA |
| 787 | +---------------- S.M.A.R.T Information ---------------- |
| 788 | +01 Read Error Rate 0 |
| 789 | +05 Reallocated Sectors Count 0 |
| 790 | +09 Power-On Hour Count 2295 |
| 791 | +0C Power Cycle Count 2580 |
| 792 | +A0 Uncorrectable sectors count when read/write 0 |
| 793 | +A1 Number of Valid Spare Blocks 56 |
| 794 | +A3 Number of Initial Invalid Blocks 12 |
| 795 | +A4 Total Erase Count 924312 |
| 796 | +A5 Maximum Erase Count 931 |
| 797 | +A6 Minimum Erase Count 831 |
| 798 | +A7 Average Erase Count 898 |
| 799 | +A8 Max Erase Count of Spec 3000 |
| 800 | +A9 Remain Life (percentage) 71 |
| 801 | +AF Program fail count in worst die 0 |
| 802 | +B0 Erase fail count in worst die 0 |
| 803 | +B1 Total Wear Level Count 481 |
| 804 | +B2 Runtime Invalid Block Count 0 |
| 805 | +B5 Total Program Fail Count 0 |
| 806 | +B6 Total Erase Fail Count 0 |
| 807 | +C0 Power-Off Retract Count 59 |
| 808 | +C2 Controlled Temperature 40 |
| 809 | +C3 Hardware ECC Recovered 1668 |
| 810 | +C4 Reallocation Event Count 0 |
| 811 | +C5 Current Pending Sector Count 0 |
| 812 | +C6 Uncorrectable Error Count Off-Line 0 |
| 813 | +C7 Ultra DMA CRC Error Count 0 |
| 814 | +E8 Available Reserved Space 100 |
| 815 | +F1 Total LBA Written (each write unit=32MB) 671696 |
| 816 | +F2 Total LBA Read (each read unit=32MB) 393162 |
| 817 | +F5 Flash Write Sector Count 924312 |
| 818 | +---------------- Health Information ---------------- |
| 819 | +Health Percentage: 71% |
| 820 | +""" |
| 821 | + |
777 | 822 | class TestSsdGeneric: |
778 | 823 | @mock.patch('sonic_platform_base.sonic_ssd.ssd_generic.SsdUtil._execute_shell', mock.MagicMock(return_value=output_nvme_ssd)) |
779 | 824 | def test_nvme_ssd(self): |
@@ -891,3 +936,15 @@ def test_swissbit_ssd(self, mock_exec): |
891 | 936 | assert swissbit_ssd.get_firmware() == "SBR15004" |
892 | 937 | assert swissbit_ssd.get_temperature() == '25' |
893 | 938 | assert swissbit_ssd.get_serial() == "00006022750795000010" |
| 939 | + |
| 940 | + @mock.patch('sonic_platform_base.sonic_ssd.ssd_generic.SsdUtil._execute_shell') |
| 941 | + def test_transcend_ssd(self, mock_exec): |
| 942 | + mock_exec.return_value = output_transcend_vendor |
| 943 | + transcend_ssd = SsdUtil('/dev/sda') |
| 944 | + transcend_ssd.vendor_ssd_info = mock_exec.return_value |
| 945 | + transcend_ssd.parse_vendor_ssd_info('Transcend') |
| 946 | + assert transcend_ssd.get_health() == '71' |
| 947 | + assert transcend_ssd.get_model() == 'TS32XBTMM1600' |
| 948 | + assert transcend_ssd.get_firmware() == "O0918B" |
| 949 | + assert transcend_ssd.get_temperature() == '40' |
| 950 | + assert transcend_ssd.get_serial() == "F318410080" |
0 commit comments