local lu = require('luaunit')
local sml = require('sml')
local skynet = require('skynet')
TestSmlInit = {}
local saved_timeout_call
local saved_get_ctrl_ld_list
local saved_get_ctrl_init_state
function TestSmlInit:setUp()
saved_timeout_call = function() end
sml.modify_timeout_call(function(...)
return {}
end)
saved_get_ctrl_ld_list = sml.get_ctrl_ld_list
saved_get_ctrl_init_state = sml.get_ctrl_init_state
sml.get_ctrl_ld_list = nil
sml.get_ctrl_init_state = nil
end
function TestSmlInit:tearDown()
sml.modify_timeout_call(saved_timeout_call)
sml.get_ctrl_ld_list = saved_get_ctrl_ld_list
sml.get_ctrl_init_state = saved_get_ctrl_init_state
end
function TestSmlInit:test_register_controller()
sml.register_controller(1, 99, 1, { data = 'test' })
lu.assertTrue(true)
end
function TestSmlInit:test_unregister_controller()
sml.unregister_controller(1, 99, 1, { data = 'test' })
lu.assertTrue(true)
end
function TestSmlInit:test_register_dev_controller()
sml.register_dev_controller(1, 99, 1, { data = 'test' }, '/dev/sda')
lu.assertTrue(true)
end
function TestSmlInit:test_pd_operation()
sml.pd_operation(1, 2, 3, 'data')
lu.assertTrue(true)
end
function TestSmlInit:test_pd_upgrade_firmware()
sml.pd_upgrade_firmware(1, 2, '/path/to/firmware')
lu.assertTrue(true)
end
function TestSmlInit:test_upgrade_ctrl_process()
sml.upgrade_ctrl_process(1, '/path/to/firmware')
lu.assertTrue(true)
end
function TestSmlInit:test_pd_active_firmware()
sml.pd_active_firmware(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_log_get_drive_log()
local basic_info = {
log_source = 1,
log_rotate_num = 2,
pd_power_state = 3,
pd_interface_type = 4,
pd_media_type = 5,
pd_slot_number = 6,
pd_remnant_media_wearout = 7,
pd_enclosure_id = 8,
pd_device_name = 'drive0',
pd_interface_type_str = 'SAS',
pd_manufacturer = 'HP',
pd_serial_number = 'SN001',
pd_model = 'ModelA',
}
sml.pd_log_get_drive_log(1, 1, 2, basic_info)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_get_smart_info_str()
sml.pd_get_smart_info_str(1, 2, 1)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_get_io_diagnose_info()
local basic_info = {
log_source = 1,
log_rotate_num = 2,
pd_power_state = 3,
pd_interface_type = 4,
pd_media_type = 5,
pd_rebuild_progress = 6,
pd_health = 7,
pd_prefail_error_count = 100,
pd_media_error_count = 200,
pd_other_error_count = 300,
pd_device_name = 'drive0',
pd_interface_type_str = 'SAS',
pd_manufacturer = 'HP',
pd_serial_number = 'SN001',
pd_model = 'ModelA',
}
sml.pd_get_io_diagnose_info(1, 1, 2, basic_info)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_get_write_io_latency_info()
sml.pd_get_write_io_latency_info(1, 2, 1, 'vendor')
lu.assertTrue(true)
end
function TestSmlInit:test_pd_get_read_io_latency_info()
sml.pd_get_read_io_latency_info(1, 2, 1, 'vendor')
lu.assertTrue(true)
end
function TestSmlInit:test_pd_get_sata_hwdefined_smart_info()
sml.pd_get_sata_hwdefined_smart_info(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_get_sata_log_directory()
sml.pd_get_sata_log_directory(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_get_drive_fault_log()
sml.pd_get_drive_fault_log(1, 2, 1, 0, 512)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_log_write_subhealthy_info()
local basic_info = {
update_support_flag = 1,
hw_defined_valid_flag = 1,
vendor_valid_flag = 1,
first_start_flag = 0,
vendor_nand_write = 1000,
vendor_host_write = 2000,
hw_defined_nand_write_l = 3000,
hw_defined_nand_write_h = 0,
hw_defined_host_write_l = 4000,
hw_defined_host_write_h = 0,
last_nand_written = 5000,
last_host_written = 6000,
pd_device_name = 'drive0',
pd_serial_number = 'SN001',
}
sml.pd_log_write_subhealthy_info(1, 90, basic_info)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_diag_by_smart_log()
sml.pd_diag_by_smart_log(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_diag_by_ext_error_log()
sml.pd_diag_by_ext_error_log(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_diag_by_ext_self_test_log()
sml.pd_diag_by_ext_self_test_log(1, 2, 1)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_diag_get_sata_self_test_status()
sml.pd_diag_get_sata_self_test_status(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_diag_encl_comm_error()
sml.pd_diag_encl_comm_error(1, 2, 3)
lu.assertTrue(true)
end
function TestSmlInit:test_pd_diag_sense_error()
sml.pd_diag_sense_error(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_dump_ctrl_single_log()
sml.dump_ctrl_single_log(1, '/src/', 1, 'logname')
lu.assertTrue(true)
end
function TestSmlInit:test_parse_controller_bin_log()
sml.parse_controller_bin_log(1, '/src/', '/dest/')
lu.assertTrue(true)
end
function TestSmlInit:test_ctrl_operation()
sml.ctrl_operation(1, 1, 100)
lu.assertTrue(true)
end
function TestSmlInit:test_trans_drive_data()
sml.trans_drive_data(1, '{ "key": "val" }')
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_pd_list()
sml.get_ctrl_pd_list(1)
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_sas_phy_err()
sml.get_ctrl_sas_phy_err(1, true)
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_ld_list()
sml.get_ctrl_ld_list(1)
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_array_list()
sml.get_ctrl_array_list(1)
lu.assertTrue(true)
end
function TestSmlInit:test_update_ctrl_init_state()
local result = sml.update_ctrl_init_state(1)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_ctrl_init_state_success()
sml.update_ctrl_init_state(1)
local result = sml.get_ctrl_init_state(1)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_ctrl_init_state_error()
local ok, err = pcall(sml.get_ctrl_init_state, 999)
lu.assertFalse(ok)
lu.assertNotNil(err)
end
function TestSmlInit:test_clear_all_controller_info()
sml.clear_all_controller_info(1)
lu.assertTrue(true)
end
function TestSmlInit:test_clear_dev_controller_info()
sml.clear_dev_controller_info(1)
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_sas_addr()
sml.get_ctrl_sas_addr(1)
lu.assertTrue(true)
end
function TestSmlInit:test_get_pd_firmware_version()
sml.get_pd_firmware_version(1, 2)
lu.assertTrue(true)
end
function TestSmlInit:test_get_pd_info()
local result = sml.get_pd_info({ Priority = 'High' }, 1, 2)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_pd_sas_smart_info()
local result = sml.get_pd_sas_smart_info(1, 2)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_pd_slow_disk_info()
local result = sml.get_pd_slow_disk_info(1, 2)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_pd_sas_smart_info_spec()
local result = sml.get_pd_sas_smart_info_spec(1, 2, 1)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_ld_info()
local result = sml.get_ld_info({ Priority = 'High' }, 1, 2)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_array_info()
local result = sml.get_array_info(1, 2)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_battery_info()
local result = sml.get_battery_info(1)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_ctrl_info()
local result = sml.get_ctrl_info({ Priority = 'High' }, 1)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_ctrl_faultcode()
sml.get_ctrl_faultcode(1)
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_boot_devices()
sml.get_ctrl_boot_devices(1)
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_fw_type()
sml.get_ctrl_fw_type(1)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_boot_priority()
sml.set_ld_boot_priority(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_readpolicy()
sml.set_ld_readpolicy(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_writepolicy()
sml.set_ld_writepolicy(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_name()
sml.set_ld_name(1, 2, 'volume1')
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_io_policy()
sml.set_ld_io_policy(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_bgi_enable()
sml.set_ld_bgi_enable(1, 2, 1)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_access_policy()
sml.set_ld_access_policy(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_disk_cache_policy()
sml.set_ld_disk_cache_policy(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_cachecade()
sml.set_ld_cachecade(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_set_ld_accelerator()
sml.set_ld_accelerator(1, 2, 0)
lu.assertTrue(true)
end
function TestSmlInit:test_get_ctrl_sas_phy_err_count()
local result = sml.get_ctrl_sas_phy_err_count(1, true)
lu.assertNotNil(result)
end
function TestSmlInit:test_pd_diag_link_phy_error()
local result = sml.pd_diag_link_phy_error(1, 2, 3, {}, 100, 10)
lu.assertNotNil(result)
end
function TestSmlInit:test_get_ctrl_exp_sas_phy_err_info()
local result = sml.get_ctrl_exp_sas_phy_err_info(1)
lu.assertNotNil(result)
end
function TestSmlInit:test_register_mctp_callback_success()
local saved_call = skynet.call
skynet.call = function(...)
return true
end
sml.register_mctp_callback_for_test(99)
skynet.call = saved_call
lu.assertTrue(true)
end
function TestSmlInit:test_register_mctp_callback_failure()
local saved_call = skynet.call
skynet.call = function(...)
error('smld not ready')
end
sml.register_mctp_callback_for_test(98)
skynet.call = saved_call
lu.assertTrue(true)
end