diff src/parallel_execution/perlTests/Interface.t @ 693:aeab4866ee36

defined separate_code_and_data_gear_after_parse test
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 21 Aug 2020 17:07:01 +0900
parents 39f856a85565
children 89abde9fb7ce
line wrap: on
line diff
--- a/src/parallel_execution/perlTests/Interface.t	Fri Aug 21 15:57:24 2020 +0900
+++ b/src/parallel_execution/perlTests/Interface.t	Fri Aug 21 17:07:01 2020 +0900
@@ -3,7 +3,7 @@
 use warnings;
 use FindBin;
 
-use Test::More  tests => 2; #subtests
+use Test::More  tests => 3; #subtests
 
 use_ok "Gears::Interface"; #use test
 
@@ -45,3 +45,67 @@
   };
 };
 
+
+subtest 'separate_code_and_data_gear_after_parse' => sub {
+  subtest 'Queue' => sub {
+    plan tests => 1;
+
+    my $queue_header = "$FindBin::Bin/../Queue.h";
+
+    my $expand = {
+            'data' => [
+                        'union Data* queue;',
+                        'union Data* data;'
+                      ],
+            'content' => [
+                           'enum Code whenEmpty;',
+                           'enum Code clear;',
+                           'union Data* queue;',
+                           'enum Code put;',
+                           'union Data* data;',
+                           'enum Code take;',
+                           'enum Code isEmpty;',
+                           'enum Code next;'
+                         ],
+            'file_name' => $queue_header,
+            'name' => 'Queue',
+            'codes' => [
+                         {
+                           'args' => '...',
+                           'name' => 'whenEmpty'
+                         },
+                         {
+                           'args' => 'Impl* queue, __code next(...)',
+                           'name' => 'clear'
+                         },
+                         {
+                           'name' => 'put',
+                           'args' => 'Impl* queue, union Data* data, __code next(...)'
+                         },
+                         {
+                           'args' => 'Impl* queue, __code next(union Data* data, ...)',
+                           'name' => 'take'
+                         },
+                         {
+                           'name' => 'isEmpty',
+                           'args' => 'Impl* queue, __code next(...), __code whenEmpty(...)'
+                         },
+                         {
+                           'name' => 'next',
+                           'args' => '...'
+                         }
+                       ],
+            'hasOutputArgs' => {
+                                 'take' => {
+                                             'Data' => 'union',
+                                             'data' => '*'
+                                           }
+                               }
+          };
+
+          my $res = Gears::Interface->separate_code_and_data_gear_after_parse($queue_header);
+
+          is_deeply ($res, $expand, "parsing Queue.h");
+      };
+
+};