grpc: build tests

ATM can only be run manually: start the port server, then each test individually.
This commit is contained in:
Jerome Duval
2021-10-22 14:56:14 +02:00
parent e692adf95b
commit 0473b28db1
2 changed files with 91 additions and 11 deletions

View File

@@ -9,6 +9,10 @@ LICENSE="Apache v2"
REVISION="3"
SOURCE_URI="https://github.com/grpc/grpc/archive/v$portVersion/grpc-$portVersion.tar.gz"
CHECKSUM_SHA256="e5fb30aae1fa1cffa4ce00aa0bbfab908c0b899fcf0bbc30e268367d660d8656"
gtestCommit="c9ccac7cb7345901884aabf5d1a786cfa6e2f397"
SOURCE_URI_2="https://github.com/google/googletest/archive/$gtestCommit/googletest-$gtestCommit.tar.gz"
CHECKSUM_SHA256_2="443d383db648ebb8e391382c0ab63263b7091d03197f304390baac10f178a468"
SOURCE_DIR_2="googletest-$gtestCommit"
PATCHES="grpc-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
@@ -84,6 +88,7 @@ BUILD_REQUIRES="
devel:libabsl_strings$secondaryArchSuffix
devel:libabsl_synchronization$secondaryArchSuffix
devel:libabsl_time$secondaryArchSuffix
devel:libbenchmark$secondaryArchSuffix
devel:libcares$secondaryArchSuffix
devel:libprotobuf$secondaryArchSuffix
devel:libre2$secondaryArchSuffix
@@ -97,13 +102,21 @@ BUILD_PREREQUIRES="
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
"
TEST_REQUIRES="
cmd:python2
cmd:python3
six_python3
"
BUILD()
{
ln -sf $sourceDir2/googlemock $sourceDir2/googletest \
third_party/googletest
cmake -Bbuild -S . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$prefix \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_POSITION_INDEPENDENT_CODE=NO \
-DBUILD_SHARED_LIBS=ON \
-DgRPC_INSTALL_BINDIR=$relativeBinDir \
-DgRPC_INSTALL_INCLUDEDIR=$relativeIncludeDir \
@@ -111,6 +124,7 @@ BUILD()
-DgRPC_INSTALL_CMAKEDIR=$relativeLibDir/cmake/grpc \
-DgRPC_INSTALL_SHAREDIR=$relativeDataDir/grpc \
-DgRPC_ABSL_PROVIDER='package' \
-DgRPC_BENCHMARK_PROVIDER='package' \
-DgRPC_CARES_PROVIDER='package' \
-DgRPC_ZLIB_PROVIDER='package' \
-DgRPC_PROTOBUF_PROVIDER='package' \
@@ -126,9 +140,9 @@ BUILD()
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
-DgRPC_BUILD_TESTS=ON \
-GNinja
unset -f cmake
cmake --build build $jobArgs
cmake --build build -v $jobArgs
}
INSTALL()
@@ -145,3 +159,8 @@ INSTALL()
"$developDir" \
"$libDir"/cmake
}
TEST()
{
python3 tools/run_tests/run_tests.py -l c++
}

View File

@@ -1,4 +1,4 @@
From 38c91c597e37f36c9a36bf9894f3bfaae2db9ea4 Mon Sep 17 00:00:00 2001
From 6054b5cad9f9015e23cd1577d1e9c362ede5b9e6 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 16 Oct 2021 21:33:26 +0200
Subject: Haiku: port
@@ -17,14 +17,6 @@ index 0e8fbde..832a49c 100644
set(_gRPC_ALLTARGETS_LIBRARIES ${CMAKE_DL_LIBS} rt m pthread)
endif()
@@ -11654,6 +11654,7 @@ if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_CPP_PLUGIN)
add_executable(grpc_cpp_plugin
src/compiler/cpp_plugin.cc
)
+set_property(TARGET grpc_cpp_plugin PROPERTY POSITION_INDEPENDENT_CODE FALSE)
target_include_directories(grpc_cpp_plugin
PRIVATE
diff --git a/include/grpc/event_engine/port.h b/include/grpc/event_engine/port.h
index 9424586..5ee5327 100644
--- a/include/grpc/event_engine/port.h
@@ -110,3 +102,72 @@ index 3e32429..28e9b11 100644
--
2.30.2
From 1757df9f3cb61536ac1864fa10c88f79a050b9a4 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 22 Oct 2021 14:54:43 +0200
Subject: patch needed to help build and run tests on Haiku
diff --git a/src/core/lib/promise/detail/basic_seq.h b/src/core/lib/promise/detail/basic_seq.h
index 72b91f9..a7be768 100644
--- a/src/core/lib/promise/detail/basic_seq.h
+++ b/src/core/lib/promise/detail/basic_seq.h
@@ -16,6 +16,7 @@
#define GRPC_CORE_LIB_PROMISE_DETAIL_BASIC_SEQ_H
#include <grpc/impl/codegen/port_platform.h>
+#include <assert.h>
#include "absl/types/variant.h"
#include "absl/utility/utility.h"
diff --git a/tools/run_tests/python_utils/jobset.py b/tools/run_tests/python_utils/jobset.py
index a8bbf65..ed97564 100755
--- a/tools/run_tests/python_utils/jobset.py
+++ b/tools/run_tests/python_utils/jobset.py
@@ -58,6 +58,8 @@ def platform_string():
return 'mac'
elif platform.system() == 'Linux':
return 'linux'
+ elif platform.system() == 'Haiku':
+ return 'haiku'
else:
return 'posix'
diff --git a/tools/run_tests/python_utils/port_server.py b/tools/run_tests/python_utils/port_server.py
index db1d755..8bcfb36 100755
--- a/tools/run_tests/python_utils/port_server.py
+++ b/tools/run_tests/python_utils/port_server.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2.7
+#!/usr/bin/env python3
# Copyright 2015 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index baee928..62c9a29 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -273,6 +273,19 @@ class CLanguage(object):
# see https://github.com/grpc/grpc/blob/b5b8578b3f8b4a9ce61ed6677e19d546e43c5c68/tools/run_tests/artifacts/artifact_targets.py#L253
self._cmake_configure_extra_args.append('-DOPENSSL_NO_ASM=ON')
+ if self.platform == 'haiku':
+ self._cmake_configure_extra_args.append('-DCMAKE_CXX_STANDARD=17')
+ self._cmake_configure_extra_args.append('-DCMAKE_POSITION_INDEPENDENT_CODE=NO')
+ self._cmake_configure_extra_args.append('-DgRPC_ABSL_PROVIDER=package')
+ self._cmake_configure_extra_args.append('-DgRPC_BENCHMARK_PROVIDER=package')
+ self._cmake_configure_extra_args.append('-DgRPC_CARES_PROVIDER=package')
+ self._cmake_configure_extra_args.append('-DgRPC_ZLIB_PROVIDER=package')
+ self._cmake_configure_extra_args.append('-DgRPC_PROTOBUF_PROVIDER=package')
+ self._cmake_configure_extra_args.append('-DgRPC_PROTOBUF_PACKAGE_TYPE=MODULE')
+ self._cmake_configure_extra_args.append('-DgRPC_RE2_PROVIDER=package')
+ self._cmake_configure_extra_args.append('-DgRPC_SSL_PROVIDER=package')
+ self._cmake_configure_extra_args.append('-DgRPC_ZLIB_PROVIDER=package')
+
def test_specs(self):
out = []
binaries = get_c_tests(self.args.travis, self.test_lang)
--
2.30.2