提交 f27c91ba 编写于 作者: A aarzilli 提交者: Derek Parker

Documentation: automatically check that documentation is up to date

Since we always forget to update the documentation lets check this
automatically.
上级 38ddb22b
......@@ -51,4 +51,3 @@ Pass flags to the program you are debugging using `--`, for example:
* [dlv trace](dlv_trace.md) - Compile and begin tracing program.
* [dlv version](dlv_version.md) - Prints version.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -42,4 +42,3 @@ dlv attach pid [executable]
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -37,4 +37,3 @@ dlv connect addr
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -41,4 +41,3 @@ dlv core <executable> <core>
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -48,4 +48,3 @@ dlv debug [package]
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -42,4 +42,3 @@ dlv exec <path/to/binary>
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -41,4 +41,3 @@ dlv replay [trace directory]
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -37,4 +37,3 @@ dlv run
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -48,4 +48,3 @@ dlv test [package]
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -50,4 +50,3 @@ dlv trace [package] regexp
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -37,4 +37,3 @@ dlv version
### SEE ALSO
* [dlv](dlv.md) - Delve is a debugger for the Go programming language.
###### Auto generated by spf13/cobra on 17-Apr-2018
......@@ -270,6 +270,8 @@ https://github.com/mozilla/rr
RootCommand.AddCommand(replayCommand)
}
RootCommand.DisableAutoGenTag = true
return RootCommand
}
......
package main
package main_test
import (
"bufio"
......@@ -14,8 +14,11 @@ import (
"testing"
"time"
"github.com/derekparker/delve/cmd/dlv/cmds"
protest "github.com/derekparker/delve/pkg/proc/test"
"github.com/derekparker/delve/pkg/terminal"
"github.com/derekparker/delve/service/rpc2"
"github.com/spf13/cobra/doc"
)
var testBackend string
......@@ -202,3 +205,48 @@ func TestOutput(t *testing.T) {
}
}
}
func checkAutogenDoc(t *testing.T, filename, gencommand string, generated []byte) {
saved := slurpFile(t, os.ExpandEnv(fmt.Sprintf("$GOPATH/src/github.com/derekparker/delve/%s", filename)))
if len(saved) != len(generated) {
t.Fatalf("%s: needs to be regenerated run scripts/gen-cli-docs.go", filename)
}
for i := range saved {
if saved[i] != generated[i] {
t.Fatalf("%s: needs to be regenerated; run %s", filename, gencommand)
}
}
}
func slurpFile(t *testing.T, filename string) []byte {
saved, err := ioutil.ReadFile(filename)
if err != nil {
t.Fatalf("Could not read %s: %v", filename, err)
}
return saved
}
// TestGeneratedDoc tests that the autogenerated documentation has been
// updated.
func TestGeneratedDoc(t *testing.T) {
// Checks gen-cli-docs.go
var generatedBuf bytes.Buffer
commands := terminal.DebugCommands(nil)
commands.WriteMarkdown(&generatedBuf)
cliDocFilename := "Documentation/cli/README.md"
checkAutogenDoc(t, cliDocFilename, "scripts/gen-cli-docs.go", generatedBuf.Bytes())
// Checks gen-usage-docs.go
tempDir, err := ioutil.TempDir(os.TempDir(), "test-gen-doc")
assertNoError(err, t, "TempDir")
defer cmds.SafeRemoveAll(tempDir)
doc.GenMarkdownTree(cmds.New(true), tempDir)
entries, err := ioutil.ReadDir(tempDir)
assertNoError(err, t, "ReadDir")
for _, doc := range entries {
docFilename := "Documentation/usage/" + doc.Name()
checkAutogenDoc(t, docFilename, "scripts/gen-usage-docs.go", slurpFile(t, tempDir+"/"+doc.Name()))
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册