#!/usr/bin/perl -w use strict; BEGIN { $| = 1; print "1..66\n"; } END { print "not ok 1\n" unless $::XBaseloaded; } $| = 1; print "Load the module: use XBase\n"; use XBase; $::XBaseloaded = 1; print "ok 1\n"; my $dir = ( -d "t" ? "t" : "." ); $XBase::Base::DEBUG = 1; # We want to see any problems print "Open table $dir/ntx-char\n"; my $table = new XBase "$dir/ntx-char" or do { print XBase->errstr, "not ok 2\n"; exit }; print "ok 2\n"; print "prepare_select\n"; my $cur = $table->prepare_select or print $table->errstr, 'not '; print "ok 3\n"; print "fetch all rows and sort them\n"; my @expected; while (my @row = $cur->fetch) { push @expected, @row; } my @sorted = sort @expected; my $expected = join "\n", @sorted, ''; print "ok 4\n"; print "prepare_select_with_index $dir/ntx-char.ntx\n"; $cur = $table->prepare_select_with_index("$dir/ntx-char.ntx") or print $table->errstr, 'not '; print "ok 5\n"; my $got = ''; while (my @row = $cur->fetch) { $got .= "@row\n"; } if ($got ne $expected) { print "Expected:\n${expected}Got:\n${got}not "; } print "ok 6\n"; my $test = 7; my $prev = ''; for (my $i = 0; $i < @sorted; $i++) { next if $sorted[$i] eq $prev; $prev = $sorted[$i]; print "find_eq($sorted[$i])\n"; $cur->find_eq($sorted[$i]) or print "not "; print "ok $test\n"; $test++; my $got = ''; while (my @row = $cur->fetch) { $got .= "@row\n"; } my $expected = join "\n", @sorted[$i .. $#sorted], ''; print "compare results\n"; if ($got ne $expected) { print "Index $i, find_eq($sorted[$i])\nExpected:\n${expected}Got:\n${got}not "; } print "ok $test\n"; $test++; }