fix shell_var.mk

annotate TODO in testcases
diff --git a/func.go b/func.go
index d05c6f5..8f17517 100644
--- a/func.go
+++ b/func.go
@@ -927,9 +927,11 @@
 	}
 	arg := abuf.String()
 	freeBuf(abuf)
-	shellVar := ev.LookupVar("SHELL")
-	// TODO: Should be Eval, not String.
-	cmdline := []string{shellVar.String(), "-c", arg}
+	shellVar, err := ev.EvaluateVar("SHELL")
+	if err != nil {
+		return err
+	}
+	cmdline := []string{shellVar, "-c", arg}
 	if LogFlag {
 		logf("shell %q", cmdline)
 	}
diff --git a/testcase/blank_line_before_command.mk b/testcase/blank_line_before_command.mk
index 888892a..80391b7 100644
--- a/testcase/blank_line_before_command.mk
+++ b/testcase/blank_line_before_command.mk
@@ -1,4 +1,4 @@
-# TODO: Fix.
+# TODO: Fix - command not found message differs
 
 test:
 
diff --git a/testcase/equal_in_target.mk b/testcase/equal_in_target.mk
index faf532c..14b5370 100644
--- a/testcase/equal_in_target.mk
+++ b/testcase/equal_in_target.mk
@@ -1,3 +1,4 @@
+# TODO(c) fix parser. no rule to make target "test"?
 TSV:=test: A=PASS
 A_EQ_B:=A=B
 EQ==
diff --git a/testcase/err_invalid_ifeq5.mk b/testcase/err_invalid_ifeq5.mk
index 9fd745d..9c69228 100644
--- a/testcase/err_invalid_ifeq5.mk
+++ b/testcase/err_invalid_ifeq5.mk
@@ -1,3 +1,4 @@
+# TODO(c) fix error message
 ifeq (foo, bar) XXX
 else
 endif
diff --git a/testcase/err_semicolon.mk b/testcase/err_semicolon.mk
index f85826a..2e244ce 100644
--- a/testcase/err_semicolon.mk
+++ b/testcase/err_semicolon.mk
@@ -1,2 +1,3 @@
+# TODO(c): fix error message
 # This is an error. See also semicolon.mk
 ;
diff --git a/testcase/multiline_recipe.mk b/testcase/multiline_recipe.mk
index 61fc194..74b4d27 100644
--- a/testcase/multiline_recipe.mk
+++ b/testcase/multiline_recipe.mk
@@ -1,3 +1,4 @@
+# TODO(c): fix test6 - \t$${empty} should be empty.
 MAKEVER:=$(shell make --version | ruby -n0e 'puts $$_[/Make (\d)/,1]')
 ifeq ($(MAKEVER),4)
 AT=@
diff --git a/testcase/override_export.mk b/testcase/override_export.mk
index 40c6561..7dac4e5 100644
--- a/testcase/override_export.mk
+++ b/testcase/override_export.mk
@@ -1,4 +1,4 @@
-# TODO: Fix
+# TODO: Fix - "override export define C" is invalid "override" directive.
 
 override export A:=PASS_A
 export override B:=PASS_B
diff --git a/testcase/shell_var.mk b/testcase/shell_var.mk
index 24f4f00..8f5de31 100644
--- a/testcase/shell_var.mk
+++ b/testcase/shell_var.mk
@@ -4,9 +4,8 @@
 
 $(info $(shell foo))
 
-# TODO: Fix.
-#echo=/bin/echo
-#SHELL=$(echo)
+echo=/bin/echo
+SHELL=$(echo)
 
 $(info $(shell bar))
 
diff --git a/testcase/warn_extra_trailings.mk b/testcase/warn_extra_trailings.mk
index ba2b0db..4c63654 100644
--- a/testcase/warn_extra_trailings.mk
+++ b/testcase/warn_extra_trailings.mk
@@ -1,4 +1,4 @@
-# TODO
+# TODO: fix error message. not only else, but also endif
 
 ifdef foo
 else foo