You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by el...@apache.org on 2015/07/28 20:52:14 UTC

svn commit: r1693140 - in /httpd/test/framework/trunk: c-modules/test_session/ t/htdocs/modules/session/ t/modules/

Author: elu
Date: Tue Jul 28 18:52:13 2015
New Revision: 1693140

URL: http://svn.apache.org/r1693140
Log:
Add tests for mod_session 

Submitted by: Paul Spangler <pa...@ni.com>
Reviewed by: elu


Added:
    httpd/test/framework/trunk/c-modules/test_session/
    httpd/test/framework/trunk/c-modules/test_session/Makefile   (with props)
    httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c   (with props)
    httpd/test/framework/trunk/c-modules/test_session/mod_test_session.slo
    httpd/test/framework/trunk/t/htdocs/modules/session/
    httpd/test/framework/trunk/t/htdocs/modules/session/env.shtml
    httpd/test/framework/trunk/t/modules/session.t

Added: httpd/test/framework/trunk/c-modules/test_session/Makefile
URL: http://svn.apache.org/viewvc/httpd/test/framework/trunk/c-modules/test_session/Makefile?rev=1693140&view=auto
==============================================================================
--- httpd/test/framework/trunk/c-modules/test_session/Makefile (added)
+++ httpd/test/framework/trunk/c-modules/test_session/Makefile Tue Jul 28 18:52:13 2015
@@ -0,0 +1,21 @@
+# WARNING: this file is generated, do not edit
+# generated on Tue Jul 28 14:22:01 2015
+# 01: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestConfig.pm:961
+# 02: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestConfig.pm:979
+# 03: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestConfigC.pm:178
+# 04: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestConfigC.pm:162
+# 05: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestConfigC.pm:125
+# 06: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestConfigC.pm:97
+# 07: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestRun.pm:501
+# 08: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestRun.pm:713
+# 09: /home/elu/Code/apache/httpd/httpd-framework/Apache-Test/lib/Apache/TestRun.pm:713
+# 10: /home/elu/Code/apache/httpd/httpd-framework/t/TEST:21
+
+APXS=/home/elu/Code/apache/httpd/2.4.x-git/built/bin/apxs
+all: .libs/mod_test_session.so
+
+.libs/mod_test_session.so: mod_test_session.c
+	$(APXS) -D APACHE2 -D APACHE2_4  -I/home/elu/Code/apache/httpd/httpd-framework/c-modules -c mod_test_session.c
+
+clean:
+	-rm -rf mod_test_session.o mod_test_session.lo mod_test_session.slo mod_test_session.la mod_test_session.i mod_test_session.s mod_test_session.gcno .libs

Propchange: httpd/test/framework/trunk/c-modules/test_session/Makefile
------------------------------------------------------------------------------
    svn:eol-style = native

