Author: gates
Date: Tue May 29 23:51:41 2012
New Revision: 1344053

URL: http://svn.apache.org/viewvc?rev=1344053&view=rev
Log:
HCATALOG-414 More HCat e2e tests

Modified:
    incubator/hcatalog/trunk/CHANGES.txt
    incubator/hcatalog/trunk/src/test/e2e/hcatalog/drivers/TestDriverHCat.pm
    incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf

Modified: incubator/hcatalog/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/hcatalog/trunk/CHANGES.txt?rev=1344053&r1=1344052&r2=1344053&view=diff
==============================================================================
--- incubator/hcatalog/trunk/CHANGES.txt (original)
+++ incubator/hcatalog/trunk/CHANGES.txt Tue May 29 23:51:41 2012
@@ -26,6 +26,8 @@ Trunk (unreleased changes)
   HCAT-328 HCatLoader should report its input size so pig can estimate the 
number of reducers (traviscrawford via gates)
 
   IMPROVEMENTS
+  HCAT-414 More HCat e2e tests (khorgath via gates)
+
   HCAT-374 Add HCatBaseTest and one example usage (traviscrawford via gates)
 
   HCAT-390 Add e2e test for Hive with different file formats in different 
partitions (daijy via gates)

Modified: 
incubator/hcatalog/trunk/src/test/e2e/hcatalog/drivers/TestDriverHCat.pm
URL: 
http://svn.apache.org/viewvc/incubator/hcatalog/trunk/src/test/e2e/hcatalog/drivers/TestDriverHCat.pm?rev=1344053&r1=1344052&r2=1344053&view=diff
==============================================================================
--- incubator/hcatalog/trunk/src/test/e2e/hcatalog/drivers/TestDriverHCat.pm 
(original)
+++ incubator/hcatalog/trunk/src/test/e2e/hcatalog/drivers/TestDriverHCat.pm 
Tue May 29 23:51:41 2012
@@ -135,7 +135,7 @@ sub runHCatCmdLine
 
     open(FH, "> $hcatfiles[0]") or
         die "Unable to open file $hcatfiles[0] to write SQL script, $ERRNO\n";
-    print FH $testCmd->{'hcat'} . "\n";
+    print FH $hcatCmd . "\n";
     close(FH);
 
     Util::runHCatCmdFromFile($testCmd, $log, $hcatfiles[0], $stdoutfile, 
$stderrfile, 1);

Modified: incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf
URL: 
http://svn.apache.org/viewvc/incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf?rev=1344053&r1=1344052&r2=1344053&view=diff
==============================================================================
--- incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf (original)
+++ incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf Tue May 29 
23:51:41 2012
@@ -64,7 +64,7 @@ describe extended hcat_createtable_2;
                                {
                                 'num' => 3
                                 ,'hcat' => q\
-drop table if exists hcat_create_table_3;
+drop table if exists hcat_createtable_3;
 create table if not exists hcat_createtable_3(name string, age int, gpa 
double) stored as textfile;
 create table if not exists hcat_createtable_3(name string, age int, gpa 
double) stored as textfile;
 describe hcat_createtable_3;
@@ -72,8 +72,54 @@ describe hcat_createtable_3;
                                ,'rc'   => 0
                                 ,'expected_out_regex' => 'name string(\s)*age  
int(\s)*gpa     double'
                                 ,'expected_err_regex' => 'OK(.*)OK(.*)OK(.*)OK'
+                               },
+
+                               {
+                                'num' => 4
+                                ,'hcat' => q\
+drop table if exists hcat_createtable_4;
+create table hcat_createtable_4(name string, age int, gpa double) partitioned 
by (grade string, section string) stored as textfile;
+alter table hcat_createtable_4 add partition (grade='7',section='a');
+alter table hcat_createtable_4 add partition (grade='8',section='b');
+show partitions hcat_createtable_4;
+\,
+                               ,'rc'   => 0
+                                ,'expected_out_regex' => 
'grade=7/section=a(\s)*grade=8/section=b'
+                                ,'expected_err_regex' => 'OK(.*)OK(.*)OK'
+                               }, 
+                               {
+                                'num' => 5
+                                ,'hcat' => q\
+drop table if exists hcat_createtable_5;
+create table hcat_createtable_5(name string, age int, gpa double) stored as
+inputformat 'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
+outputformat 'org.apache.hadoop.hive.ql.io.RCFileOutputFormat';
+describe extended hcat_createtable_5;
+\,
+                               ,'rc'   => 0
+                                ,'expected_out_regex' => 'name string(\s)*age  
int(\s)*gpa     
double(.*(\s))*inputFormat:org.apache.hadoop.hive.ql.io.RCFileInputFormat, 
outputFormat:org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
+                                ,'expected_err_regex' => 'OK(.*)OK(.*)OK'
+                               }, 
+
+                               {
+                                'num' => 6
+                                ,'hcat' => q#
+drop table if exists hcat_createtable_6;
+create table hcat_createtable_6(a int, b array<int>, c map<string, string>)
+row format delimited
+    fields terminated by '^'
+    collection items terminated by ','
+    map keys terminated by ':'
+    lines terminated by '\\n'
+stored as textfile;
+describe extended hcat_createtable_6;
+#,
+                               ,'rc'   => 0
+                                ,'expected_out_regex' => 'a    int(\s)*b       
array<int>(\s)*c        
map<string,string>(.*(\s))*.*parameters:.*colelction.delim=,, mapkey.delim=:, 
serialization.format=|, line.delim=\n, field.delim=^'
+                                ,'expected_err_regex' => 'OK(.*)OK(.*)OK'
                                }, 
 
