blob: 33f3d0fe094f0fb99b0464166c8c0047cf7f7044 (
plain) (
blame)
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
|
# EDoc plugin.
EDOC_CASES = build docs no-overview opts
EDOC_TARGETS = $(addprefix edoc-,$(EDOC_CASES))
.PHONY: edoc $(EDOC_TARGETS)
edoc: $(EDOC_TARGETS)
edoc-build: build clean
$i "Bootstrap a new OTP application named $(APP)"
$t mkdir $(APP)/
$t cp ../erlang.mk $(APP)/
$t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
$i "Run EDoc"
$t $(MAKE) -C $(APP) edoc $v
$i "Check that documentation was generated"
$t test -f $(APP)/doc/index.html
$t test -f $(APP)/doc/$(APP)_app.html
$t test -f $(APP)/doc/$(APP)_sup.html
$i "Distclean the application"
$t $(MAKE) -C $(APP) distclean $v
$i "Check that the generated documentation was removed"
$t test ! -e $(APP)/doc/index.html
$t test ! -e $(APP)/doc/$(APP)_app.html
$t test ! -e $(APP)/doc/$(APP)_sup.html
$i "Generate a module with EDoc comments"
$t printf "%s\n" \
"%% @doc erlang-mk-edoc-module" \
"-module($(APP))." \
"-export([ok/0])." \
"" \
"%% @doc erlang-mk-edoc-function" \
"ok() -> ok." > $(APP)/src/$(APP).erl
$i "Run EDoc"
$t $(MAKE) -C $(APP) edoc $v
$i "Check that the new module's documentation was generated"
$t test -f $(APP)/doc/$(APP).html
$i "Check that the EDoc comments are in the generated documentation"
$t grep -q erlang-mk-edoc-module $(APP)/doc/$(APP).html
$t grep -q erlang-mk-edoc-function $(APP)/doc/$(APP).html
$i "Generate a module with an invalid EDoc comment"
$t printf "%s\n" \
"-module($(APP)_fail)." \
"-export([fail/0])." \
"%% @spec lol" \
"fail() -> fail." > $(APP)/src/$(APP)_fail.erl
$i "Check that EDoc errors out"
$t ! $(MAKE) -C $(APP) edoc $v
edoc-docs: build clean
$i "Bootstrap a new OTP application named $(APP)"
$t mkdir $(APP)/
$t cp ../erlang.mk $(APP)/
$t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
$i "Generate a doc/overview.edoc file"
$t mkdir $(APP)/doc
$t printf "%s\n" \
"@author R. J. Hacker <[email protected]>" \
"@copyright 2007 R. J. Hacker" \
"@version 1.0.0" \
"@title Welcome to the 'frob' application!" \
"@doc 'frob' is a highly advanced frobnicator with low latency," > $(APP)/doc/overview.edoc
$i "Check that EDoc runs on 'make docs'"
$t $(MAKE) -C $(APP) docs $v
$t test -f $(APP)/doc/index.html
$i "Check that the overview.edoc file was used"
$t grep -q frobnicator $(APP)/doc/overview-summary.html
edoc-no-overview: build clean
$i "Bootstrap a new OTP application named $(APP)"
$t mkdir $(APP)/
$t cp ../erlang.mk $(APP)/
$t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
$i "Check that EDoc doesn't run on 'make docs'"
$t $(MAKE) -C $(APP) docs $v
$t test ! -e $(APP)/doc/index.html
edoc-opts: build clean
$i "Bootstrap a new OTP application named $(APP)"
$t mkdir $(APP)/
$t cp ../erlang.mk $(APP)/
$t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
$i "Add edown doclet for EDoc"
$t perl -ni.bak -e 'print;if ($$.==1) {print "DOC_DEPS = edown\nEDOC_OPTS = {doclet, edown_doclet}\n"}' $(APP)/Makefile
$i "Run EDoc"
$t $(MAKE) -C $(APP) edoc $v
$i "Check that the Markdown documentation was generated"
$t test -f $(APP)/doc/README.md
$t test -f $(APP)/doc/$(APP)_app.md
$t test -f $(APP)/doc/$(APP)_sup.md
|