Skip to content

Commit

Permalink
Add test data
Browse files Browse the repository at this point in the history
  • Loading branch information
bacek committed Mar 20, 2011
1 parent eaa106e commit 25d17b9
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 0 deletions.
3 changes: 3 additions & 0 deletions t/jit/data/01.pir
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.sub 'main' :main
noop
.end
3 changes: 3 additions & 0 deletions t/jit/data/02.pir
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.sub 'main' :main
say 42
.end
4 changes: 4 additions & 0 deletions t/jit/data/03.pir
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.sub 'main' :main
say "Answer"
say 42
.end
4 changes: 4 additions & 0 deletions t/jit/data/04.pir
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.sub 'main' :main
$I0 = 42
say $I0
.end
5 changes: 5 additions & 0 deletions t/jit/data/05.pir
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.sub 'main' :main
$I0 = 42
say $I0
.return ()
.end
68 changes: 68 additions & 0 deletions t/jit/test.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#! parrot-nqp

pir::load_bytecode("opsc.pbc");
pir::load_bytecode("LLVM.pbc");
pir::load_bytecode("nqp-setting.pbc");
pir::load_bytecode("dumper.pbc");
pir::loadlib("llvm_engine");

Q:PIR { .include "test_more.pir" };
my $pir := 't/jit/data/02.pir';
my $pbc := subst($pir, / 'pir' $/, 'pbc');
my $handle := open($pbc, :r, :bin);
my $contents := $handle.readall;
$handle.close();

my $pf := pir::new('Packfile');
$pf.unpack($contents);

ok( 1, "Unpacked" );

my $dir := $pf.get_directory();
ok( pir::defined($dir), "Got PF Directory");

my $bc := $dir{'BYTECODE_' ~ $pir};
ok( pir::defined($bc), "Got bytecode" );

my $opmap := $bc.opmap();
ok( pir::defined($opmap), "Got OpMap");

my $oplib := pir::new__psp("OpLib", "core_ops");

my $total := +$bc;
my $i := 0;
while ($i < $total) {
# Mapped op
my $id := $bc[$i];

# Real opname
my $opname := $opmap[$id];

# Get op
my $op := $oplib{$opname};
my $args := Q:PIR {
.local pmc op
.local int s
find_lex op, '$op'
s = elements op
%r = box s
};
# Op itself
print("\t$i $opname");
# Args
while ($args) {
$i++;
$args--;
print(" {$bc[$i]}");
}
say("");
# Next op
$i++;
}
# vim: ft=perl6

0 comments on commit 25d17b9

Please sign in to comment.