forked from awslabs/amazon-kinesis-video-streams-pic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
142 lines (125 loc) · 5.2 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
language: cpp
sudo: true
branches:
only:
- master
cache:
- directories:
- $HOME/.cache
addons:
apt:
packages:
- gdb
script:
- export AWS_KVS_LOG_LEVEL=7
- make
- ulimit -c unlimited -S
- timeout --signal=SIGABRT 40m ./kvspic_test --gtest_filter="-TimerQueueFunctionalityTest.*:HeapPerfTest.*"
after_failure:
- for i in $(find ./ -maxdepth 1 -name 'core*' -print); do gdb $(pwd)/kvspic_test core* -ex "thread apply all bt" -ex "set pagination 0" -batch; done;
matrix:
# MemorySanitizer and Thread sanitizer are still WIP
allow_failures:
- env: allowTestFail=true
include:
#clang check
- name: "clang-format Check"
os: linux
compiler: clang
before_script:
- sudo apt-get -q update
- sudo apt-get -y install clang-format
- mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_TEST=TRUE
script:
- cd ..
- bash scripts/check-clang.sh
# MacOS Builds
- name: "OSX GCC"
os: osx
compiler: gcc
before_script:
- mkdir build && cd build && cmake .. -DBUILD_TEST=TRUE
script:
- make
- AWS_KVS_LOG_LEVEL=7 ./kvspic_test --gtest_filter="-TimerQueueFunctionalityTest.*:HeapPerfTest.*"
after_failure: skip # timeout not available on MacOS
- name: "OSX Clang"
os: osx
compiler: clang
before_script:
- mkdir build && cd build && cmake .. -DBUILD_TEST=TRUE -DCOMPILER_WARNINGS=TRUE
script:
- make
- AWS_KVS_LOG_LEVEL=7 ./kvspic_test --gtest_filter="-TimerQueueFunctionalityTest.*:HeapPerfTest.*"
after_failure: skip # timeout not available on MacOS
# Code Coverage
- name: "Linux GCC Code Coverage"
os: linux
compiler: gcc
before_script:
- mkdir build && cd build && cmake .. -DCODE_COVERAGE=TRUE -DBUILD_TEST=TRUE
after_success:
- for test_file in $(find CMakeFiles/kvspic.dir CMakeFiles/kvspicClient.dir CMakeFiles/kvspicState.dir CMakeFiles/kvspicUtils.dir -name '*.gcno'); do gcov $test_file; done
- bash <(curl -s https://codecov.io/bash)
# AddressSanitizer
- name: "Linux Clang AddressSanitizer"
os: linux
compiler: clang
# env: ASAN_OPTIONS=detect_odr_violation=0:detect_leaks=1
before_script: mkdir build && cd build && cmake .. -DBUILD_TEST=TRUE -DADDRESS_SANITIZER=TRUE
# UndefinedBehaviorSanitizer
- name: "Linux Clang UndefinedBehaviorSanitizer"
os: linux
compiler: clang
env: UBSAN_OPTIONS=halt_on_error=1:suppressions=../src/utils/tst/suppressions/UBSAN.supp
before_script: mkdir build && cd build && cmake .. -DBUILD_TEST=TRUE -DUNDEFINED_BEHAVIOR_SANITIZER=TRUE
# MemorySanitizer
- name: "Linux Clang MemorySanitizer"
os: linux
compiler: clang
env: allowTestFail=true
before_script: mkdir build && cd build && cmake .. -DBUILD_TEST=TRUE -DMEMORY_SANITIZER=TRUE
# ThreadSanitizer
- name: "Linux Clang ThreadSanitizer"
os: linux
compiler: clang
env: TSAN_OPTIONS=halt_on_error=1:suppressions=../src/utils/tst/suppressions/TSAN.supp
before_script: mkdir build && cd build && cmake .. -DBUILD_TEST=TRUE -DTHREAD_SANITIZER=TRUE
script:
- make
- AWS_KVS_LOG_LEVEL=7 ./kvspic_test --gtest_break_on_failure --gtest_filter="-TimerQueueFunctionalityTest.*:HeapPerfTest.*:ThreadFunctionalityTest.ThreadCreateAndCancel"
# Old Version GCC 4.4
- name: "Linux GCC 4.4 Build"
os: linux
addons:
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
packages:
- gcc-4.4
- gdb
compiler: gcc
before_script: export CC=gcc-4.4 && mkdir build && cd build && cmake .. -DBUILD_TEST=TRUE
# Cross-compilation to ARM, no tests are run
- name: "ARM Cross-compilation"
os: linux
addons:
apt:
packages:
- gcc-arm-linux-gnueabi
- g++-arm-linux-gnueabi
- binutils-arm-linux-gnueabi
compiler: gcc
before_script:
- export CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++
- mkdir build && cd build
- cmake .. -DBUILD_TEST=TRUE
script: make
# Windows build
- name: "Windows MSVC"
os: windows
script:
- unset CC CC_FOR_BUILD CXX CXX_FOR_BUILD # We want to use MSVC
- .github/build_windows.bat
- export "AWS_KVS_LOG_LEVEL=7"
- cd build && ./kvspic_test.exe --gtest_filter="-TimerQueueFunctionalityTest.*:HeapPerfTest.*:PermutatedStreamInfo/StateTransitionFunctionalityTest.ControlPlaneServiceCallExhaustRetry*:PermutatedStreamInfo/IntermittentProducerAutomaticStreamingTest.ValidateTimerInvokedBeforeTime*:PermutatedStreamInfo/IntermittentProducerAutomaticStreamingTest.ValidateTimerInvokedAfterFirstPeriod*:PermutatedStreamInfo/IntermittentProducerAutomaticStreamingTest.ValidateLastUpdateTimeOfStreamUpdated*:PermutatedStreamInfo/IntermittentProducerAutomaticStreamingTest.MultiTrackVerifyNoInvocationsWithSingleTrackProducer*:PermutatedStreamInfo/IntermittentProducerAutomaticStreamingTest.ValidateNoConsecutiveEOFR*:PermutatedStreamInfo/IntermittentProducerAutomaticStreamingTest.ValidateErrorOnForceConsecutiveEOFR*"