/
SConscript
136 lines (102 loc) · 4.2 KB
/
SConscript
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
#
# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
#
# -*- mode: python; -*-
Import('BuildEnv')
import sys
env = BuildEnv.Clone()
env.CppDisableExceptions()
env.Append(CPPPATH = [env['TOP']])
env.Append(LIBPATH = ['#/' + Dir('..').path,
'../../base'])
env.Append(LIBPATH = env['TOP'] + '/base/test')
env.Prepend(LIBS = ['gunit', 'task_test', 'io', 'sandesh', 'http',
'sandeshvns', 'process_info', 'io', 'base',
'http_parser', 'curl',
'boost_program_options', 'pugixml', 'ssl', 'crypto'])
if sys.platform != 'darwin':
env.Append(LIBS = ['rt'])
event_manager_test = env.UnitTest('event_manager_test',
['event_manager_test.cc'],
)
env.Alias('src/io:event_manager_test', event_manager_test)
tcp_server_test = env.UnitTest('tcp_server_test',
['tcp_server_test.cc'],
)
env.Alias('src/io:tcp_server_test', tcp_server_test)
ssl_server_test = env.UnitTest('ssl_server_test',
['ssl_server_test.cc'],
)
env.Alias('src/io:ssl_server_test', ssl_server_test)
tcp_io_test = env.UnitTest('tcp_io_test',
['tcp_io_test.cc'],
)
env.Alias('src/io:tcp_io_test', tcp_io_test)
tcp_stress_test = env.UnitTest('tcp_stress_test',
['tcp_stress_test.cc'],
)
env.Alias('src/io:tcp_stress_test', tcp_stress_test)
udp_io_test = env.UnitTest('udp_io_test',
['udp_io_test.cc'],
)
env.Alias('src/io:udp_io_test', udp_io_test)
usock_io_test = env.UnitTest('usock_io_test',
['usock_io_test.cc'],
)
env.Alias('src/io:usock_io_test', usock_io_test)
# netlink_test = env.Program('netlink_test', ['netlink_test.cc'])
# env.Alias('src/io:netlink_test', netlink_test)
test_suite = [
event_manager_test,
ssl_server_test,
tcp_io_test,
tcp_server_test,
tcp_stress_test,
udp_io_test,
usock_io_test,
]
flaky_test_suite = [
]
def clean_coverage(env, target, source):
# rm -rf opserver/test/test_coverage
import shutil
shutil.rmtree('test_coverage', ignore_errors = True)
import os
lcov_clean = 'lcov --base-directory ' + Dir('#').abspath +\
' --directory ' + Dir(env['TOP']).abspath + '/io --directory ' +\
' --zerocounters'
os.system(lcov_clean)
def run_coverage(env, target, source):
import os
lcov_run = 'lcov --ignore-errors gcov,source --base-directory ' +\
Dir('#').abspath + ' --directory ' + Dir(env['TOP']).abspath + '/io ' +\
' -c -o ' + Dir(env['TOP']).abspath + '/io/test/io.info'
os.system(lcov_run)
genhtml_cmd = 'genhtml -o ' + Dir(env['TOP']).abspath +\
'/io/test/test_coverage' + ' -t "test coverage" --num-spaces 4 ' +\
Dir(env['TOP']).abspath + '/io/test/io.info'
os.system(genhtml_cmd)
if env['OPT'] != 'coverage':
test = env.TestSuite('io-test', test_suite)
env.Alias('controller/src/io:test', test)
flaky_test = env.TestSuite('io-flaky-test', flaky_test_suite)
env.Alias('controller/src/io:flaky-test', flaky_test)
Return('test_suite')
else:
test = env.TestSuite('io-test', test_suite)
clean_coverage_cmd = env.Command('clean_coverage', '', clean_coverage)
env.Depends(test, clean_coverage_cmd[0].name)
env.AlwaysBuild(clean_coverage_cmd)
run_coverage_cmd = env.Command('run_coverage', '', run_coverage)
env.Depends(run_coverage_cmd, test[0])
env.AlwaysBuild(run_coverage_cmd)
env.Alias('controller/src/io:test', run_coverage_cmd)
flaky_test = env.TestSuite('io-flaky-test', flaky_test_suite)
clean_coverage_cmd = env.Command('clean_coverage', '', clean_coverage)
env.Depends(flaky_test, clean_coverage_cmd[0].name)
env.AlwaysBuild(clean_coverage_cmd)
run_coverage_cmd = env.Command('run_coverage', '', run_coverage)
env.Depends(run_coverage_cmd, flaky_test[0])
env.AlwaysBuild(run_coverage_cmd)
env.Alias('controller/src/io:flaky-test', run_coverage_cmd)
Return('test_suite')