Skip to content
This repository has been archived by the owner on Dec 16, 2020. It is now read-only.

Commit

Permalink
Update tests.
Browse files Browse the repository at this point in the history
Signed-off-by: John Plevyak <[email protected]>
  • Loading branch information
jplevyak committed Jun 5, 2020
1 parent 3f81739 commit 6c08032
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 9 deletions.
6 changes: 3 additions & 3 deletions bazel/repository_locations.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -351,9 +351,9 @@ REPOSITORY_LOCATIONS = dict(
urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/archive/f750d1f5da6a2f20cc55da75dd9772b7ba1650ca.tar.gz"],
),
proxy_wasm_cpp_host = dict(
sha256 = "59cef796d482198ae22158060c081109927127ef9c1abb8afea6a6f6dff8d6df",
strip_prefix = "proxy-wasm-cpp-host-303a5c0a938a708ac6a7913e5d97d2f5d72f6da8",
urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/303a5c0a938a708ac6a7913e5d97d2f5d72f6da8.tar.gz"],
sha256 = "d40eb35527b2f1f97231f617674090ae85df4ed4824e5fef2cb7001575dbe221",
strip_prefix = "proxy-wasm-cpp-host-83b3009ed32577c2d35306cde6e7557df3e693b9",
urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/83b3009ed32577c2d35306cde6e7557df3e693b9.tar.gz"],
),
emscripten_toolchain = dict(
sha256 = "4ac0f1f3de8b3f1373d435cd7e58bd94de4146e751f099732167749a229b443b",
Expand Down
27 changes: 27 additions & 0 deletions source/extensions/common/wasm/context.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1222,6 +1222,7 @@ Http::FilterDataStatus convertFilterDataStatus(proxy_wasm::FilterDataStatus stat
};

Network::FilterStatus Context::onNewConnection() {
onCreate(id_);
return convertNetworkFilterStatus(onNetworkNewConnection());
};

Expand Down Expand Up @@ -1276,6 +1277,9 @@ void Context::log(const Http::RequestHeaderMap* request_headers,
const Http::ResponseHeaderMap* response_headers,
const Http::ResponseTrailerMap* response_trailers,
const StreamInfo::StreamInfo& stream_info) {
if (!http_request_started_) {
return;
}
access_log_request_headers_ = request_headers;
// ? request_trailers ?
access_log_response_headers_ = response_headers;
Expand Down Expand Up @@ -1341,6 +1345,8 @@ WasmResult Context::sendLocalResponse(uint32_t response_code, absl::string_view
}

Http::FilterHeadersStatus Context::decodeHeaders(Http::RequestHeaderMap& headers, bool end_stream) {
onCreate(id_);
http_request_started_ = true;
request_headers_ = &headers;
end_of_stream_ = end_stream;
auto result = convertFilterHeadersStatus(onRequestHeaders(headerSize(&headers), end_stream));
Expand All @@ -1351,6 +1357,9 @@ Http::FilterHeadersStatus Context::decodeHeaders(Http::RequestHeaderMap& headers
}

Http::FilterDataStatus Context::decodeData(::Envoy::Buffer::Instance& data, bool end_stream) {
if (!http_request_started_) {
return Http::FilterDataStatus::Continue;
}
request_body_buffer_ = &data;
end_of_stream_ = end_stream;
auto result = convertFilterDataStatus(onRequestBody(data.length(), end_stream));
Expand All @@ -1370,6 +1379,9 @@ Http::FilterDataStatus Context::decodeData(::Envoy::Buffer::Instance& data, bool
}

Http::FilterTrailersStatus Context::decodeTrailers(Http::RequestTrailerMap& trailers) {
if (!http_request_started_) {
return Http::FilterTrailersStatus::Continue;
}
request_trailers_ = &trailers;
auto result = convertFilterTrailersStatus(onRequestTrailers(headerSize(&trailers)));
if (result == Http::FilterTrailersStatus::Continue) {
Expand All @@ -1379,6 +1391,9 @@ Http::FilterTrailersStatus Context::decodeTrailers(Http::RequestTrailerMap& trai
}

Http::FilterMetadataStatus Context::decodeMetadata(Http::MetadataMap& request_metadata) {
if (!http_request_started_) {
return Http::FilterMetadataStatus::Continue;
}
request_metadata_ = &request_metadata;
auto result = convertFilterMetadataStatus(onRequestMetadata(headerSize(&request_metadata)));
if (result == Http::FilterMetadataStatus::Continue) {
Expand All @@ -1397,6 +1412,9 @@ Http::FilterHeadersStatus Context::encode100ContinueHeaders(Http::ResponseHeader

Http::FilterHeadersStatus Context::encodeHeaders(Http::ResponseHeaderMap& headers,
bool end_stream) {
if (!http_request_started_) {
return Http::FilterHeadersStatus::Continue;
}
response_headers_ = &headers;
end_of_stream_ = end_stream;
auto result = convertFilterHeadersStatus(onResponseHeaders(headerSize(&headers), end_stream));
Expand All @@ -1407,6 +1425,9 @@ Http::FilterHeadersStatus Context::encodeHeaders(Http::ResponseHeaderMap& header
}

Http::FilterDataStatus Context::encodeData(::Envoy::Buffer::Instance& data, bool end_stream) {
if (!http_request_started_) {
return Http::FilterDataStatus::Continue;
}
response_body_buffer_ = &data;
end_of_stream_ = end_stream;
auto result = convertFilterDataStatus(onResponseBody(data.length(), end_stream));
Expand All @@ -1426,6 +1447,9 @@ Http::FilterDataStatus Context::encodeData(::Envoy::Buffer::Instance& data, bool
}

Http::FilterTrailersStatus Context::encodeTrailers(Http::ResponseTrailerMap& trailers) {
if (!http_request_started_) {
return Http::FilterTrailersStatus::Continue;
}
response_trailers_ = &trailers;
auto result = convertFilterTrailersStatus(onResponseTrailers(headerSize(&trailers)));
if (result == Http::FilterTrailersStatus::Continue) {
Expand All @@ -1435,6 +1459,9 @@ Http::FilterTrailersStatus Context::encodeTrailers(Http::ResponseTrailerMap& tra
}

Http::FilterMetadataStatus Context::encodeMetadata(Http::MetadataMap& response_metadata) {
if (!http_request_started_) {
return Http::FilterMetadataStatus::Continue;
}
response_metadata_ = &response_metadata;
auto result = convertFilterMetadataStatus(onResponseMetadata(headerSize(&response_metadata)));
if (result == Http::FilterMetadataStatus::Continue) {
Expand Down
1 change: 1 addition & 0 deletions source/extensions/common/wasm/context.h
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,7 @@ class Context : public proxy_wasm::ContextBase,
::Envoy::Buffer::Instance* network_upstream_data_buffer_{};

// HTTP filter state.
bool http_request_started_ = false; // When decodeHeaders() is called the rquest is "started".
Http::RequestHeaderMap* request_headers_{};
Http::ResponseHeaderMap* response_headers_{};
::Envoy::Buffer::Instance* request_body_buffer_{};
Expand Down
2 changes: 2 additions & 0 deletions test/extensions/common/wasm/test_data/test_cpp.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ static float gInfinity = INFINITY;
abort(); \
} while (0)

WASM_EXPORT(void, proxy_on_context_create, (uint32_t, uint32_t)) {}

WASM_EXPORT(uint32_t, proxy_on_vm_start, (uint32_t context_id, uint32_t configuration_size)) {
const char* configuration_ptr = nullptr;
size_t size;
Expand Down
2 changes: 2 additions & 0 deletions test/extensions/wasm/test_data/logging_cpp.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ extern "C" PROXY_WASM_KEEPALIVE uint32_t proxy_on_configure(uint32_t, uint32_t c
return 1;
}

extern "C" PROXY_WASM_KEEPALIVE void proxy_on_context_create(uint32_t, uint32_t) {}

extern "C" PROXY_WASM_KEEPALIVE uint32_t proxy_on_vm_start(uint32_t, uint32_t) {
logTrace("test trace logging");
logDebug("test debug logging");
Expand Down
Binary file modified test/extensions/wasm/test_data/logging_rust.wasm
Binary file not shown.
15 changes: 9 additions & 6 deletions test/extensions/wasm/test_data/logging_rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,41 @@ pub fn proxy_abi_version_0_1_0() {}
use log::{debug, error, info, trace, warn};

extern "C" {
fn proxy_done() -> u32;
fn proxy_done() -> u32;
}

#[no_mangle]
pub fn proxy_on_configure(_context_id : u32, _plugin_configuration_size: u32) -> u32 {
pub fn proxy_on_configure(_context_id: u32, _plugin_configuration_size: u32) -> u32 {
warn!("warn configure-test");
1
}

#[no_mangle]
pub fn proxy_on_vm_start(_context_id : u32, _vm_configuration_size : u32) -> u32 {
pub fn proxy_on_context_create(_context_id: u32, _parent_context_id_: u32) {}

#[no_mangle]
pub fn proxy_on_vm_start(_context_id: u32, _vm_configuration_size: u32) -> u32 {
trace!("test trace logging");
debug!("test debug logging");
error!("test error logging");
1
}

#[no_mangle]
pub fn proxy_on_tick(_context_id : u32) {
pub fn proxy_on_tick(_context_id: u32) {
info!("test tick logging");
unsafe {
proxy_done();
}
}

#[no_mangle]
pub fn proxy_on_done(_context_id : u32) -> u32 {
pub fn proxy_on_done(_context_id: u32) -> u32 {
info!("onDone logging");
0
}

#[no_mangle]
pub fn proxy_on_delete(_context_id : u32) {
pub fn proxy_on_delete(_context_id: u32) {
info!("onDelete logging");
}

0 comments on commit 6c08032

Please sign in to comment.