From f8d0aa8ec41a50dee5b2b763b84c87c416eba5a7 Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@jaybee.cz> Date: 周六, 25 4月 2015 23:02:44 +0800 Subject: [PATCH] Update readme with Multiple Identical Capabilities --- libscpi/test/test_lib.c | 54 +++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 41 insertions(+), 13 deletions(-) diff --git a/libscpi/test/test_lib.c b/libscpi/test/test_lib.c index 3ef7b29..2834582 100644 --- a/libscpi/test/test_lib.c +++ b/libscpi/test/test_lib.c @@ -15,7 +15,7 @@ * CUnit Test Suite */ -scpi_result_t text_function(scpi_t* context) { +static scpi_result_t text_function(scpi_t* context) { const char* param; size_t param_len; @@ -32,6 +32,20 @@ test[param_len] = 0; SCPI_ResultText(context, test); + + return SCPI_RES_OK; +} + +static scpi_result_t test_treeA(scpi_t* context) { + + SCPI_ResultInt(context, 10); + + return SCPI_RES_OK; +} + +static scpi_result_t test_treeB(scpi_t* context) { + + SCPI_ResultInt(context, 20); return SCPI_RES_OK; } @@ -63,7 +77,10 @@ { .pattern = "STATus:PRESet", .callback = SCPI_StatusPreset,}, - { .pattern = "TEXTfunction", .callback = text_function,}, + { .pattern = "TEXTfunction?", .callback = text_function,}, + + { .pattern = "TEST:TREEA?", .callback = test_treeA,}, + { .pattern = "TEST:TREEB?", .callback = test_treeB,}, SCPI_CMD_LIST_END }; @@ -170,17 +187,17 @@ }; -int init_suite(void) { +static int init_suite(void) { SCPI_Init(&scpi_context); return 0; } -int clean_suite(void) { +static int clean_suite(void) { return 0; } -void testCommandsHandling(void) { +static void testCommandsHandling(void) { #define TEST_INPUT(data, output) { \ SCPI_Input(&scpi_context, data, strlen(data)); \ CU_ASSERT_STRING_EQUAL(output, output_buffer); \ @@ -196,6 +213,12 @@ TEST_INPUT("*IDN?\r\n*IDN?\r\n*IDN?\r\n*IDN?\r\n", "MA, IN, 0, VER\r\nMA, IN, 0, VER\r\nMA, IN, 0, VER\r\nMA, IN, 0, VER\r\n"); output_buffer_clear(); + TEST_INPUT("*IDN?;*IDN?;*IDN?;*IDN?\r\n", "MA, IN, 0, VER;MA, IN, 0, VER;MA, IN, 0, VER;MA, IN, 0, VER\r\n"); + output_buffer_clear(); + + TEST_INPUT("*IDN?;*OPC;*IDN?\r\n", "MA, IN, 0, VER;MA, IN, 0, VER\r\n"); + output_buffer_clear(); + /* Test one command in multiple buffers */ TEST_INPUT("*IDN?", ""); TEST_INPUT("\r\n", "MA, IN, 0, VER\r\n"); @@ -206,13 +229,18 @@ TEST_INPUT("", "MA, IN, 0, VER\r\n"); output_buffer_clear(); + /* Test ctree traversal */ + TEST_INPUT("TEST:TREEA?;TREEB?\r\n", "10;20\r\n"); + output_buffer_clear(); + + TEST_INPUT("TEST:TREEA?;:TEXT? \"PARAM1\", \"PARAM2\"\r\n", "10;\"PARAM2\"\r\n"); + output_buffer_clear(); + CU_ASSERT_EQUAL(err_buffer_pos, 0); error_buffer_clear(); - - // TODO: Compound commands A:B;C -> A:B; A:C } -void testErrorHandling(void) { +static void testErrorHandling(void) { output_buffer_clear(); error_buffer_clear(); @@ -228,7 +256,7 @@ 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("TEXT? \"PARAM1\", \"PARAM2\"\r\n", "\"PARAM2\"\r\n", 0); // TODO: SCPI_ERROR_INVALID_SEPARATOR // TODO: SCPI_ERROR_INVALID_SUFFIX @@ -240,7 +268,7 @@ error_buffer_clear(); } -void testIEEE4882(void) { +static void testIEEE4882(void) { #define TEST_IEEE4882(data, output) { \ SCPI_Input(&scpi_context, data, strlen(data)); \ CU_ASSERT_STRING_EQUAL(output, output_buffer); \ @@ -260,7 +288,7 @@ TEST_IEEE4882("*SRE 0xFF\r\n", ""); TEST_IEEE4882("*SRE?\r\n", "255\r\n"); - TEST_IEEE4882("*STB?\r\n", "0\r\n"); + TEST_IEEE4882("*STB?\r\n", "0\r\n"); TEST_IEEE4882("*ESR?\r\n", "1\r\n"); srq_val = 0; @@ -288,7 +316,7 @@ TEST_IEEE4882("SYSTem:VERSion?\r\n", "1999.0\r\n"); } -void testParameters(void) { +static void testParameters(void) { // TODO: test parsin parameters // TODO: Int @@ -299,7 +327,7 @@ // TODO: Choice } -void testResults(void) { +static void testResults(void) { // TODO: test producing results // TODO: String -- Gitblit v1.9.1