diff --git a/src/test/feature/catalog/ans/char_linux.ans b/src/test/feature/catalog/ans/char_linux.ans
new file mode 100644
index 0000000..c812a49
--- /dev/null
+++ b/src/test/feature/catalog/ans/char_linux.ans
@@ -0,0 +1,139 @@
+-- start_ignore
+SET SEARCH_PATH=TestType_char;
+SET
+-- end_ignore
+--
+-- CHAR
+--
+-- fixed-length by value
+-- internally passed by value if <= 4 bytes in storage
+SELECT char 'c' = char 'c' AS true;
+ true
+------
+ t
+(1 row)
+
+--
+-- Build a table for testing
+--
+CREATE TABLE CHAR_TBL(f1 char);
+CREATE TABLE
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+INSERT 0 1
+INSERT INTO CHAR_TBL (f1) VALUES ('A');
+INSERT 0 1
+-- any of the following three input formats are acceptable
+INSERT INTO CHAR_TBL (f1) VALUES ('1');
+INSERT 0 1
+INSERT INTO CHAR_TBL (f1) VALUES (2);
+INSERT 0 1
+INSERT INTO CHAR_TBL (f1) VALUES ('3');
+INSERT 0 1
+-- zero-length char
+INSERT INTO CHAR_TBL (f1) VALUES ('');
+INSERT 0 1
+-- try char's of greater than 1 length
+INSERT INTO CHAR_TBL (f1) VALUES ('cd');
+psql:/tmp/TestType_char.sql:34: ERROR:  value too long for type character(1)
+INSERT INTO CHAR_TBL (f1) VALUES ('c     ');
+INSERT 0 1
+SELECT '' AS seven, * FROM CHAR_TBL;
+ seven | f1
+-------+----
+       | a
+       | A
+       | 1
+       | 2
+       | 3
+       |
+       | c
+(7 rows)
+
+SELECT '' AS six, c.*
+   FROM CHAR_TBL c
+   WHERE c.f1 <> 'a';
+ six | f1
+-----+----
+     | A
+     | 1
+     | 2
+     | 3
+     |
+     | c
+(6 rows)
+
+SELECT '' AS one, c.*
+   FROM CHAR_TBL c
+   WHERE c.f1 = 'a';
+ one | f1
+-----+----
+     | a
+(1 row)
+
+SELECT '' AS five, c.*
+   FROM CHAR_TBL c
+   WHERE c.f1 < 'a';
+ five | f1
+------+----
+      | 1
+      | 2
+      | 3
+      |
+(4 rows)
+
+SELECT '' AS six, c.*
+   FROM CHAR_TBL c
+   WHERE c.f1 <= 'a';
+ six | f1
+-----+----
+     | a
+     | 1
+     | 2
+     | 3
+     |
+(5 rows)
+
+SELECT '' AS one, c.*
+   FROM CHAR_TBL c
+   WHERE c.f1 > 'a';
+ one | f1
+-----+----
+     | A
+     | c
+(2 rows)
+
+SELECT '' AS two, c.*
+   FROM CHAR_TBL c
+   WHERE c.f1 >= 'a';
+ two | f1
+-----+----
+     | a
+     | A
+     | c
+(3 rows)
+
+DROP TABLE CHAR_TBL;
+DROP TABLE
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE CHAR_TBL(f1 char(4));
+CREATE TABLE
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+INSERT 0 1
+INSERT INTO CHAR_TBL (f1) VALUES ('ab');
+INSERT 0 1
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
+INSERT 0 1
+INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
+psql:/tmp/TestType_char.sql:75: ERROR:  value too long for type character(4)
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd    ');
+INSERT 0 1
+SELECT '' AS four, * FROM CHAR_TBL;
+ four |  f1
+------+------
+      | a
+      | ab
+      | abcd
+      | abcd
+(4 rows)
diff --git a/src/test/feature/catalog/ans/varchar_linux.ans b/src/test/feature/catalog/ans/varchar_linux.ans
new file mode 100644
index 0000000..0e421ab
--- /dev/null
+++ b/src/test/feature/catalog/ans/varchar_linux.ans
@@ -0,0 +1,128 @@
+-- start_ignore
+SET SEARCH_PATH=TestType_varchar;
+SET
+-- end_ignore
+--
+-- VARCHAR
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(1));
+CREATE TABLE
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+INSERT 0 1
+INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
+INSERT 0 1
+-- any of the following three input formats are acceptable
+INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
+INSERT 0 1
+INSERT INTO VARCHAR_TBL (f1) VALUES (2);
+INSERT 0 1
+INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
+INSERT 0 1
+-- zero-length char
+INSERT INTO VARCHAR_TBL (f1) VALUES ('');
+INSERT 0 1
+-- try varchar's of greater than 1 length
+INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
+psql:/tmp/TestType_varchar.sql:25: ERROR:  value too long for type character varying(1)
+INSERT INTO VARCHAR_TBL (f1) VALUES ('c     ');
+INSERT 0 1
+SELECT '' AS seven, * FROM VARCHAR_TBL;
+ seven | f1
+-------+----
+       | a
+       | A
+       | 1
+       | 2
+       | 3
+       |
+       | c
+(7 rows)
+
+SELECT '' AS six, c.*
+   FROM VARCHAR_TBL c
+   WHERE c.f1 <> 'a';
+ six | f1
+-----+----
+     | A
+     | 1
+     | 2
+     | 3
+     |
+     | c
+(6 rows)
+
+SELECT '' AS one, c.*
+   FROM VARCHAR_TBL c
+   WHERE c.f1 = 'a';
+ one | f1
+-----+----
+     | a
+(1 row)
+
+SELECT '' AS five, c.*
+   FROM VARCHAR_TBL c
+   WHERE c.f1 < 'a';
+ five | f1
+------+----
+      | 1
+      | 2
+      | 3
+      |
+(4 rows)
+
+SELECT '' AS six, c.*
+   FROM VARCHAR_TBL c
+   WHERE c.f1 <= 'a';
+ six | f1
+-----+----
+     | a
+     | 1
+     | 2
+     | 3
+     |
+(5 rows)
+
+SELECT '' AS one, c.*
+   FROM VARCHAR_TBL c
+   WHERE c.f1 > 'a';
+ one | f1
+-----+----
+     | A
+     | c
+(2 rows)
+
+SELECT '' AS two, c.*
+   FROM VARCHAR_TBL c
+   WHERE c.f1 >= 'a';
+ two | f1
+-----+----
+     | a
+     | A
+     | c
+(3 rows)
+
+DROP TABLE VARCHAR_TBL;
+DROP TABLE
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(4));
+CREATE TABLE
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+INSERT 0 1
+INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
+INSERT 0 1
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
+INSERT 0 1
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
+psql:/tmp/TestType_varchar.sql:66: ERROR:  value too long for type character varying(4)
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd    ');
+INSERT 0 1
+SELECT '' AS four, * FROM VARCHAR_TBL;
+ four |  f1
+------+------
+      | a
+      | ab
+      | abcd
+      | abcd
+(4 rows)
diff --git a/src/test/feature/catalog/test_type.cpp b/src/test/feature/catalog/test_type.cpp
index 4457b08..351f889 100644
--- a/src/test/feature/catalog/test_type.cpp
+++ b/src/test/feature/catalog/test_type.cpp
@@ -44,7 +44,22 @@
 
 TEST_F_FILE_TYPE(boolean)
 
