Megatest

Hex Artifact Content
Login

Artifact 0c7cdb0a882bb34f0ec7caee2d7754448a48af44:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 72 75 62 79 0a 0a 72 65 71 75 69 72 65 20 22 23  ruby..require "#
0020: 7b 45 4e 56 5b 27 4d 54 5f 52 55 4e 5f 41 52 45  {ENV['MT_RUN_ARE
0030: 41 5f 48 4f 4d 45 27 5d 7d 2f 73 75 70 70 6f 72  A_HOME']}/suppor
0040: 74 66 69 6c 65 73 2f 72 75 62 79 2f 6c 69 62 72  tfiles/ruby/libr
0050: 75 6e 73 63 72 69 70 74 2e 72 62 22 0a 0a 23 20  unscript.rb"..# 
0060: 72 75 6e 5f 72 65 63 6f 72 64 28 73 74 65 70 6e  run_record(stepn
0070: 61 6d 65 2c 20 63 6d 64 29 20 2d 20 77 69 6c 6c  ame, cmd) - will
0080: 20 72 65 63 6f 72 64 20 69 6e 20 64 62 20 69 66   record in db if
0090: 20 65 78 69 74 20 63 6f 64 65 20 6f 66 20 73 63   exit code of sc
00a0: 72 69 70 74 20 77 61 73 20 7a 65 72 6f 20 6f 72  ript was zero or
00b0: 20 6e 6f 74 0a 72 75 6e 5f 61 6e 64 5f 72 65 63   not.run_and_rec
00c0: 6f 72 64 28 27 63 72 65 61 74 65 20 64 62 27 2c  ord('create db',
00d0: 22 73 71 6c 69 74 65 33 20 74 65 73 74 69 6e 67  "sqlite3 testing
00e0: 2e 64 62 20 3c 3c 20 45 4f 46 5c 6e 63 72 65 61  .db << EOF\ncrea
00f0: 74 65 20 74 61 62 6c 65 20 69 66 20 6e 6f 74 20  te table if not 
0100: 65 78 69 73 74 73 20 62 6c 61 68 28 69 64 20 49  exists blah(id I
0110: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
0120: 45 59 2c 6e 61 6d 65 20 54 45 58 54 29 3b 5c 6e  EY,name TEXT);\n
0130: 2e 71 5c 6e 45 4f 46 22 2c 22 22 29 0a 0a 23 20  .q\nEOF","")..# 
0140: 66 69 6c 65 5f 73 69 7a 65 5f 63 68 65 63 6b 65  file_size_checke
0150: 72 28 73 74 65 70 6e 61 6d 65 2c 20 66 69 6c 65  r(stepname, file
0160: 6e 61 6d 65 2c 20 6d 69 6e 73 69 7a 65 2c 20 6d  name, minsize, m
0170: 61 78 73 69 7a 65 29 20 2d 20 6e 65 67 61 74 69  axsize) - negati
0180: 76 65 20 6d 65 61 6e 73 20 69 67 6e 6f 72 65 0a  ve means ignore.
0190: 23 20 66 69 6c 65 5f 73 69 7a 65 5f 63 68 65 63  # file_size_chec
01a0: 6b 65 72 28 27 63 72 65 61 74 65 20 64 62 27 2c  ker('create db',
01b0: 27 74 65 73 74 69 6e 67 2e 64 62 27 2c 31 30 30  'testing.db',100
01c0: 2c 2d 31 29 0a 0a 6e 75 6d 5f 72 65 63 6f 72 64  ,-1)..num_record
01d0: 73 3d 72 61 6e 64 28 36 30 29 20 23 20 30 30 30  s=rand(60) # 000
01e0: 30 0a 72 65 63 6f 72 64 5f 73 74 65 70 28 22 61  0.record_step("a
01f0: 64 64 20 23 7b 6e 75 6d 5f 72 65 63 6f 72 64 73  dd #{num_records
0200: 7d 22 2c 22 73 74 61 72 74 22 2c 22 6e 2f 61 22  }","start","n/a"
0210: 29 0a 73 74 61 74 75 73 3d 66 61 6c 73 65 0a 28  ).status=false.(
0220: 30 2e 2e 6e 75 6d 5f 72 65 63 6f 72 64 73 29 2e  0..num_records).
0230: 65 61 63 68 20 64 6f 20 7c 69 7c 0a 20 20 72 61  each do |i|.  ra
0240: 6e 64 73 74 72 69 6e 67 3d 22 61 3b 6c 73 6b 64  ndstring="a;lskd
0250: 66 6a 61 3b 73 64 66 6a 3b 61 6c 73 64 66 6a 3b  fja;sdfj;alsdfj;
0260: 61 73 6c 66 64 6a 3b 61 6c 73 66 6a 61 3b 6c 73  aslfdj;alsfja;ls
0270: 66 64 6a 3b 61 6c 73 66 6a 61 3b 6c 73 6a 66 64  fdj;alsfja;lsjfd
0280: 3b 6c 61 73 66 6a 6c 3b 61 73 64 66 6a 61 3b 73  ;lasfjl;asdfja;s
0290: 6c 66 6a 3b 61 6c 73 6a 66 3b 61 73 6c 6a 66 3b  lfj;alsjf;asljf;
02a0: 61 6c 73 6a 66 3b 6c 61 73 64 6a 66 3b 6c 61 73  alsjf;lasdjf;las
02b0: 6a 66 3b 6c 61 73 6a 66 3b 61 6c 73 6a 66 3b 6c  jf;lasjf;alsjf;l
02c0: 61 73 68 66 6c 6b 61 73 68 66 6c 6b 65 72 68 66  ashflkashflkerhf
02d0: 6c 6b 64 73 76 6e 6c 61 73 6c 64 68 6c 66 61 6c  lkdsvnlasldhlfal
02e0: 64 66 22 0a 20 20 23 20 73 74 61 74 75 73 3d 73  df".  # status=s
02f0: 79 73 74 65 6d 20 22 73 71 6c 69 74 65 33 20 74  ystem "sqlite3 t
0300: 65 73 74 69 6e 67 2e 64 62 20 5c 22 69 6e 73 65  esting.db \"inse
0310: 72 74 20 69 6e 74 6f 20 62 6c 61 68 20 28 6e 61  rt into blah (na
0320: 6d 65 29 20 76 61 6c 75 65 73 20 28 27 23 7b 72  me) values ('#{r
0330: 61 6e 64 73 74 72 69 6e 67 7d 27 29 3b 5c 22 22  andstring}');\""
0340: 0a 20 20 73 79 73 74 65 6d 20 22 6d 65 67 61 74  .  system "megat
0350: 65 73 74 20 2d 73 74 65 70 20 74 65 73 74 69 6e  est -step testin
0360: 67 20 3a 73 74 61 74 65 20 77 72 6f 74 65 5f 6a  g :state wrote_j
0370: 75 6e 6b 20 3a 73 74 61 74 75 73 20 23 7b 6e 75  unk :status #{nu
0380: 6d 5f 72 65 63 6f 72 64 73 7d 22 0a 20 20 73 6c  m_records}".  sl
0390: 65 65 70 28 31 29 0a 20 20 70 75 74 73 20 22 69  eep(1).  puts "i
03a0: 3d 23 7b 69 7d 22 0a 65 6e 64 0a 69 66 20 73 74  =#{i}".end.if st
03b0: 61 74 75 73 3d 3d 30 0a 20 20 73 74 61 74 75 73  atus==0.  status
03c0: 3d 27 70 61 73 73 27 0a 65 6c 73 65 0a 20 20 73  ='pass'.else.  s
03d0: 74 61 74 75 73 3d 27 66 61 69 6c 27 0a 65 6e 64  tatus='fail'.end
03e0: 0a 72 65 63 6f 72 64 5f 73 74 65 70 28 22 61 64  .record_step("ad
03f0: 64 20 23 7b 6e 75 6d 5f 72 65 63 6f 72 64 73 7d  d #{num_records}
0400: 22 2c 22 65 6e 64 22 2c 73 74 61 74 75 73 29 0a  ","end",status).
0410: 0a 0a 0a 0a                                      ....