Added: httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c
URL: http://svn.apache.org/viewvc/httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c?rev=1693140&view=auto
==============================================================================
--- httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c (added)
+++ httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c Tue Jul 28 18:52:13 2015
@@ -0,0 +1,334 @@
+#define HTTPD_TEST_REQUIRE_APACHE 2.3
+
+#if CONFIG_FOR_HTTPD_TEST
+
+<IfModule mod_session.c>
+    <Location /sessiontest>
+         Session Off
+         TestSession On
+         SetHandler test-session-handler
+    </Location>
+    <Location /sessiontest/on>
+        Session On
+        SessionHeader X-Test-Session-Override
+    </Location>
+    <Location /sessiontest/on/encode>
+        TestSessionEncoder On
+    </Location>
+    <IfModule mod_include.c>
+        Alias /sessiontest/on/env/on @DocumentRoot@/modules/session
+        <Directory @DocumentRoot@/modules/session>
+            Session On
+            SessionEnv Off
+            TestSession On
+            Options +IncludesNOEXEC
+        </Directory>
+        <Location /sessiontest/on/env>
+            SetHandler None
+        </Location>
+        <Location /sessiontest/on/env/on>
+            SessionEnv On
+        </Location>
+    </IfModule>
+    <Location /sessiontest/on/expire>
+        SessionMaxAge 10
+    </Location>
+    <Location /sessiontest/on/include>
+        SessionInclude /sessiontest/on/include/yes
+        SessionExclude /sessiontest/on/include/yes/no
+    </Location>
+</IfModule>
+
+#endif
+
+#include "apr_strings.h"
+#include "mod_session.h"
+
+#define APACHE_HTTPD_TEST_EXTRA_HOOKS extra_hooks
+#define APACHE_HTTPD_TEST_CHILD_INIT test_session_init
+#define APACHE_HTTPD_TEST_HANDLER test_session_handler
+#define APACHE_HTTPD_TEST_COMMANDS test_session_cmds
+#define APACHE_HTTPD_TEST_PER_DIR_CREATE test_session_dcfg_create
+#define APACHE_HTTPD_TEST_PER_DIR_MERGE test_session_dcfg_merge
+
+#include "apache_httpd_test.h"
+
+#define TEST_SESSION_HANDLER "test-session-handler"
+#define TEST_SESSION_ENCODER "test-session-encoder"
+#define TEST_SESSION_NOTE "mod_test_session"
+#define TEST_SESSION_HEADER "X-Test-Session-Override"
+#define TEST_SESSION_ENCODING_PREFIX "TestEncoded:"
+
+typedef struct {
+    int session;
+    int session_set;
+    int encoder;
+    int encoder_set;
+} test_session_dcfg_t;
+
+typedef enum {
+    TEST_SESSION_ACTION_NONE,
+    TEST_SESSION_ACTION_GET,
+    TEST_SESSION_ACTION_SET
+} TestSessionAction;
+
+module AP_MODULE_DECLARE_DATA test_session_module;
+
+static APR_OPTIONAL_FN_TYPE(ap_session_get) *ap_session_get_fn = NULL;
+static APR_OPTIONAL_FN_TYPE(ap_session_set) *ap_session_set_fn = NULL;
+static APR_OPTIONAL_FN_TYPE(ap_session_load) *ap_session_load_fn = NULL;
+static APR_OPTIONAL_FN_TYPE(ap_session_save) *ap_session_save_fn = NULL;
+
+static void test_session_init(apr_pool_t *p, server_rec *s)
+{
+    ap_session_get_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_get);
+    ap_session_set_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_set);
+    ap_session_save_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_save);
+    ap_session_load_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_load);
+}
+
+static apr_status_t test_session_load(request_rec * r, session_rec ** z)
+{
+    test_session_dcfg_t *dconf = ap_get_module_config(r->per_dir_config,
+                                                      &test_session_module);
+    if (!dconf || !dconf->session)
+        return DECLINED;
+
+    session_rec *zz = (session_rec *)apr_table_get(r->notes, TEST_SESSION_NOTE);
+
+    if (!zz) {
+        /* Create the session using the query string as the data. */
+        char *data = apr_pstrdup(r->pool, r->args);
+
+        if (data) {
+            int result = ap_unescape_urlencoded(data);
+            if (result)
+                return result;
+        }
+
+        zz = (session_rec *)apr_pcalloc(r->pool, sizeof(session_rec));
+        zz->pool = r->pool;
+        zz->entries = apr_table_make(r->pool, 10);
+        zz->encoded = data;
+        apr_table_setn(r->notes, TEST_SESSION_NOTE, (char *)zz);
+    }
+
+    *z = zz;
+    return OK;
+}
+
+static apr_status_t test_session_save(request_rec * r, session_rec * z)
+{
+    test_session_dcfg_t *dconf = ap_get_module_config(r->per_dir_config,
+                                                      &test_session_module);
+    if (!dconf || !dconf->session)
+        return DECLINED;
+
+    /* Save the session into headers. */
+    apr_table_setn(r->headers_out, "X-Test-Session-Dirty",
+        z->dirty ? "1" : "0");
+
+    apr_table_set(r->headers_out, "X-Test-Session", z->encoded);
+
+    return OK;
+}
+
+static apr_status_t test_session_encode(request_rec * r, session_rec * z)
+{
+    test_session_dcfg_t *dconf = ap_get_module_config(r->per_dir_config,
+                                                      &test_session_module);
+    if (!dconf || !dconf->encoder)
+        return DECLINED;
+
+    /* Simple encoding by adding a prefix. */
+    z->encoded = apr_pstrcat(r->pool, TEST_SESSION_ENCODING_PREFIX,
+                             z->encoded, NULL);
+    return OK;
+}
+
+static apr_status_t test_session_decode(request_rec * r, session_rec * z)
+{
+    apr_status_t result = OK;
+    const size_t prefix_len = strlen(TEST_SESSION_ENCODING_PREFIX);
+    test_session_dcfg_t *dconf = ap_get_module_config(r->per_dir_config,
+                                                      &test_session_module);
+    if (!dconf || !dconf->encoder || !z->encoded)
+        return DECLINED;
+
+    /* Simple decoding by removing a prefix. */
+    if (!strncmp(z->encoded, TEST_SESSION_ENCODING_PREFIX, prefix_len)) {
+        z->encoded += prefix_len;
+        return OK;
+    }
+
+    return HTTP_BAD_REQUEST;
+}
+
+static int test_session_get(request_rec *r, char *name)
+{
+    session_rec *z = NULL;
+    const char *value = NULL;
+    apr_status_t result = ap_session_load_fn(r, &z);
+
+    if (result == OK)
+        result = ap_session_get_fn(r, z, name, &value);
+
+    if (result == OK) {
+        if (value)
+            result = ap_rputs(value, r) > 0 ? OK : HTTP_INTERNAL_SERVER_ERROR;
+        else
+            result = HTTP_NOT_FOUND;
+    }
+
+    return result;
+}
+
+static int test_session_set(request_rec *r, char *name, char *value)
+{
+    session_rec *z = NULL;
+    apr_status_t result = ap_session_load_fn(r, &z);
+
+    if (result == OK)
+        result = ap_session_set_fn(r, z, name, value);
+
+    return result;
+}
+
+static int test_session_handler(request_rec *r)
+{
+    const char *overrides = NULL;
+
+    if (strcmp(r->handler, TEST_SESSION_HANDLER))
+        return DECLINED;
+
+    /* Copy the header for SessionHeader from the request to the response. */
+    if (overrides = apr_table_get(r->headers_in, TEST_SESSION_HEADER))
+        apr_table_setn(r->headers_out, TEST_SESSION_HEADER, overrides);
+
+    /* Additional commands to test the session API via POST. */
+    if (r->method_number == M_POST) {
+        if (!ap_session_get_fn || !ap_session_set_fn ||
+            !ap_session_load_fn || !ap_session_save_fn)
+            return HTTP_INTERNAL_SERVER_ERROR;
+
+        char *fieldName = NULL;
+        char *fieldValue = NULL;
+        apr_array_header_t *pairs = NULL;
+        TestSessionAction action = TEST_SESSION_ACTION_NONE;
+        apr_status_t result = ap_parse_form_data(r, NULL, &pairs, 3, 1024);
+
+        if (result != OK)
+            return result;
+
+        while (pairs && !apr_is_empty_array(pairs)) {
+            ap_form_pair_t *pair = (ap_form_pair_t *)apr_array_pop(pairs);
+            if (!strcmp(pair->name, "action")) {
+                apr_size_t len;
+                char *value = NULL;
+                result = apr_brigade_pflatten(pair->value, &value, &len,
+                                              r->pool);
+                if (result == OK && !strncmp(value, "get", len))
+                    action = TEST_SESSION_ACTION_GET;
+                else if (result == OK && !strncmp(value, "set", len))
+                    action = TEST_SESSION_ACTION_SET;
+                else
+                    return HTTP_BAD_REQUEST;
+            }
+            else if (!strcmp(pair->name, "name")) {
+                apr_size_t len;
+                apr_brigade_length(pair->value, 1, &len);
+                fieldName = apr_pcalloc(r->pool, sizeof(char) * len + 1);
+                result = apr_brigade_flatten(pair->value, fieldName, &len);
+            }
+            else if (!strcmp(pair->name, "value")) {
+                apr_size_t len;
+                apr_brigade_length(pair->value, 1, &len);
+                fieldValue = apr_pcalloc(r->pool, sizeof(char) * len + 1);
+                result = apr_brigade_flatten(pair->value, fieldValue, &len);
+            }
+            else {
+                return HTTP_BAD_REQUEST;
+            }
+
+            if (result != OK)
+                return result;
+        }
+
+        switch (action) {
+        case TEST_SESSION_ACTION_GET:
+            return test_session_get(r, fieldName);
+
+        case TEST_SESSION_ACTION_SET:
+            return test_session_set(r, fieldName, fieldValue);
+
+        default:
+            return HTTP_BAD_REQUEST;
+        }
+    }
+
+    return OK;
+}
+
+static void *test_session_dcfg_create(apr_pool_t *p, char *dummy)
+{
+    return apr_pcalloc(p, sizeof(test_session_dcfg_t));
+}
+
+static void *test_session_dcfg_merge(apr_pool_t * p, void *basev, void *addv)
+{
+    test_session_dcfg_t *add = addv;
+    test_session_dcfg_t *base = basev;
+    test_session_dcfg_t *new = apr_pcalloc(p, sizeof(test_session_dcfg_t));
+
+    new->session = (add->session_set == 0) ? base->session : add->session;
+    new->session_set = add->session_set || base->session_set;
+    new->encoder = (add->encoder_set == 0) ? base->encoder : add->encoder;
+    new->encoder_set = add->encoder_set || base->encoder_set;
+
+    return new;
+}
+
+static const char *set_session_enable(cmd_parms * parms, void *dconf, int flag)
+{
+    test_session_dcfg_t *conf = dconf;
+
+    conf->session = flag;
+    conf->session_set = 1;
+
+    return NULL;
+}
+
+static const char *set_encoder_enable(cmd_parms * parms, void *dconf, int flag)
+{
+    test_session_dcfg_t *conf = dconf;
+
+    conf->encoder = flag;
+    conf->encoder_set = 1;
+
+    return NULL;
+}
+
+static const command_rec test_session_cmds[] = {
+    AP_INIT_FLAG("TestSession", set_session_enable, NULL, OR_ALL,
+                 "Enable test sessions"),
+    AP_INIT_FLAG("TestSessionEncoder", set_encoder_enable, NULL, OR_ALL,
+                 "Enable test session encoding"),
+    { NULL }
+};
+
+static void extra_hooks(apr_pool_t *pool)
+{
+    ap_hook_session_load(test_session_load,
+                         NULL, NULL, APR_HOOK_MIDDLE);
+
+    ap_hook_session_save(test_session_save,
+                         NULL, NULL, APR_HOOK_MIDDLE);
+
+    ap_hook_session_encode(test_session_encode,
+                           NULL, NULL, APR_HOOK_MIDDLE);
+
+    ap_hook_session_decode(test_session_decode,
+                           NULL, NULL, APR_HOOK_MIDDLE);
+}
+
+APACHE_HTTPD_TEST_MODULE(test_session);

