Commit bcfae5655bd7a128ac7827a5677da1f0cb10dac9

Golmote 2015-08-27T08:13:00

Add test for Makefile

diff --git a/tests/languages/makefile/builtin_feature.test b/tests/languages/makefile/builtin_feature.test
new file mode 100644
index 0000000..6f6a1a3
--- /dev/null
+++ b/tests/languages/makefile/builtin_feature.test
@@ -0,0 +1,15 @@
+.PHONY:
+.DELETE_ON_ERROR:
+.SECONDEXPANSION:
+
+----------------------------------------------------
+
+[
+	["builtin", ".PHONY"], ["punctuation", ":"],
+	["builtin", ".DELETE_ON_ERROR"], ["punctuation", ":"],
+	["builtin", ".SECONDEXPANSION"], ["punctuation", ":"]
+]
+
+----------------------------------------------------
+
+Checks for built-in target names.
\ No newline at end of file
diff --git a/tests/languages/makefile/comment_feature.test b/tests/languages/makefile/comment_feature.test
new file mode 100644
index 0000000..0e0c6c4
--- /dev/null
+++ b/tests/languages/makefile/comment_feature.test
@@ -0,0 +1,16 @@
+#
+# foobar
+# foo \
+bar
+
+----------------------------------------------------
+
+[
+	["comment", "#"],
+	["comment", "# foobar"],
+	["comment", "# foo \\\r\nbar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/tests/languages/makefile/keyword_feature.test b/tests/languages/makefile/keyword_feature.test
new file mode 100644
index 0000000..dcbbcc8
--- /dev/null
+++ b/tests/languages/makefile/keyword_feature.test
@@ -0,0 +1,73 @@
+define else endef endif
+export ifdef ifndef ifeq
+ifneq -include include
+override private sinclude
+undefine unexport vpath
+
+(addsuffix foo) (abspath foo)
+(and foo) (basename foo)
+(call foo) (dir foo) (error foo)
+(eval foo) (file foo) (filter foo)
+(filter-out foo) (findstring foo)
+(firstword foo) (flavor foo)
+(foreach foo) (guile foo)
+(if foo) (info foo) (join foo)
+(lastword foo) (load foo)
+(notdir foo) (or foo) (origin foo)
+(patsubst foo) (realpath foo)
+(shell foo) (sort foo) (strip foo)
+(subst foo) (suffix foo) (value foo)
+(warning foo) (wildcard foo)
+(word foo) (words foo) (wordlist foo)
+
+----------------------------------------------------
+
+[
+	["keyword", "define"], ["keyword", "else"], ["keyword", "endef"], ["keyword", "endif"],
+	["keyword", "export"], ["keyword", "ifdef"], ["keyword", "ifndef"], ["keyword", "ifeq"],
+	["keyword", "ifneq"], ["keyword", "-include"], ["keyword", "include"],
+	["keyword", "override"], ["keyword", "private"], ["keyword", "sinclude"],
+	["keyword", "undefine"], ["keyword", "unexport"], ["keyword", "vpath"],
+
+	["punctuation", "("], ["keyword", "addsuffix"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "abspath"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "and"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "basename"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "call"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "dir"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "error"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "eval"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "file"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "filter"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "filter-out"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "findstring"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "firstword"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "flavor"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "foreach"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "guile"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "if"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "info"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "join"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "lastword"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "load"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "notdir"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "or"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "origin"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "patsubst"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "realpath"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "shell"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "sort"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "strip"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "subst"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "suffix"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "value"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "warning"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "wildcard"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "word"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "words"], " foo", ["punctuation", ")"],
+	["punctuation", "("], ["keyword", "wordlist"], " foo", ["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for keywords and functions.
\ No newline at end of file
diff --git a/tests/languages/makefile/operator_feature.test b/tests/languages/makefile/operator_feature.test
new file mode 100644
index 0000000..d0df60a
--- /dev/null
+++ b/tests/languages/makefile/operator_feature.test
@@ -0,0 +1,15 @@
+= ::= ?=
+:= += !=
+| @
+
+----------------------------------------------------
+
+[
+	["operator", "="], ["operator", "::="], ["operator", "?="],
+	["operator", ":="], ["operator", "+="], ["operator", "!="],
+	["operator", "|"], ["operator", "@"]
+]
+
+----------------------------------------------------
+
+Checks for operators.
\ No newline at end of file
diff --git a/tests/languages/makefile/string_feature.test b/tests/languages/makefile/string_feature.test
new file mode 100644
index 0000000..ece27c8
--- /dev/null
+++ b/tests/languages/makefile/string_feature.test
@@ -0,0 +1,23 @@
+""
+''
+"fo\"o"
+'fo\'o'
+"foo\
+bar"
+'foo\
+bar'
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "''"],
+	["string", "\"fo\\\"o\""],
+	["string", "'fo\\'o'"],
+	["string", "\"foo\\\r\nbar\""],
+	["string", "'foo\\\r\nbar'"]
+]
+
+----------------------------------------------------
+
+Checks for single-quoted and double-quoted strings.
\ No newline at end of file
diff --git a/tests/languages/makefile/symbol_feature.test b/tests/languages/makefile/symbol_feature.test
new file mode 100644
index 0000000..d1fe40b
--- /dev/null
+++ b/tests/languages/makefile/symbol_feature.test
@@ -0,0 +1,18 @@
+edit :
+%oo:
+$(foo):
+
+----------------------------------------------------
+
+[
+	["symbol", ["edit "]], ["punctuation", ":"],
+	["symbol", ["%oo"]], ["punctuation", ":"],
+	["symbol", [
+		["variable", "$"],
+		"(foo)"
+	]], ["punctuation", ":"]
+]
+
+----------------------------------------------------
+
+Checks for targets, optionally containing interpolation.
\ No newline at end of file
diff --git a/tests/languages/makefile/variable_feature.test b/tests/languages/makefile/variable_feature.test
new file mode 100644
index 0000000..84431d0
--- /dev/null
+++ b/tests/languages/makefile/variable_feature.test
@@ -0,0 +1,19 @@
+$@
+$$<
+$(@D)
+$(foobar)
+$(2)
+
+----------------------------------------------------
+
+[
+	["variable", "$@"],
+	["variable", "$$<"],
+	["variable", "$(@D)"],
+	["variable", "$"], ["punctuation", "("], "foobar", ["punctuation", ")"],
+	["variable", "$"], ["punctuation", "("], "2", ["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file