Mercurial > hg > Gears > Gears
view 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 source
#!/usr/bin/env perl use strict; use warnings; use FindBin; use Test::More tests => 3; #subtests use_ok "Gears::Interface"; #use test subtest 'parse' => sub { subtest 'file_checking' => sub { plan tests => 2; eval { Gears::Interface->parse("nonexistent_file.c") }; ok $@; like( $@, qr/invalid filepath/ ); }; subtest 'parsing_stack' => sub { plan tests => 1; my $stack_header = "$FindBin::Bin/../Stack.h"; my $expand = { name => 'Stack', file_name => $stack_header, content => [ 'union Data* stack;', 'union Data* data;', 'union Data* data1;', 'enum Code whenEmpty;', 'enum Code clear;', 'enum Code push;', 'enum Code pop;', 'enum Code pop2;', 'enum Code isEmpty;', 'enum Code get;', 'enum Code get2;', 'enum Code next;' ] }; my $res = Gears::Interface->parse($stack_header); is_deeply ($res, $expand, "parsing stack.h"); }; }; 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"); }; };