Compare commits
No commits in common. "c8" and "c10s-private-than" have entirely different histories.
c8
...
c10s-priva
11
.gitignore
vendored
11
.gitignore
vendored
@ -1,2 +1,9 @@
|
|||||||
SOURCES/iprdbg.8.gz
|
/iprutils-*-src.tgz
|
||||||
SOURCES/iprutils-2.4.19.tar.gz
|
/iprutils-2.4.8.tar.gz
|
||||||
|
/iprutils-2.4.10.1.tar.gz
|
||||||
|
/iprutils-2.4.11.1.tar.gz
|
||||||
|
/iprutils-2.4.12.1.tar.gz
|
||||||
|
/iprutils-2.4.14.1.tar.gz
|
||||||
|
/iprutils-2.4.15.1.tar.gz
|
||||||
|
/iprutils-2.4.16.1.tar.gz
|
||||||
|
/iprutils-2.4.17.1.tar.gz
|
||||||
|
|||||||
@ -1,2 +0,0 @@
|
|||||||
ba7fff20477af3cb00dcc323690ca108454a2302 SOURCES/iprdbg.8.gz
|
|
||||||
df06b14873f4a6f70099347e4f0c003d33d72782 SOURCES/iprutils-2.4.19.tar.gz
|
|
||||||
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#gating rhel
|
||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-*
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
||||||
BIN
iprdbg.8.gz
Normal file
BIN
iprdbg.8.gz
Normal file
Binary file not shown.
449
iprutils-2.4.19-covscan.patch
Normal file
449
iprutils-2.4.19-covscan.patch
Normal file
@ -0,0 +1,449 @@
|
|||||||
|
diff -up iprutils-rel-2-4-19/iprconfig.c.me iprutils-rel-2-4-19/iprconfig.c
|
||||||
|
--- iprutils-rel-2-4-19/iprconfig.c.me 2024-06-17 12:10:54.493119641 +0200
|
||||||
|
+++ iprutils-rel-2-4-19/iprconfig.c 2024-06-18 11:20:17.885495296 +0200
|
||||||
|
@@ -2483,7 +2483,7 @@ static char *disk_details(char *body, st
|
||||||
|
char vendor_id[IPR_VENDOR_ID_LEN+1];
|
||||||
|
char serial_num[IPR_SERIAL_NUM_LEN+1];
|
||||||
|
char buffer[100];
|
||||||
|
- int len, scsi_channel, scsi_id, scsi_lun;
|
||||||
|
+ int len = 0, scsi_channel = 0, scsi_id = 0, scsi_lun = 0;
|
||||||
|
|
||||||
|
device_record = (struct ipr_dev_record *)dev->dev_rcd;
|
||||||
|
|
||||||
|
@@ -2633,7 +2633,7 @@ int get_ses_phy_loc(struct ipr_dev *dev)
|
||||||
|
int rc, i, ret = 1;
|
||||||
|
struct ses_inquiry_page0 ses_page0_inq;
|
||||||
|
struct ses_serial_num_vpd ses_vpd_inq;
|
||||||
|
- struct esm_serial_num_vpd esm_vpd_inq;
|
||||||
|
+ struct esm_serial_num_vpd esm_vpd_inq = {0};
|
||||||
|
char buffer[100];
|
||||||
|
|
||||||
|
memset(&ses_vpd_inq, 0, sizeof(ses_vpd_inq));
|
||||||
|
@@ -2649,18 +2649,18 @@ int get_ses_phy_loc(struct ipr_dev *dev)
|
||||||
|
|
||||||
|
if (ret == 0 ) {
|
||||||
|
dev->physical_location[0] = '\0';
|
||||||
|
- strncat(dev->physical_location, "U", strlen("U"));
|
||||||
|
+ strcat(dev->physical_location, "U");
|
||||||
|
ipr_strncpy_0(buffer, (char *)ses_vpd_inq.feature_code,
|
||||||
|
sizeof(ses_vpd_inq.feature_code));
|
||||||
|
- strncat(dev->physical_location, buffer, strlen(buffer));
|
||||||
|
+ strncat(dev->physical_location, buffer, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
ipr_strncpy_0(buffer, (char *)ses_vpd_inq.count,
|
||||||
|
sizeof(ses_vpd_inq.count));
|
||||||
|
- strncat(dev->physical_location, ".", strlen("."));
|
||||||
|
- strncat(dev->physical_location, buffer, strlen(buffer));
|
||||||
|
+ strcat(dev->physical_location, ".");
|
||||||
|
+ strncat(dev->physical_location, buffer, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
ipr_strncpy_0(buffer, (char *)ses_vpd_inq.ses_serial_num,
|
||||||
|
sizeof(ses_vpd_inq.ses_serial_num));
|
||||||
|
- strncat(dev->physical_location, ".", strlen("."));
|
||||||
|
- strncat(dev->physical_location, buffer, strlen(buffer));
|
||||||
|
+ strcat(dev->physical_location, ".");
|
||||||
|
+ strncat(dev->physical_location, buffer, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2676,8 +2676,8 @@ int get_ses_phy_loc(struct ipr_dev *dev)
|
||||||
|
ipr_strncpy_0((char *)&dev->serial_number, (char *)&esm_vpd_inq.esm_serial_num[0], sizeof(esm_vpd_inq.esm_serial_num));
|
||||||
|
ipr_strncpy_0(buffer, (char *)esm_vpd_inq.frb_label,
|
||||||
|
sizeof(esm_vpd_inq.frb_label));
|
||||||
|
- strncat(dev->physical_location, "-", strlen("-"));
|
||||||
|
- strncat(dev->physical_location, buffer, strlen(buffer));
|
||||||
|
+ strcat(dev->physical_location, "-");
|
||||||
|
+ strncat(dev->physical_location, buffer, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -3313,7 +3313,7 @@ static int raid_stop_complete()
|
||||||
|
**/
|
||||||
|
int do_confirm_raid_stop(i_container *i_con)
|
||||||
|
{
|
||||||
|
- struct ipr_dev *vset;
|
||||||
|
+ struct ipr_dev *vset = NULL;
|
||||||
|
struct array_cmd_data *cur_raid_cmd;
|
||||||
|
struct ipr_ioa *ioa;
|
||||||
|
int rc;
|
||||||
|
@@ -3715,7 +3715,7 @@ int configure_raid_parameters(i_containe
|
||||||
|
int ch, start_row;
|
||||||
|
int cur_field_index;
|
||||||
|
int selected_count = 0, ssd_num = 0, hdd_num = 0;
|
||||||
|
- int stripe_sz, stripe_sz_mask, stripe_sz_list[16];
|
||||||
|
+ int stripe_sz, stripe_sz_mask, stripe_sz_list[16] = {0};
|
||||||
|
struct prot_level *prot_level_list;
|
||||||
|
int *userptr = NULL;
|
||||||
|
int *retptr;
|
||||||
|
@@ -3979,7 +3979,7 @@ int configure_raid_parameters(i_containe
|
||||||
|
sprintf(stripe_menu_str[index].line,"%d k",stripe_sz_mask);
|
||||||
|
|
||||||
|
if (stripe_sz_mask == ntohs(cap_entry->recommended_stripe_size)) {
|
||||||
|
- sprintf(buffer,_("%s - recommend"),stripe_menu_str[index].line);
|
||||||
|
+ snprintf(buffer, sizeof(buffer), _("%s - recommend"),stripe_menu_str[index].line);
|
||||||
|
raid_item[index] = new_item(buffer, "");
|
||||||
|
} else {
|
||||||
|
raid_item[index] = new_item(stripe_menu_str[index].line, "");
|
||||||
|
@@ -7486,7 +7486,7 @@ int remove_or_add_back_device_64bit(stru
|
||||||
|
int res_path_len, dev_slot;
|
||||||
|
struct ipr_dev *sec_dev, *tmp_dev;
|
||||||
|
char new_sysfs_res_path[IPR_MAX_RES_PATH_LEN];
|
||||||
|
- int rc;
|
||||||
|
+ int rc = 0;
|
||||||
|
|
||||||
|
res_path_len = strlen(dev->res_path_name);
|
||||||
|
dev_slot = strtoul(dev->res_path_name + (res_path_len - 2), NULL, 16);
|
||||||
|
@@ -7558,7 +7558,7 @@ int process_conc_maint(i_container *i_co
|
||||||
|
int toggle=0;
|
||||||
|
s_node *n_screen;
|
||||||
|
struct screen_output *s_out;
|
||||||
|
- struct ipr_res_addr res_addr;
|
||||||
|
+ struct ipr_res_addr res_addr = {0};
|
||||||
|
struct ipr_res_path res_path[2];
|
||||||
|
int max_y, max_x;
|
||||||
|
|
||||||
|
@@ -7905,7 +7905,7 @@ static struct ipr_dev *alloc_empty_slot(
|
||||||
|
dev->ses[0] = ses;
|
||||||
|
dev->ioa = ioa;
|
||||||
|
dev->physical_location[0] = '\0';
|
||||||
|
- strncat(dev->physical_location, phy_loc, strlen(phy_loc));
|
||||||
|
+ strncat(dev->physical_location, phy_loc, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
get_res_addrs(dev);
|
||||||
|
return dev;
|
||||||
|
}
|
||||||
|
@@ -7948,7 +7948,7 @@ static struct ipr_dev *alloc_empty_slot_
|
||||||
|
dev->ses[0] = ses;
|
||||||
|
dev->ioa = ioa;
|
||||||
|
dev->physical_location[0] = '\0';
|
||||||
|
- strncat(dev->physical_location, phy_loc, strlen(phy_loc));
|
||||||
|
+ strncat(dev->physical_location, phy_loc, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
get_res_path(dev);
|
||||||
|
return dev;
|
||||||
|
}
|
||||||
|
@@ -8020,7 +8020,7 @@ static struct ipr_dev *get_dev_for_slot(
|
||||||
|
}
|
||||||
|
dev->physical_location[0] = '\0';
|
||||||
|
if (strlen(phy_loc))
|
||||||
|
- strncat(dev->physical_location, phy_loc, strlen(phy_loc));
|
||||||
|
+ strncat(dev->physical_location, phy_loc, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
return dev;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -8068,7 +8068,7 @@ static struct ipr_dev *get_dev_for_slot_
|
||||||
|
}
|
||||||
|
dev->physical_location[0] = '\0';
|
||||||
|
if (strlen(phy_loc))
|
||||||
|
- strncat(dev->physical_location, phy_loc, strlen(phy_loc));
|
||||||
|
+ strncat(dev->physical_location, phy_loc, sizeof(dev->physical_location) - strlen(dev->physical_location) -1);
|
||||||
|
return dev;
|
||||||
|
|
||||||
|
}
|
||||||
|
@@ -8282,7 +8282,7 @@ static int get_conc_devs(struct ipr_dev
|
||||||
|
int ses_bus, scsi_id_found, is_spi, is_vses;
|
||||||
|
struct ipr_ses_config_pg ses_cfg;
|
||||||
|
struct drive_elem_desc_pg drive_data;
|
||||||
|
- char phy_loc[PHYSICAL_LOCATION_LENGTH + 1];
|
||||||
|
+ char phy_loc[PHYSICAL_LOCATION_LENGTH + 1] = {0};
|
||||||
|
int times, index;
|
||||||
|
|
||||||
|
for_each_primary_ioa(ioa) {
|
||||||
|
@@ -11447,7 +11447,7 @@ int change_ioa_config(i_container * i_co
|
||||||
|
* number of options showed at screen. It should be more generic...
|
||||||
|
*/
|
||||||
|
struct ioa_config_attr *config_attr = NULL;
|
||||||
|
- struct ipr_ioa_attr ioa_attr;
|
||||||
|
+ struct ipr_ioa_attr ioa_attr = {0};
|
||||||
|
int header_lines = 0, index = 0;
|
||||||
|
char *body = NULL;
|
||||||
|
struct screen_output *s_out;
|
||||||
|
@@ -12418,8 +12418,7 @@ int ibm_storage_log(i_container *i_con)
|
||||||
|
(*dirent)->d_name);
|
||||||
|
logsource_fp = gzopen(logfile, "r");
|
||||||
|
if (logsource_fp == NULL) {
|
||||||
|
- syslog(LOG_ERR, "Could not open %s: %m\n", line);
|
||||||
|
- close(log_fd);
|
||||||
|
+ syslog(LOG_ERR, "Could not open %s: %m\n", logfile);
|
||||||
|
continue; /* proceed to next log file */
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -12524,8 +12523,7 @@ int kernel_log(i_container *i_con)
|
||||||
|
(*dirent)->d_name);
|
||||||
|
logsource_fp = gzopen(logfile, "r");
|
||||||
|
if (logsource_fp == NULL) {
|
||||||
|
- syslog(LOG_ERR, "Could not open %s: %m\n", line);
|
||||||
|
- close(log_fd);
|
||||||
|
+ syslog(LOG_ERR, "Could not open %s: %m\n", logfile);
|
||||||
|
continue; /* proceed to next log file */
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -12602,8 +12600,7 @@ int iprconfig_log(i_container *i_con)
|
||||||
|
(*dirent)->d_name);
|
||||||
|
logsource_fp = gzopen(logfile, "r");
|
||||||
|
if (logsource_fp == NULL) {
|
||||||
|
- syslog(LOG_ERR, "Could not open %s: %m\n", line);
|
||||||
|
- close(log_fd);
|
||||||
|
+ syslog(LOG_ERR, "Could not open %s: %m\n", logfile);
|
||||||
|
continue; /* proceed to next log file */
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -12855,7 +12852,7 @@ int ibm_boot_log(i_container *i_con)
|
||||||
|
snprintf(logfile, sizeof(logfile), "%s/boot.msg", log_root_dir);
|
||||||
|
logsource_fp = fopen(logfile, "r");
|
||||||
|
if (!logsource_fp) {
|
||||||
|
- syslog(LOG_ERR, "Could not open %s: %m\n", line);
|
||||||
|
+ syslog(LOG_ERR, "Could not open %s: %m\n", logfile);
|
||||||
|
free(tmp_log);
|
||||||
|
close(log_fd);
|
||||||
|
return RC_75_Failed_Read_Err_Log;
|
||||||
|
@@ -12917,7 +12914,7 @@ static void get_status(struct ipr_dev *d
|
||||||
|
int blk_size = 0;
|
||||||
|
struct ipr_mode_pages mode_pages;
|
||||||
|
struct ipr_block_desc *block_desc;
|
||||||
|
- struct sense_data_t sense_data;
|
||||||
|
+ struct sense_data_t sense_data = {0};
|
||||||
|
struct ipr_cmd_status cmd_status;
|
||||||
|
struct ipr_cmd_status_record *status_record;
|
||||||
|
int percent_cmplt = 0;
|
||||||
|
@@ -13261,7 +13258,7 @@ static char *print_phy64(struct ipr_fabr
|
||||||
|
ipr_format_res_path_wo_hyphen(cfg->res_path, buffer, IPR_MAX_RES_PATH_LEN);
|
||||||
|
ff_len = res_path_len - strlen(buffer);
|
||||||
|
for ( i = 0; i < ff_len; i++)
|
||||||
|
- strncat(buffer, "F", strlen("F"));
|
||||||
|
+ strcat(buffer, "F");
|
||||||
|
|
||||||
|
len += sprintf(body + len, "%s", buffer);
|
||||||
|
|
||||||
|
@@ -13419,8 +13416,8 @@ char *__print_device(struct ipr_dev *dev
|
||||||
|
char res_path_name[IPR_MAX_RES_PATH_LEN];
|
||||||
|
int tab_stop = 0;
|
||||||
|
int loc_len = 0;
|
||||||
|
- char vendor_id[IPR_VENDOR_ID_LEN + 1];
|
||||||
|
- char product_id[IPR_PROD_ID_LEN + 1];
|
||||||
|
+ char vendor_id[IPR_VENDOR_ID_LEN + 1] = {0};
|
||||||
|
+ char product_id[IPR_PROD_ID_LEN + 1] = {0};
|
||||||
|
struct ipr_ioa *ioa = dev->ioa, *ioa_phy_loc;
|
||||||
|
bool is4k = false, isri = false;
|
||||||
|
|
||||||
|
@@ -14009,7 +14006,7 @@ static void curses_init()
|
||||||
|
**/
|
||||||
|
static int format_devices(char **args, int num_args, int fmt_flag)
|
||||||
|
{
|
||||||
|
- int i, rc, blksz;
|
||||||
|
+ int i, rc, blksz = 0;
|
||||||
|
struct ipr_dev *dev;
|
||||||
|
|
||||||
|
for (i = 0; i < num_args; i++) {
|
||||||
|
@@ -17779,7 +17776,7 @@ static int get_drive_phy_loc(struct ipr_
|
||||||
|
struct ipr_ses_config_pg ses_cfg;
|
||||||
|
int ses_bus, scsi_id_found, is_spi, is_vses;
|
||||||
|
struct drive_elem_desc_pg drive_data;
|
||||||
|
- char phy_loc[PHYSICAL_LOCATION_LENGTH + 1];
|
||||||
|
+ char phy_loc[PHYSICAL_LOCATION_LENGTH + 1] = {0};
|
||||||
|
int times, index;
|
||||||
|
|
||||||
|
is_spi = ioa_is_spi(ioa);
|
||||||
|
@@ -18222,7 +18219,7 @@ static int set_ioa_caching(char **args,
|
||||||
|
static int set_array_rebuild_verify(char **args, int num_args)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
- struct ipr_ioa_attr attr;
|
||||||
|
+ struct ipr_ioa_attr attr = {0};
|
||||||
|
struct ipr_ioa *ioa;
|
||||||
|
struct ipr_dev *dev;
|
||||||
|
int disable_rebuild_verify;
|
||||||
|
@@ -18318,7 +18315,7 @@ static int set_array_rebuild_rate(char**
|
||||||
|
int err_rebuild_rate = 0;
|
||||||
|
int rebuild_rate = 0;
|
||||||
|
int rc;
|
||||||
|
- struct ipr_ioa_attr attr;
|
||||||
|
+ struct ipr_ioa_attr attr = {0};
|
||||||
|
struct ipr_ioa *ioa;
|
||||||
|
struct ipr_dev *dev;
|
||||||
|
|
||||||
|
@@ -18382,7 +18379,7 @@ static int set_array_rebuild_rate(char**
|
||||||
|
**/
|
||||||
|
static int query_array_rebuild_rate(char**args, int num_args)
|
||||||
|
{
|
||||||
|
- struct ipr_ioa_attr attr;
|
||||||
|
+ struct ipr_ioa_attr attr = {0};
|
||||||
|
struct ipr_ioa *ioa;
|
||||||
|
struct ipr_dev *dev;
|
||||||
|
int rebuild_rate = 0;
|
||||||
|
diff -up iprutils-rel-2-4-19/iprconfig.h.me iprutils-rel-2-4-19/iprconfig.h
|
||||||
|
diff -up iprutils-rel-2-4-19/iprdump.c.me iprutils-rel-2-4-19/iprdump.c
|
||||||
|
--- iprutils-rel-2-4-19/iprdump.c.me 2024-06-17 17:12:49.846400485 +0200
|
||||||
|
+++ iprutils-rel-2-4-19/iprdump.c 2024-06-18 00:41:47.907738323 +0200
|
||||||
|
@@ -23,6 +23,7 @@
|
||||||
|
#define MAX_DUMP_FILES 4
|
||||||
|
#define TOOL_NAME "iprdump"
|
||||||
|
#define DUMP_PREFIX TOOL_NAME"."
|
||||||
|
+#define MAX_PATH_LENGTH 1024
|
||||||
|
|
||||||
|
char *tool_name = TOOL_NAME;
|
||||||
|
|
||||||
|
@@ -156,7 +157,7 @@ static int dump_sort(const struct dirent
|
||||||
|
static void cleanup_old_dumps()
|
||||||
|
{
|
||||||
|
struct dirent **dirent;
|
||||||
|
- char fname[100];
|
||||||
|
+ char fname[MAX_PATH_LENGTH];
|
||||||
|
int rc, i;
|
||||||
|
|
||||||
|
rc = scandir(usr_dir, &dirent, select_dump_file, dump_sort);
|
||||||
|
@@ -226,7 +227,7 @@ static void write_dump(struct ipr_ioa *i
|
||||||
|
if (get_dump_fname(dump_file))
|
||||||
|
return;
|
||||||
|
|
||||||
|
- sprintf(dump_path, "%s%s", usr_dir, dump_file);
|
||||||
|
+ snprintf(dump_path, sizeof(dump_path), "%s%s", usr_dir, dump_file);
|
||||||
|
f_dump = creat(dump_path, S_IRUSR);
|
||||||
|
if (f_dump < 0) {
|
||||||
|
syslog(LOG_ERR, "Cannot open %s. %m\n", dump_path);
|
||||||
|
@@ -347,7 +348,7 @@ int main(int argc, char *argv[])
|
||||||
|
if (strcmp(argv[i], "-d") == 0) {
|
||||||
|
strcpy(usr_dir,argv[++i]);
|
||||||
|
len = strlen(usr_dir);
|
||||||
|
- if (len < sizeof(usr_dir) && usr_dir[len] != '/') {
|
||||||
|
+ if (len < sizeof(usr_dir) - 2 && usr_dir[len] != '/') {
|
||||||
|
usr_dir[len + 1] = '/';
|
||||||
|
usr_dir[len + 2] = '\0';
|
||||||
|
}
|
||||||
|
diff -up iprutils-rel-2-4-19/iprlib.c.me iprutils-rel-2-4-19/iprlib.c
|
||||||
|
--- iprutils-rel-2-4-19/iprlib.c.me 2024-06-17 12:22:56.983740856 +0200
|
||||||
|
+++ iprutils-rel-2-4-19/iprlib.c 2024-06-18 10:09:20.716132953 +0200
|
||||||
|
@@ -2063,8 +2063,9 @@ static void ipr_get_pci_slots()
|
||||||
|
if (strcmp(pci_slot[i].pci_device, ioa->pci_address) &&
|
||||||
|
strcmp(pci_slot[i].slot_name, ioa->pci_address))
|
||||||
|
continue;
|
||||||
|
- strcpy(ioa->physical_location,
|
||||||
|
- pci_slot[i].physical_name);
|
||||||
|
+ strncpy(ioa->physical_location,
|
||||||
|
+ pci_slot[i].physical_name, sizeof(ioa->physical_location) - 1);
|
||||||
|
+ ioa->physical_location[sizeof(ioa->physical_location) - 1] = '\0';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -2101,7 +2102,7 @@ void load_system_p_oper_mode()
|
||||||
|
**/
|
||||||
|
static int __tool_init(int save_state)
|
||||||
|
{
|
||||||
|
- int temp, fw_type;
|
||||||
|
+ int temp, fw_type = 0;
|
||||||
|
struct ipr_ioa *ipr_ioa;
|
||||||
|
DIR *dirfd, *host_dirfd;
|
||||||
|
struct dirent *dent, *host_dent;
|
||||||
|
@@ -2132,13 +2133,15 @@ static int __tool_init(int save_state)
|
||||||
|
memset(ipr_ioa,0,sizeof(struct ipr_ioa));
|
||||||
|
|
||||||
|
/* PCI address */
|
||||||
|
- strcpy(ipr_ioa->pci_address, dent->d_name);
|
||||||
|
+ strncpy(ipr_ioa->pci_address, dent->d_name, sizeof(ipr_ioa->pci_address) - 1);
|
||||||
|
+ ipr_ioa->pci_address[sizeof(ipr_ioa->pci_address) -1] = '\0';
|
||||||
|
ipr_ioa->host_num = -1;
|
||||||
|
sprintf(devpath, "/sys/bus/pci/drivers/ipr/%s",
|
||||||
|
dent->d_name);
|
||||||
|
host_dirfd = opendir(devpath);
|
||||||
|
if (!host_dirfd) {
|
||||||
|
syslog_dbg("Failed to open scsi_host class.\n");
|
||||||
|
+ closedir(dirfd);
|
||||||
|
return -EAGAIN;
|
||||||
|
}
|
||||||
|
while ((host_dent = readdir(host_dirfd)) != NULL) {
|
||||||
|
@@ -2152,7 +2155,8 @@ static int __tool_init(int save_state)
|
||||||
|
&ipr_ioa->host_num) != 1)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- strcpy(ipr_ioa->host_name, host_dent->d_name);
|
||||||
|
+ strncpy(ipr_ioa->host_name, host_dent->d_name, sizeof(ipr_ioa->host_name) - 1);
|
||||||
|
+ ipr_ioa->host_name[sizeof(ipr_ioa->host_name) - 1] = '\0';
|
||||||
|
get_pci_attrs(ipr_ioa, devpath);
|
||||||
|
|
||||||
|
sprintf(scsipath, "%s/%s/scsi_host/%s", devpath,
|
||||||
|
@@ -2188,6 +2192,7 @@ static int __tool_init(int save_state)
|
||||||
|
len = sysfs_read_attr(devpath, "model", buff, 16);
|
||||||
|
if (len < 0 || (sscanf(buff, "%4X", &temp) != 1)) {
|
||||||
|
syslog_dbg("Cannot read SCSI device model.\n");
|
||||||
|
+ closedir(dirfd);
|
||||||
|
return -EAGAIN;
|
||||||
|
}
|
||||||
|
ipr_ioa->ccin = temp;
|
||||||
|
@@ -5747,7 +5752,7 @@ int ipr_set_active_active_mode(struct ip
|
||||||
|
**/
|
||||||
|
int set_active_active_mode(struct ipr_ioa *ioa, int mode)
|
||||||
|
{
|
||||||
|
- struct ipr_ioa_attr attr;
|
||||||
|
+ struct ipr_ioa_attr attr = {0};
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
/* Get the current ioa attributes. */
|
||||||
|
@@ -5860,7 +5865,7 @@ int get_scsi_dev_data(struct scsi_dev_da
|
||||||
|
len = sysfs_read_attr(devpath, "resource_path", buff, 256);
|
||||||
|
if (len > 0)
|
||||||
|
ipr_strncpy_0n(scsi_dev_data->res_path,
|
||||||
|
- buff, IPR_MAX_RES_PATH_LEN);
|
||||||
|
+ buff, IPR_MAX_RES_PATH_LEN-1);
|
||||||
|
|
||||||
|
len = sysfs_read_attr(devpath, "device_id", buff, 256);
|
||||||
|
if (len > 0)
|
||||||
|
@@ -6255,15 +6260,19 @@ static void get_prot_levels(struct ipr_i
|
||||||
|
for_each_array(ioa, array) {
|
||||||
|
prot_level_str = get_prot_level_str(ioa->supported_arrays,
|
||||||
|
array->raid_level);
|
||||||
|
- strncpy(array->prot_level_str, prot_level_str, 8);
|
||||||
|
+ strncpy(array->prot_level_str, prot_level_str, sizeof(array->prot_level_str) - 1);
|
||||||
|
+ array->prot_level_str[sizeof(array->prot_level_str) - 1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
for_each_vset(ioa, vset) {
|
||||||
|
prot_level_str = get_prot_level_str(ioa->supported_arrays,
|
||||||
|
vset->raid_level);
|
||||||
|
- strncpy(vset->prot_level_str, prot_level_str, 8);
|
||||||
|
- for_each_dev_in_vset(vset, dev)
|
||||||
|
- strncpy(dev->prot_level_str, prot_level_str, 8);
|
||||||
|
+ strncpy(vset->prot_level_str, prot_level_str, sizeof(vset->prot_level_str) - 1);
|
||||||
|
+ vset->prot_level_str[sizeof(vset->prot_level_str) - 1] = '\0';
|
||||||
|
+ for_each_dev_in_vset(vset, dev) {
|
||||||
|
+ strncpy(dev->prot_level_str, prot_level_str, sizeof(dev->prot_level_str) - 1);
|
||||||
|
+ dev->prot_level_str[sizeof(dev->prot_level_str) - 1] = '\0';
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -7038,6 +7047,7 @@ static void ipr_save_attr(struct ipr_ioa
|
||||||
|
temp_fd = fopen(temp_fname, "w");
|
||||||
|
if (temp_fd == NULL) {
|
||||||
|
syslog(LOG_ERR, "Could not open %s. %m\n", temp_fname);
|
||||||
|
+ fclose(fd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -9175,6 +9185,8 @@ int ipr_update_ioa_fw(struct ipr_ioa *io
|
||||||
|
dir = opendir(hotplug_dir);
|
||||||
|
if (!dir)
|
||||||
|
mkdir(hotplug_dir, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
|
||||||
|
+ else
|
||||||
|
+ closedir(dir);
|
||||||
|
|
||||||
|
dir = opendir(hotplug_dir);
|
||||||
|
if (!dir) {
|
||||||
|
@@ -9356,7 +9368,12 @@ int ipr_ses_get_time(struct ipr_dev *dev
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
|
*origin = !!get_time.timestamp_origin;
|
||||||
|
- *timestamp = be64toh(*((u64*) get_time.timestamp)) >> 16;
|
||||||
|
+ *timestamp = ((u64)get_time.timestamp[0] << 40) |
|
||||||
|
+ ((u64)get_time.timestamp[1] << 32) |
|
||||||
|
+ ((u64)get_time.timestamp[2] << 24) |
|
||||||
|
+ ((u64)get_time.timestamp[3] << 16) |
|
||||||
|
+ ((u64)get_time.timestamp[4] << 8) |
|
||||||
|
+ (u64)get_time.timestamp[5];
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -9776,7 +9793,7 @@ static void init_gpdd_dev(struct ipr_dev
|
||||||
|
*/
|
||||||
|
static void init_af_dev(struct ipr_dev *dev)
|
||||||
|
{
|
||||||
|
- struct ipr_disk_attr attr;
|
||||||
|
+ struct ipr_disk_attr attr = {0};
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
if (ipr_set_dasd_timeouts(dev, 0))
|
||||||
@ -3,21 +3,26 @@
|
|||||||
Summary: Utilities for the IBM Power Linux RAID adapters
|
Summary: Utilities for the IBM Power Linux RAID adapters
|
||||||
Name: iprutils
|
Name: iprutils
|
||||||
Version: 2.4.19
|
Version: 2.4.19
|
||||||
Release: 1%{?dist}
|
Release: 13%{?dist}
|
||||||
License: CPL
|
License: CPL-1.0
|
||||||
Group: System Environment/Base
|
|
||||||
URL: https://github.com/bjking1/iprutils
|
URL: https://github.com/bjking1/iprutils
|
||||||
Source0: https://github.com/bjking1/iprutils/archive/%{gitver}/%{name}-%{version}.tar.gz
|
Source0: https://github.com/bjking1/iprutils/archive/%{gitver}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
# missing man page
|
# missing man page
|
||||||
Source1: iprdbg.8.gz
|
Source1: iprdbg.8.gz
|
||||||
|
|
||||||
|
# covscan issues
|
||||||
|
Patch10: iprutils-2.4.19-covscan.patch
|
||||||
|
|
||||||
|
ExclusiveArch: ppc64le
|
||||||
|
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: libcap-devel
|
BuildRequires: libcap-devel
|
||||||
BuildRequires: kernel-headers
|
BuildRequires: kernel-headers
|
||||||
BuildRequires: systemd
|
BuildRequires: systemd
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
|
BuildRequires: make
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -75,17 +80,68 @@ rm %{buildroot}/%{_sysconfdir}/ha.d/resource.d/iprha
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon May 11 2020 Than Ngo <than@redhat.com> - 2.4.19-1
|
* Mon Aug 05 2024 Than Ngo <than@redhat.com> - 2.4.19-13
|
||||||
- Resolves: #1781926, rebased to 2.4.19
|
- fix license tag
|
||||||
|
|
||||||
* Fri May 31 2019 Than Ngo <than@redhat.com> - 2.4.18.1-1
|
Related: RHEL-43273
|
||||||
- Resolves: #1665184, rebased to 2.4.18.1
|
|
||||||
|
|
||||||
* Tue May 28 2019 Than Ngo <than@redhat.com> - 2.4.17.1-2
|
* Mon Jul 08 2024 Than Ngo <than@redhat.com> - 2.4.19-12
|
||||||
- Related: #1682892, fix typo in tests
|
- fix covscan issues
|
||||||
|
- limit to ppc64le
|
||||||
|
- fix runtest
|
||||||
|
|
||||||
* Tue May 28 2019 Than Ngo <than@redhat.com> - 2.4.17.1-1
|
Resolves: RHEL-43273
|
||||||
- Resolves: #1665184, rebased to 2.4.17.1
|
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.4.19-11
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-10
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.19-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 09 2020 Than Ngo <than@redhat.com> - 2.4.19-1
|
||||||
|
- rebase to 2.4.19
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.17.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.17.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Apr 15 2019 Than Ngo <than@redhat.com> - 2.4.17.1-2
|
||||||
|
- add tests
|
||||||
|
|
||||||
|
* Mon Mar 04 2019 Than Ngo <than@redhat.com> - 2.4.17.1-1
|
||||||
|
- update to 2.4.17.1
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.16.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.16.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
* Mon May 14 2018 Dan Horák <dan[at]danny.cz> - 2.4.16.1-2
|
* Mon May 14 2018 Dan Horák <dan[at]danny.cz> - 2.4.16.1-2
|
||||||
- use better patch for udev activation
|
- use better patch for udev activation
|
||||||
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
|||||||
|
SHA512 (iprutils-2.4.19.tar.gz) = 4b2a5cfdc7982d26b976b82e8d6eac219266059dda40dd79f03734c6e6ef434a273bfc5f8276ea4f2dd55b1a749c2c03b7c5677c64527469dd54fe45afe6f25d
|
||||||
65
tests/basic-functionality-test/Makefile
Normal file
65
tests/basic-functionality-test/Makefile
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/patch/Regression/Cannot-handle-file-names-with-integrated-spaces
|
||||||
|
# Description: Test for bz431887 (Cannot handle file names with integrated spaces)
|
||||||
|
# Author: Ondrej Moris <omoris@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be
|
||||||
|
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
# PURPOSE. See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public
|
||||||
|
# License along with this program; if not, write to the Free
|
||||||
|
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
export TEST=/CoreOS/patch/Regression/Cannot-handle-file-names-with-integrated-spaces
|
||||||
|
export TESTVERSION=1.0
|
||||||
|
|
||||||
|
BUILT_FILES=
|
||||||
|
|
||||||
|
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
||||||
|
|
||||||
|
.PHONY: all install download clean
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
./runtest.sh
|
||||||
|
|
||||||
|
build: $(BUILT_FILES)
|
||||||
|
chmod a+x runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ $(BUILT_FILES)
|
||||||
|
|
||||||
|
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@echo "Owner: Ondrej Moris <omoris@redhat.com>" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "Description: Test for bz431887 (Cannot handle file names with integrated spaces)" >> $(METADATA)
|
||||||
|
@echo "Type: Regression" >> $(METADATA)
|
||||||
|
@echo "TestTime: 5m" >> $(METADATA)
|
||||||
|
@echo "RunFor: patch" >> $(METADATA)
|
||||||
|
@echo "Requires: patch" >> $(METADATA)
|
||||||
|
@echo "Requires: expect" >> $(METADATA)
|
||||||
|
@echo "Priority: Normal" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "Confidential: no" >> $(METADATA)
|
||||||
|
@echo "Destructive: no" >> $(METADATA)
|
||||||
|
@echo "Bug: 431887" >> $(METADATA)
|
||||||
|
|
||||||
|
rhts-lint $(METADATA)
|
||||||
11
tests/basic-functionality-test/PURPOSE
Normal file
11
tests/basic-functionality-test/PURPOSE
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
PURPOSE of /CoreOS/iprutils/basic-functionality-test
|
||||||
|
Description: Tier1 tests
|
||||||
|
Author: Than Ngo <than@redhat.com>
|
||||||
|
|
||||||
|
tests following scenarios:
|
||||||
|
* test iprdump --version
|
||||||
|
* test iprinit --version
|
||||||
|
* test iprupdate --version
|
||||||
|
* test Services: iprdump, iprinit, iprupdate
|
||||||
|
* test existence of man pages
|
||||||
|
* test existence of license and readme file
|
||||||
185
tests/basic-functionality-test/runtest.sh
Executable file
185
tests/basic-functionality-test/runtest.sh
Executable file
@ -0,0 +1,185 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/which/Sanity/basic-functionality-test
|
||||||
|
# Description: tests basic functionality
|
||||||
|
# Author: Than Ngo <than@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be
|
||||||
|
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
# PURPOSE. See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public
|
||||||
|
# License along with this program; if not, write to the Free
|
||||||
|
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
PACKAGES="iprutils man-db coreutils rpm"
|
||||||
|
SERVICES="iprdump iprinit iprupdate"
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh || exit 1
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
for p in $PACKAGES ; do
|
||||||
|
rlAssertRpm $p
|
||||||
|
done
|
||||||
|
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||||
|
rlRun "pushd $TmpDir"
|
||||||
|
rlPhaseEnd
|
||||||
|
# test the sercives
|
||||||
|
rlPhaseStartTest "Services: iprdump, iprinit, iprupdate"
|
||||||
|
for s in $SERVICES ; do
|
||||||
|
rlServiceStart $s
|
||||||
|
rlRun "systemctl status -l $s"
|
||||||
|
rlServiceStop $s
|
||||||
|
done
|
||||||
|
rlPhaseEnd
|
||||||
|
rlPhaseStartTest "Smoke, sanity and function tests"
|
||||||
|
rlRun "VERSION=\$( rpm -q --qf '%{VERSION}' iprutils )"
|
||||||
|
rlRun -s "iprconfig --version" 0 "It ought show the version"
|
||||||
|
rlAssertGrep "iprconfig: $VERSION" $rlRun_LOG
|
||||||
|
rlRun "iprconfig -c show-config" 0 "Show ipr configuration"
|
||||||
|
rlRun "iprconfig -c show-alt-config" 0 "Show alternate ipr configuration information"
|
||||||
|
rlRun "iprconfig -c show-ioas" 0 "Show all ipr adapters"
|
||||||
|
rlRun "iprconfig -c show-arrays" 0 "Show all ipr arrays"
|
||||||
|
# rlRun "iprconfig -c show-battey-info" 0 "Show cache battery information for specified IOA"
|
||||||
|
# rlRun "iprconfig -c show-details sda" 0 "Show device details for specified device"
|
||||||
|
rlRun "iprconfig -c show-hot-spares" 0 "Show all configured hot spares"
|
||||||
|
rlRun "iprconfig -c show-af-disks" 0 "Show disks formatted for Advanced Function that are not configured in an array or as a hot spare"
|
||||||
|
rlRun "iprconfig -c show-all-af-disks" 0 "Show all disks formatted for Advanced Function"
|
||||||
|
rlRun "iprconfig -c show-jbod-disks" 0 "Show all disks formatted for JBOD Function"
|
||||||
|
rlRun "iprconfig -c show-slots" 0 "Show all disks slots available on the system"
|
||||||
|
# iprconfig -c status /dev/sda || echo FAILED $?
|
||||||
|
# iprconfig -c alt-status /dev/sda || echo FAILED $?
|
||||||
|
# iprconfig -c query-aid-ceate || echo FAILED $?
|
||||||
|
# iprconfig -c query-aid-delete || echo FAILED $?
|
||||||
|
# iprconfig -c query-hot-spae-ceate || echo FAILED $?
|
||||||
|
# iprconfig -c query-hot-spae-delete || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c query-raid-consistency-check" 0 "Show all RAID arrays that are candidates for a RAID consistency check"
|
||||||
|
rlRun "iprconfig -c query-format-for-jbod" 0 "Show all disks that can be reformatted for JBOD function"
|
||||||
|
rlRun "iprconfig -c query-reclaim" 0 "Show all IOAs that may need a reclaim cache storage"
|
||||||
|
rlRun "iprconfig -c query-arrays-raid-include" 0 "Show all RAID arrays that can have disks included in them to increase their capacity"
|
||||||
|
# iprconfig -c query-devices-aid-include || echo FAILED $?
|
||||||
|
# iprconfig -c query-suppoted-aid-levels || echo FAILED $?
|
||||||
|
# iprconfig -c query-include-allowed || echo FAILED $?
|
||||||
|
# iprconfig -c query-max-devices-in-aay || echo FAILED $?
|
||||||
|
# iprconfig -c query-min-devices-in-aay || echo FAILED $?
|
||||||
|
# iprconfig -c quey-min-mult-in-aay || echo FAILED $?
|
||||||
|
# iprconfig -c quey-supp-stipe-sizes || echo FAILED $?
|
||||||
|
# iprconfig -c query-ecommended-stipe-size || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c query-recovery-format" 0 "Show all disks that can be formatted for error recovery purposes"
|
||||||
|
rlRun "iprconfig -c query-raid-rebuild" 0 "Show all disks in RAID arrays that can be rebuilt"
|
||||||
|
rlRun "iprconfig -c query-format-for-raid" 0 "Show all disks that can be formatted such that they can be used in a RAID array or as a hot spare"
|
||||||
|
# iprconfig -c query-ucode-level || echo FAILED $?
|
||||||
|
# iprconfig -c ssd-report || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c show-ucode-levels" 0 "Show the microcode level that is currently loaded for every device and adapter in the system"
|
||||||
|
# iprconfig -c query-format-timeout || echo FAILED $?
|
||||||
|
# iprconfig -c query-qdepth || echo FAILED $?
|
||||||
|
# iprconfig -c query-tcq-enable || echo FAILED $?
|
||||||
|
# iprconfig -c query-log-level || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c query-add-device" 0 "Show all empty disk slots that can have a disk concurrently added"
|
||||||
|
rlRun "iprconfig -c query-remove-device" 0 "Show all disk slots which are either empty or have disks in them which can be concurrently removed from the running system"
|
||||||
|
# iprconfig -c query-initiator-id || echo FAILED $?
|
||||||
|
# iprconfig -c query-bus-speed || echo FAILED $?
|
||||||
|
# iprconfig -c query-bus-width || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c query-path-status" 0 "Show the current dual path state for the SAS devices attached specified IOA"
|
||||||
|
# iprconfig -c query-path-details || echo FAILED $?
|
||||||
|
# iprconfig -c query-arrays-raid-migrate || echo FAILED $?
|
||||||
|
# iprconfig -c query-devices-raid-migrate || echo FAILED $?
|
||||||
|
# iprconfig -c query-raid-levels-raid-migrate || echo FAILED $?
|
||||||
|
# iprconfig -c query-stripe-sizes-raid-migrate || echo FAILED $?
|
||||||
|
# iprconfig -c query-devices-min-max-raid-migrate || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c query-ioas-asymmetric-access" 0 "Show the IOAs that support asymmetric access"
|
||||||
|
rlRun "iprconfig -c query-arrays-asymmetric-access" 0 "Show the disk arrays that are candidates for setting their asymmetric access mode to Optimized or Non-Optimized"
|
||||||
|
# iprconfig -c query-ioa-asymmetric-access-mode || echo FAILED $?
|
||||||
|
# iprconfig -c query-aay-asymmetric-access-mode || echo FAILED $?
|
||||||
|
# iprconfig -c query-ioa-caching || echo FAILED $?
|
||||||
|
# iprconfig -c query-array-label || echo FAILED $?
|
||||||
|
# iprconfig -c query-array-rebuild-rate || echo FAILED $?
|
||||||
|
# iprconfig -c query-array-rebuild-verify || echo FAILED $?
|
||||||
|
# iprconfig -c query-array || echo FAILED $?
|
||||||
|
# iprconfig -c query-device || echo FAILED $?
|
||||||
|
# iprconfig -c query-location || echo FAILED $?
|
||||||
|
# iprconfig -c query-write-cache-policy || echo FAILED $?
|
||||||
|
# iprconfig -c raid-create || echo FAILED $?
|
||||||
|
# iprconfig -c raid-delete || echo FAILED $?
|
||||||
|
# iprconfig -c raid-include || echo FAILED $?
|
||||||
|
# iprconfig -c raid-migrate || echo FAILED $?
|
||||||
|
# iprconfig -c format-for-raid || echo FAILED $?
|
||||||
|
# iprconfig -c format-for-jbod || echo FAILED $?
|
||||||
|
# iprconfig -c recovey-format || echo FAILED $?
|
||||||
|
# iprconfig -c hot-spare-create || echo FAILED $?
|
||||||
|
# iprconfig -c hot-spare-delete || echo FAILED $?
|
||||||
|
# iprconfig -c disrupt-device || echo FAILED $?
|
||||||
|
# iprconfig -c reclaim-cache || echo FAILED $?
|
||||||
|
# iprconfig -c reclaim-unknown-cache || echo FAILED $?
|
||||||
|
# iprconfig -c raid-consistency-check || echo FAILED $?
|
||||||
|
# iprconfig -c raid-rebuild || echo FAILED $?
|
||||||
|
# iprconfig -c update-ucode || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c update-all-ucodes" 0 "Update the microcode of every device with the latest version found in the system"
|
||||||
|
# iprconfig -c set-format-timeout || echo FAILED $?
|
||||||
|
# iprconfig -c set-qdepth || echo FAILED $?
|
||||||
|
# iprconfig -c set-tcq-enable || echo FAILED $?
|
||||||
|
# iprconfig -c set-log-level || echo FAILED $?
|
||||||
|
# iprconfig -c set-write-cache-policy || echo FAILED $?
|
||||||
|
# iprconfig -c identify-disk || echo FAILED $?
|
||||||
|
# iprconfig -c identify-slot || echo FAILED $?
|
||||||
|
# iprconfig -c remove-disk || echo FAILED $?
|
||||||
|
# iprconfig -c remove-slot || echo FAILED $?
|
||||||
|
# iprconfig -c add-slot || echo FAILED $?
|
||||||
|
# iprconfig -c set-initiator-id || echo FAILED $?
|
||||||
|
# iprconfig -c set-bus-speed || echo FAILED $?
|
||||||
|
# iprconfig -c set-bus-width || echo FAILED $?
|
||||||
|
# iprconfig -c primary || echo FAILED $?
|
||||||
|
# iprconfig -c secondary || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c set-all-primary" 0 "Set all attached ipr adapters as the preferred primary adapter"
|
||||||
|
rlRun "iprconfig -c set-all-secondary" 0 "Set all attached ipr adapters to indicate they are not the preferred primary adapter"
|
||||||
|
# iprconfig -c query-ha-mode || echo FAILED $?
|
||||||
|
# iprconfig -c set-ha-mode || echo FAILED $?
|
||||||
|
# iprconfig -c set-aay-asymmetic-access-mode || echo FAILED $?
|
||||||
|
# iprconfig -c set-ioa-asymmetric-access-mode || echo FAILED $?
|
||||||
|
# iprconfig -c set-ioa-caching || echo FAILED $?
|
||||||
|
# iprconfig -c set-array-rebuild-verify || echo FAILED $?
|
||||||
|
# iprconfig -c set-array-rebuild-rate || echo FAILED $?
|
||||||
|
# iprconfig -c get-live-dump || echo FAILED $?
|
||||||
|
rlRun "iprconfig -c dump" 0 "Display detailed hardware and system information on standard output"
|
||||||
|
|
||||||
|
# should not segfault
|
||||||
|
rlRun -s "iprdump --version" 0 "Print iprdump version"
|
||||||
|
rlAssertGrep "iprdump: $VERSION" $rlRun_LOG
|
||||||
|
rlRun -s "iprinit --version" 0 "Print iprinit version"
|
||||||
|
rlAssertGrep "iprinit: $VERSION" $rlRun_LOG
|
||||||
|
# iprsos --version
|
||||||
|
rlRun -s "iprupdate --version" 0 "Print iprupdate version"
|
||||||
|
rlAssertGrep "iprupdate: $VERSION" $rlRun_LOG
|
||||||
|
|
||||||
|
# check man page
|
||||||
|
for m in iprconfig iprdbg iprdump iprinit iprsos iprupdate ; do
|
||||||
|
rlRun "man -P head $m" 0 "Show the $m man page"
|
||||||
|
done
|
||||||
|
|
||||||
|
# check for sane license and readme file
|
||||||
|
rlRun "head /usr/share/licenses/iprutils/LICENSE" 0 "Check for license file"
|
||||||
|
rlRun "head /usr/share/doc/iprutils/README" 0 "Check for README file"
|
||||||
|
rlPhaseEnd
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun "popd"
|
||||||
|
rlRun "rm -fr $TmpDir" 0 "Removing tmp directory"
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
||||||
13
tests/tests.yml
Normal file
13
tests/tests.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
# Run tests in all contexts
|
||||||
|
- hosts: localhost
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tests:
|
||||||
|
- basic-functionality-test
|
||||||
|
required_packages:
|
||||||
|
- man-db
|
||||||
|
- coreutils
|
||||||
|
- rpm
|
||||||
Loading…
Reference in New Issue
Block a user