+
                        ],
                }, # end g
                 {
@@ -104,6 +150,41 @@ describe hcat_droptable_2;\,
                                 ,'expected_out_regex' => 'does not exist'
                                 },
 
+                                {
+                                'num' => 3
+                                ,'hcat' => q\
+drop table if exists hcat_drop_table_4;
+dfs -rmr :OUTPATH:/../drop_table_ext;
+dfs -cp :INPATH:/studentnull10k/ :OUTPATH:/../drop_table_ext;
+\,
+                               }, 
+                                {
+                                'num' => 4
+                                ,'depends_on' => 'HCat_DropTable_3'
+                                ,'hcat' => q\
+create external table hcat_drop_table_4(name string, age int, gpa double) 
stored as textfile location 'hdfs://:OUTPATH:/../drop_table_ext';
+describe extended hcat_drop_table_4;
+\,
+                               ,'rc'   => 0
+                                ,'expected_out_regex' => 
'(.*)location:hdfs://(.*)drop_table_ext(.*)tableType:EXTERNAL_TABLE'
+                               }, 
+                                {
+                                'num' => 5
+                                ,'depends_on' => 'HCat_DropTable_4'
+                                ,'hcat' => q\
+drop table hcat_drop_table_4;
+\,
+                                ,'rc' => 0
+                                },
+                                {
+                                'num' => 6
+                                ,'depends_on' => 'HCat_DropTable_5'
+                                ,'hcat' => q\
+dfs -ls :OUTPATH:/../drop_table_ext
+\,
+                               ,'rc'   => 0
+                                ,'expected_out_regex' => 
'(.*(\s))*.*drop_table_ext/studentnull10k'
+                               }, 
                         ],
                 }, # end g
                 {
@@ -164,6 +245,121 @@ alter table hcat_altertable_6 set serde 
 \
                                 ,'rc'   => 0
                                 },