-TEST_F_FILE_TYPE(char)
+TEST_F(TestType, char)
+{
+  hawq::test::SQLUtility util;
+  string SqlFile("catalog");
+  string AnsFile("catalog");
+  SqlFile += "/sql/char.sql";
+  #ifdef __linux__
+    AnsFile += "/ans/char_linux.ans";
+    util.execSQLFile(SqlFile, AnsFile);
+  #elif defined __APPLE__
+    AnsFile += "/ans/char.ans";
+    util.execSQLFile(SqlFile, AnsFile);
+  #else
+    EXPECT_TRUE(false) << "Unsupported platform";
+  #endif
+}
 
 TEST_F_FILE_TYPE(date)
 
@@ -75,4 +90,19 @@
 	                 "catalog/ans/type_sanity.ans");
 }
 
-TEST_F_FILE_TYPE(varchar)
+TEST_F(TestType, varchar)
+{
+  hawq::test::SQLUtility util;
+  string SqlFile("catalog");
+  string AnsFile("catalog");
+  SqlFile += "/sql/varchar.sql";
+  #ifdef __linux__
+    AnsFile += "/ans/varchar_linux.ans";
+    util.execSQLFile(SqlFile, AnsFile);
+  #elif defined __APPLE__
+    AnsFile += "/ans/varchar.ans";
+    util.execSQLFile(SqlFile, AnsFile);
+  #else
+    EXPECT_TRUE(false) << "Unsupported platform";
+  #endif
+}
