diff options
author | Aki Sukegawa <nsuke@apache.org> | 2022-03-07 00:28:26 -0500 |
---|---|---|
committer | Aki Sukegawa <nsukeg@gmail.com> | 2022-03-08 16:06:00 -0500 |
commit | 7594da8d7ac8d3525aa736d8fef89e465c63533e (patch) | |
tree | 183d911c98dcc29714020a3384ee892ce0c7ab09 | |
parent | d88d4f93b3390989bd47a43f3941ca7d576750f6 (diff) | |
download | thrift-7594da8d7ac8d3525aa736d8fef89e465c63533e.tar.gz |
THRIFT-5536 Fix cross language tests
-rw-r--r-- | build/docker/README.md | 2 | ||||
-rw-r--r-- | build/docker/ubuntu-bionic/Dockerfile | 30 | ||||
-rw-r--r-- | build/docker/ubuntu-xenial/Dockerfile | 30 | ||||
-rw-r--r-- | debian/control | 2 | ||||
-rw-r--r-- | test/erl/src/test_thrift_server.erl | 6 | ||||
-rw-r--r-- | test/go/src/bin/testclient/main.go | 1 | ||||
-rw-r--r-- | test/go/src/bin/testserver/main.go | 1 |
7 files changed, 43 insertions, 29 deletions
diff --git a/build/docker/README.md b/build/docker/README.md index f67647973..f07faaaef 100644 --- a/build/docker/README.md +++ b/build/docker/README.md @@ -176,7 +176,7 @@ Last updated: October 1, 2017 | d | 2.087.0 | 2.087.0 | | | dart | 2.0.0 | 2.4.0 | | | delphi | | | Not in CI | -| erlang | 18.3 | 22.0 | | +| erlang | OTP-18 | OTP-23 | | | go | 1.15.10 | 1.16.2 | | | haxe | 3.2.1 | 3.4.4 | THRIFT-4352: avoid 3.4.2 | | java | 1.8.0_191 | 11.0.3 | | diff --git a/build/docker/ubuntu-bionic/Dockerfile b/build/docker/ubuntu-bionic/Dockerfile index 08c45df79..0e11d2ac6 100644 --- a/build/docker/ubuntu-bionic/Dockerfile +++ b/build/docker/ubuntu-bionic/Dockerfile @@ -43,10 +43,6 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /et chown root:root /etc/apt/trusted.gpg.d/microsoft.gpg && \ chown root:root /etc/apt/sources.list.d/microsoft-prod.list -# erlang -RUN wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-key add - && \ - echo "deb https://packages.erlang-solutions.com/ubuntu bionic contrib" | tee /etc/apt/sources.list.d/erlang.list - # node.js RUN curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \ echo "deb https://deb.nodesource.com/node_10.x bionic main" | tee /etc/apt/sources.list.d/nodesource.list @@ -80,6 +76,8 @@ RUN mkdir -p /usr/local/adobe/flex/4.6 && \ unzip flex_sdk_4.6.zip ENV FLEX_HOME /usr/local/adobe/flex/4.6 +# TODO: "apt-get install" without "apt-get update" in the same "RUN" step can cause cache issues if modified later. +# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run RUN apt-get install -y --no-install-recommends \ `# C++ dependencies` \ libboost-all-dev \ @@ -119,12 +117,15 @@ RUN apt-get install -y --no-install-recommends \ aspnetcore-runtime-6.0 \ dotnet-apphost-pack-6.0 -RUN apt-get install -y --no-install-recommends \ -`# Erlang dependencies` \ - erlang && \ - wget https://s3.amazonaws.com/rebar3/rebar3 -O /usr/bin/rebar3 && \ - chmod 755 /usr/bin/rebar3 && \ +# Erlang dependencies +ARG ERLANG_OTP_VERSION=23.3.4.11 +ARG ERLANG_REBAR_VERSION=3.18.0 +RUN apt-get update && apt-get install -y --no-install-recommends libncurses5-dev && \ + curl -ssLo /usr/local/bin/kerl https://raw.githubusercontent.com/kerl/kerl/master/kerl && chmod +x /usr/local/bin/kerl && \ + kerl build $ERLANG_OTP_VERSION && kerl install $ERLANG_OTP_VERSION /usr/local/lib/otp/ && . /usr/local/lib/otp/activate && \ + curl -ssLo /usr/local/bin/rebar3 https://github.com/erlang/rebar3/releases/download/${ERLANG_REBAR_VERSION}/rebar3 && chmod +x /usr/local/bin/rebar3 && \ rebar3 --version +ENV PATH /usr/local/lib/otp/bin:$PATH RUN apt-get install -y --no-install-recommends \ `# GlibC dependencies` \ @@ -262,11 +263,12 @@ RUN apt-get install -y --no-install-recommends \ dpkg -i cppcheck_1.83-2_amd64.deb && \ rm cppcheck_1.83-2_amd64.deb -# Clean up -RUN rm -rf /var/cache/apt/* && \ - rm -rf /var/lib/apt/lists/* && \ - rm -rf /tmp/* && \ - rm -rf /var/tmp/* +# NOTE: this does not reduce the image size but adds an additional layer. +# # Clean up +# RUN rm -rf /var/cache/apt/* && \ +# rm -rf /var/lib/apt/lists/* && \ +# rm -rf /tmp/* && \ +# rm -rf /var/tmp/* ENV THRIFT_ROOT /thrift RUN mkdir -p $THRIFT_ROOT/src diff --git a/build/docker/ubuntu-xenial/Dockerfile b/build/docker/ubuntu-xenial/Dockerfile index 5033d7726..1428fac00 100644 --- a/build/docker/ubuntu-xenial/Dockerfile +++ b/build/docker/ubuntu-xenial/Dockerfile @@ -74,6 +74,8 @@ ENV PATH /usr/lib/llvm-3.8/bin:$PATH ### languages +# TODO: "apt-get install" without "apt-get update" in the same "RUN" step can cause cache issues if modified later. +# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run RUN apt-get install -y --no-install-recommends \ `# C++ dependencies` \ libboost-dev \ @@ -118,13 +120,16 @@ RUN apt-get install -y --no-install-recommends \ aspnetcore-runtime-6.0 \ dotnet-apphost-pack-6.0 -RUN apt-get install -y --no-install-recommends \ -`# Erlang dependencies` \ - erlang-base \ - erlang-eunit \ - erlang-dev \ - erlang-tools \ - rebar +# Erlang dependencies +ARG ERLANG_OTP_VERSION=18.3.4.11 +ARG ERLANG_REBAR_VERSION=3.13.2 +RUN apt-get update && apt-get install -y --no-install-recommends automake libncurses5-dev && \ + curl https://raw.githubusercontent.com/kerl/kerl/master/kerl -o /usr/local/bin/kerl && chmod +x /usr/local/bin/kerl && \ + kerl build $ERLANG_OTP_VERSION && kerl install $ERLANG_OTP_VERSION /usr/local/lib/otp/ && . /usr/local/lib/otp/activate && \ + curl https://s3.amazonaws.com/rebar3/rebar3 -o /usr/local/bin/rebar3 && chmod +x /usr/local/bin/rebar3 && \ + curl -ssLo /usr/local/bin/rebar3 https://github.com/erlang/rebar3/releases/download/${ERLANG_REBAR_VERSION}/rebar3 && chmod +x /usr/local/bin/rebar3 && \ + rebar3 --version +ENV PATH /usr/local/lib/otp/bin:$PATH RUN apt-get install -y --no-install-recommends \ `# GlibC dependencies` \ @@ -246,11 +251,12 @@ RUN apt-get install -y --no-install-recommends \ locale-gen de_DE.UTF-8 && \ update-locale -# Clean up -RUN rm -rf /var/cache/apt/* && \ - rm -rf /var/lib/apt/lists/* && \ - rm -rf /tmp/* && \ - rm -rf /var/tmp/* +# NOTE: this does not reduce the image size but adds an additional layer. +# # Clean up +# RUN rm -rf /var/cache/apt/* && \ +# rm -rf /var/lib/apt/lists/* && \ +# rm -rf /tmp/* && \ +# rm -rf /var/tmp/* ENV DOTNET_CLI_TELEMETRY_OPTOUT 1 ENV THRIFT_ROOT /thrift diff --git a/debian/control b/debian/control index 0910a94a7..b7f0b9685 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: thrift Section: devel Priority: extra Build-Depends: dotnet-runtime-6.0, dotnet-sdk-6.0, debhelper (>= 9), build-essential, python-dev, ant, - erlang-base, ruby-dev | ruby1.9.1-dev, ruby-bundler ,autoconf, automake, + ruby-dev | ruby1.9.1-dev, ruby-bundler ,autoconf, automake, pkg-config, libtool, bison, flex, libboost-dev | libboost1.56-dev | libboost1.63-all-dev, python-all, python-setuptools, python-all-dev, python-all-dbg, python3-all, python3-setuptools, python3-all-dev, python3-all-dbg, diff --git a/test/erl/src/test_thrift_server.erl b/test/erl/src/test_thrift_server.erl index dad8dec93..145feaca3 100644 --- a/test/erl/src/test_thrift_server.erl +++ b/test/erl/src/test_thrift_server.erl @@ -19,7 +19,7 @@ -module(test_thrift_server). --export([start/0, start/1, start_link/2, handle_function/2]). +-export([start/0, start/1, start_link/2, handle_function/2, handle_error/2]). -include("thrift_constants.hrl"). -include("gen-erl/thrift_test_types.hrl"). @@ -231,3 +231,7 @@ handle_function(testOneway, {Seconds}) -> io:format("testOneway: ~p~n", [Seconds]), timer:sleep(1000 * Seconds), ok. + +% This is not mandatory but improving test logs. +handle_error(Arg1, Arg2) -> + io:format("handle_error is called: ~p ~p~n", [Arg1, Arg2]). diff --git a/test/go/src/bin/testclient/main.go b/test/go/src/bin/testclient/main.go index f0ce0528e..b7119589e 100644 --- a/test/go/src/bin/testclient/main.go +++ b/test/go/src/bin/testclient/main.go @@ -34,6 +34,7 @@ var host = flag.String("host", "localhost", "Host to connect") var port = flag.Int64("port", 9090, "Port number to connect") var domain_socket = flag.String("domain-socket", "", "Domain Socket (e.g. /tmp/thrifttest.thrift), instead of host and port") var transport = flag.String("transport", "buffered", "Transport: buffered, framed, http, zlib") +var _ = flag.Bool("zlib", false, "For compatibility. Ignored.") var protocol = flag.String("protocol", "binary", "Protocol: binary, compact, json") var ssl = flag.Bool("ssl", false, "Encrypted Transport using SSL") var testloops = flag.Int("testloops", 1, "Number of Tests") diff --git a/test/go/src/bin/testserver/main.go b/test/go/src/bin/testserver/main.go index 011a71d48..60a764fdb 100644 --- a/test/go/src/bin/testserver/main.go +++ b/test/go/src/bin/testserver/main.go @@ -33,6 +33,7 @@ var host = flag.String("host", "localhost", "Host to connect") var port = flag.Int64("port", 9090, "Port number to connect") var domain_socket = flag.String("domain-socket", "", "Domain Socket (e.g. /tmp/ThriftTest.thrift), instead of host and port") var transport = flag.String("transport", "buffered", "Transport: buffered, framed, http, zlib") +var _ = flag.Bool("zlib", false, "For compatibility. Ignored.") var protocol = flag.String("protocol", "binary", "Protocol: binary, compact, json, header") var ssl = flag.Bool("ssl", false, "Encrypted Transport using SSL") var certPath = flag.String("certPath", "keys", "Directory that contains SSL certificates") |