Skip to content

Commit bc12675

Browse files
authored
Merge pull request mackerelio#687 from wafuwafu13/certfile-test
check-cert-file: add test
2 parents a5f9240 + 347b552 commit bc12675

File tree

2 files changed

+41
-5
lines changed

2 files changed

+41
-5
lines changed

check-cert-file/lib/check-cert-file.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,19 @@ type certOpts struct {
1919

2020
// Do the plugin
2121
func Do() {
22-
ckr := checkCertExpiration()
22+
ckr := Run(os.Args[1:])
2323
ckr.Name = "CERT Expiry"
2424
ckr.Exit()
2525
}
2626

27-
func checkCertExpiration() *checkers.Checker {
28-
opts := certOpts{}
29-
psr := flags.NewParser(&opts, flags.Default)
30-
_, err := psr.Parse()
27+
func parseArgs(args []string) (*certOpts, error) {
28+
opts := &certOpts{}
29+
_, err := flags.ParseArgs(opts, args)
30+
return opts, err
31+
}
32+
33+
func Run(args []string) *checkers.Checker {
34+
opts, err := parseArgs(args)
3135
if err != nil {
3236
os.Exit(1)
3337
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package checkcertfile
2+
3+
import (
4+
"os/exec"
5+
"path/filepath"
6+
"runtime"
7+
"testing"
8+
9+
"github.com/mackerelio/checkers"
10+
"github.com/stretchr/testify/assert"
11+
)
12+
13+
func TestCertFile(t *testing.T) {
14+
tmpDir := t.TempDir()
15+
cmd := exec.Command(
16+
"go",
17+
"run",
18+
filepath.FromSlash(filepath.Join(runtime.GOROOT(), "/src/crypto/tls/generate_cert.go")),
19+
"-host",
20+
"localhost",
21+
"-duration",
22+
"720h0m0s", // 30*24*time.Hour
23+
)
24+
cmd.Dir = tmpDir
25+
err := cmd.Run()
26+
if err != nil {
27+
t.Fatalf("Failed to generate cert.pem: %s", err)
28+
}
29+
30+
ckr := Run([]string{"-f", filepath.Join(tmpDir, "cert.pem"), "-w", "35", "-c", "25"})
31+
assert.Equal(t, checkers.WARNING, ckr.Status, "should be WARNING")
32+
}

0 commit comments

Comments
 (0)