-
Notifications
You must be signed in to change notification settings - Fork 138
/
quantumreg.t
96 lines (75 loc) · 1.64 KB
/
quantumreg.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#! perl
# Copyright (C) 2005, The Perl Foundation.
# $Id$
use strict;
use warnings;
use lib qw( . lib ../lib ../../lib );
use Test::More;
use Parrot::Test;
use Parrot::Config;
=head1 NAME
t/dynpmc/quantumreg.t - test the QuantumReg PMC
=head1 SYNOPSIS
% perl -Ilib t/dynpmc/quantumreg.t
=head1 DESCRIPTION
Tests the C<QuantumReg> PMC.
=cut
# There is no config probe for libquantum yet, please enable manually
# if ( 1 ) {
if ($PConfig{has_quantum}) {
plan tests => 3;
}
else {
plan skip_all => "No quantum library available";
}
# PIR fragment for setting up a GDBM Hash
my $new_reg_1 = << 'CODE';
.sub 'test' :main
.local pmc quantumreg_lib
quantumreg_lib = loadlib "quantumreg"
.local int quantumreg_type
quantumreg_type = find_type "QuantumReg"
.local pmc reg_1
reg_1 = new quantumreg_type
CODE
pir_output_is($new_reg_1 . << 'CODE', << 'OUTPUT', "check whether interface is done");
unless quantumreg_type goto NOT_FOUND
print "Found QuantumReq\n"
goto CONTINUE
NOT_FOUND:
print "Didn't find QuantumReq\n"
CONTINUE:
.end
CODE
Found QuantumReq
OUTPUT
pir_output_is($new_reg_1 . << 'CODE', << 'OUTPUT', "typeof");
.local string type
type = typeof reg_1
print type
print "\n"
.end
CODE
QuantumReg
OUTPUT
pir_output_is($new_reg_1 . << 'CODE', << 'OUTPUT', "check whether interface is done");
.local int bool1
bool1 = does reg_1, "scalar"
print bool1
print "\n"
bool1 = does reg_1, "hash"
print bool1
print "\n"
bool1 = does reg_1, "array"
print bool1
print "\n"
bool1 = does reg_1, "no_interface"
print bool1
print "\n"
.end
CODE
0
0
1
0
OUTPUT