Propchange: httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c
------------------------------------------------------------------------------
    svn:eol-style = native

Added: httpd/test/framework/trunk/c-modules/test_session/mod_test_session.slo
URL: http://svn.apache.org/viewvc/httpd/test/framework/trunk/c-modules/test_session/mod_test_session.slo?rev=1693140&view=auto
==============================================================================
    (empty)

Added: httpd/test/framework/trunk/t/htdocs/modules/session/env.shtml
URL: http://svn.apache.org/viewvc/httpd/test/framework/trunk/t/htdocs/modules/session/env.shtml?rev=1693140&view=auto
==============================================================================
--- httpd/test/framework/trunk/t/htdocs/modules/session/env.shtml (added)
+++ httpd/test/framework/trunk/t/htdocs/modules/session/env.shtml Tue Jul 28 18:52:13 2015
@@ -0,0 +1 @@
+<!--#echo decoding="urlencoded" var="HTTP_SESSION" -->

Added: httpd/test/framework/trunk/t/modules/session.t
URL: http://svn.apache.org/viewvc/httpd/test/framework/trunk/t/modules/session.t?rev=1693140&view=auto
==============================================================================
--- httpd/test/framework/trunk/t/modules/session.t (added)
+++ httpd/test/framework/trunk/t/modules/session.t Tue Jul 28 18:52:13 2015
@@ -0,0 +1,162 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+use Apache::TestUtil;
+
+##
+## mod_session tests
+##
+
+# Code, session data, dirty, expiry, content.
+my $checks_per_test = 5;
+
+# Session, API, Encoding, SessionEnv, SessionHeader, SessionMaxAge,
+# SessionInclude/Exclude.
+my $num_tests = 2 + 4 + 5 + 2 + 1 + 4 + 3;
+
+my @todo = [
+    # Session writable after decode failure - PR 58171
+    53, 54,
+    # Session writable after expired - PR 56052
+    88, 89
+];
+
+plan tests => $num_tests * $checks_per_test,
+              todo => @todo,
+              need need_module('session'),
+              need_min_apache_version('2.3.0');
+
+# APR time is in microseconds.
+use constant APR_TIME_PER_SEC => 1000000;
+
+# check_result(name, res, session, dirty, expiry, response)
+sub check_result
+{
+    my $name = shift;
+    my $res = shift;
+    my $session = shift // '(none)';
+    my $dirty = shift // 0;
+    my $expiry = shift // 0;
+    my $response = shift // '';
+
+    ok t_cmp($res->code, 200, "response code ($name)");
+    my $gotSession = $res->header('X-Test-Session') // '(none)';
+    my $sessionData = $gotSession;
+
+    if ($gotSession =~ /^(?:(.+)&)?expiry=([0-9]+)(?:&(.*))?$/i) {
+        my $gotExpiry = $2 / APR_TIME_PER_SEC;
+        t_debug "expiry of $gotExpiry ($name)";
+        ok $expiry && time() < $gotExpiry;
+
+        # Combine the remaining data (if there is any) without the expiry.
+        $sessionData = join('&', grep(defined, ($1, $3)));
+    }
+    else {
+        t_debug "no expiry ($name)";
+        ok !$expiry;
+    }
+
+    ok t_cmp($sessionData, $session, "session header ($name)");
+    my $got = $res->header('X-Test-Session-Dirty') // 0;
+    ok t_cmp($got, $dirty, "session dirty ($name)");
+    $got = $res->content;
+    chomp($got);
+    ok t_cmp($got, $response, "body ($name)");
+    return $gotSession;
+}
+
+# check_get(name, path, session, dirty, expiry, response)
+sub check_get
+{
+    my $name = shift;
+    my $path = shift;
+
+    t_debug "$name: GET $path";
+    my $res = GET "/sessiontest$path";
+    return check_result $name, $res, @_;
+}
+
+# check_post(name, path, data, session, dirty, expiry, response)
+sub check_post
+{
+    my $name = shift;
+    my $path = shift;
+    my $data = shift;
+
+    t_debug "$name: POST $path";
+    my $res = POST "/sessiontest$path", content => $data;
+    return check_result $name, $res, @_;
+}
+
+# check_custom(name, result, session, dirty, expiry, response)
+sub check_custom
+{
+    my $name = shift;
+    my $res = shift;
+
+    t_debug "$name";
+    return check_result $name, $res, @_;
+}
+
+my $session = 'test=value';
+my $encoded_prefix = 'TestEncoded:';
+my $encoded_session = $encoded_prefix . $session;
+my $create_session = 'action=set&name=test&value=value';
+my $read_session = 'action=get&name=test';
+
+# Session directive
+check_get 'Session Off', '/';
+check_get 'Session On', '/on', '';
+
+# API optional functions
+check_post 'Set session', '/on', $create_session, $session, 1;
+check_post 'Get session', "/on?$session", $read_session,
+    $session, 0, 0, 'value';
+check_post 'Delete session', "/on?$session", 'action=set&name=test', '', 1;
+check_post 'Edit session', "/on?$session", 'action=set&name=test&value=',
+    'test=', 1;
+
+# Encoding hooks
+check_post 'Encode session', '/on/encode', $create_session,
+    $encoded_session, 1;
+check_post 'Decode session', "/on/encode?$encoded_session", $read_session,
+    $encoded_session, 0, 0, 'value';
+check_get 'Custom decoder failure', "/on/encode?$session", $encoded_prefix;
+check_get 'Identity decoder failure', "/on?&=test", '';
+check_post 'Session writable after decode failure', "/on/encode?$session",
+    $create_session, $encoded_session, 1;
+
+# SessionEnv directive - requires mod_include
+if (have_module('include')) {
+    check_custom 'SessionEnv Off', GET("/modules/session/env.shtml?$session"),
+        $session, 0, 0, '(none)';
+    check_get 'SessionEnv On', "/on/env/on/env.shtml?$session",
+        $session, 0, 0, $session;
+}
+else {
+    for (1 .. 2 * $checks_per_test) {
+        skip "SessionEnv tests require mod_include", 1;
+    }
+}
+
+# SessionHeader directive
+check_custom 'SessionHeader', GET("/sessiontest/on?$session&another=1",
+                              'X-Test-Session-Override' => 'another=5&last=7'),
+    "$session&another=5&last=7", 1;
+
+# SessionMaxAge directive
+my $future_expiry = (time() + 100) * APR_TIME_PER_SEC;
+
+check_get 'SessionMaxAge adds expiry', "/on/expire?$session", $session, 0, 1;
+check_get 'Discard expired session', "/on/expire?$session&expiry=1", '', 0, 1;
+check_get 'Keep non-expired session',
+    "/on/expire?$session&expiry=$future_expiry", $session, 0, 1;
+check_post 'Session writable after expired', '/on/expire?expiry=1',
+    $create_session, $session, 1, 1;
+
+# SessionInclude/Exclude directives
+check_get 'Not in SessionInclude', "/on/include?$session";
+check_get 'SessionInclude', "/on/include/yes?$session", $session;
+check_get 'SessionExclude', "/on/include/yes/no?$session";



