Skip to content

Commit 89717a3

Browse files
authored
CDRIVER-4621 Replace codecov-bash with new Codecov Uploader (#1257)
* CDRIVER-4621 Replace codecov-bash with new Codecov Uploader * Do not limit coverage to CSE tests only * Remove redundant -DENABLE_CLIENT_SIDE_ENCRYPTION in CSE compile tasks * Reduce verbosity of code coverage tools * Update Codecov filters to ignore vendored/bundled libraries and test code
1 parent f14370e commit 89717a3

File tree

7 files changed

+87
-40
lines changed

7 files changed

+87
-40
lines changed

.evergreen/.codecov.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
ignore:
2-
- "src/libmongoc/tests/mock_server"
3-
- "src/zlib-1.2.13"
2+
- "src/kms-message"
3+
- "src/zlib-*"
4+
- "src/*/tests"

.evergreen/config_generator/etc/cse/compile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def compile_commands(cls, sasl=None) -> list[EvgCommand]:
2727
expansions_update(updates=updates),
2828
bash_exec(
2929
command_type=EvgCommandType.TEST,
30-
script='EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh',
30+
script='EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh',
3131
working_dir='mongoc',
3232
add_expansions_to_env=True,
3333
env={

.evergreen/generated_configs/functions.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ functions:
8787
COMPILE_LIBMONGOCRYPT: "ON"
8888
args:
8989
- -c
90-
- EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh
90+
- EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh
9191
cse-sasl-cyrus-openssl-compile:
9292
- command: expansions.update
9393
params:
@@ -104,7 +104,7 @@ functions:
104104
COMPILE_LIBMONGOCRYPT: "ON"
105105
args:
106106
- -c
107-
- EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh
107+
- EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh
108108
cse-sasl-cyrus-winssl-compile:
109109
- command: expansions.update
110110
params:
@@ -121,7 +121,7 @@ functions:
121121
COMPILE_LIBMONGOCRYPT: "ON"
122122
args:
123123
- -c
124-
- EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh
124+
- EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON ${EXTRA_CONFIGURE_FLAGS}" .evergreen/scripts/compile.sh
125125
early-termination:
126126
- command: subprocess.exec
127127
params:

.evergreen/generated_configs/legacy-config.yml

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,16 @@ functions:
182182
shell: bash
183183
script: |-
184184
set -o errexit
185-
export CODECOV_TOKEN=${codecov_token}
186-
curl -s https://codecov.io/bash | bash
185+
# Note: coverage is currently only enabled on the ubuntu1804 distro.
186+
# This script does not support MacOS, Windows, or non-x86_64 distros.
187+
# Update accordingly if code coverage is expanded to other distros.
188+
curl -Os https://uploader.codecov.io/latest/linux/codecov
189+
chmod +x codecov
190+
# -Z: Exit with a non-zero value if error.
191+
# -g: Run with gcov support.
192+
# -t: Codecov upload token.
193+
# perl: filter verbose "Found" list and "Processing" messages.
194+
./codecov -Zgt "${codecov_token}" | perl -lne 'print if not m|^.*\.gcov(\.\.\.)?$|'
187195
compile coverage:
188196
- command: shell.exec
189197
type: test
@@ -1044,7 +1052,7 @@ tasks:
10441052
shell: bash
10451053
script: |-
10461054
set -o errexit
1047-
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON" SASL="AUTO" SSL="OPENSSL" bash .evergreen/scripts/compile.sh
1055+
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON" SASL="AUTO" SSL="OPENSSL" bash .evergreen/scripts/compile.sh
10481056
- func: upload-build
10491057
- name: debug-compile-sasl-openssl-static-cse
10501058
tags:
@@ -1062,7 +1070,7 @@ tasks:
10621070
shell: bash
10631071
script: |-
10641072
set -o errexit
1065-
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON" SASL="AUTO" SSL="OPENSSL_STATIC" bash .evergreen/scripts/compile.sh
1073+
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON" SASL="AUTO" SSL="OPENSSL_STATIC" bash .evergreen/scripts/compile.sh
10661074
- func: upload-build
10671075
- name: debug-compile-sasl-darwinssl-cse
10681076
tags:
@@ -1080,7 +1088,7 @@ tasks:
10801088
shell: bash
10811089
script: |-
10821090
set -o errexit
1083-
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON" SASL="AUTO" SSL="DARWIN" bash .evergreen/scripts/compile.sh
1091+
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON" SASL="AUTO" SSL="DARWIN" bash .evergreen/scripts/compile.sh
10841092
- func: upload-build
10851093
- name: debug-compile-sasl-winssl-cse
10861094
tags:
@@ -1098,7 +1106,7 @@ tasks:
10981106
shell: bash
10991107
script: |-
11001108
set -o errexit
1101-
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON" SASL="AUTO" SSL="WINDOWS" bash .evergreen/scripts/compile.sh
1109+
env COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON" SASL="AUTO" SSL="WINDOWS" bash .evergreen/scripts/compile.sh
11021110
- func: upload-build
11031111
- name: debug-compile-asan-openssl-cse
11041112
tags:
@@ -1114,7 +1122,7 @@ tasks:
11141122
shell: bash
11151123
script: |-
11161124
set -o errexit
1117-
env CFLAGS="-fno-omit-frame-pointer" CHECK_LOG="ON" COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_CLIENT_SIDE_ENCRYPTION=ON -DENABLE_EXTRA_ALIGNMENT=OFF" PATH="/usr/lib/llvm-3.8/bin:$PATH" SANITIZE="address" SSL="OPENSSL" bash .evergreen/scripts/compile.sh
1125+
env CFLAGS="-fno-omit-frame-pointer" CHECK_LOG="ON" COMPILE_LIBMONGOCRYPT="ON" DEBUG="ON" EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF" PATH="/usr/lib/llvm-3.8/bin:$PATH" SANITIZE="address" SSL="OPENSSL" bash .evergreen/scripts/compile.sh
11181126
- func: upload-build
11191127
- name: debug-compile-nosasl-openssl-1.0.1
11201128
commands:
@@ -1148,6 +1156,30 @@ tasks:
11481156
script: |-
11491157
set -o errexit
11501158
bash ./.evergreen/scripts/build-and-test-with-toolchain.sh
1159+
- name: test-coverage-latest-replica-set-auth-sasl-openssl
1160+
tags:
1161+
- latest
1162+
- test-coverage
1163+
commands:
1164+
- func: compile coverage
1165+
vars:
1166+
SASL: AUTO
1167+
SSL: OPENSSL
1168+
- func: fetch-det
1169+
- func: bootstrap-mongo-orchestration
1170+
vars:
1171+
AUTH: auth
1172+
MONGODB_VERSION: latest
1173+
SSL: openssl
1174+
TOPOLOGY: replica_set
1175+
- func: run-simple-http-server
1176+
- func: run-tests
1177+
vars:
1178+
AUTH: auth
1179+
COVERAGE: 'ON'
1180+
SSL: openssl
1181+
- func: upload coverage
1182+
- func: update codecov.io
11511183
- name: test-coverage-latest-replica-set-auth-sasl-openssl-cse
11521184
tags:
11531185
- client-side-encryption
@@ -1156,6 +1188,8 @@ tasks:
11561188
commands:
11571189
- func: compile coverage
11581190
vars:
1191+
COMPILE_LIBMONGOCRYPT: 'ON'
1192+
EXTRA_CONFIGURE_FLAGS: EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON"
11591193
SASL: AUTO
11601194
SSL: OPENSSL
11611195
- func: fetch-det
@@ -1166,7 +1200,6 @@ tasks:
11661200
SSL: openssl
11671201
TOPOLOGY: replica_set
11681202
- func: run-simple-http-server
1169-
- func: fetch-det
11701203
- func: run-mock-kms-servers
11711204
- func: run-tests
11721205
vars:

.evergreen/legacy_config_generator/evergreen_config_lib/functions.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,16 @@
129129
)),
130130
('update codecov.io', Function(
131131
shell_mongoc(r'''
132-
export CODECOV_TOKEN=${codecov_token}
133-
curl -s https://codecov.io/bash | bash
132+
# Note: coverage is currently only enabled on the ubuntu1804 distro.
133+
# This script does not support MacOS, Windows, or non-x86_64 distros.
134+
# Update accordingly if code coverage is expanded to other distros.
135+
curl -Os https://uploader.codecov.io/latest/linux/codecov
136+
chmod +x codecov
137+
# -Z: Exit with a non-zero value if error.
138+
# -g: Run with gcov support.
139+
# -t: Codecov upload token.
140+
# perl: filter verbose "Found" list and "Processing" messages.
141+
./codecov -Zgt "${codecov_token}" | perl -lne 'print if not m|^.*\.gcov(\.\.\.)?$|'
134142
''', test=False),
135143
)),
136144
('compile coverage', Function(

.evergreen/legacy_config_generator/evergreen_config_lib/tasks.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def __init__(self, *args, **kwargs):
9696
# Compiling with ClientSideEncryption support requires linking against the library libmongocrypt.
9797
super(CompileWithClientSideEncryption, self).__init__(*args,
9898
COMPILE_LIBMONGOCRYPT="ON",
99-
EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON",
99+
EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON",
100100
**kwargs)
101101
self.add_tags('client-side-encryption', 'special')
102102

@@ -109,7 +109,7 @@ def __init__(self, *args, **kwargs):
109109
CHECK_LOG="ON",
110110
sanitize=[
111111
'address'],
112-
EXTRA_CONFIGURE_FLAGS="-DENABLE_CLIENT_SIDE_ENCRYPTION=ON -DENABLE_EXTRA_ALIGNMENT=OFF",
112+
EXTRA_CONFIGURE_FLAGS="-DENABLE_EXTRA_ALIGNMENT=OFF",
113113
PATH='/usr/lib/llvm-3.8/bin:$PATH',
114114
**kwargs)
115115
self.add_tags('client-side-encryption')
@@ -389,7 +389,7 @@ class CoverageTask(MatrixTask):
389389
('auth', [True]),
390390
('sasl', ['sasl']),
391391
('ssl', ['openssl']),
392-
('cse', [True])])
392+
('cse', [False, True])])
393393