+                                {
+                                 'num' => 7
+                                ,'hcat' => q\
+drop table if exists hcat_altertable_7;
+create table hcat_altertable_7(name string, age int, gpa double) partitioned 
by (grade string, section string) stored as textfile;
+alter table hcat_altertable_7 add partition (grade='7',section='a');
+show partitions hcat_altertable_7;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'grade=7/section=a'
+                                },
+                                {
+                                 'num' => 8
+                                ,'depends_on' => 'HCat_AlterTable_7'
+                                ,'hcat' => q\
+alter table hcat_altertable_7 add partition (grade='7',section='b');
+alter table hcat_altertable_7 add partition (grade='7',section='c');
+show partitions hcat_altertable_7;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'grade=7/section=a(\s)*grade=7/section=b(\s)*grade=7/section=c'
+                                },
+                                {
+                                 'num' => 9
+                                ,'depends_on' => 'HCat_AlterTable_8'
+                                ,'hcat' => q\
+alter table hcat_altertable_7 add if not exists partition 
(grade='7',section='a');\
+                                ,'rc'   => 0
+                                },
+
+                                {
+                                 'num' => 10
+                                ,'depends_on' => 'HCat_AlterTable_9'
+                                ,'hcat' => q\
+alter table hcat_altertable_7 add partition (grade='8',section='a') partition 
(grade='8',section='b');
+show partitions hcat_altertable_7;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'grade=7/section=a(\s)*grade=7/section=b(\s)*grade=7/section=c(\s)*grade=8/section=a(\s)*grade=8/section=b'
+                                },
+                                {
+                                 'num' => 11
+                                ,'depends_on' => 'HCat_AlterTable_10'
+                                ,'hcat' => q\
+alter table hcat_altertable_7 drop partition (grade='8',section='a'), 
partition (grade='8',section='b');
+show partitions hcat_altertable_7;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'grade=7/section=a(\s)*grade=7/section=b(\s)*grade=7/section=c'
+                                ,'not_expected_out_regex' => 
'grade=8/section=a(\s)*grade=8/section=b'
+                                },
+                                {
+                                 'num' => 12
+                                ,'depends_on' => 'HCat_AlterTable_11'
+                                ,'hcat' => q\
+set hive.exec.drop.ignorenonexistent = false;
+alter table hcat_altertable_7 drop if exists partition 
(grade='8',section='a'), partition(grade='7',section='d'), 
partition(grade='7',section='c');
+set hive.exec.drop.ignorenonexistent = true;
+show partitions hcat_altertable_7;\,
+                                ,'expected_out_regex' => 
'grade=7/section=a(\s)*grade=7/section=b'
+                                ,'rc'   => 0
+                                },
+                                {
+                                 'num' => 13
+                                ,'hcat' => q\
+drop table if exists hcat_altertable_13;
+create table hcat_altertable_13(a int, b string) partitioned by (c string, d 
string) stored as textfile;
+alter table hcat_altertable_13 add partition (c='1',d='1');
+alter table hcat_altertable_13 add columns (x string comment 'extra');
+describe hcat_altertable_13;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'a    int(\s)*b       
string(\s)*x    string  extra(\s)*c     string(\s)*d    string'
+                                },
+                                 {
+                                 'num' => 14
+                                ,'depends_on' => 'HCat_AlterTable_13'
+                                ,'hcat' => q\
+alter table hcat_altertable_13 replace columns (k int, l string, m string);
+describe hcat_altertable_13;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'k    int(\s)*l       
string(\s)*m    string(\s)*c    string(\s)*d    string'
+                                },
+                                {
+                                 'num' => 15
+                                ,'hcat' => q\
+drop table if exists hcat_altertable_15b;
+drop table if exists hcat_altertable_15a;
+create table hcat_altertable_15a(a int, b string) stored as textfile;
+alter table hcat_altertable_15a rename to hcat_altertable_15b;
+show tables like 'hcat_altertable_15.*';\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'hcat_altertable_15b'
+                                ,'not_expected_out_regex' => 
'hcat_altertable_15a'
+                                },
+
+                                {
+                                 'num' => 16
+                                ,'hcat' => q\
+drop table if exists hcat_altertable_16;
+create table hcat_altertable_16(a int, b string) stored as textfile;
+show table extended like  hcat_altertable_16;
+;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'((.*)\s)*location(.*)hcat_altertable_16'
+                                },
+
+                                {
+                                 'num' => 17
+                                ,'depends_on' => 'HCat_AlterTable_16'
+                                ,'hcat' => q\
+alter table hcat_altertable_16 set location 'hdfs:///tmp/table_has_moved/';
+show table extended like  hcat_altertable_16;
+;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'location:hdfs:///tmp/table_has_moved'
+                                ,'not_expected_out_regex' => 
'location(.*)hcat_altertable_16'
+                                },
+
+   
                         ],
                 }, # end g
                 {
@@ -193,7 +389,7 @@ drop database hcat_database_1;\
 drop table if exists hcat_view_1;
 drop view if exists hcat_view_1_1;
 drop view if exists hcat_view_1_2;
-create external table hcat_view_1 (name string, age int, gpa double) row 
format delimited fields terminated by '\t' stored as TEXTFILE location 
'/user/hcat/tests/data/studenttab10k';
+create external table hcat_view_1 (name string, age int, gpa double) row 
format delimited fields terminated by '\t' stored as TEXTFILE location 
':INPATH:/studenttab10k';
 create view hcat_view_1_1 as select name, gpa, age from studenttab10k;
 create view hcat_view_1_2 partitioned on (age) as select name, gpa, age from 
studenttab10k;
 alter view hcat_view_1_1 set tblproperties('key'='value');
@@ -204,7 +400,17 @@ drop view hcat_view_1_1;
 drop view hcat_view_1_3;"
                                 ,'rc'   => 0
                                 },
