Commit eac42a960b345f19c88649c8a6fdd9765d024235

Golmote 2015-08-27T08:14:33

Merge pull request #701 from Golmote/tests-go Add tests for Go

diff --git a/tests/languages/go/boolean_feature.test b/tests/languages/go/boolean_feature.test
new file mode 100644
index 0000000..1ee1192
--- /dev/null
+++ b/tests/languages/go/boolean_feature.test
@@ -0,0 +1,19 @@
+_
+iota
+nil
+true
+false
+
+----------------------------------------------------
+
+[
+	["boolean", "_"],
+	["boolean", "iota"],
+	["boolean", "nil"],
+	["boolean", "true"],
+	["boolean", "false"]
+]
+
+----------------------------------------------------
+
+Checks for all boolean values.
\ No newline at end of file
diff --git a/tests/languages/go/builtin_feature.test b/tests/languages/go/builtin_feature.test
new file mode 100644
index 0000000..414018f
--- /dev/null
+++ b/tests/languages/go/builtin_feature.test
@@ -0,0 +1,79 @@
+bool
+byte
+complex64
+complex128
+error
+float32
+float64
+rune
+string
+int
+int8
+int16
+int32
+int64
+uint
+uint8
+uint16
+uint32
+uint64
+uintptr
+append
+cap
+close
+complex
+copy
+delete
+imag
+len
+make
+new
+panic
+print
+println
+real
+recover
+
+----------------------------------------------------
+
+[
+	["builtin", "bool"],
+	["builtin", "byte"],
+	["builtin", "complex64"],
+	["builtin", "complex128"],
+	["builtin", "error"],
+	["builtin", "float32"],
+	["builtin", "float64"],
+	["builtin", "rune"],
+	["builtin", "string"],
+	["builtin", "int"],
+	["builtin", "int8"],
+	["builtin", "int16"],
+	["builtin", "int32"],
+	["builtin", "int64"],
+	["builtin", "uint"],
+	["builtin", "uint8"],
+	["builtin", "uint16"],
+	["builtin", "uint32"],
+	["builtin", "uint64"],
+	["builtin", "uintptr"],
+	["builtin", "append"],
+	["builtin", "cap"],
+	["builtin", "close"],
+	["builtin", "complex"],
+	["builtin", "copy"],
+	["builtin", "delete"],
+	["builtin", "imag"],
+	["builtin", "len"],
+	["builtin", "make"],
+	["builtin", "new"],
+	["builtin", "panic"],
+	["builtin", "print"],
+	["builtin", "println"],
+	["builtin", "real"],
+	["builtin", "recover"]
+]
+
+----------------------------------------------------
+
+Checks for all builtins.
\ No newline at end of file
diff --git a/tests/languages/go/keyword_feature.test b/tests/languages/go/keyword_feature.test
new file mode 100644
index 0000000..a2799f7
--- /dev/null
+++ b/tests/languages/go/keyword_feature.test
@@ -0,0 +1,59 @@
+break
+case
+chan
+const
+continue
+default
+defer
+else
+fallthrough
+for
+func
+go
+goto
+if
+import
+interface
+map
+package
+range
+return
+select
+struct
+switch
+type
+var
+
+----------------------------------------------------
+
+[
+	["keyword", "break"],
+	["keyword", "case"],
+	["keyword", "chan"],
+	["keyword", "const"],
+	["keyword", "continue"],
+	["keyword", "default"],
+	["keyword", "defer"],
+	["keyword", "else"],
+	["keyword", "fallthrough"],
+	["keyword", "for"],
+	["keyword", "func"],
+	["keyword", "go"],
+	["keyword", "goto"],
+	["keyword", "if"],
+	["keyword", "import"],
+	["keyword", "interface"],
+	["keyword", "map"],
+	["keyword", "package"],
+	["keyword", "range"],
+	["keyword", "return"],
+	["keyword", "select"],
+	["keyword", "struct"],
+	["keyword", "switch"],
+	["keyword", "type"],
+	["keyword", "var"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords
\ No newline at end of file
diff --git a/tests/languages/go/number_feature.test b/tests/languages/go/number_feature.test
new file mode 100644
index 0000000..f21b3e8
--- /dev/null
+++ b/tests/languages/go/number_feature.test
@@ -0,0 +1,43 @@
+42
+0600
+0xBadFace
+170141183460469231731687303715884105727
+72.40
+072.40
+2.71828
+1.e+0
+6.67428e-11
+1E6
+0i
+011i
+0.i
+2.71828i
+1.e+0i
+6.67428e-11i
+1E6i
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "0600"],
+	["number", "0xBadFace"],
+	["number", "170141183460469231731687303715884105727"],
+	["number", "72.40"],
+	["number", "072.40"],
+	["number", "2.71828"],
+	["number", "1.e+0"],
+	["number", "6.67428e-11"],
+	["number", "1E6"],
+	["number", "0i"],
+	["number", "011i"],
+	["number", "0.i"],
+	["number", "2.71828i"],
+	["number", "1.e+0i"],
+	["number", "6.67428e-11i"],
+	["number", "1E6i"]
+]
+
+----------------------------------------------------
+
+Checks for integers, floats and imaginary numbers.
\ No newline at end of file
diff --git a/tests/languages/go/operator_feature.test b/tests/languages/go/operator_feature.test
new file mode 100644
index 0000000..cda5386
--- /dev/null
+++ b/tests/languages/go/operator_feature.test
@@ -0,0 +1,27 @@
+* / % ^ ! =
+*= /= %= ^= != ==
++ += ++
+- -= --
+| |= ||
+& &= && &^ &^=
+> >> >>= >=
+< << <<= <= <-
+:= ...
+
+----------------------------------------------------
+
+[
+	["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "^"], ["operator", "!"], ["operator", "="],
+	["operator", "*="], ["operator", "/="], ["operator", "%="], ["operator", "^="], ["operator", "!="], ["operator", "=="],
+	["operator", "+"], ["operator", "+="], ["operator", "++"],
+	["operator", "-"], ["operator", "-="], ["operator", "--"],
+	["operator", "|"], ["operator", "|="], ["operator", "||"],
+	["operator", "&"], ["operator", "&="], ["operator", "&&"], ["operator", "&^"], ["operator", "&^="],
+	["operator", ">"], ["operator", ">>"], ["operator", ">>="], ["operator", ">="],
+	["operator", "<"], ["operator", "<<"], ["operator", "<<="], ["operator", "<="], ["operator", "<-"],
+	["operator", ":="], ["operator", "..."]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/tests/languages/go/string_feature.test b/tests/languages/go/string_feature.test
new file mode 100644
index 0000000..97e3960
--- /dev/null
+++ b/tests/languages/go/string_feature.test
@@ -0,0 +1,37 @@
+'a'
+'ä'
+'本'
+'\t'
+'\xff'
+'\u12e4'
+
+`abc`
+`\n
+\n`
+"\n"
+"\""
+"Hello, world!\n"
+"日本語"
+"\xff\u00FF"
+
+----------------------------------------------------
+
+[
+	["string", "'a'"],
+	["string", "'ä'"],
+	["string", "'本'"],
+	["string", "'\\t'"],
+	["string", "'\\xff'"],
+	["string", "'\\u12e4'"],
+	["string", "`abc`"],
+	["string", "`\\n\r\n\\n`"],
+	["string", "\"\\n\""],
+	["string", "\"\\\"\""],
+	["string", "\"Hello, world!\\n\""],
+	["string", "\"日本語\""],
+	["string", "\"\\xff\\u00FF\""]
+]
+
+----------------------------------------------------
+
+Checks for runes and strings.
\ No newline at end of file