Re: svn commit: r1693140 - in /httpd/test/framework/trunk: c-modules/test_session/ t/htdocs/modules/session/ t/modules/

Posted by Eric Covener <co...@gmail.com>.
On Wed, Jul 29, 2015 at 11:10 AM, Paul Spangler <pa...@ni.com> wrote:
> Thank you for reviewing and committing those tests so quickly! I think the
> test_session directory is missing the svn:ignore prop:
>
> $ svn propget svn:ignore c-modules/test_session
> $ svn propget svn:ignore c-modules/test_ssl
> Makefile
> .libs
> *.lo
> *.slo
> *.la
> *.so
> *.exp
> *.lib


Thanks -- done in r1693321.

-- 
Eric Covener
covener@gmail.com

Re: svn commit: r1693140 - in /httpd/test/framework/trunk: c-modules/test_session/ t/htdocs/modules/session/ t/modules/

Posted by Paul Spangler <pa...@ni.com>.
On 7/29/2015 9:45 AM, Edward Lu wrote:
> Whoops, sorry, fixed.
>
> On Tue, Jul 28, 2015 at 2:59 PM, Eric Covener <covener@gmail.com
> <ma...@gmail.com>> wrote:
>
>     On Tue, Jul 28, 2015 at 2:52 PM,  <elu@apache.org
>     <ma...@apache.org>> wrote:
>     >
>     > Added:
>     >     httpd/test/framework/trunk/c-modules/test_session/
>     >     httpd/test/framework/trunk/c-modules/test_session/Makefile   (with props)
>     >     httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c   (with props)
>     >     httpd/test/framework/trunk/c-modules/test_session/mod_test_session.slo
>
>
>     Some generated files
>
>     --
>     Eric Covener
>     covener@gmail.com <ma...@gmail.com>
>
>

