tmp, register, lock are created now
[idzebra-moved-to-github.git] / perl / test.pl
1 #!/usr/bin/perl
2
3 BEGIN {
4     push (@INC,'demo','blib/lib','blib/arch');
5 }
6 use Test::More tests => 3;
7 use Data::Dumper;
8 use IDZebra::Logger qw(:flags :calls);
9 use IDZebra::Repository;
10 use pod;
11
12 BEGIN { 
13   use_ok('IDZebra'); 
14   use_ok('IDZebra::Service'); 
15   use_ok('IDZebra::Data1'); 
16 }
17
18 mkdir ("demo/tmp");
19 mkdir ("demo/register");
20 mkdir ("demo/lock");
21
22 #Zebra::API::LogFile("a.log");
23
24
25 #my $arr = IDZebra::give_me_array("strucc",6);
26
27 #print "$arr\n";
28
29 #for (@arr) {print "$_\n";}
30
31 #exit;
32
33 IDZebra::init();
34
35 chdir('demo');
36
37 my $service = IDZebra::Service->start('zebra.cfg');
38 my $sess = $service->openSession;
39 #my $sess = $service->createSession;
40 #$sess->open;
41 #my $session = IDZebra::open($service);
42 #IDZebra::close($session);
43 #IDZebra::stop($service);
44 #$sess->close;
45
46 my $rec1=`cat ../lib/IDZebra/Data1.pm`;
47 my $rec2=`cat ../lib/IDZebra/Filter.pm`;
48
49 #$sess->Repository->readConfig;
50 $sess->Repository->readConfig("","pm");
51
52 $sess->begin_trans;
53
54 #$sess->Repository->update(databaseName => 'Default',
55 #                         path  => '/usr/local/work/cvs/zebra/perl/lib');
56 my $s1 = $sess->Repository->update_record($rec1,0,"","Data1.pm");
57 my $s2 = $sess->Repository->update_record($rec2,0,"","Filter.pm");
58 print STDERR "s1:$s1, s2:$s2\n";
59
60 $sess->end_trans;
61 #$sess->begin_trans;
62 #$sess->Repository->delete_record($rec1,0,"","Data1.pm");
63 #$sess->end_trans;
64
65 $sess->select_databases('Default');
66
67 goto scan;
68
69 $sess->begin_read;
70 #print STDERR "Hits:", $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_1'), "\n";
71 #print STDERR "Hits:", $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_1'), "\n";
72
73 my $rs1 = $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_1');
74 print STDERR "Rs1 '$rs1->{name}' has $rs1->{recordCount} hits\n";
75
76 my $rs2 = $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_2');
77 #print STDERR "Rs2 '$rs2->{name}' has $rs2->{recordCount} hits\n";
78
79 my $rs3 = $sess->sortResultsets ('1=4 id','test_3',($rs1));
80 #print STDERR "Rs3 '$rs3->{name}' has $rs3->{recordCount} hits\n";
81 #print STDERR "Rs3 '$rs3->{name}' error $rs3->{errCode}: $rs3->{errString}\n";
82
83 $rs1->sort('1=4 id');
84
85 #for ($i=1; $i<100000; $i++) {
86 my @recs1 = $rs1->records(from=>1,to=>2);
87 #}
88 #my $res=$sess->retrieve_records('test_1',1,1);
89
90 $sess->end_read;
91
92
93 #IDZebra::describe_recordGroup($rep->{rg});
94 #$rep->update;
95 #    print "HOW did we got back???\n";
96
97 scan:
98
99 my $so = IDZebra::ScanObj->new;
100 $so->{position} = 1;
101 $so->{num_entries} = 20;
102 $so->{is_partial} = 0;
103 #print STDERR "Pos:$so->{position}\nNum:$so->{num_entries}\nPartial:$so->{is_partial}\n";
104
105 IDZebra::scan_PQF($sess->{zh}, $so,
106                   $sess->{odr_output}, 
107                   "\@attr 1=4 a");
108
109 #print STDERR "Pos:$so->{position}\nNum:$so->{num_entries}\nPartial:$so->{is_partial}\n";
110
111 for ($i=1; $i<=$so->{num_entries}; $i++) {
112     my $se = IDZebra::getScanEntry($so, $i);
113     print STDERR "$se->{term} ($se->{occurrences})\n";
114 }
115
116 $sess->close;
117 $service->stop;
118                           
119 foreach my $rec (@recs1) {
120     foreach my $line (split (/\n/, $rec->{buf})) {
121         if ($line =~ /^package/) { print STDERR "$line\n";}
122     }
123 }
124
125 #$rep->{groupName} = "Strucc";
126 #$rep->describe();
127
128 sub test_data1 {
129     $m = IDZebra::nmem_create();
130     my $d1=IDZebra::Data1->new($m,$IDZebra::DATA1_FLAG_XML);
131     my $root=$d1->mk_root('strucc');
132     my $tag1 = $d1->mk_tag($root,'emu',('asd' => 1,
133                                         'bsd' => 2));
134     my $tag2 = $d1->mk_tag($root,'emu');
135     $d1->pr_tree($root);
136     IDZebra::nmem_destroy($m);
137     $d1->DESTROY();
138 }
139
140 IDZebra::DESTROY;