You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ig...@apache.org on 2013/01/28 14:32:37 UTC
git commit: TS-1587 make check fails on the esi plugin
Updated Branches:
refs/heads/master 0e8454ac6 -> d29918abf
TS-1587 make check fails on the esi plugin
Basically 3 problems
* output_data_len is not initialized in processor_test.cc
* usePackNodeList() function returns a enumeration, not a
boolean
* The Stub handler manager file is using the same file
name as the original file, thus causing a conflict. I
need to rename that file to a different name -
TestHandlerManager.cc and make sure the test program are
compiled/linked with that one.
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/d29918ab
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/d29918ab
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/d29918ab
Branch: refs/heads/master
Commit: d29918abf1ce4cc5fab4048a8a831729deb3f1c4
Parents: 0e8454a
Author: Kit Chan <ch...@gmail.com>
Authored: Mon Jan 28 00:19:19 2013 -0800
Committer: Igor Galić <i....@brainsware.org>
Committed: Mon Jan 28 14:30:13 2013 +0100
----------------------------------------------------------------------
plugins/experimental/esi/Makefile.am | 16 ++-
.../experimental/esi/test/TestHandlerManager.cc | 42 ++++++
plugins/experimental/esi/test/processor_test.cc | 103 +++++++--------
3 files changed, 107 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d29918ab/plugins/experimental/esi/Makefile.am
----------------------------------------------------------------------
diff --git a/plugins/experimental/esi/Makefile.am b/plugins/experimental/esi/Makefile.am
index f9385fe..265e875 100644
--- a/plugins/experimental/esi/Makefile.am
+++ b/plugins/experimental/esi/Makefile.am
@@ -26,7 +26,7 @@ AM_CXXFLAGS = \
-Wno-deprecated
pkglib_LTLIBRARIES = esi.la
-lib_LTLIBRARIES = libesi.la
+lib_LTLIBRARIES = libesi.la libtest.la
check_PROGRAMS = docnode_test parser_test processor_test utils_test vars_test
@@ -42,6 +42,18 @@ libesi_la_SOURCES = \
lib/Variables.cc \
lib/gzip.cc
+libtest_la_SOURCES = \
+ lib/DocNode.cc \
+ lib/EsiParser.cc \
+ lib/EsiProcessor.cc \
+ lib/Expression.cc \
+ lib/FailureInfo.cc \
+ test/TestHandlerManager.cc \
+ lib/Stats.cc \
+ lib/Utils.cc \
+ lib/Variables.cc \
+ lib/gzip.cc
+
esi_la_SOURCES = \
fetcher/HttpDataFetcherImpl.cc \
plugin.cc \
@@ -55,7 +67,7 @@ docnode_test_LDADD = libesi.la -ldl -lz -lpthread
parser_test_SOURCES = test/parser_test.cc test/print_funcs.cc
parser_test_LDADD = libesi.la -ldl -lz -lpthread
processor_test_SOURCES = test/processor_test.cc test/HandlerMap.cc test/StubIncludeHandler.cc test/print_funcs.cc
-processor_test_LDADD = libesi.la -ldl -lz -lpthread
+processor_test_LDADD = libtest.la -ldl -lz -lpthread
utils_test_SOURCES = test/utils_test.cc test/print_funcs.cc
utils_test_LDADD = libesi.la -ldl -lz -lpthread
vars_test_SOURCES = test/vars_test.cc test/print_funcs.cc
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d29918ab/plugins/experimental/esi/test/TestHandlerManager.cc
----------------------------------------------------------------------
diff --git a/plugins/experimental/esi/test/TestHandlerManager.cc b/plugins/experimental/esi/test/TestHandlerManager.cc
new file mode 100644
index 0000000..548a35e
--- /dev/null
+++ b/plugins/experimental/esi/test/TestHandlerManager.cc
@@ -0,0 +1,42 @@
+/** @file
+
+ A brief file description
+
+ @section license License
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+ */
+
+#include "HandlerManager.h"
+#include "HandlerMap.h"
+
+using namespace EsiLib;
+
+void
+HandlerManager::loadObjects(const Utils::KeyValueMap &handlers) {
+}
+
+SpecialIncludeHandler *
+HandlerManager::getHandler(Variables &esi_vars, Expression &esi_expr, HttpDataFetcher &fetcher,
+ const std::string &id) const {
+ StubIncludeHandler *handler = new StubIncludeHandler(esi_vars, esi_expr, fetcher);
+ gHandlerMap[id] = handler;
+ return handler;
+}
+
+HandlerManager::~HandlerManager() {
+}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d29918ab/plugins/experimental/esi/test/processor_test.cc
----------------------------------------------------------------------
diff --git a/plugins/experimental/esi/test/processor_test.cc b/plugins/experimental/esi/test/processor_test.cc
index bf85742..cb9cf12 100644
--- a/plugins/experimental/esi/test/processor_test.cc
+++ b/plugins/experimental/esi/test/processor_test.cc
@@ -56,7 +56,7 @@ int main()
handler_mgr);
string input_data("");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
cout << "Negative test - process()ing without completeParse()ing..." << endl;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
@@ -115,7 +115,7 @@ int main()
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::FAILURE);
assert(output_data_len == 10); // should remain unchanged
}
-
+
{
cout << endl << "===================== Test 3) comment tag" << endl;
TestHttpDataFetcher data_fetcher;
@@ -124,7 +124,7 @@ int main()
string input_data("foo<esi:comment text=\"bleh\"/>bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -141,7 +141,7 @@ int main()
string input_data("<esi:comment text=\"bleh\"/>bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -158,7 +158,7 @@ int main()
string input_data("foo<esi:comment text=\"bleh\"/>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -175,7 +175,7 @@ int main()
string input_data("foo\n<esi:comment text=\"\nbleh\"/>\nbar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -192,7 +192,7 @@ int main()
string input_data("foo\n<esi:remove><img src=\"http://www.example.com\"></esi:remove>\nbar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -210,7 +210,7 @@ int main()
"foo2\n<esi:comment text=\"bleh\"/>\nbar2");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -231,7 +231,7 @@ int main()
"foo3<esi:remove><img src=\"http://www.example.com\"></esi:remove>bar3\n"
"foo3<esi:comment text=\"bleh\"/>bar3\n");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -249,7 +249,7 @@ int main()
string input_data("foo <esi:include src=url1/> bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -286,7 +286,7 @@ int main()
"<esi:include src=\"blah bleh\"/>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -311,7 +311,7 @@ int main()
"<esi:remove> <a href=> </esi:remove>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -323,7 +323,7 @@ int main()
"foo2 >>>>> Content for URL [url2] <<<<< bar2\n"
">>>>> Content for URL [blah bleh] <<<<<", output_data_len) == 0);
}
-
+
{
cout << endl << "===================== Test 15) multiple addParseData calls" << endl;
TestHttpDataFetcher data_fetcher;
@@ -337,7 +337,7 @@ int main()
char line6[] = "</esi:remove>";
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(line1, sizeof(line1) - 1) == true);
assert(esi_proc.addParseData(line2, sizeof(line2) - 1) == true);
@@ -367,7 +367,7 @@ int main()
"<esi:remove> <a href=> </esi:remove>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data.data(), input_data.size()) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
@@ -378,7 +378,7 @@ int main()
"foo2 >>>>> Content for URL [url2] <<<<< bar2\n"
">>>>> Content for URL [blah bleh] <<<<<", output_data_len) == 0);
}
-
+
{
cout << endl << "===================== Test 17) final chunk call" << endl;
TestHttpDataFetcher data_fetcher;
@@ -392,7 +392,7 @@ int main()
char line6[] = "</esi:remove>";
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(line1, sizeof(line1) - 1) == true);
assert(esi_proc.addParseData(line2, sizeof(line2) - 1) == true);
@@ -417,7 +417,7 @@ int main()
string input_data("foo <esi:include src=url1/> bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str()) == true);
assert(esi_proc.completeParse() == true);
@@ -434,7 +434,7 @@ int main()
string input_data("foo <esi:include src=url1/> bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data) == true);
assert(esi_proc.completeParse() == true);
@@ -455,7 +455,7 @@ int main()
"<esi:remove> <a href=> </esi:remove>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
@@ -466,7 +466,7 @@ int main()
"foo2 >>>>> Content for URL [url2] <<<<< bar2\n"
">>>>> Content for URL [blah bleh] <<<<<", output_data_len) == 0);
}
-
+
{
cout << endl << "===================== Test 21) invalidly expanding url" << endl;
TestHttpDataFetcher data_fetcher;
@@ -475,7 +475,7 @@ int main()
string input_data("foo <esi:include src=$(HTTP_HOST) /> bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data) == true);
assert(esi_proc.completeParse() == true);
@@ -491,7 +491,7 @@ int main()
string input_data("foo <esi:vars>HTTP_HOST</esi:vars> bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data) == true);
assert(esi_proc.completeParse() == true);
@@ -508,7 +508,7 @@ int main()
string input_data("foo <esi:vars>$(HTTP_HOST)</esi:vars> bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data) == true);
assert(esi_proc.completeParse() == true);
@@ -525,7 +525,7 @@ int main()
string input_data("foo <esi:vars>$(HTTP_HOST</esi:vars> bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data) == true);
assert(esi_proc.completeParse() == true);
@@ -551,7 +551,7 @@ int main()
"</esi:otherwise>"
"</esi:choose>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
@@ -570,7 +570,7 @@ int main()
"</esi:otherwise>"
"</esi:choose>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
@@ -593,7 +593,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == FETCHER_STATIC_DATA_SIZE + 7);
@@ -615,7 +615,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
data_fetcher.setReturnData(false);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::NEED_MORE_DATA);
@@ -639,7 +639,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
data_fetcher.setReturnData(false);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::NEED_MORE_DATA);
@@ -664,7 +664,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
data_fetcher.setReturnData(false);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
@@ -691,7 +691,7 @@ int main()
"bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
data_fetcher.setReturnData(false);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::NEED_MORE_DATA);
@@ -714,7 +714,7 @@ int main()
"bar");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == FETCHER_STATIC_DATA_SIZE + 10 + 3 + 4 + 3);
@@ -753,7 +753,7 @@ int main()
"</esi:otherwise>\n"
"</esi:choose>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
@@ -777,7 +777,7 @@ int main()
assert(handler->parseCompleteCalled == true);
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == StubIncludeHandler::DATA_PREFIX_SIZE + 1);
assert(strncmp(output_data, "Special data for include id 1", output_data_len) == 0);
@@ -799,7 +799,7 @@ int main()
assert(handler->parseCompleteCalled == true);
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == (4 + StubIncludeHandler::DATA_PREFIX_SIZE + 1 + 1 +
StubIncludeHandler::DATA_PREFIX_SIZE + 1 + 4));
@@ -827,7 +827,7 @@ int main()
assert(udb_handler->parseCompleteCalled == true);
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == (4 + StubIncludeHandler::DATA_PREFIX_SIZE + 1 + 1 +
StubIncludeHandler::DATA_PREFIX_SIZE + 1 + 4));
@@ -864,7 +864,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == StubIncludeHandler::DATA_PREFIX_SIZE + 1);
@@ -886,7 +886,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
data_fetcher.setReturnData(false);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::NEED_MORE_DATA);
@@ -910,7 +910,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
data_fetcher.setReturnData(false);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::NEED_MORE_DATA);
@@ -935,7 +935,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.completeParse(input_data) == true);
// this is to make the StubHandler return failure
@@ -958,7 +958,7 @@ int main()
string input_data("<esi:comment text=\"bleh\"/>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
assert(esi_proc.completeParse() == true);
@@ -986,10 +986,9 @@ int main()
EsiProcessor esi_proc("processor", "parser", "expression", &Debug, &Error, data_fetcher, esi_vars,
handler_mgr);
- assert(esi_proc.usePackedNodeList(packedNodeList) == true);
-
+ assert(esi_proc.usePackedNodeList(packedNodeList) == EsiProcessor::PROCESS_SUCCESS);
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
data_fetcher.setReturnData(false);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::NEED_MORE_DATA);
data_fetcher.setReturnData(true);
@@ -1013,7 +1012,7 @@ int main()
"</esi:choose>";
assert(parser.parse(node_list, input_data) == true);
packedNodeList = node_list.pack();
- assert(esi_proc.usePackedNodeList(packedNodeList) == true);
+ assert(esi_proc.usePackedNodeList(packedNodeList) == EsiProcessor::PROCESS_SUCCESS);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == 1 + FETCHER_STATIC_DATA_SIZE + 3);
assert(strncmp(output_data, "\t>>>>> Content for URL [foo] <<<<<", output_data_len) == 0);
@@ -1042,12 +1041,12 @@ int main()
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
assert(esi_proc.addParseData(input_data.c_str(), input_data.size()) == true);
- assert(esi_proc.usePackedNodeList(packedNodeList) == false);
+ assert(esi_proc.usePackedNodeList(packedNodeList) == EsiProcessor::PROCESS_IN_PROGRESS);
assert(esi_proc.completeParse() == true);
- assert(esi_proc.usePackedNodeList(packedNodeList) == false);
+ assert(esi_proc.usePackedNodeList(packedNodeList) == EsiProcessor::PROCESS_IN_PROGRESS);
assert(esi_proc.process(output_data, output_data_len) == EsiProcessor::SUCCESS);
assert(output_data_len == 0);
}
@@ -1067,7 +1066,7 @@ int main()
"</esi:try>");
const char *output_data;
- int output_data_len;
+ int output_data_len=0;
StubIncludeHandler::FOOTER = "<!--footer-->";
StubIncludeHandler::FOOTER_SIZE = strlen(StubIncludeHandler::FOOTER);
assert(esi_proc.completeParse(input_data) == true);
@@ -1104,7 +1103,7 @@ int main()
EsiProcessor esi_proc("processor", "parser", "expression", &Debug, &Error, data_fetcher, esi_vars,
handler_mgr);
- assert(esi_proc.usePackedNodeList(0, packedNodeList.size()) == false);
+ assert(esi_proc.usePackedNodeList(0, packedNodeList.size()) == EsiProcessor::UNPACK_FAILURE);
}
{
@@ -1127,7 +1126,7 @@ int main()
EsiProcessor esi_proc("processor", "parser", "expression", &Debug, &Error, data_fetcher, esi_vars,
handler_mgr);
- assert(esi_proc.usePackedNodeList(packedNodeList.data(), 0) == false);
+ assert(esi_proc.usePackedNodeList(packedNodeList.data(), 0) == EsiProcessor::UNPACK_FAILURE);
}
cout << endl << "All tests passed!" << endl;