⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sahpi_struct_utils_test.c

📁 HIP 硬件设备管理标准接口
💻 C
📖 第 1 页 / 共 4 页
字号:
/*      -*- linux-c -*- * * (C) Copyright IBM Corp. 2004 * * 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.  This * file and program are licensed under a BSD style license.  See * the Copying file included with the OpenHPI distribution for * full licensing terms. * * Author(s): *      Steve Sherman <stevees@us.ibm.com> */#include <stdio.h>#include <string.h>#include <unistd.h>#include <SaHpi.h>#include <oh_utils.h>#define UNDEFINED_MANUFACTURER  -1#define BAD_TYPE -1int main(int argc, char **argv) {	const char *expected_str;	const char *str;	SaErrorT   expected_err, err;	SaHpiTextBufferT buffer, bad_buffer;	/************************************ 	 * oh_decode_manufacturerid testcases         ************************************/	{		/* oh_decode_manufacturerid: SAHPI_MANUFACTURER_ID_UNSPECIFIED testcase */		SaHpiManufacturerIdT mid;			expected_str = "UNSPECIFIED Manufacturer";		mid = SAHPI_MANUFACTURER_ID_UNSPECIFIED;		err = oh_decode_manufacturerid(mid, &buffer); 		                if (strcmp(expected_str, buffer.Data) || err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s; Error=%d\n", 			       buffer.Data, expected_str, err);                        return -1;                }				/* oh_decode_manufacturerid: IBM testcase */		expected_str = "IBM";		mid = 2;		err = oh_decode_manufacturerid(mid, &buffer); 		                if (strcmp(expected_str, buffer.Data) || err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s; Error=%d\n", 			       buffer.Data, expected_str, err);                         return -1;                }				/* oh_decode_manufacturerid: Undefined manufacturer testcase */		expected_str = "Unknown Manufacturer";		mid = UNDEFINED_MANUFACTURER;		err = oh_decode_manufacturerid(mid, &buffer);		                if (strcmp(expected_str, buffer.Data) || err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s; Error=%d\n", 			       buffer.Data, expected_str, err);                         return -1;                }		/* oh_decode_manufacturerid: NULL buffer testcase */		expected_err = SA_ERR_HPI_INVALID_PARAMS;		mid = UNDEFINED_MANUFACTURER;		err = oh_decode_manufacturerid(mid, 0);		                if (err != expected_err) { 			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d; Expected error=%d\n", err, expected_err);                         return -1;                }	}	/*********************************************************** 	 * oh_decode_sensorreading/oh_encode_sensorreading testcases         ***********************************************************/	{		SaHpiSensorDataFormatT format_default, format_test;		SaHpiSensorReadingT reading_default, reading_test, encode_reading;		memset(&reading_default, 0, sizeof(SaHpiSensorReadingT));		reading_default.IsSupported = SAHPI_TRUE;		reading_default.Type = SAHPI_SENSOR_READING_TYPE_INT64;		reading_default.Value.SensorInt64 = 20;				format_default.IsSupported = SAHPI_TRUE;		format_default.ReadingType = SAHPI_SENSOR_READING_TYPE_INT64;		format_default.BaseUnits = SAHPI_SU_VOLTS;		format_default.ModifierUnits = SAHPI_SU_UNSPECIFIED;		format_default.ModifierUse = SAHPI_SMUU_NONE;		format_default.Percentage = SAHPI_FALSE;		/* oh_decode_sensorreading: NULL buffer testcase */		expected_err = SA_ERR_HPI_INVALID_PARAMS;				err = oh_decode_sensorreading(reading_default, format_default, 0);		if (err != expected_err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d; Expected error=%d\n", err, expected_err); 			return -1;		}				/* oh_decode_sensorreading: IsSupported == FALSE testcase */		expected_err = SA_ERR_HPI_INVALID_CMD;		reading_test = reading_default;		format_test = format_default;		format_test.IsSupported = SAHPI_FALSE;			err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err != expected_err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d; Expected error=%d\n", err, expected_err); 			return -1;		}		/* oh_decode_sensorreading: Bad SaHpiSensorModifierUseT testcase */		expected_err = SA_ERR_HPI_INVALID_PARAMS;		reading_test = reading_default;		format_test = format_default;		format_test.ModifierUnits = SAHPI_SU_WEEK;		format_test.ModifierUse = BAD_TYPE;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err != expected_err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d; Expected error=%d\n", err, expected_err);			return -1;		}		/* oh_decode_sensorreading: Bad SaHpiSensorReadingT testcase */		expected_err = SA_ERR_HPI_INVALID_PARAMS;		reading_test = reading_default;		reading_test.Type = BAD_TYPE;		format_test = format_default;		format_test.ReadingType = BAD_TYPE;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err != expected_err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d; Expected error=%d\n", err, expected_err);			return -1;		}				/* oh_decode_sensorreading: Reading Types not equal testcase */		expected_err = SA_ERR_HPI_INVALID_DATA;		reading_test = reading_default;		format_test = format_default;		format_test.ReadingType = format_default.ReadingType + 1;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err != expected_err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d; Expected error=%d\n", err, expected_err);			return -1;		}		/* oh_decode_sensorreading: SAHPI_SENSOR_READING_TYPE_INT64 testcase */		expected_str = "20 Volts";		reading_test = reading_default;		format_test = format_default;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err != SA_OK) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		                if (strcmp(expected_str, buffer.Data)) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s\n", 			       buffer.Data, expected_str);                        return -1;                             }		memset(&encode_reading, 0, sizeof(SaHpiSensorReadingT));		err = oh_encode_sensorreading(&buffer, format_test.ReadingType, &encode_reading);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}				if (memcmp((void *)&encode_reading, (void *)&reading_test, 			   sizeof(SaHpiSensorReadingT))) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}				/* oh_decode_sensorreading: SAHPI_SMUU_BASIC_OVER_MODIFIER testcase */		expected_str = "20 Volts / Week";		reading_test = reading_default;		format_test = format_default;		format_test.ModifierUnits = SAHPI_SU_WEEK;		format_test.ModifierUse = SAHPI_SMUU_BASIC_OVER_MODIFIER;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		                if (strcmp(expected_str, buffer.Data)) { 			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s\n", 			       buffer.Data, expected_str);                       return -1;                             }		err = oh_encode_sensorreading(&buffer, format_test.ReadingType, &encode_reading);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}				if (memcmp((void *)&encode_reading, (void *)&reading_test, 			   sizeof(SaHpiSensorReadingTypeT))) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		/* oh_decode_sensorreading: SAHPI_SMUU_BASIC_TIMES_MODIFIER testcase */		expected_str = "20 Volts * Week";		reading_test = reading_default;		format_test = format_default;		format_test.ModifierUnits = SAHPI_SU_WEEK;		format_test.ModifierUse = SAHPI_SMUU_BASIC_TIMES_MODIFIER;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		                if (strcmp(expected_str, buffer.Data)) {  			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s\n", 			       buffer.Data, expected_str);                       return -1;                             }		err = oh_encode_sensorreading(&buffer, format_test.ReadingType, &encode_reading);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}				if (memcmp((void *)&encode_reading, (void *)&reading_test, 			   sizeof(SaHpiSensorReadingTypeT))) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		/* oh_decode_sensorreading: Percentage testcase */		expected_str = "20%";		reading_test = reading_default;				format_test = format_default;		format_test.Percentage = SAHPI_TRUE;		format_test.ModifierUnits = SAHPI_SU_WEEK;		format_test.ModifierUse = SAHPI_SMUU_BASIC_TIMES_MODIFIER;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		                if (strcmp(expected_str, buffer.Data)) {   			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s\n", 			       buffer.Data, expected_str);                       return -1;                             }		/* oh_decode_sensorreading: SAHPI_SENSOR_READING_TYPE_UINT64 testcase */		expected_str = "20 Volts";		reading_test = reading_default;		reading_test.Type = SAHPI_SENSOR_READING_TYPE_UINT64;		reading_test.Value.SensorUint64 = 20;		format_test = format_default;		format_test.ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		                if (strcmp(expected_str, buffer.Data)) {    			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s\n", 			       buffer.Data, expected_str);                       return -1;                             }		err = oh_encode_sensorreading(&buffer, format_test.ReadingType, &encode_reading);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}				if (memcmp((void *)&encode_reading, (void *)&reading_test, 			   sizeof(SaHpiSensorReadingTypeT))) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		/* oh_decode_sensorreading: SAHPI_SENSOR_READING_TYPE_FLOAT64 testcase */		expected_str = "2.020000e+01 Volts";		reading_test = reading_default;		reading_test.Type = SAHPI_SENSOR_READING_TYPE_FLOAT64;		reading_test.Value.SensorFloat64 = 20.2;		format_test = format_default;		format_test.ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64;				err = oh_decode_sensorreading(reading_test, format_test, &buffer);		if (err) {			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received error=%d\n", err);			return -1;		}		                if (strcmp(expected_str, buffer.Data)) {    			printf("  Error! Testcase failed. Line=%d\n", __LINE__);			printf("  Received string=%s; Expected string=%s\n", 			       buffer.Data, expected_str);			return -1;                             }		/* oh_decode_sensorreading: SAHPI_SENSOR_READING_TYPE_BUFFER testcase */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -