Skip to content
This repository was archived by the owner on Aug 30, 2022. It is now read-only.

Commit a92f637

Browse files
isaachierblack-adder
authored andcommitted
Add crossdock tests (#12)
1 parent f325ae1 commit a92f637

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1512
-776
lines changed

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
# Build directory
1+
# Build files
22
/build
3+
/crossdock/crossdock
4+
/crossdock/jaeger-docker-compose.yml
35

46
# vim swap files
57
*.swo
@@ -37,3 +39,6 @@
3739
*.exe
3840
*.out
3941
*.app
42+
43+
# Log files
44+
*.log

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ matrix:
1919
sources:
2020
- ubuntu-toolchain-r-test
2121
packages:
22-
- g++-4.8
22+
- g++-4.9
2323
env:
24-
- MATRIX_EVAL="CC=gcc-4.8 && CXX=g++-4.8"
24+
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
2525
branches:
2626
only:
2727
- master

CMakeLists.txt

Lines changed: 45 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/cmake/toolchain.cmake")
66

77
set(HUNTER_CACHE_SERVERS "https://github.com/isaachier/cpp-client-hunter-cache")
88

9+
include(CMakeDependentOption)
910
include(HunterGate)
1011
HunterGate(
11-
URL "https://github.com/ruslo/hunter/archive/v0.19.141.tar.gz"
12-
SHA1 "8d7162c0665aba01aaf6bf62f1ed015dc66c5e7c"
12+
URL "https://github.com/ruslo/hunter/archive/v0.19.158.tar.gz"
13+
SHA1 "7bd94f374bca4eff51292ca6ba029b5d688744db"
1314
LOCAL
1415
)
1516

@@ -88,9 +89,16 @@ find_package(OpenTracing CONFIG REQUIRED)
8889
list(APPEND LIBS OpenTracing::opentracing-static)
8990
list(APPEND package_deps opentracing-cpp)
9091

91-
option(JAEGERTRACING_WITH_YAML_CPP "Use yaml-cpp to parse config files" ON)
92+
hunter_add_package(nlohmann_json)
93+
find_package(nlohmann_json CONFIG REQUIRED)
94+
list(APPEND LIBS nlohmann_json)
95+
list(APPEND package_deps nlohmann_json)
96+
9297
option(JAEGERTRACING_COVERAGE "Build with coverage" $ENV{COVERAGE})
93-
option(JAEGERTRACING_BUILD_EXAMPLES "Build examples" ON)
98+
option(JAEGERTRACING_BUILD_CROSSDOCK "Build crossdock" $ENV{CROSSDOCK})
99+
cmake_dependent_option(
100+
JAEGERTRACING_WITH_YAML_CPP "Use yaml-cpp to parse config files" ON
101+
"NOT JAEGERTRACING_BUILD_CROSSDOCK" ON)
94102

95103
if(JAEGERTRACING_WITH_YAML_CPP)
96104
hunter_add_package(yaml-cpp)
@@ -118,20 +126,36 @@ if(BUILD_TESTING)
118126
endif()
119127
endif()
120128

121-
if(JAEGERTRACING_BUILD_EXAMPLES)
122-
set(EXAMPLES_SRC
123-
examples/hotrod/Delay.cpp
124-
examples/hotrod/HTTPServer.cpp)
125-
add_executable(customer examples/hotrod/CustomerService.cpp ${EXAMPLES_SRC})
126-
# TODO: add_executable(driver examples/hotrod/DriverService.cpp)
127-
# TODO: add_executable(frontend examples/hotrod/FrontendService.cpp)
128-
# TODO: add_executable(route examples/hotrod/RouteService.cpp)
129-
set(services customer) # TODO: driver frontend route)
130-
foreach(service IN LISTS services)
131-
target_include_directories(${service} PUBLIC
132-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/examples/hotrod>)
133-
target_link_libraries(${service} PUBLIC jaegertracing-static)
134-
endforeach()
129+
if(JAEGERTRACING_BUILD_CROSSDOCK)
130+
set(CROSSDOCK_SRC crossdock/Server.cpp)
131+
add_executable(crossdock ${CROSSDOCK_SRC})
132+
target_include_directories(crossdock PUBLIC
133+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/crossdock>)
134+
target_link_libraries(crossdock PUBLIC jaegertracing-static)
135+
136+
set(JAEGER_CROSSDOCK_URL
137+
"https://raw.githubusercontent.com/jaegertracing/jaeger/master/docker-compose/\
138+
jaeger-docker-compose.yml")
139+
file(DOWNLOAD ${JAEGER_CROSSDOCK_URL}
140+
"${PROJECT_SOURCE_DIR}/crossdock/jaeger-docker-compose.yml")
141+
find_program(DOCKER_COMPOSE_EXE docker-compose REQUIRED)
142+
set(DOCKER_COMPOSE_CMD ${DOCKER_COMPOSE_EXE}
143+
-f ${PROJECT_SOURCE_DIR}/crossdock/docker-compose.yml
144+
-f ${PROJECT_SOURCE_DIR}/crossdock/jaeger-docker-compose.yml)
145+
add_custom_target(crossdock-kill
146+
COMMAND ${DOCKER_COMPOSE_CMD} kill
147+
COMMAND ${DOCKER_COMPOSE_CMD} rm --force)
148+
add_custom_target(crossdock-run
149+
COMMAND ${DOCKER_COMPOSE_CMD} build
150+
COMMAND ${DOCKER_COMPOSE_CMD} run crossdock
151+
DEPENDS crossdock-kill)
152+
add_custom_target(crossdock-fresh
153+
COMMAND ${DOCKER_COMPOSE_CMD} pull
154+
COMMAND ${DOCKER_COMPOSE_CMD} build
155+
COMMAND ${DOCKER_COMPOSE_CMD} run crossdock
156+
DEPENDS crossdock-kill)
157+
add_custom_target(crossdock-logs
158+
COMMAND ${DOCKER_COMPOSE_CMD} logs)
135159
endif()
136160

137161
set(SRC
@@ -147,10 +171,11 @@ set(SRC
147171
src/jaegertracing/Transport.cpp
148172
src/jaegertracing/UDPTransport.cpp
149173
src/jaegertracing/baggage/BaggageSetter.cpp
174+
src/jaegertracing/baggage/RemoteRestrictionJSON.cpp
175+
src/jaegertracing/baggage/RemoteRestrictionManager.cpp
150176
src/jaegertracing/baggage/Restriction.cpp
151177
src/jaegertracing/baggage/RestrictionManager.cpp
152178
src/jaegertracing/baggage/RestrictionsConfig.cpp
153-
src/jaegertracing/baggage/RemoteRestrictionManager.cpp
154179
src/jaegertracing/metrics/Counter.cpp
155180
src/jaegertracing/metrics/Gauge.cpp
156181
src/jaegertracing/metrics/InMemoryStatsReporter.cpp
@@ -192,6 +217,7 @@ set(SRC
192217
src/jaegertracing/samplers/GuaranteedThroughputProbabilisticSampler.cpp
193218
src/jaegertracing/samplers/ProbabilisticSampler.cpp
194219
src/jaegertracing/samplers/RateLimitingSampler.cpp
220+
src/jaegertracing/samplers/RemoteSamplingJSON.cpp
195221
src/jaegertracing/samplers/RemotelyControlledSampler.cpp
196222
src/jaegertracing/samplers/Sampler.cpp
197223
src/jaegertracing/samplers/SamplingStatus.cpp

cmake/CodeCoverage.cmake

Lines changed: 5 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ include(CMakeParseArguments)
7272
find_program( GCOV_PATH gcov )
7373
find_program( LCOV_PATH lcov )
7474
find_program( GENHTML_PATH genhtml )
75-
find_program( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test)
7675
find_program( SIMPLE_PYTHON_EXECUTABLE python )
7776

7877
if(NOT GCOV_PATH)
@@ -128,13 +127,12 @@ endif()
128127
# NOTE! The executable should always have a ZERO as exit code otherwise
129128
# the coverage generation will not complete.
130129
#
131-
# SETUP_TARGET_FOR_COVERAGE(
130+
# setup_target_for_coverage(
132131
# NAME testrunner_coverage # New target name
133132
# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
134133
# DEPENDENCIES testrunner # Dependencies to build first
135134
# )
136-
function(SETUP_TARGET_FOR_COVERAGE)
137-
135+
function(setup_target_for_coverage)
138136
set(options NONE)
139137
set(oneValueArgs NAME)
140138
set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
@@ -174,63 +172,10 @@ function(SETUP_TARGET_FOR_COVERAGE)
174172
COMMAND ;
175173
COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report."
176174
)
175+
endfunction() # setup_target_for_coverage
177176

178-
endfunction() # SETUP_TARGET_FOR_COVERAGE
179-
180-
# Defines a target for running and collection code coverage information
181-
# Builds dependencies, runs the given executable and outputs reports.
182-
# NOTE! The executable should always have a ZERO as exit code otherwise
183-
# the coverage generation will not complete.
184-
#
185-
# SETUP_TARGET_FOR_COVERAGE_COBERTURA(
186-
# NAME ctest_coverage # New target name
187-
# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
188-
# DEPENDENCIES executable_target # Dependencies to build first
189-
# )
190-
function(SETUP_TARGET_FOR_COVERAGE_COBERTURA)
191-
192-
set(options NONE)
193-
set(oneValueArgs NAME)
194-
set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
195-
cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
196-
197-
if(NOT SIMPLE_PYTHON_EXECUTABLE)
198-
message(FATAL_ERROR "python not found! Aborting...")
199-
endif() # NOT SIMPLE_PYTHON_EXECUTABLE
200-
201-
if(NOT GCOVR_PATH)
202-
message(FATAL_ERROR "gcovr not found! Aborting...")
203-
endif() # NOT GCOVR_PATH
204-
205-
# Combine excludes to several -e arguments
206-
set(COBERTURA_EXCLUDES "")
207-
foreach(EXCLUDE ${COVERAGE_EXCLUDES})
208-
set(COBERTURA_EXCLUDES "-e ${EXCLUDE} ${COBERTURA_EXCLUDES}")
209-
endforeach()
210-
211-
add_custom_target(${Coverage_NAME}
212-
213-
# Run tests
214-
${Coverage_EXECUTABLE}
215-
216-
# Running gcovr
217-
COMMAND ${GCOVR_PATH} -x -r ${CMAKE_SOURCE_DIR} ${COBERTURA_EXCLUDES}
218-
-o ${Coverage_NAME}.xml
219-
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
220-
DEPENDS ${Coverage_DEPENDENCIES}
221-
COMMENT "Running gcovr to produce Cobertura code coverage report."
222-
)
223-
224-
# Show info where to find the report
225-
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
226-
COMMAND ;
227-
COMMENT "Cobertura code coverage report saved in ${Coverage_NAME}.xml."
228-
)
229-
230-
endfunction() # SETUP_TARGET_FOR_COVERAGE_COBERTURA
231-
232-
function(APPEND_COVERAGE_COMPILER_FLAGS)
177+
function(append_coverage_compiler_flags)
233178
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
234179
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE)
235180
message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}")
236-
endfunction() # APPEND_COVERAGE_COMPILER_FLAGS
181+
endfunction() # append_coverage_compiler_flags

cmake/Hunter/config.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
hunter_config(thrift VERSION 0.9.2-p1)
1+
hunter_config(thrift VERSION 0.9.2-p2)

codecov.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ comment:
2828
ignore:
2929
- "src/jaegertracing/thrift-gen"
3030
- "**/*Test.cpp"
31+
- "crossdock"

crossdock/Dockerfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
FROM gcc:7.2
2+
3+
WORKDIR /
4+
RUN curl -O https://cmake.org/files/v3.10/cmake-3.10.0-rc5-Linux-x86_64.sh && \
5+
bash cmake-3.10.0-rc5-Linux-x86_64.sh --skip-license
6+
7+
COPY . /app/jaegertracing
8+
RUN rm -rf /app/jaegertracing/build && \
9+
mkdir /app/jaegertracing/build && \
10+
cd /app/jaegertracing/build && \
11+
cmake -DCMAKE_BUILD_TYPE=Debug -DJAEGERTRACING_BUILD_CROSSDOCK=ON .. && \
12+
make crossdock -j3
13+
14+
ENV AGENT_HOST_PORT=jaeger-agent:5775
15+
ENV SAMPLING_SERVER_URL=http://test_driver:5778/sampling
16+
17+
EXPOSE 8080-8082
18+
19+
CMD ["/app/jaegertracing/build/crossdock"]

0 commit comments

Comments
 (0)