File: api_rand.t

package info (click to toggle)
sysbench 1.0.20%2Bds-7
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,840 kB
  • sloc: ansic: 11,830; sh: 1,752; xml: 736; makefile: 195
file content (44 lines) | stat: -rw-r--r-- 1,641 bytes parent folder | download | duplicates (4)
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
########################################################################
PRNG Lua API tests
########################################################################

  $ SB_ARGS="--verbosity=0 --events=1"

  $ cat >$CRAMTMP/api_rand.lua <<EOF
  > function event()
  >   print("sb_rand(0, 9) = " .. sb_rand(0, 9))
  >   print("sb_rand_uniq(0, 4294967295) = " .. sb_rand_uniq(0, 4294967295))
  >   print("sb_rnd() = " .. sb_rnd())
  >   print([[sb_rand_str("abc-###-@@@-xyz") = ]] .. sb_rand_str("abc-###-@@@-xyz"))
  >   print("sb_rand_uniform(0, 9) = " .. sb_rand_uniform(0, 9))
  >   print("sb_rand_gaussian(0, 9) = " .. sb_rand_gaussian(0, 9))
  >   print("sb_rand_special(0, 9) = " .. sb_rand_special(0, 9))
  > end
  > EOF

  $ sysbench $SB_ARGS $CRAMTMP/api_rand.lua run
  sb_rand\(0, 9\) = [0-9]{1} (re)
  sb_rand_uniq\(0, 4294967295\) = [0-9]{1,10} (re)
  sb_rnd\(\) = [0-9]+ (re)
  sb_rand_str\(".*"\) = abc-[0-9]{3}-[a-z]{3}-xyz (re)
  sb_rand_uniform\(0, 9\) = [0-9]{1} (re)
  sb_rand_gaussian\(0, 9\) = [0-9]{1} (re)
  sb_rand_special\(0, 9\) = [0-9]{1} (re)

########################################################################
issue #96: sb_rand_uniq(1, oltp_table_size) generate duplicate value
########################################################################
  $ cat >$CRAMTMP/api_rand_uniq.lua <<EOF
  > function event()
  >   local max = 1000000000
  >   local n = sb_rand_uniq(1, max)
  >   if n > max then
  >     error("n is out of range")
  >   end
  >   print(n)
  > end
  > EOF

  $ sysbench $SB_ARGS --events=100000 $CRAMTMP/api_rand_uniq.lua run |
  >   sort -n | uniq | wc -l | sed -e 's/ //g'
  100000