arif/tests/arif/002-fetch.exp

56 lines
1.3 KiB
Plaintext

#
# Copyright (C) 2023 CismonX <admin@cismon.net>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty, provided the copyright notice and
# this notice are preserved. This file is offered as-is, without any warranty.
#
set tool arif
set timeout 1
set page_size [ random_int 5 10 ]
set text_len [ random_int 10 100 ]
set text [ random_string $text_len ]
arif_test_start $page_size [ expr { $text_len + 2 } ]
arif_query $text
expect \n
proc arif_gen_cands { str start len } {
for { set i 1 } { $i <= $len } { incr i } {
set ch [ string index $str [ expr { $start + $i - 1 } ] ]
if { $ch == "" } {
break
}
set disp [ string repeat $ch [ expr { $start + $i } ] ]
append result \[ $i \] " " $disp \n
}
return $result
}
set pages [ expr { $text_len / $page_size + ( $text_len % $page_size > 0 ) } ]
for { set i 1 } { $i <= $pages } { incr i } {
arif_select_page $i
expect $i\n
set start [ expr { ($i - 1) * $page_size } ]
set expected [ arif_gen_cands $text $start $page_size ]
arif_fetch
expect {
-ex $expected {}
default {
break
}
}
}
if { $i > $pages } {
pass "ok"
} else {
fail "fetch fail"
}
arif_test_stop