Skip to content

Commit ad4c135

Browse files
committed
Add bisect_ppx preprocessing
Signed-off-by: Edwin Török <[email protected]>
1 parent 9fad115 commit ad4c135

File tree

10 files changed

+116
-30
lines changed

10 files changed

+116
-30
lines changed

.coverage.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ if [ -z "$KEEP" ]; then trap "popd; rm -rf $COVERAGE_DIR" EXIT; fi
1010

1111
$(which cp) -r ../* .
1212

13-
opam pin add bisect_ppx 1.3.0 -y
14-
opam install ocveralls -y
13+
opam install bisect_ppx ocveralls -y
1514

1615
export BISECT_ENABLE=YES
1716
jbuilder runtest

example/jbuild

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,24 @@ let flags = function
1818
let rewriters = ["ppx_deriving_rpc"]
1919
let flags = flags rewriters
2020

21+
let coverage_rewriter =
22+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
23+
if is_coverage then
24+
"(preprocess (pps (bisect_ppx -conditional)))"
25+
else
26+
""
27+
2128
let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2229
(jbuild_version 1)
2330

2431
(executable
2532
((name example)
2633
(flags (:standard -w -39 %s))
27-
(libraries (lwt lwt.unix xcp rpclib))))
34+
(libraries (lwt lwt.unix xcp rpclib))
35+
%s))
2836

2937
(alias
3038
((name runtest)
3139
(deps (example.exe))
3240
))
33-
|} flags
41+
|} flags coverage_rewriter

lib/jbuild

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ let flags = function
1515
in
1616
go ic ""
1717

18+
let coverage_rewriter =
19+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
20+
if is_coverage then
21+
"(preprocess (pps (bisect_ppx -conditional)))"
22+
else
23+
""
24+
1825
let rewriters = ["ppx_deriving_rpc"]
1926
let flags = flags rewriters
2027

@@ -30,15 +37,19 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
3037
(libraries (cmdliner uri re cohttp xmlm unix sexplib
3138
ppx_deriving_rpc rpclib rpclib.xml threads message_switch.unix
3239
fd-send-recv xcp-inventory xapi-backtrace))
33-
(wrapped false)))
40+
(wrapped false)
41+
%s
42+
))
3443

3544
(library
3645
((name xcp_updates)
3746
(public_name xcp.updates)
3847
(flags (:standard -w -39 %s))
3948
(modules (updates task_server scheduler))
4049
(libraries (xcp lwt))
41-
(wrapped false)))
50+
(wrapped false)
51+
%s
52+
))
4253

4354
(executable
4455
((name channel_helper)
@@ -50,4 +61,4 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
5061
((name runtest)
5162
(deps (channel_helper.exe))))
5263

53-
|} flags flags flags
64+
|} flags coverage_rewriter flags coverage_rewriter flags

lib_test/jbuild

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,25 @@ let flags = function
1818
let rewriters = ["ppx_deriving_rpc"; "ppx_sexp_conv"]
1919
let flags = flags rewriters
2020

21+
let coverage_rewriter =
22+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
23+
if is_coverage then
24+
"(preprocess (pps (bisect_ppx -conditional)))"
25+
else
26+
""
27+
2128
let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2229
(jbuild_version 1)
2330

2431
(executable
2532
((name test)
2633
(flags (:standard -w -39 %s))
27-
(libraries (lwt lwt.unix xcp xcp.xen threads rpclib oUnit xcp.updates))))
34+
(libraries (lwt lwt.unix xcp xcp.xen threads rpclib oUnit xcp.updates))
35+
%s))
2836

2937
(alias
3038
((name runtest)
3139
(deps (test.exe))
3240
(action (run ${<} -runner sequential))))
3341

34-
|} flags
42+
|} flags coverage_rewriter

memory/jbuild

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ let flags = function
1818
let rewriters = ["ppx_deriving_rpc"]
1919
let flags = flags rewriters
2020

21+
let coverage_rewriter =
22+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
23+
if is_coverage then
24+
"(preprocess (pps (bisect_ppx -conditional)))"
25+
else
26+
""
27+
2128
let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2229
(jbuild_version 1)
2330

@@ -27,7 +34,8 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2734
(flags (:standard -w -39 %s))
2835
(modules (:standard \ memory_cli))
2936
(libraries (xcp threads rpclib))
30-
(wrapped false)))
37+
(wrapped false)
38+
%s))
3139

3240
(executable
3341
((name memory_cli)
@@ -38,4 +46,4 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
3846
((name runtest)
3947
(deps (memory_cli.exe))))
4048

41-
|} flags
49+
|} flags coverage_rewriter

network/jbuild

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ let flags = function
1515
in
1616
go ic ""
1717

18+
let coverage_rewriter =
19+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
20+
if is_coverage then
21+
"(preprocess (pps (bisect_ppx -conditional)))"
22+
else
23+
""
24+
1825
let rewriters_camlp4 = ["rpclib.idl -syntax camlp4o"]
1926
let rewriters_ppx = ["ppx_deriving_rpc"; "ppx_sexp_conv"]
2027

@@ -27,14 +34,16 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2734
(modules (network_interface))
2835
(flags (:standard -w -39 %s))
2936
(libraries (xcp threads rpclib))
30-
(wrapped false)))
37+
(wrapped false)
38+
%s))
3139

3240
(library
3341
((name xcp_network)
3442
(public_name xcp.network)
3543
(modules (:standard \ network_interface))
3644
(flags (:standard -w -39-33 %s))
3745
(libraries (xcp threads rpclib xcp_network_interface))
38-
(wrapped false)))
46+
(wrapped false)
47+
%s))
3948

40-
|} (flags rewriters_camlp4) (flags rewriters_ppx)
49+
|} (flags rewriters_camlp4) coverage_rewriter (flags rewriters_ppx) coverage_rewriter

rrd/jbuild

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ let flags = function
1818
let rewriters_camlp4 = ["rpclib.idl -syntax camlp4o"]
1919
let rewriters_ppx = ["ppx_deriving_rpc"]
2020

21+
let coverage_rewriter =
22+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
23+
if is_coverage then
24+
"(preprocess (pps (bisect_ppx -conditional)))"
25+
else
26+
""
27+
2128
let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2229
(jbuild_version 1)
2330

@@ -27,21 +34,24 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2734
(modules (data_source))
2835
(flags (:standard -w -39 %s))
2936
(libraries (xcp threads rpclib rrd))
30-
(wrapped false)))
37+
(wrapped false)
38+
%s))
3139

3240
(library
3341
((name xcp_rrd_interface)
3442
(public_name xcp.rrd.interface)
3543
(modules (rrd_interface))
3644
(flags (:standard -w -39 %s))
3745
(libraries (xcp threads rpclib rrd xcp_rrd_interface_types))
38-
(wrapped false)))
46+
(wrapped false)
47+
%s))
3948

4049
(library
4150
((name xcp_rrd)
4251
(public_name xcp.rrd)
4352
(modules (:standard \ rrd_interface data_source))
4453
(flags (:standard -w -39 %s))
4554
(libraries (xcp threads rpclib rrd xcp_rrd_interface))
46-
(wrapped false)))
47-
|} (flags rewriters_ppx) (flags rewriters_camlp4) (flags rewriters_ppx)
55+
(wrapped false)
56+
%s))
57+
|} (flags rewriters_ppx) coverage_rewriter (flags rewriters_camlp4) coverage_rewriter (flags rewriters_ppx) coverage_rewriter

storage/jbuild

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ let flags = function
1515
in
1616
go ic ""
1717

18+
let coverage_rewriter =
19+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
20+
if is_coverage then
21+
"(preprocess (pps (bisect_ppx -conditional)))"
22+
else
23+
""
24+
1825
let rewriters_camlp4 = ["rpclib.idl -syntax camlp4o"]
1926
let rewriters_ppx = ["ppx_deriving_rpc"; "ppx_sexp_conv"]
2027

@@ -27,28 +34,32 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2734
(flags (:standard -w -39 %s))
2835
(modules (vdi_automaton))
2936
(libraries (xcp threads rpclib))
30-
(wrapped false)))
37+
(wrapped false)
38+
%s))
3139

3240
(library
3341
((name xcp_storage_interface)
3442
(public_name xcp.storage.interface)
3543
(flags (:standard -w -39 %s))
3644
(modules (storage_interface))
3745
(libraries (xcp threads rpclib xcp_storage_interface_types))
38-
(wrapped false)))
46+
(wrapped false)
47+
%s))
3948

4049
(library
4150
((name xcp_storage)
4251
(public_name xcp.storage)
4352
(flags (:standard -w -39 %s))
4453
(modules (:standard \ storage_test storage_interface vdi_automaton))
4554
(libraries (xcp threads rpclib xcp_storage_interface xcp_storage_interface_types))
46-
(wrapped false)))
55+
(wrapped false)
56+
%s))
4757

4858
(executable
4959
((name storage_test)
5060
(flags (:standard -w -39 %s))
5161
(modules (storage_test))
52-
(libraries (xcp xcp_storage oUnit cmdliner))))
62+
(libraries (xcp xcp_storage oUnit cmdliner))
63+
%s))
5364

54-
|} (flags rewriters_ppx) (flags rewriters_camlp4) (flags rewriters_ppx) (flags rewriters_ppx)
65+
|} (flags rewriters_ppx) coverage_rewriter (flags rewriters_camlp4) coverage_rewriter (flags rewriters_ppx) coverage_rewriter (flags rewriters_ppx) coverage_rewriter

v6/jbuild

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ let flags = function
1818
let rewriters_camlp4 = ["rpclib.idl -syntax camlp4o"]
1919
let rewriters_ppx = ["ppx_deriving_rpc"; "ppx_sexp_conv"]
2020

21+
let coverage_rewriter =
22+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
23+
if is_coverage then
24+
"(preprocess (pps (bisect_ppx -conditional)))"
25+
else
26+
""
27+
2128
let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2229
(jbuild_version 1)
2330

@@ -27,14 +34,16 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2734
(modules (v6_interface))
2835
(flags (:standard -w -39 %s))
2936
(libraries (xcp threads rpclib))
30-
(wrapped false)))
37+
(wrapped false)
38+
%s))
3139

3240
(library
3341
((name xapi_v6)
3442
(public_name xcp.v6)
3543
(modules (:standard \ v6_interface))
3644
(flags (:standard -w -39 %s))
3745
(libraries (xcp threads rpclib xapi_v6_interface))
38-
(wrapped false)))
46+
(wrapped false)
47+
%s))
3948

40-
|} (flags rewriters_camlp4) (flags rewriters_ppx)
49+
|} (flags rewriters_camlp4) coverage_rewriter (flags rewriters_ppx) coverage_rewriter

xen/jbuild

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ let flags = function
1818
let rewriters_ppx = ["ppx_deriving_rpc"; "ppx_sexp_conv"]
1919
let rewriters_camlp4 = ["rpclib.idl -syntax camlp4o"]
2020

21+
let coverage_rewriter = ""
22+
(* (preprocess (pps)) doesn't work with camlp4 and the other ppx derivers,
23+
it complains about missing rpc_of_t *)
24+
let rewriters_ppx =
25+
let is_coverage = try Unix.getenv "BISECT_ENABLE" = "YES" with Not_found -> false in
26+
if is_coverage then "bisect_ppx" :: rewriters_ppx else rewriters_ppx
27+
28+
2129
let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2230
(jbuild_version 1)
2331

@@ -27,19 +35,24 @@ let () = Printf.ksprintf Jbuild_plugin.V1.send {|
2735
(modules (xenops_types device_number))
2836
(flags (:standard -w -39 %s))
2937
(libraries (xcp threads rpclib))
30-
(wrapped false)))
38+
(wrapped false)
39+
%s))
40+
3141
(library
3242
((name xcp_xen_interface)
3343
(public_name xcp.xen.interface)
3444
(modules (xenops_interface))
3545
(flags (:standard -w -39 %s))
3646
(libraries (xcp threads rpclib xcp_xen_interface_types))
37-
(wrapped false)))
47+
(wrapped false)
48+
%s))
49+
3850
(library
3951
((name xcp_xen)
4052
(public_name xcp.xen)
4153
(modules (:standard \ xenops_interface xenops_types device_number))
4254
(flags (:standard -w -39 %s))
4355
(libraries (xcp threads rpclib xcp_xen_interface))
44-
(wrapped false)))
45-
|} (flags rewriters_ppx) (flags rewriters_camlp4) (flags rewriters_ppx)
56+
(wrapped false)
57+
%s))
58+
|} (flags rewriters_ppx) coverage_rewriter (flags rewriters_camlp4) coverage_rewriter (flags rewriters_ppx) coverage_rewriter

0 commit comments

Comments
 (0)