httpd-apreq-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pgollu...@apache.org
Subject svn commit: r447063 - in /httpd/apreq/trunk/module/t: ./ c-modules/apreq_upload_test/
Date Sun, 17 Sep 2006 13:02:56 GMT
Author: pgollucci
Date: Sun Sep 17 06:02:55 2006
New Revision: 447063

URL: http://svn.apache.org/viewvc?view=rev&rev=447063
Log:
NEW TEST:
  C API - 
    try uploading files of various sizes particularly near, equal, and multiples 
    of the 64k (65535btyes) boundary
    

Added:
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/10k   (with props)
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/128k   (with props)
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1b   (with props)
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1k   (with props)
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/63k   (with props)
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/64k   (with props)
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/65k   (with props)
    httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/mod_apreq_upload_test.c
    httpd/apreq/trunk/module/t/upload.t

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/10k
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/10k?view=auto&rev=447063
==============================================================================
Binary file - no diff available.

Propchange: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/10k
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/128k
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/128k?view=auto&rev=447063
==============================================================================
Binary file - no diff available.

Propchange: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/128k
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1b
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1b?view=auto&rev=447063
==============================================================================
Binary file - no diff available.

Propchange: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1b
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1k
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1k?view=auto&rev=447063
==============================================================================
Binary file - no diff available.

Propchange: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/1k
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/63k
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/63k?view=auto&rev=447063
==============================================================================
Binary file - no diff available.

Propchange: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/63k
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/64k
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/64k?view=auto&rev=447063
==============================================================================
Binary file - no diff available.

Propchange: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/64k
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/65k
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/65k?view=auto&rev=447063
==============================================================================
Binary file - no diff available.

Propchange: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/65k
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/mod_apreq_upload_test.c
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/mod_apreq_upload_test.c?view=auto&rev=447063
==============================================================================
--- httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/mod_apreq_upload_test.c (added)
+++ httpd/apreq/trunk/module/t/c-modules/apreq_upload_test/mod_apreq_upload_test.c Sun Sep
17 06:02:55 2006
@@ -0,0 +1,100 @@
+/*
+**  Copyright 2006 The Apache Software Foundation
+**
+**  Licensed under the Apache License, Version 2.0 (the "License");
+**  you may not use this file except in compliance with the License.
+**  You may obtain a copy of the License at
+**
+**      http://www.apache.org/licenses/LICENSE-2.0
+**
+**  Unless required by applicable law or agreed to in writing, software
+**  distributed under the License is distributed on an "AS IS" BASIS,
+**  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+**  See the License for the specific language governing permissions and
+**  limitations under the License.
+*/
+
+#ifdef CONFIG_FOR_HTTPD_TEST
+#if CONFIG_FOR_HTTPD_TEST
+
+<Location /apreq_upload_test>
+   SetHandler apreq_upload_test
+</Location>
+
+#endif
+#endif
+
+#define APACHE_HTTPD_TEST_HANDLER apreq_upload_test_handler
+
+#include "apache_httpd_test.h"
+
+#include "apreq_module.h"
+#include "apreq_param.h"
+#include "apreq_module_apache2.h"
+#include "apreq_util.h"
+
+#include "httpd.h"
+
+
+static int apreq_upload_test_handler(request_rec *r)
+{
+    apreq_handle_t *req;
+    const apreq_param_t *param;
+
+    if (strcmp(r->handler, "apreq_upload_test") != 0) {
+      return DECLINED;
+    }
+
+    req = apreq_handle_apache2(r) ;
+ 
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS,
+                  r, "starting apreq_upload_test");
+
+    ap_set_content_type(r, "text/plain");
+
+    param = apreq_body_get(req, "filename");
+
+    if (param == NULL) {
+      ap_rputs("missing upload field", r);
+    }
+    else if (param->upload == NULL) {
+      ap_rputs("not an upload field", r);
+    }
+    else {
+      apr_table_t *info;      /* upload headers */
+      apr_bucket_brigade *bb; /* upload contents */
+      apr_bucket *e;
+      apr_size_t total = 0;
+
+      info = param->info;
+      bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
+      apreq_brigade_copy(bb, param->upload);
+
+      while ((e = APR_BRIGADE_FIRST(bb)) != APR_BRIGADE_SENTINEL(bb)) {
+        apr_size_t dlen;
+        const char *data;
+         
+        /* apr_bucket_read() has side effects on spool buckets, which
+         * is why we read from a copy of the brigade - to conserve memory
+         */
+        if (apr_bucket_read(e, &data, &dlen, APR_BLOCK_READ)) {
+          ap_rprintf(r, "bad bucket read");
+          break;
+        }
+        else {
+          total += dlen;
+        }
+
+        apr_bucket_delete(e);
+      }
+
+      ap_rprintf(r, "%d", total);
+    }
+
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS,
+                  r, "finished apreq_upload_test");
+
+    return OK;
+}
+
+APACHE_HTTPD_TEST_MODULE(apreq_upload_test);

Added: httpd/apreq/trunk/module/t/upload.t
URL: http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/upload.t?view=auto&rev=447063
==============================================================================
--- httpd/apreq/trunk/module/t/upload.t (added)
+++ httpd/apreq/trunk/module/t/upload.t Sun Sep 17 06:02:55 2006
@@ -0,0 +1,35 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestUtil;
+use Apache::TestConfig;
+use Apache::TestRequest qw(UPLOAD_BODY);
+
+plan tests => 7, need_lwp;
+
+my $location = "/apreq_upload_test";
+
+my %files = (
+             '1b'   => 1,
+             '1k'   => 1024,
+             '10k'  => 10240,
+             '63k'  => 64512,
+             '64k'  => 65536,
+             '65k'  => 66560,
+             '128k' => 131072,
+            );
+
+my $server_root = Apache::Test::config()->{vars}->{serverroot};
+my $dir = "$server_root/c-modules/apreq_upload_test";
+
+foreach my $file (sort { $files{$a} <=> $files{$b} } keys %files) {
+    my $size = $files{$file};
+
+    my $result = UPLOAD_BODY($location, filename => "$dir/$file");
+    ok t_cmp(
+             $result,
+             $size,
+             "UPLOAD a file size $size btyes"
+             );
+}



Mime
View raw message