394394
def __init__(self, *args, **kwargs):
395395
super(CoverageTask, self).__init__(*args, **kwargs)
@@ -419,28 +419,32 @@ def name_part(axis_name):
419419
def to_dict(self):
420420
task = super(CoverageTask, self).to_dict()
421421
commands = task['commands']
422-
if self.depends_on:
423-
commands.append(
424-
func('fetch-build', BUILD_NAME=self.depends_on['name']))
425422

426-
# Limit coverage tests to test-coverage-latest-replica-set-auth-sasl-openssl-cse.
427-
commands.append(
428-
func('compile coverage', SASL='AUTO', SSL='OPENSSL'))
423+
if self.cse:
424+
commands.append(func('compile coverage',
425+
SASL='AUTO',
426+
SSL='OPENSSL',
427+
COMPILE_LIBMONGOCRYPT='ON',
428+
EXTRA_CONFIGURE_FLAGS='EXTRA_CONFIGURE_FLAGS="-DENABLE_PIC=ON"'))
429+
else:
430+
commands.append(func('compile coverage',
431+
SASL='AUTO',
432+
SSL='OPENSSL'))
429433

430434
commands.append(func('fetch-det'))
431435
commands.append(func('bootstrap-mongo-orchestration',
432436
MONGODB_VERSION=self.version,
433437
TOPOLOGY=self.topology,
434438
AUTH='auth' if self.auth else 'noauth',
435439
SSL=self.display('ssl')))
436-
extra = {}
440+
extra = {
441+
'COVERAGE': 'ON'
442+
}
437443

