File: cli_test.go

package info (click to toggle)
c2go 0.26.11-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,052 kB
  • sloc: ansic: 6,037; sh: 82; makefile: 5
file content (53 lines) | stat: -rw-r--r-- 1,094 bytes parent folder | download | duplicates (3)
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
package main

import (
	"bytes"
	"os"
	"testing"

	"github.com/bradleyjkemp/cupaloy"
)

func setupTest(args []string) (*bytes.Buffer, func()) {
	buf := &bytes.Buffer{}
	oldStderr := stderr
	oldArgs := os.Args

	stderr = buf
	os.Args = args

	return buf, func() {
		stderr = oldStderr
		os.Args = oldArgs
	}
}

var cliTests = map[string][]string{
	// Test that help is printed if no files are given
	"TranspileNoFilesHelp": {"test", "transpile"},

	// Test that help is printed if help flag is set, even if file is given
	"TranspileHelpFlag": {"test", "transpile", "-h", "foo.c"},

	// Test that help is printed if no files are given
	"AstNoFilesHelp": {"test", "ast"},

	// Test that help is printed if help flag is set, even if file is given
	"AstHelpFlag": {"test", "ast", "-h", "foo.c"},
}

func TestCLI(t *testing.T) {
	for testName, args := range cliTests {
		t.Run(testName, func(t *testing.T) {
			output, teardown := setupTest(args)
			defer teardown()

			runCommand()

			err := cupaloy.SnapshotMulti(testName, output)
			if err != nil {
				t.Fatalf("error: %s", err)
			}
		})
	}
}