You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by na...@apache.org on 2006/09/01 14:55:46 UTC

svn commit: r439300 [2/2] - in /webservices/axis2/trunk/c/tools/tcpmon: ./ include/ src/ test/ test/unit/

Added: webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_entry_local.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_entry_local.h?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_entry_local.h (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_entry_local.h Fri Sep  1 05:55:44 2006
@@ -0,0 +1,13 @@
+#include <axis2_env.h>
+#include <tcpmon_entry.h>
+#include <tcpmon_session_local.h>
+
+typedef struct tcpmon_entry_request_data
+{
+    const axis2_env_t* env;
+    int socket;
+    tcpmon_session_t* session;
+} tcpmon_entry_request_data_t;
+
+void* tcpmon_entry_new_entry_funct(axis2_thread_t *thd, void* data);
+

Added: webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_session_local.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_session_local.h?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_session_local.h (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon_session_local.h Fri Sep  1 05:55:44 2006
@@ -0,0 +1,14 @@
+#include <tcpmon_session.h>
+#include <tcpmon_entry.h>
+
+axis2_status_t
+tcpmon_session_add_new_entry( tcpmon_session_t* session,
+                              const axis2_env_t* env, tcpmon_entry_t* entry);
+
+TCPMON_SESSION_TRANS_ERROR_FUNCT
+tcpmon_session_get_on_trans_fault (tcpmon_session_t *session,
+                        const axis2_env_t *env );
+
+TCPMON_SESSION_NEW_ENTRY_FUNCT
+tcpmon_session_get_on_new_entry (tcpmon_session_t *session,
+                        const axis2_env_t *env );

Added: webservices/axis2/trunk/c/tools/tcpmon/src/util.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/src/util.c?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/src/util.c (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/src/util.c Fri Sep  1 05:55:44 2006
@@ -0,0 +1,210 @@
+#include <tcpmon_util.h>
+#include <axis2_string.h>
+
+typedef struct tcpmon_util_allocator
+{
+    int allocated;
+    int index;
+    axis2_char_t* buffer;
+} tcpmon_util_allocator_t;
+
+
+static void add_string( const axis2_env_t* env, 
+                      tcpmon_util_allocator_t* allocator, 
+                      axis2_char_t* string);
+
+static void add_axis2_char_t( const axis2_env_t* env, 
+                      tcpmon_util_allocator_t* allocator, 
+                      axis2_char_t c,
+                      int turns);
+
+AXIS2_EXTERN axis2_char_t* AXIS2_CALL
+tcpmon_util_format_as_xml (const axis2_env_t* env, axis2_char_t* data)
+{
+    tcpmon_util_allocator_t* allocator = NULL;
+    axis2_char_t* p = NULL;
+    axis2_char_t* flag = NULL;
+    axis2_char_t tmp;
+    int tabs = 0;
+    int xml_part_found = 0;
+   
+    allocator = (tcpmon_util_allocator_t*) AXIS2_MALLOC(env->
+        allocator, sizeof(tcpmon_util_allocator_t));
+    allocator-> buffer = NULL;
+    allocator-> allocated = 0;
+    allocator-> index = 0;
+
+    for ( p = flag = data, tabs = 0 ; *p ; p ++)
+    {
+        /** dont do anything until this is seen */
+        for(  ;!xml_part_found && *p && !( *p == '<' && *(p+1) == '?'); p ++)
+        {
+            /** just a new line */
+            if ( *p =='\n')
+            {
+                tmp = *(p+1);
+                *(p+1) = '\0';
+                add_string ( env, allocator, flag );
+                *(p+1) = tmp;
+                flag = p+1;
+            }
+        }
+        xml_part_found = 1; /* we come here after we found xml */
+        /** found a comment */
+        if ( *p == '<'  && *(p+1) =='!'  /**just continue since string conts */
+                        && *(p+2) =='-'
+                        && *(p+3) =='-')
+        {
+            for ( ; *p ; p ++ )
+            {
+
+                /** end the comment */
+                if ( *p == '-' && *(p+1) =='-' 
+                              && *(p+2) =='>' )
+                {
+                    break;
+                }
+                /** just a new line */
+                if ( *p =='\n')
+                {
+                    tmp = *(p+1);
+                    *(p+1) = '\0';
+                    add_string ( env, allocator, flag );
+                    *(p+1) = tmp;
+                    flag = p+1;
+                    add_axis2_char_t (env, allocator, '\n', 1);
+                    add_axis2_char_t ( env, allocator, '\t', tabs );
+                }
+            }
+            /** end the strig insdie the comment:| */
+            if ( !*p )
+            {
+                break;
+            }
+        }
+        /** found a quote*/
+        if ( *p == '"'  )
+        {
+            for( ; *p && *p != '"'; p ++ );
+            if ( !*p)
+            {
+                break;
+            }
+        }
+
+        /** open tag */ 
+        if ( *p =='<'  && !( *(p+1) =='/' || *(p+1) == '?' ) )
+        {
+            tabs ++;
+        }
+        /** close tag */
+        if ( *p =='<'  &&  *(p+1) =='/' )
+        {
+            tabs --;
+            tmp = *p;
+            *p = '\0';
+            add_string ( env, allocator, flag );
+            add_axis2_char_t (env, allocator, '\n', 1);
+            add_axis2_char_t (env, allocator, '\t', tabs);
+            *p = tmp;
+            flag = p;
+        }
+        /** found '>' go to a new line */
+        if ( *p =='>' )
+        {
+            /** ignore spaces */
+            for( ; *p && *p == ' '; p ++ );
+            if ( !*p)
+            {
+                break;
+            }
+
+            /** these are special case - new line would be set on next iterate */
+            if ( *(p+1) =='<' && *(p+2) =='/' )
+            {
+            }
+            else if ( p !=data && *(p-1) =='?' ) /* ignore this case */
+            {
+            }
+            else
+            {
+                tmp = *(p+1);
+                *(p+1) = '\0';
+                add_string ( env, allocator, flag );
+                *(p+1) = tmp;
+                flag = p+1;
+    
+                add_axis2_char_t (env, allocator, '\n', 1);
+                add_axis2_char_t (env, allocator, '\t', tabs);
+            }
+        }
+    }
+    *(allocator-> buffer + allocator-> index) = '\0';
+    return allocator-> buffer;
+}
+
+void add_string( const axis2_env_t* env,
+               tcpmon_util_allocator_t* allocator, 
+               axis2_char_t* string )
+{
+    int additional_len = 0;
+    void* dest = NULL;
+    void* src = NULL;
+    int count = 0;
+
+    additional_len = AXIS2_STRLEN ( string ) +1;
+    if ( allocator-> index + additional_len  >= allocator-> allocated )
+    {
+        if ( allocator-> allocated == 0 )
+        {
+            allocator-> buffer =
+                    AXIS2_MALLOC ( env-> allocator, additional_len );
+        }
+        else
+        {
+            allocator-> buffer =
+                    AXIS2_REALLOC ( env-> allocator, allocator-> buffer, 
+                                allocator-> allocated + additional_len);
+        }
+        allocator-> allocated += additional_len;
+    }
+    
+    /* copy memory */
+    dest = allocator-> buffer + allocator-> index;
+    src = string;
+    count = additional_len; /* this is with the terminating zero */
+    memcpy ( dest, src, count );
+   
+    allocator-> index += count -1;
+}
+
+void add_axis2_char_t( const axis2_env_t* env,
+               tcpmon_util_allocator_t* allocator, 
+               axis2_char_t c,
+               int turns)
+{
+    int additional_len = 0;
+
+    additional_len = turns + 1;
+    if ( allocator-> index + additional_len  >= allocator-> allocated )
+    {
+        if ( allocator-> allocated == 0 )
+        {
+            allocator-> buffer =
+                    AXIS2_MALLOC ( env-> allocator, additional_len );
+        }
+        else
+        {
+            allocator-> buffer =
+                    AXIS2_REALLOC ( env-> allocator, allocator-> buffer, 
+                                allocator-> allocated + additional_len);
+        }
+        allocator-> allocated += additional_len;
+    }
+    
+    /* copy memory */
+    memset ( allocator-> buffer + allocator-> index, c, turns );
+
+    allocator-> index += turns;
+    
+}

Added: webservices/axis2/trunk/c/tools/tcpmon/test/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/test/Makefile.am?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/test/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/test/Makefile.am Fri Sep  1 05:55:44 2006
@@ -0,0 +1 @@
+SUBDIRS = unit

Added: webservices/axis2/trunk/c/tools/tcpmon/test/unit/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/test/unit/Makefile.am?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/test/unit/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/test/unit/Makefile.am Fri Sep  1 05:55:44 2006
@@ -0,0 +1,19 @@
+TESTS =
+prgbindir=$(prefix)/bin/unit_test
+prgbin_PROGRAMS = tcpmon_unit_test_suite
+
+tcpmon_unit_test_suite_SOURCES = main.c tcpmon_test.c
+
+tcpmon_unit_test_suite_LDADD   =   \
+                     $(top_builddir)/src/libaxis2_tcpmon.la \
+                     -L$(CUTEST_HOME)/lib \
+                     -lcutest \
+                     -L$(AXIS2C_HOME)/lib \
+                     -laxis2_util \
+                     $(NULL)
+
+
+INCLUDES = -I${CUTEST_HOME}/include \
+           -I$(top_builddir)/include \
+           @UTILINC@ \
+           $(NULL)

Added: webservices/axis2/trunk/c/tools/tcpmon/test/unit/main.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/test/unit/main.c?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/test/unit/main.c (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/test/unit/main.c Fri Sep  1 05:55:44 2006
@@ -0,0 +1,20 @@
+#include <CuTest.h>
+#include <stdio.h>
+#include "tcpmon_test.h"
+
+void RunAllTests(void) {
+    CuString *output = CuStringNew();
+    CuSuite* suite = CuSuiteNew();
+
+    CuSuiteAddSuite(suite, (CuSuite*)tcpmon_GetSuite());
+
+    CuSuiteRun(suite);
+    CuSuiteSummary(suite, output);
+    CuSuiteDetails(suite, output);
+    printf("%s\n", output->buffer);
+}
+
+int main(void) {
+    RunAllTests();
+    return 0;
+}

Added: webservices/axis2/trunk/c/tools/tcpmon/test/unit/result
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/test/unit/result?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/test/unit/result (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/test/unit/result Fri Sep  1 05:55:44 2006
@@ -0,0 +1,14 @@
+F
+
+There was 1 failure:
+1) test_format_xml: tcpmon_test.c:28: expected <<input>
+  	check for one step
+  </input>
+  > but was <<input>
+	check for one step
+</input>
+í>
+
+!!!FAILURES!!!
+Runs: 1 Passes: 0 Fails: 1
+

Added: webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.c?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.c (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.c Fri Sep  1 05:55:44 2006
@@ -0,0 +1,77 @@
+#include <CuTest.h>
+#include <axis2_utils.h>
+#include "tcpmon_test.h"
+#include <stdlib.h>
+#include <axis2_string.h>
+
+#include <tcpmon_util.h>
+
+void test_format_xml(CuTest *tc)
+{
+    axis2_env_t *env;
+    axis2_allocator_t *allocator;
+    axis2_char_t* input;
+    axis2_char_t* actual;
+    axis2_char_t* expected;
+
+    allocator = axis2_allocator_init(NULL);
+    env = axis2_env_create(allocator);
+
+    input = (char*)AXIS2_STRDUP(
+             "<input>check for one step</input>",
+                                              env);
+    actual = 
+      (char*)tcpmon_util_format_as_xml(env, input);
+    expected = "<input>\n"
+               "\tcheck for one step\n" 
+               "</input>\n";
+    CuAssertStrEquals(tc, expected, actual);
+    free (actual);
+    free (input);
+
+
+    input = (char*)AXIS2_STRDUP(
+             "<input><tag2><another_tag with='attriutes'>check for one step</another_tag></tag2></input>",
+                                              env);
+    actual = 
+      (char*)tcpmon_util_format_as_xml(env, input);
+    expected = 
+               "<input>\n"
+               "\t<tag2>\n"
+               "\t\t<another_tag with='attriutes'>\n"
+               "\t\t\tcheck for one step\n"
+               "\t\t</another_tag>\n"
+               "\t</tag2>\n"
+               "</input>\n";
+
+    CuAssertStrEquals(tc, expected, actual);
+    free (actual);
+    free (input);
+
+    input = (char*)AXIS2_STRDUP(
+             "<?processing inc?><input><tag2><another_tag with='attriutes'>check for one step</another_tag></tag2></input>",
+                                              env);
+    actual = 
+      (char*)tcpmon_util_format_as_xml(env, input);
+    expected = "<?processing inc?>\n"
+               "<input>\n"
+               "\t<tag2>\n"
+               "\t\t<another_tag with='attriutes'>\n"
+               "\t\t\tcheck for one step\n"
+               "\t\t</another_tag>\n"
+               "\t</tag2>\n"
+               "</input>\n";
+
+    CuAssertStrEquals(tc, expected, actual);
+    free (actual);
+    free (input);
+
+}
+
+CuSuite* tcpmon_GetSuite()
+{
+    CuSuite* suite = CuSuiteNew();
+    SUITE_ADD_TEST(suite, test_format_xml);
+    return suite;
+}
+

Added: webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.h?rev=439300&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.h (added)
+++ webservices/axis2/trunk/c/tools/tcpmon/test/unit/tcpmon_test.h Fri Sep  1 05:55:44 2006
@@ -0,0 +1,9 @@
+#ifndef TCPMON_TEST_H
+#define TCPMON_TEST_H
+
+#include <CuTest.h>
+
+CuSuite* tcpmon_GetSuite();
+
+#endif /* TCPMON_TEST_H */
+



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org