Skip to content

Commit

Permalink
Add back coveralls support.
Browse files Browse the repository at this point in the history
  • Loading branch information
iphydf committed Mar 3, 2020
1 parent 6370c8e commit 51c20d3
Show file tree
Hide file tree
Showing 128 changed files with 235 additions and 255 deletions.
7 changes: 6 additions & 1 deletion .gitignore
@@ -1,7 +1,12 @@
/_build
/src/.merlin
/_coverage
/coverage.json
/setup.data
/setup.log
/test/*/dune
.merlin
*.byte
*.exe
*.native
*.swp
bisect*.out
2 changes: 0 additions & 2 deletions .merlin

This file was deleted.

44 changes: 16 additions & 28 deletions .travis.yml
Expand Up @@ -2,34 +2,22 @@
language: generic
os: linux

jobs:
include:
- env: BUILD=host
addons:
apt:
sources:
- avsm
packages:
- aspcud
- opam
addons:
apt:
sources:
- avsm
packages:
- aspcud
- opam

cache:
directories:
- $HOME/.opam
cache:
directories:
- $HOME/.opam

install:
- opam init -y
- eval `opam env`
- opam install -y menhir ppx_deriving dune
install:
- opam init -y
- eval `opam env`
- opam install -y menhir ppx_deriving bisect_ppx dune

script:
- make
# - make coverage

- env: BUILD=docker
services:
- docker
script:
- docker build -t apidsl .
- docker run --rm -v $PWD:/apidsl apidsl
# - make tests
script:
- make coveralls
47 changes: 19 additions & 28 deletions Makefile
@@ -1,35 +1,26 @@
tests: \
$(patsubst %.api.h,%.out.h,$(wildcard src/tests/*.api.h)) \
$(patsubst %.api.h,%.out.hs,$(wildcard src/tests/*.api.h)) \
$(patsubst %.api.h,%.out.api,$(wildcard src/tests/*.api.h)) \
$(patsubst %.api.h,%.out.ast,$(wildcard src/tests/*.api.h))
./apigen.exe

src/tests/%.out.h: src/tests/%.api.h apigen.exe
-cd src && ../apigen.exe $(patsubst src/%,%,$<) > $(patsubst src/%,%,$@) 2>&1
diff -u src/tests/$*.exp.h $@
rm -f $@

src/tests/%.out.hs: src/tests/%.api.h apigen.exe
-cd src && ../apigen.exe -hs Main $(patsubst src/%,%,$<) > $(patsubst src/%,%,$@) 2>&1
diff -u src/tests/$*.exp.hs $@
rm -f $@
apigen.native: $(wildcard *.ml* src/*.ml*)
dune clean
dune build --profile release
cp _build/default/apigen.exe $@

src/tests/%.out.api: src/tests/%.api.h apigen.exe
-cd src && ../apigen.exe -api $(patsubst src/%,%,$<) > $(patsubst src/%,%,$@) 2>&1
diff -u src/tests/$*.exp.api $@
rm -f $@
test/%/dune: test/dune-template Makefile
sed -e 's/%NAME%/$*/g' $< > $@

