| | |
| | | |
| | | |
| | | |
| | | // TODO: SCPI_ERROR_INVALID_SEPARATOR |
| | | // TODO: SCPI_ERROR_INVALID_SUFFIX |
| | | // TODO: SCPI_ERROR_SUFFIX_NOT_ALLOWED |
| | | // TODO: SCPI_ERROR_EXECUTION_ERROR |
| | | // TODO: SCPI_ERROR_ILLEGAL_PARAMETER_VALUE |
| | | /* TODO: SCPI_ERROR_INVALID_SEPARATOR |
| | | * TODO: SCPI_ERROR_INVALID_SUFFIX |
| | | * TODO: SCPI_ERROR_SUFFIX_NOT_ALLOWED |
| | | * TODO: SCPI_ERROR_EXECUTION_ERROR |
| | | * TODO: SCPI_ERROR_ILLEGAL_PARAMETER_VALUE |
| | | */ |
| | | |
| | | output_buffer_clear(); |
| | | error_buffer_clear(); |
| | |
| | | static void testSCPI_ParamInt32(void) { |
| | | TEST_ParamInt32("10", TRUE, 10, TRUE, 0); |
| | | TEST_ParamInt32("", FALSE, 0, FALSE, 0); |
| | | TEST_ParamInt32("10.5", TRUE, 10, TRUE, 0); // TODO: should be FALSE, -104 |
| | | TEST_ParamInt32("10.5", TRUE, 10, TRUE, 0); /* TODO: should be FALSE, -104 */ |
| | | TEST_ParamInt32("#B101010", TRUE, 42, TRUE, 0); |
| | | TEST_ParamInt32("#H101010", TRUE, 1052688, TRUE, 0); |
| | | TEST_ParamInt32("#Q10", TRUE, 8, TRUE, 0); |
| | | |
| | | TEST_ParamInt32("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); // missing parameter |
| | | TEST_ParamInt32("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); // Data type error |
| | | TEST_ParamInt32("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); /* missing parameter */ |
| | | TEST_ParamInt32("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); /* Data type error */ |
| | | TEST_ParamInt32("10.5V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | TEST_ParamInt32("10V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | |
| | | // test range |
| | | /* test range */ |
| | | TEST_ParamInt32("2147483647", TRUE, 2147483647, TRUE, 0); |
| | | TEST_ParamInt32("-2147483647", TRUE, -2147483647, TRUE, 0); |
| | | } |
| | |
| | | static void testSCPI_ParamUInt32(void) { |
| | | TEST_ParamUInt32("10", TRUE, 10, TRUE, 0); |
| | | TEST_ParamUInt32("", FALSE, 0, FALSE, 0); |
| | | TEST_ParamUInt32("10.5", TRUE, 10, TRUE, 0); // TODO: should be FALSE, -104 |
| | | TEST_ParamUInt32("10.5", TRUE, 10, TRUE, 0); /* TODO: should be FALSE, -104 */ |
| | | TEST_ParamUInt32("#B101010", TRUE, 42, TRUE, 0); |
| | | TEST_ParamUInt32("#H101010", TRUE, 1052688, TRUE, 0); |
| | | TEST_ParamUInt32("#Q10", TRUE, 8, TRUE, 0); |
| | | |
| | | TEST_ParamUInt32("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); // missing parameter |
| | | TEST_ParamUInt32("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); // Data type error |
| | | TEST_ParamUInt32("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); /* missing parameter * |
| | | TEST_ParamUInt32("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); /* Data type error */ |
| | | TEST_ParamUInt32("10.5V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | TEST_ParamUInt32("10V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | |
| | | // test range |
| | | /* test range */ |
| | | TEST_ParamUInt32("2147483647", TRUE, 2147483647ULL, TRUE, 0); |
| | | TEST_ParamUInt32("4294967295", TRUE, 4294967295ULL, TRUE, 0); |
| | | } |
| | |
| | | static void testSCPI_ParamInt64(void) { |
| | | TEST_ParamInt64("10", TRUE, 10, TRUE, 0); |
| | | TEST_ParamInt64("", FALSE, 0, FALSE, 0); |
| | | TEST_ParamInt64("10.5", TRUE, 10, TRUE, 0); // TODO: should be FALSE, -104 |
| | | TEST_ParamInt64("10.5", TRUE, 10, TRUE, 0); /* TODO: should be FALSE, -104 */ |
| | | TEST_ParamInt64("#B101010", TRUE, 42, TRUE, 0); |
| | | TEST_ParamInt64("#H101010", TRUE, 1052688, TRUE, 0); |
| | | TEST_ParamInt64("#Q10", TRUE, 8, TRUE, 0); |
| | | |
| | | TEST_ParamInt64("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); // missing parameter |
| | | TEST_ParamInt64("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); // Data type error |
| | | TEST_ParamInt64("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); /* missing parameter */ |
| | | TEST_ParamInt64("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); /* Data type error */ |
| | | TEST_ParamInt64("10.5V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | TEST_ParamInt64("10V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | |
| | | // test range |
| | | /* test range */ |
| | | TEST_ParamInt64("2147483647", TRUE, 2147483647LL, TRUE, 0); |
| | | TEST_ParamInt64("-2147483647", TRUE, -2147483647LL, TRUE, 0); |
| | | TEST_ParamInt64("9223372036854775807", TRUE, 9223372036854775807LL, TRUE, 0); |
| | |
| | | static void testSCPI_ParamUInt64(void) { |
| | | TEST_ParamUInt64("10", TRUE, 10, TRUE, 0); |
| | | TEST_ParamUInt64("", FALSE, 0, FALSE, 0); |
| | | TEST_ParamUInt64("10.5", TRUE, 10, TRUE, 0); // TODO: should be FALSE, -104 |
| | | TEST_ParamUInt64("10.5", TRUE, 10, TRUE, 0); /* TODO: should be FALSE, -104 */ |
| | | TEST_ParamUInt64("#B101010", TRUE, 42, TRUE, 0); |
| | | TEST_ParamUInt64("#H101010", TRUE, 1052688, TRUE, 0); |
| | | TEST_ParamUInt64("#Q10", TRUE, 8, TRUE, 0); |
| | | |
| | | TEST_ParamUInt64("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); // missing parameter |
| | | TEST_ParamUInt64("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); // Data type error |
| | | TEST_ParamUInt64("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); /* missing parameter */ |
| | | TEST_ParamUInt64("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); /* Data type error */ |
| | | TEST_ParamUInt64("10.5V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | TEST_ParamUInt64("10V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | |
| | | // test range |
| | | /* test range */ |
| | | TEST_ParamUInt64("2147483647", TRUE, 2147483647ULL, TRUE, 0); |
| | | TEST_ParamUInt64("4294967295", TRUE, 4294967295ULL, TRUE, 0); |
| | | TEST_ParamUInt64("9223372036854775807", TRUE, 9223372036854775807ULL, TRUE, 0); |
| | |
| | | TEST_ParamFloat("#Q10", TRUE, 8, TRUE, 0); |
| | | TEST_ParamFloat("#HFFFFFF", TRUE, 0xFFFFFFu, TRUE, 0); |
| | | |
| | | TEST_ParamFloat("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); // missing parameter |
| | | TEST_ParamFloat("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); // Data type error |
| | | TEST_ParamFloat("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); /* missing parameter */ |
| | | TEST_ParamFloat("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); /* Data type error */ |
| | | TEST_ParamFloat("10.5V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | TEST_ParamFloat("10V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | } |
| | |
| | | TEST_ParamDouble("#Q10", TRUE, 8, TRUE, 0); |
| | | TEST_ParamDouble("#HFFFFFFFF", TRUE, 0xFFFFFFFFu, TRUE, 0); |
| | | |
| | | TEST_ParamDouble("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); // missing parameter |
| | | TEST_ParamDouble("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); // Data type error |
| | | TEST_ParamDouble("", TRUE, 0, FALSE, SCPI_ERROR_MISSING_PARAMETER); /* missing parameter */ |
| | | TEST_ParamDouble("abcd", TRUE, 0, FALSE, SCPI_ERROR_DATA_TYPE_ERROR); /* Data type error */ |
| | | TEST_ParamDouble("10.5V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | TEST_ParamDouble("10V", TRUE, 0, FALSE, SCPI_ERROR_SUFFIX_NOT_ALLOWED); |
| | | } |
| | |
| | | |
| | | static void testSCPI_ParamCharacters(void) { |
| | | TEST_ParamCharacters("10", TRUE, "10", TRUE, 0); |
| | | TEST_ParamCharacters(" ABCD", TRUE, "ABCD", TRUE, 0); // TokProgramMnemonic |
| | | TEST_ParamCharacters("\"ABCD\"", TRUE, "ABCD", TRUE, 0); // TokDoubleQuoteProgramData |
| | | TEST_ParamCharacters("\'ABCD\'", TRUE, "ABCD", TRUE, 0); // TokSingleQuoteProgramData |
| | | TEST_ParamCharacters("#204ABCD", TRUE, "ABCD", TRUE, 0); // TokArbitraryBlockProgramData |
| | | TEST_ParamCharacters("#210ABCD", TRUE, "", FALSE, SCPI_ERROR_INVALID_STRING_DATA); // invalid Block Data |
| | | TEST_ParamCharacters(" ABCD", TRUE, "ABCD", TRUE, 0); /* TokProgramMnemonic */ |
| | | TEST_ParamCharacters("\"ABCD\"", TRUE, "ABCD", TRUE, 0); /* TokDoubleQuoteProgramData */ |
| | | TEST_ParamCharacters("\'ABCD\'", TRUE, "ABCD", TRUE, 0); /* TokSingleQuoteProgramData */ |
| | | TEST_ParamCharacters("#204ABCD", TRUE, "ABCD", TRUE, 0); /* TokArbitraryBlockProgramData */ |
| | | TEST_ParamCharacters("#210ABCD", TRUE, "", FALSE, SCPI_ERROR_INVALID_STRING_DATA); /* invalid Block Data */ |
| | | } |
| | | |
| | | |
| | |
| | | TEST_Result(Int32, 10, "10"); |
| | | TEST_Result(Int32, -10, "-10"); |
| | | TEST_Result(Int32, 2147483647L, "2147483647"); |
| | | //TEST_Result(Int32, -2147483648L, "-2147483648"); // bug in GCC |
| | | /* TEST_Result(Int32, -2147483648L, "-2147483648"); bug in GCC */ |
| | | TEST_Result(Int32, -2147483647L, "-2147483647"); |
| | | } |
| | | |
| | |
| | | TEST_Result(UInt32, 10, "10"); |
| | | TEST_Result(UInt32, -10, "4294967286"); |
| | | TEST_Result(UInt32, 2147483647L, "2147483647"); |
| | | //TEST_Result(UInt32, -2147483648L, "2147483648"); // bug in GCC |
| | | /* TEST_Result(UInt32, -2147483648L, "2147483648"); bug in GCC */ |
| | | TEST_Result(UInt32, -2147483647L, "2147483649"); |
| | | TEST_Result(UInt32, 4294967295UL, "4294967295"); |
| | | |
| | |
| | | TEST_Result(Int64, 32767, "32767"); |
| | | TEST_Result(Int64, -32768, "-32768"); |
| | | TEST_Result(Int64, 2147483647L, "2147483647"); |
| | | //TEST_Result(Int64, -2147483648, "-2147483648"); // bug in gcc |
| | | /* TEST_Result(Int64, -2147483648, "-2147483648"); bug in gcc */ |
| | | TEST_Result(Int64, -2147483647L, "-2147483647"); |
| | | TEST_Result(Int64, 9223372036854775807LL, "9223372036854775807"); |
| | | //TEST_Result(Int64, -9223372036854775808LL, "-9223372036854775808"); bug in GCC |
| | | /* TEST_Result(Int64, -9223372036854775808LL, "-9223372036854775808"); bug in GCC */ |
| | | TEST_Result(Int64, -9223372036854775807LL, "-9223372036854775807"); |
| | | } |
| | | |
| | |
| | | TEST_Result(UInt64, 32767, "32767"); |
| | | TEST_Result(UInt64, -32768, "18446744073709518848"); |
| | | TEST_Result(UInt64, 2147483647L, "2147483647"); |
| | | //TEST_Result(UInt64, -2147483648L, "18446744071562067968"); // bug in GCC |
| | | /* TEST_Result(UInt64, -2147483648L, "18446744071562067968"); bug in GCC */ |
| | | TEST_Result(UInt64, -2147483647L, "18446744071562067969"); |
| | | TEST_Result(UInt64, 9223372036854775807LL, "9223372036854775807"); |
| | | //TEST_Result(Int64, -9223372036854775808LL, "9223372036854775808"); bug in GCC |
| | | /* TEST_Result(Int64, -9223372036854775808LL, "9223372036854775808"); bug in GCC */ |
| | | TEST_Result(UInt64, -9223372036854775807LL, "9223372036854775809"); |
| | | TEST_Result(UInt64, 18446744073709551615ULL, "18446744073709551615"); |
| | | |
| | |
| | | TEST_Result(Float, 32767, "32767"); |
| | | TEST_Result(Float, -32768, "-32768"); |
| | | TEST_Result(Float, 2147483647L, "2.14748e+09"); |
| | | //TEST_Result(Float, -2147483648, "-2.14748e+09"); // bug in GCC |
| | | /* TEST_Result(Float, -2147483648, "-2.14748e+09"); bug in GCC */ |
| | | TEST_Result(Float, -2147483647L, "-2.14748e+09"); |
| | | TEST_Result(Float, 9223372036854775807LL, "9.22337e+18"); |
| | | TEST_Result(Float, -9223372036854775807LL, "-9.22337e+18"); |
| | |
| | | TEST_Result(Double, 32767, "32767"); |
| | | TEST_Result(Double, -32768, "-32768"); |
| | | TEST_Result(Double, 2147483647, "2147483647"); |
| | | //TEST_Result(Double, -2147483648, "-2147483648"); // bug in GCC |
| | | /* TEST_Result(Double, -2147483648, "-2147483648"); bug in GCC */ |
| | | TEST_Result(Double, -2147483647, "-2147483647"); |
| | | TEST_Result(Double, 9223372036854775807LL, "9.22337203685478e+18"); |
| | | TEST_Result(Double, -9223372036854775807LL, "-9.22337203685478e+18"); |