]>
Commit | Line | Data |
---|---|---|
1 | local cmds = require('commands') | |
2 | local getopt = require('getopt') | |
3 | local bin = require('bin') | |
4 | local utils = require('utils') | |
5 | local dumplib = require('html_dumplib') | |
6 | ||
7 | example =[[ | |
8 | 1. script run tracetest | |
9 | 2. script run tracetest -o | |
10 | ||
11 | ]] | |
12 | author = "Iceman" | |
13 | usage = "script run tracetest -o <filename>" | |
14 | desc =[[ | |
15 | This script will load several traces files in ../traces/ folder and do | |
16 | "data load" | |
17 | "lf search" | |
18 | ||
19 | Arguments: | |
20 | -h : this help | |
21 | -o : logfile name | |
22 | ]] | |
23 | ||
24 | local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds | |
25 | local DEBUG = true -- the debug flag | |
26 | --- | |
27 | -- A debug printout-function | |
28 | function dbg(args) | |
29 | if not DEBUG then | |
30 | return | |
31 | end | |
32 | ||
33 | if type(args) == "table" then | |
34 | local i = 1 | |
35 | while result[i] do | |
36 | dbg(result[i]) | |
37 | i = i+1 | |
38 | end | |
39 | else | |
40 | print("###", args) | |
41 | end | |
42 | end | |
43 | --- | |
44 | -- This is only meant to be used when errors occur | |
45 | function oops(err) | |
46 | print("ERROR: ",err) | |
47 | end | |
48 | --- | |
49 | -- Usage help | |
50 | function help() | |
51 | print(desc) | |
52 | print("Example usage") | |
53 | print(example) | |
54 | end | |
55 | -- | |
56 | -- Exit message | |
57 | function ExitMsg(msg) | |
58 | print( string.rep('--',20) ) | |
59 | print( string.rep('--',20) ) | |
60 | print(msg) | |
61 | print() | |
62 | end | |
63 | ||
64 | ||
65 | local function main(args) | |
66 | ||
67 | print( string.rep('--',20) ) | |
68 | print( string.rep('--',20) ) | |
69 | ||
70 | local cmdDataLoad = 'data load %s'; | |
71 | local tracesEM = "find '../traces/' -iname 'em*.pm3' -type f" | |
72 | local tracesMOD = "find '../traces/' -iname 'm*.pm3' -type f" | |
73 | ||
74 | local outputTemplate = os.date("testtest_%Y-%m-%d_%H%M%S") | |
75 | ||
76 | -- Arguments for the script | |
77 | for o, arg in getopt.getopt(args, 'ho:') do | |
78 | if o == "h" then return help() end | |
79 | if o == "o" then outputTemplate = arg end | |
80 | end | |
81 | ||
82 | core.clearCommandBuffer() | |
83 | ||
84 | local files = {} | |
85 | ||
86 | -- Find a set of traces staring with EM | |
87 | local p = assert( io.popen(tracesEM)) | |
88 | for file in p:lines() do | |
89 | table.insert(files, file) | |
90 | end | |
91 | p.close(); | |
92 | ||
93 | -- Find a set of traces staring with MOD | |
94 | p = assert( io.popen(tracesMOD) ) | |
95 | for file in p:lines() do | |
96 | table.insert(files, file) | |
97 | end | |
98 | p.close(); | |
99 | ||
100 | local cmdLFSEARCH = "lf search 1" | |
101 | ||
102 | -- main loop | |
103 | io.write('Starting to test traces > ') | |
104 | for _,file in pairs(files) do | |
105 | ||
106 | local x = "data load "..file | |
107 | dbg(x) | |
108 | core.console(x) | |
109 | ||
110 | dbg(cmdLFSEARCH) | |
111 | core.console(cmdLFSEARCH) | |
112 | ||
113 | core.clearCommandBuffer() | |
114 | ||
115 | if core.ukbhit() then | |
116 | print("aborted by user") | |
117 | break | |
118 | end | |
119 | end | |
120 | io.write('\n') | |
121 | ||
122 | -- Write dump to files | |
123 | if not DEBUG then | |
124 | local bar = dumplib.SaveAsText(emldata, outputTemplate..'.txt') | |
125 | print(("Wrote output to: %s"):format(bar)) | |
126 | end | |
127 | ||
128 | -- Show info | |
129 | print( string.rep('--',20) ) | |
130 | ||
131 | end | |
132 | main(args) |