From e816026faa1ae11f0e9d26d27f420a304d4ad210 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周五, 16 10月 2015 06:16:45 +0800
Subject: [PATCH] Resolve #59: input buffer overrun handling

---
 libscpi/test/test_parser.c |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/libscpi/test/test_parser.c b/libscpi/test/test_parser.c
index bf79478..8114266 100644
--- a/libscpi/test/test_parser.c
+++ b/libscpi/test/test_parser.c
@@ -241,19 +241,24 @@
     output_buffer_clear();
     error_buffer_clear();
 
-#define TEST_ERROR(data, output, err_num) {                     \
+#define TEST_ERROR(data, output, expected_result, err_num) {    \
     output_buffer_clear();                                      \
     error_buffer_clear();                                       \
-    SCPI_Input(&scpi_context, data, strlen(data));              \
+    scpi_bool_t result = SCPI_Input(&scpi_context, data, strlen(data)); \
     CU_ASSERT_STRING_EQUAL(output, output_buffer);              \
-    CU_ASSERT_EQUAL(err_buffer[0], err_num)                     \
+    CU_ASSERT_EQUAL(err_buffer[0], err_num);                    \
+    CU_ASSERT_EQUAL(result, expected_result);                   \
 }
 
-    TEST_ERROR("*IDN?\r\n", "MA,IN,0,VER\r\n", 0);
-    TEST_ERROR("IDN?\r\n", "", SCPI_ERROR_UNDEFINED_HEADER);
-    TEST_ERROR("*ESE\r\n", "", SCPI_ERROR_MISSING_PARAMETER);
-    TEST_ERROR("*IDN? 12\r\n", "MA,IN,0,VER\r\n", SCPI_ERROR_PARAMETER_NOT_ALLOWED);
-    TEST_ERROR("TEXT? \"PARAM1\", \"PARAM2\"\r\n", "\"PARAM2\"\r\n", 0);
+    TEST_ERROR("*IDN?\r\n", "MA,IN,0,VER\r\n", TRUE, 0);
+    TEST_ERROR("IDN?\r\n", "", FALSE, SCPI_ERROR_UNDEFINED_HEADER);
+    TEST_ERROR("*ESE\r\n", "", FALSE, SCPI_ERROR_MISSING_PARAMETER);
+    TEST_ERROR("*IDN? 12\r\n", "MA,IN,0,VER\r\n", FALSE, SCPI_ERROR_PARAMETER_NOT_ALLOWED);
+    TEST_ERROR("TEXT? \"PARAM1\", \"PARAM2\"\r\n", "\"PARAM2\"\r\n", TRUE, 0);
+    TEST_ERROR("ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ"
+               "ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ"
+               "ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ",
+               "", FALSE, SCPI_ERROR_INPUT_BUFFER_OVERRUN);
 
     // TODO: SCPI_ERROR_INVALID_SEPARATOR
     // TODO: SCPI_ERROR_INVALID_SUFFIX

--
Gitblit v1.9.1