-                        ],
+                                {
+                                 'num' => 2
+                                ,'hcat' => q"
+drop view if exists hcat_view_2_1;
+create view hcat_view_2_1(name,age) as select name, age from studenttab10k;
+describe extended hcat_view_2_1;
+"
+                                 ,'expected_out_regex' => 'name        
string.*(\s)age int(.*(\s))*viewOriginalText:select name, age from 
studenttab10k.*tableType:VIRTUAL_VIEW'
+                                ,'rc'   => 0
+                                },
+                         ],
                 }, # end g
                 {
                         'name' => 'HCat_Authorize',
@@ -240,10 +446,43 @@ create table hcat_index_1 (a string) par
 create index hcat_index_1_1 on table hcat_index_1(a) as 'compact' with 
deferred rebuild comment 'hcat test';
 alter index hcat_index_1_1 on hcat_index_1 set idxproperties ('prop1'='val1');
 show indexes on hcat_index_1;
+create index hcat_index_1_2 on table hcat_index_1(a) as 'compact' with 
deferred rebuild comment 'hcat test second';
+alter index hcat_index_1_2 on hcat_index_1 set idxproperties ('prop1'='val2');
+show indexes on hcat_index_1;
 drop index hcat_index_1_1 on hcat_index_1;
+drop index hcat_index_1_2 on hcat_index_1;
 ;\
                                 ,'rc'   => 0
                                 },
