📄 sahpi_struct_utils_test.c
字号:
expected_str = "22222222222222222222222222222222 Volts"; reading_test = reading_default; reading_test.Type = SAHPI_SENSOR_READING_TYPE_BUFFER; memset(reading_test.Value.SensorBuffer, 0x32, SAHPI_SENSOR_BUFFER_LENGTH); format_test = format_default; format_test.ReadingType = SAHPI_SENSOR_READING_TYPE_BUFFER; 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_encode_sensorreading testcases ***********************************/ { const char *str; SaHpiTextBufferT buffer; SaHpiSensorReadingT reading; SaHpiInt64T expected_int64; /* SaHpiUint64T expected_uint64; */ SaHpiFloat64T expected_float64; /* oh_encode_sensorreading: Bad type testcase */ expected_err = SA_ERR_HPI_INVALID_PARAMS; err = oh_encode_sensorreading(&buffer, BAD_TYPE, &reading); 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_encode_sensorreading: Extra spaces testcase */ str = " + 20 Volts"; expected_int64 = 20; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_INT64, &reading); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } if (reading.Value.SensorInt64 != expected_int64) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received value=%lld; Expected value=%lld\n", reading.Value.SensorInt64, expected_int64); return -1; } /* oh_encode_sensorreading: Extra non-digits/commas testcase */ str = "The, happy, %% result is ... +2,000Volts ,,... "; expected_int64 = 2000; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_INT64, &reading); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } if (reading.Value.SensorInt64 != expected_int64) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received value=%lld; Expected value=%lld\n", reading.Value.SensorInt64, expected_int64); return -1; } /* oh_encode_sensorreading: No digits testcase */ str = "There are no numbers in this string"; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_INT64, &reading); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } if (reading.Value.SensorInt64 != 0) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Expected Zero value; Received=%lld\n", reading.Value.SensorInt64); return -1; } /* oh_encode_sensorreading: Decimal point testcase */ str = "-2.5volts"; expected_float64 = -2.5; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_FLOAT64, &reading); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } if (reading.Value.SensorFloat64 != expected_float64) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received value=%le; Expected value=%le\n", reading.Value.SensorFloat64, expected_float64); return -1; } /* oh_encode_sensorreading: Too many decimal points testcase */ str = "1.000.000 volts"; expected_err = SA_ERR_HPI_INVALID_DATA; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_FLOAT64, &reading); 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_encode_sensorreading: Too many signs */ str = "+-33e02"; expected_err = SA_ERR_HPI_INVALID_DATA; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_INT64, &reading); 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_encode_sensorreading: Percentage testcase */ str = "33% RPM"; expected_float64 = 0.33; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_FLOAT64, &reading); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } if (reading.Value.SensorFloat64 != expected_float64) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received value=%le; Expected value=%le\n", reading.Value.SensorFloat64, expected_float64); return -1; } /* oh_encode_sensorreading: Percentage bad type testcase */ str = "33% RPM"; expected_err = SA_ERR_HPI_INVALID_DATA; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_INT64, &reading); 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_encode_sensorreading: Too big int64 testcase */ str = "99999999999999999999999999999999"; expected_err = SA_ERR_HPI_INVALID_DATA; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_INT64, &reading); 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_encode_sensorreading: Too big uint64 testcase */ str = "99999999999999999999999999999999"; expected_err = SA_ERR_HPI_INVALID_DATA; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_UINT64, &reading); 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; }#if 0 /* oh_encode_sensorreading: Too big float64 testcase */ str = "99999999999999999999999999999999"; expected_err = SA_ERR_HPI_INVALID_DATA; oh_init_textbuffer(&buffer); oh_append_textbuffer(&buffer, str); err = oh_encode_sensorreading(&buffer, SAHPI_SENSOR_READING_TYPE_FLOAT64, &reading); 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; }#endif } /***************************** * oh_xxx_textbuffer testcases *****************************/ { char str[4] = "1234"; /* oh_init_textbuffer: NULL buffer testcase */ expected_err = SA_ERR_HPI_INVALID_PARAMS; err = oh_init_textbuffer(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_append_textbuffer: NULL buffer testcase */ expected_err = SA_ERR_HPI_INVALID_PARAMS; err = oh_append_textbuffer(0, str); 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_append_textbuffer: NULL str testcase */ expected_err = SA_ERR_HPI_INVALID_PARAMS; err = oh_append_textbuffer(&buffer, 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_append_textbuffer: Out of space testcase */ { char bigstr[SAHPI_MAX_TEXT_BUFFER_LENGTH +1]; expected_err = SA_ERR_HPI_OUT_OF_SPACE; memset(bigstr, 0x32, SAHPI_MAX_TEXT_BUFFER_LENGTH +1); err = oh_append_textbuffer(&buffer, bigstr); 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_copy_textbuffer: NULL buffer testcase */ expected_err = SA_ERR_HPI_INVALID_PARAMS; err = oh_copy_textbuffer(0, 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_fprint_text/oh_fprint_bigtext testcases ********************************************/ { str = "OK - Printing Line 1\nOK - Printing Line 2"; oh_big_textbuffer big_buffer, big_bad_buffer; /* Don't need this if expose the oh_xxx_bigtext routines */ big_buffer.DataType = SAHPI_TL_TYPE_TEXT; big_buffer.Language = SAHPI_LANG_ENGLISH; memset(big_buffer.Data, 0x32, SAHPI_MAX_TEXT_BUFFER_LENGTH + 2); big_buffer.Data[SAHPI_MAX_TEXT_BUFFER_LENGTH + 2] = 0x00; big_buffer.Data[SAHPI_MAX_TEXT_BUFFER_LENGTH + 1] = 0x33; big_bad_buffer = big_buffer; err = oh_init_textbuffer(&buffer); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } err = oh_append_textbuffer(&buffer, str); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } /* oh_fprint_text: oh_print_text MACRO testcase */ err = oh_print_text(&buffer); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } err = oh_print_bigtext(&big_buffer); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } /* Bad data type testcase */ expected_err = SA_ERR_HPI_INVALID_DATA; err = oh_copy_textbuffer(&bad_buffer, &buffer); if (err) { printf(" Error! Testcase failed. Line=%d\n", __LINE__); printf(" Received error=%d\n", err); return -1; } bad_buffer.DataType = BAD_TYPE; err = oh_print_text(&bad_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; } big_bad_buffer.DataType = BAD_TYPE; err = oh_print_bigtext(&big_bad_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; }#if 0 /* FIXME :: ??? Is there a way to force a bad FILE ID, without blowing up??? */ /* Bad file handler testcase */ expected_err = SA_ERR_HPI_INVALID_PARAMS; err = oh_fprint_text(0, &buffer);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -