summaryrefslogtreecommitdiffstats
path: root/src/test/read_t.pm
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/read_t.pm')
-rw-r--r--src/test/read_t.pm28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/read_t.pm b/src/test/read_t.pm
new file mode 100644
index 0000000..a07c041
--- /dev/null
+++ b/src/test/read_t.pm
@@ -0,0 +1,28 @@
+package read_t;
+
+use lib '../..';
+use MDK::Common;
+
+sub read_t {
+ my ($file) = @_;
+
+ my @tests;
+ my ($column_width, $line_number, @lines, @logs);
+ foreach (cat_($file), "\n") {
+ if (/^$/) {
+ push @tests, { line_number => $line_number, lines => [ @lines ], logs => [ @logs ] } if @lines;
+ @lines = @logs = ();
+ } else {
+ $column_width ||= length(first(/(.{20}\s+)/));
+ my ($line, $log) = $column_width > 25 && /(.{$column_width})(.*)/ ? (chomp_($1) . "\n", $2) : ($_, '');
+ $line =~ s/[ \t]*$//;
+ push @lines, $line;
+ push @logs, $log;
+ }
+ $line_number++;
+ }
+ @tests;
+}
+
+1;
+