src/tests/%.out.ast: src/tests/%.api.h apigen.exe
-cd src && ../apigen.exe -ast $(patsubst src/%,%,$<) > $(patsubst src/%,%,$@) 2>&1
diff -u src/tests/$*.exp.ast $@
check: $(patsubst %,%dune,$(dir $(wildcard test/*/*.api.h)))
dune clean
BISECT_ENABLE=yes dune runtest

apigen.exe:
dune build --profile release
cp _build/default/src/apigen.exe $@
coverage: check
bisect-ppx-report -html _coverage/ -I _build/default _build/default/test/*/bisect*.out

coverage: travis-coveralls.sh
bash $<
coveralls: check
bisect-ppx-report \
-coveralls coverage.json \
-service-name travis-ci \
-service-job-id "${TRAVIS_JOB_ID}" \
-I _build/default _build/default/test/*/bisect*.out
curl -L -F json_file=@coverage.json https://coveralls.io/api/v1/jobs

clean:
dune clean
rm -f apigen.native
36 changes: 13 additions & 23 deletions src/apigen.ml → apigen.ml
@@ -1,24 +1,11 @@
open Apidsl

type outlang =
| Api
| Ast
| C
| Haskell of string

let parse_file file =
let fh = open_in file in
let lexbuf = Lexing.from_channel fh in
lexbuf.Lexing.lex_curr_p <- Lexing.({
lexbuf.lex_curr_p with
pos_fname = file;
});

let api = ApiPasses.parse_lexbuf lexbuf in

close_in fh;

api


let dump_api pre api post =
Option.may (Format.pp_print_string Format.str_formatter) pre;
Format.fprintf Format.str_formatter "%a\n"
Expand All @@ -29,7 +16,7 @@ let dump_api pre api post =


let main input =
let api = parse_file input in
let api = ApiPasses.parse_file input in
let ApiAst.Api (pre, ast, post) = api in
function
| C -> print_string (ApiPasses.all pre ast post)
Expand All @@ -40,10 +27,13 @@ let main input =

let () =
(*Printexc.record_backtrace true;*)
match Sys.argv with
| [|_ ; input|]
| [|_; "-c" ; input|] -> main input C
| [|_; "-hs"; modname; input|] -> main input (Haskell modname)
| [|_; "-ast" ; input|] -> main input Ast
| [|_; "-api" ; input|] -> main input Api
| _ -> print_endline "Usage: apigen <file>"
try
match Sys.argv with
| [|_ ; input|]
| [|_; "-c" ; input|] -> main input C
| [|_; "-hs"; modname; input|] -> main input (Haskell modname)
| [|_; "-ast" ; input|] -> main input Ast
| [|_; "-api" ; input|] -> main input Api
| _ -> print_endline "Usage: apigen <file>"
with Failure (msg) ->
print_endline ("Failure: " ^ msg)
3 changes: 3 additions & 0 deletions dune
@@ -0,0 +1,3 @@
(executable
(name apigen)
(libraries apidsl))
1 change: 1 addition & 0 deletions dune-fs
@@ -0,0 +1 @@
(file .git ignore)
10 changes: 5 additions & 5 deletions src/apiCodegen.ml
Expand Up @@ -87,7 +87,7 @@ module Codegen(P : Params) = struct
;;


let rec cg_size_spec fmt = function
let cg_size_spec fmt = function
| Ss_UName uname ->
Format.fprintf fmt "%a"
cg_uname uname
Expand All @@ -110,7 +110,7 @@ module Codegen(P : Params) = struct
cg_uname uname
| Ty_LName lname ->
if String.contains lname '_' &&
Char.uppercase lname.[0] = lname.[0] then
Char.uppercase_ascii lname.[0] = lname.[0] then
Format.fprintf fmt "struct ";
Format.fprintf fmt "%a "
cg_lname lname
Expand Down Expand Up @@ -277,7 +277,7 @@ module Codegen(P : Params) = struct
(cg_braced cg_enumerators) enumerators
| Decl_Struct (lname, attrs, []) ->
assert (qualifier = "");
let uname = String.uppercase lname in
let uname = String.uppercase_ascii lname in
if c_mode then (
Format.fprintf fmt "@,#ifndef %a_DEFINED"
cg_uname uname;
Expand Down Expand Up @@ -333,13 +333,13 @@ module Codegen(P : Params) = struct
(cg_decl_qualified "static ") decl
| Decl_Section frags ->
Format.fprintf fmt "@,@,/*";
for i = 0 to 77 do
for _ = 0 to 77 do
Format.pp_print_char fmt '*'
done;
Format.fprintf fmt "%a"
(cg_list cg_comment_fragment) frags;
Format.fprintf fmt "@, ";
for i = 0 to 77 do
for _ = 0 to 77 do
Format.pp_print_char fmt '*'
done;
Format.fprintf fmt "/@,@,";
Expand Down
22 changes: 11 additions & 11 deletions src/apiFold.ml
Expand Up @@ -22,14 +22,14 @@ let visit_list f v state l =
List.fold_left (f v) state l


let visit_uname v state = function
| name -> state
let visit_uname _ state = function
| _ -> state

let visit_lname v state = function
| name -> state
let visit_lname _ state = function
| _ -> state

let visit_macro v state = function
| Macro macro -> state
let visit_macro _ state = function
| Macro _ -> state


let visit_var v state = function
Expand All @@ -44,7 +44,7 @@ let visit_var v state = function


let visit_comment_fragment v state = function
| Cmtf_Doc doc ->
| Cmtf_Doc _ ->
state
| Cmtf_UName uname ->
let state = v.fold_uname v state uname in
Expand Down Expand Up @@ -105,7 +105,7 @@ let visit_type_name v state = function


let visit_enumerator v state = function
| Enum_Name (comment, uname, value) ->
| Enum_Name (comment, uname, _) ->
let state = v.fold_comment v state comment in
let state = v.fold_uname v state uname in
state
Expand Down Expand Up @@ -134,7 +134,7 @@ let visit_parameter v state = function


let visit_expr v state = function
| E_Number num ->
| E_Number _ ->
state
| E_UName uname ->
let state = v.fold_uname v state uname in
Expand Down Expand Up @@ -180,7 +180,7 @@ let visit_decl v state = function
let state = v.fold_uname v state uname in
let state = v.fold_expr v state expr in
state
| Decl_Enum (is_class, uname, enumerators) ->
| Decl_Enum (_, uname, enumerators) ->
let state = v.fold_uname v state uname in
let state = visit_list v.fold_enumerator v state enumerators in
state
Expand All @@ -207,7 +207,7 @@ let visit_decl v state = function
let state = v.fold_lname v state lname in
let state = visit_list v.fold_parameter v state parameters in
state
| Decl_Event (lname, is_const, decl) ->
| Decl_Event (lname, _, decl) ->
let state = v.fold_lname v state lname in
let state = visit_list v.fold_decl v state decl in
state
Expand Down
6 changes: 3 additions & 3 deletions src/apiFoldMap.ml
Expand Up @@ -29,13 +29,13 @@ let visit_list f v state l =
state, List.rev l


let visit_uname v state = function
let visit_uname _ state = function
| name -> state, name

let visit_lname v state = function
let visit_lname _ state = function
| name -> state, name

let visit_macro v state = function
let visit_macro _ state = function
| Macro macro -> state, Macro macro


Expand Down
6 changes: 3 additions & 3 deletions src/apiMap.ml
Expand Up @@ -22,13 +22,13 @@ let visit_list f v state l =
List.map (f v state) l


let visit_uname v state = function
let visit_uname _ _ = function
| name -> name

let visit_lname v state = function
let visit_lname _ _ = function
| name -> name

let visit_macro v state = function
let visit_macro _ _ = function
| Macro macro -> Macro macro


Expand Down

0 comments on commit 51c20d3

Please sign in to comment.