438444
commands.append(func('run-simple-http-server'))
439445
if self.cse:
440446
extra["CLIENT_SIDE_ENCRYPTION"] = "on"
441-
commands.append(func('fetch-det'))
442447
commands.append(func('run-mock-kms-servers'))
443-
extra["COVERAGE"] = 'ON'
444448
commands.append(func('run-tests',
445449
AUTH=self.display('auth'),
446450
SSL=self.display('ssl'),
@@ -451,12 +455,11 @@ def to_dict(self):
451455
return task
452456

453457
def _check_allowed(self):
454-
# Limit coverage tests to test-coverage-latest-replica-set-auth-sasl-openssl-cse.
458+
# Limit coverage tests to test-coverage-latest-replica-set-auth-sasl-openssl (+ cse).
455459
require(self.topology == 'replica_set')
456460
require(self.auth)
457461
require(self.sasl == 'sasl')
458462
require(self.ssl == 'openssl')
459-
require(self.cse)
460463
require(self.version == 'latest')
461464

462465
# Address sanitizer only with auth+SSL or no auth + no SSL.

.evergreen/scripts/run-tests.sh

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -285,14 +285,16 @@ if [[ "${COVERAGE}" == "ON" ]]; then
285285
"--no-external"
286286
)
287287

288-
case "${CC}" in
289-
clang)
290-
lcov --gcov-tool "$(pwd)/.evergreen/scripts/llvm-gcov.sh" "${coverage_args[@]}"
291-
;;
292-
*)
293-
lcov --gcov-tool gcov "${coverage_args[@]}"
294-
;;
295-
esac
296-
297-
genhtml .coverage.lcov --legend --title "mongoc code coverage" --output-directory coverage
288+
{
289+
case "${CC}" in
290+
clang)
291+
lcov --gcov-tool "$(pwd)/.evergreen/scripts/llvm-gcov.sh" "${coverage_args[@]}"
292+
;;
293+
*)
294+
lcov --gcov-tool gcov "${coverage_args[@]}"
295+
;;
296+
esac
297+
298+
genhtml .coverage.lcov --legend --title "mongoc code coverage" --output-directory coverage
299+
} | perl -lne 'print if not m|Processing |'
298300
fi

0 commit comments

Comments
 (0)