Thank you for reviewing and committing those tests so quickly! I think 
the test_session directory is missing the svn:ignore prop:

$ svn propget svn:ignore c-modules/test_session
$ svn propget svn:ignore c-modules/test_ssl
Makefile
.libs
*.lo
*.slo
*.la
*.so
*.exp
*.lib

-- 
Paul Spangler
LabVIEW R&D
National Instruments

Re: svn commit: r1693140 - in /httpd/test/framework/trunk: c-modules/test_session/ t/htdocs/modules/session/ t/modules/

Posted by Edward Lu <ch...@gmail.com>.
Whoops, sorry, fixed.

On Tue, Jul 28, 2015 at 2:59 PM, Eric Covener <co...@gmail.com> wrote:

> On Tue, Jul 28, 2015 at 2:52 PM,  <el...@apache.org> wrote:
> >
> > Added:
> >     httpd/test/framework/trunk/c-modules/test_session/
> >     httpd/test/framework/trunk/c-modules/test_session/Makefile   (with
> props)
> >
>  httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c
>  (with props)
> >
>  httpd/test/framework/trunk/c-modules/test_session/mod_test_session.slo
>
>
> Some generated files
>
> --
> Eric Covener
> covener@gmail.com
>

Re: svn commit: r1693140 - in /httpd/test/framework/trunk: c-modules/test_session/ t/htdocs/modules/session/ t/modules/

Posted by Eric Covener <co...@gmail.com>.
On Tue, Jul 28, 2015 at 2:52 PM,  <el...@apache.org> wrote:
>
> Added:
>     httpd/test/framework/trunk/c-modules/test_session/
>     httpd/test/framework/trunk/c-modules/test_session/Makefile   (with props)
>     httpd/test/framework/trunk/c-modules/test_session/mod_test_session.c   (with props)
>     httpd/test/framework/trunk/c-modules/test_session/mod_test_session.slo


Some generated files

-- 
Eric Covener
covener@gmail.com