Changeset 227
- Timestamp:
- 04/09/11 12:31:22 (14 years ago)
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
test/pyregfi-smoketest.py
r225 r227 8 8 9 9 10 def usage(): 11 sys.stderr.write("USAGE: pyregfi-smoketest.py hive1 [hive2 ...]\n") 12 13 14 10 11 pyregfi.SetLogMask((pyregfi.LOG_TYPES.INFO, pyregfi.LOG_TYPES.WARN, pyregfi.LOG_TYPES.ERROR)) 15 12 16 13 # Uses the HiveIterator to walk all keys … … 192 189 pass 193 190 194 195 if len(sys.argv) < 2: 191 tests = { 192 "iterTallyNames":iterTallyNames, 193 "iterParentWalk":iterParentWalk, 194 "iterTallyData":iterTallyData, 195 "recurseKeyTally":recurseKeyTally, 196 "iterFetchRelated":iterFetchRelated, 197 "iterIterWalk":iterIterWalk, 198 "iterCallbackIO":iterCallbackIO, 199 } 200 201 def usage(): 202 sys.stderr.write("USAGE: pyregfi-smoketest.py test1[,test2[,...]] hive1 [hive2 ...]\n") 203 sys.stderr.write("\tAvailable tests:\n") 204 for t in tests.keys(): 205 sys.stderr.write("\t\t%s\n" % t) 206 207 208 if len(sys.argv) < 3: 196 209 usage() 197 210 sys.exit(1) 198 211 199 200 tests = [("iterTallyNames",iterTallyNames), 201 ("iterParentWalk",iterParentWalk), 202 ("iterTallyData",iterTallyData), 203 ("recurseKeyTally",recurseKeyTally), 204 ("iterFetchRelated",iterFetchRelated), 205 ("iterIterWalk",iterIterWalk),] 206 207 tests = [("iterCallbackIO",iterCallbackIO),] 208 212 selected_tests = sys.argv[1].split(',') 213 for st in selected_tests: 214 if st not in tests: 215 usage() 216 sys.stderr.write("ERROR: %s not a valid test type" % st) 217 sys.exit(1) 209 218 210 219 files = [] 211 for f in sys.argv[ 1:]:220 for f in sys.argv[2:]: 212 221 files.append((f, open(f,"rb"))) 213 222 … … 216 225 for hname,fh in files: 217 226 hive = pyregfi.Hive(fh) 218 for tname,t in tests: 227 for tname in selected_tests: 228 t = tests[tname] 219 229 teststart = time.time() 220 230 tstr = "'%s' on '%s'" % (tname,hname) -
trunk/python/pyregfi/__init__.py
r226 r227 133 133 134 134 135 ## An enumeration of log message types 136 # 137 # @note This is a static class, there is no need to instantiate it. 138 # Just access its attributes directly as LOG_TYPES.INFO, etc 139 class LOG_TYPES(object): 140 ## Informational messages, useful in debugging 141 INFO = 0x01 142 ## Non-critical problems in structure parsing or intepretation 143 WARN = 0x04 144 ## Major failures 145 ERROR = 0x10 146 147 135 148 def _buffer2bytearray(char_pointer, length): 136 149 if length == 0 or char_pointer == None: … … 180 193 return '' 181 194 return msgs.decode('utf-8') 195 196 197 ## Sets the types of log messages to record 198 # 199 # @param log_types A sequence of message types that regfi should generate. 200 # Message types can be found in the LOG_TYPES enumeration. 201 # 202 # @return True on success, False on failure. Failures are rare, but could 203 # indicate that global logging is not operating as expected. 204 # 205 # Example: 206 # @code 207 # SetLogMask((LOG_TYPES.ERROR, LOG_TYPES.WARN, LOG_TYPES.INFO)) 208 # @endcode 209 # 210 # The message mask is a global (all hives, iterators), thread-specific value. 211 # For more information, see @ref regfi_log_set_mask. 212 # 213 def SetLogMask(log_types): 214 mask = 0 215 for m in log_types: 216 mask |= m 217 return regfi.regfi_log_set_mask(mask) 218 182 219 183 220 -
trunk/python/pyregfi/structures.py
r226 r227 17 17 # XXX: can we always be sure enums are this size? 18 18 REGFI_ENCODING = c_uint32 19 REGFI_ENCODING_UTF8 = 119 REGFI_ENCODING_UTF8 = REGFI_ENCODING(1) 20 20 21 21 REGFI_DATA_TYPE = c_uint32 22 REGFI_REGF_SIZE = 0x100023 22 24 23
Note: See TracChangeset
for help on using the changeset viewer.