+
+                                {
+                                 'num' => 2
+                                ,'hcat' => q\
+drop index if exists hcat_index_2_1 on hcat_index_2;
+drop table if exists hcat_index_2;
+create table hcat_index_2 (a string) partitioned by (b string) stored as 
TEXTFILE;
+create index hcat_index_2_1 on table hcat_index_2(a) as 'compact' with 
deferred rebuild comment 'hcat compact idx';
+alter index hcat_index_2_1 on hcat_index_2 set idxproperties ('prop1'='val1');
+show indexes on hcat_index_2;
+;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'hcat_index_2_1(\s)*hcat_index_2(\s)*a(\s)*default__hcat_index_2_hcat_index_2_1__(\s)*compact(\s)*hcat
 compact idx'
+                                },
+
+                                {
+                                 'num' => 3
+                                ,'hcat' => q\
+drop index if exists hcat_index_3_1 on hcat_index_3;
+drop table if exists hcat_index_3;
+create table hcat_index_3 (a string) partitioned by (b string) stored as 
TEXTFILE;
+create index hcat_index_3_1 on table hcat_index_3(a) as 'bitmap' with deferred 
rebuild comment 'hcat bitmap idx';
+alter index hcat_index_3_1 on hcat_index_3 set idxproperties ('prop1'='val1');
+show indexes on hcat_index_3;
+;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'hcat_index_3_1(\s)*hcat_index_3(\s)*a(\s)*default__hcat_index_3_hcat_index_3_1__(\s)*bitmap(\s)*hcat
 bitmap idx'
+                                },
+
                         ],
                 }, # end g
                 {
@@ -264,6 +503,145 @@ unlock table studenttab10k;
                         ],
                 }, # end g
                 {
+                        'name' => 'HCat_ShowDes',
+                        'tests' => [
+                                {
+                                 'num' => 1
+                                ,'hcat' => q\
+drop table if exists hcat_showdes.hcat_showdestable_1;
+drop database if exists hcat_showdes;
+drop database if exists t_showdes_abc;
+drop table if exists hcat_showdestable_2;
+create database hcat_showdes;
+create database t_showdes_abc;
+create table hcat_showdes.hcat_showdestable_1 (a int, b string); 
+create table hcat_showdestable_2 (a int comment 'first', b struct< foo : int, 
bar : struct< bar1:int, bar2:int > > comment 'second') partitioned by (c 
string);
+alter table hcat_showdestable_2 add partition (c = '41');
+alter table hcat_showdestable_2 add partition (c = '42');
+;\
+                                ,'rc'   => 0
+                                },
+                                {
+                                 'num' => 2
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show databases;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'hcat_showdes'
+                                },
+                                {
+                                 'num' => 3
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show databases like '.*abc';\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 't_showdes_abc'
+                                ,'not_expected_out_regex' => 'hcat_showdes'
+                                },
+                                {   
+                                 'num' => 4
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show tables;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'hcat_showdestable_2'
+                                },
+
+                                {   
+                                 'num' => 5
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show tables in hcat_showdes;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'hcat_showdestable_1'
+                                ,'not_expected_out_regex' => 
'hcat_createtable_1'
+                                },
+                                {   
+                                 'num' => 6
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show tables in hcat_showdes like '.*table_1';\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'hcat_showdestable_1'
+                                },
+                                {   
+                                 'num' => 7
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show table extended like hcat_showdestable_2;\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'tableName(.*(\s))*owner(.*(\s))*location(.*(\s))*columns(.*(\s))*totalNumberFiles(.*(\s))*totalFileSize(.*(\s))*maxFileSize(.*(\s))*minFileSize(.*(\s))*lastAccessTime(.*(\s))*lastUpdateTime(.*)'
+                                },
+                                {   
+                                 'num' => 8
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show table extended like hcat_showdestable_2 partition(c='42');\,
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 
'tableName(.*(\s))*owner(.*(\s))*location(.*(\s))*columns(.*(\s))*totalNumberFiles(.*(\s))*totalFileSize(.*(\s))*maxFileSize(.*(\s))*minFileSize(.*(\s))*lastAccessTime(.*(\s))*lastUpdateTime(.*)'
+                                },
+                                {   
+                                 'num' => 9
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+describe extended hcat_showdestable_2 partition(c='42');\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'a    int     
first(\s)*b     struct<foo:int,bar:struct<bar1:int,bar2:int>>   second(\s)*c    
string(.*(\s))*Detailed Partition Information(\s)*Partition(.*)values:\[42\]'
+                                },
+                                {   
+                                 'num' => 10
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+describe extended hcat_showdestable_2.b;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'foo  int     from 
deserializer(\s)*bar       struct<bar1:int,bar2:int>       from deserializer'
+                                },
+                                {   
+                                 'num' => 11
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+describe extended hcat_showdestable_2.b.foo;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'foo  int     from 
deserializer'
+                                ,'not_expected_out_regex' => 'bar'
+                                },
+                                {
+                                 'num' => 12
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+describe extended hcat_showdestable_2.b.bar;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'bar1 int     from 
deserializer(\s)*bar2      int     from deserializer'
+                                },
+                                {   
+                                 'num' => 13
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+describe extended hcat_showdestable_2.b.bar.bar1;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'bar1 int     from 
deserializer'
+                                ,'not_expected_out_regex' => 'bar2'
+                                },
+                                {   
+                                 'num' => 14
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show partitions hcat_showdestable_2;\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'c=41(\s)*c=42'
+                                },
+                                {   
+                                 'num' => 15
+                                ,'depends_on' => 'HCat_ShowDes_1'
+                                ,'hcat' => q\
+show partitions hcat_showdestable_2 partition(c='41');\
+                                ,'rc'   => 0
+                                ,'expected_out_regex' => 'c=41'
+                                ,'not_expected_out_regex' => 'c=42'
+                                },
+                        ],
+                }, # end g
+                {
                         'name' => 'HCat_Misc',
                         'tests' => [
                                 {


Reply via email to