blob: cf4922a3c4402844f718a5aebcd50797dee0215d [file]
/** @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 <catch2/catch_test_macros.hpp>
#include <catch2/reporters/catch_reporter_event_listener.hpp>
#include <catch2/reporters/catch_reporter_registrars.hpp>
#include <catch2/interfaces/catch_interfaces_config.hpp>
#include <catch2/catch_session.hpp>
#include "tscore/Layout.h"
#include "tscore/Diags.h"
#include "iocore/eventsystem/EventSystem.h"
#include "records/RecordsConfig.h"
#include "iocore/net/quic/QUICConfig.h"
#include "proxy/hdrs/HuffmanCodec.h"
#include "proxy/hdrs/HTTP.h"
#define TEST_THREADS 1
char qifdir[256] = "./qifs/qifs";
char encdir[256] = "./qifs/encoded";
char decdir[256] = "./qifs/decoded";
int tablesize = 4096;
int streams = 100;
int ackmode = 0;
char appname[256] = "ats";
char pattern[256] = "";
struct EventProcessorListener : Catch::EventListenerBase {
using EventListenerBase::EventListenerBase; // inherit constructor
virtual void
testRunStarting(Catch::TestRunInfo const &testRunInfo) override
{
BaseLogFile *base_log_file = new BaseLogFile("stderr");
DiagsPtr::set(new Diags(std::string_view{testRunInfo.name.data(), testRunInfo.name.size()}, "" /* tags */, "" /* actions */,
base_log_file));
diags()->activate_taglist("qpack", DiagsTagType_Debug);
diags()->config.enabled(DiagsTagType_Debug, 1);
diags()->show_location = SHOW_LOCATION_DEBUG;
Layout::create();
RecProcessInit();
LibRecordsConfigInit();
QUICConfig::startup();
ink_event_system_init(EVENT_SYSTEM_MODULE_PUBLIC_VERSION);
eventProcessor.start(TEST_THREADS);
Thread *main_thread = new EThread;
main_thread->set_specific();
url_init();
mime_init();
http_init();
}
};
CATCH_REGISTER_LISTENER(EventProcessorListener);
int
main(int argc, char *argv[])
{
Catch::Session session;
using namespace Catch::Clara;
auto cli =
session.cli() | Opt(qifdir, "qifdir")["--q-qif-dir"]("path for a directory that contains QIF files (default:qifs/qifs") |
Opt(encdir, "encdir")["--q-encoded-dir"]("path for a directory that encoded files will be stored (default:qifs/encoded)") |
Opt(decdir, "decdir")["--q-decoded-dir"]("path for a directory that decoded files will be stored (default:qifs/decoded)") |
Opt(tablesize, "size")["--q-dynamic-table-size"]("dynamic table size for encoding: 0-65535 (default:4096)") |
Opt(streams, "n")["--q-max-blocked-streams"]("max blocked streams for encoding: 0-65535 (default:100)") |
Opt(ackmode, "mode")["--q-ack-mode"]("acknowledgement modes for encoding: none(default:0) or immediate(1)") |
Opt(pattern, "pattern")["--q-pattern"]("filename pattern: file name pattern for decoding (default:)") |
Opt(appname, "app")["--q-app"]("app name: app name (default:ats)");
session.cli(cli);
int returnCode = session.applyCommandLine(argc, argv);
if (returnCode != 0) {
return returnCode;
}
return session.run();
}