Add more test cases for GptInit() and fixed some bugs

Review URL: http://codereview.chromium.org/1701017
diff --git a/cgptlib/tests/cgpt_test.h b/cgptlib/tests/cgpt_test.h
index 4a8b115..3a4191a 100644
--- a/cgptlib/tests/cgpt_test.h
+++ b/cgptlib/tests/cgpt_test.h
@@ -2,8 +2,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#ifndef VBOOT_REFERENCE_CGPTLIB_TESTS_CGPT_TEST_H_
-#define VBOOT_REFERENCE_CGPTLIB_TESTS_CGPT_TEST_H_
+#ifndef VBOOT_REFERENCE_CGPT_TEST_H_
+#define VBOOT_REFERENCE_CGPT_TEST_H_
 
 #include <stdio.h>
 
@@ -12,16 +12,23 @@
   TEST_OK = 0,
 };
 
+#define TEST_CASE(func) #func, func
+typedef int (*test_func)(void);
+
+#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
+
 /* ANSI Color coding sequences. */
 #define COL_GREEN "\e[1;32m"
 #define COL_RED "\e[0;31m"
 #define COL_STOP "\e[m"
 
 #define EXPECT(expr) \
-  if (!expr) { \
-    printf(COL_RED " fail " COL_STOP "in expression %s in %s() line %d\n",\
-           #expr, __FUNCTION__, __LINE__); \
-    return TEST_FAIL; \
-  }
+  do { \
+    if (!(expr)) { \
+      printf(COL_RED " fail " COL_STOP "in expression %s in %s() line %d\n",\
+             #expr, __FUNCTION__, __LINE__); \
+      return TEST_FAIL; \
+    } \
+  } while (0)
 
-#endif  /* VBOOT_REFERENCE_CGPTLIB_TESTS_CGPT_TEST_H_ */
+#endif  /* VBOOT_REFERENCE_CGPT_TEST_H_ */