HAWQ-1716. enable feature-test in docker
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
+}