def _examine_executable(self, exe, toc_log): """ Compare log files (now used mostly by multipackage test_name). :return: True if .toc files match """ print('EXECUTING MATCHING:', toc_log) fname_list = archive_viewer.get_archive_content(exe) fname_list = [fn for fn in fname_list] with open(toc_log, 'rU') as f: pattern_list = eval(f.read()) # Alphabetical order of patterns. pattern_list.sort() missing = [] for pattern in pattern_list: for fname in fname_list: if re.match(pattern, fname): print('MATCH:', pattern, '-->', fname) break else: # No matching entry found missing.append(pattern) print('MISSING:', pattern) # Not all modules matched. # Stop comparing other .toc files and fail the test. if missing: for m in missing: print('Missing', m, 'in', exe) return False # All patterns matched. return True
def _examine_executable(self, exe, toc_log): """ Compare log files (now used mostly by multipackage test_name). :return: True if .toc files match """ print('EXECUTING MATCHING:', toc_log) fname_list = archive_viewer.get_archive_content(exe) fname_list = [fn for fn in fname_list] with open(toc_log, 'rU') as f: pattern_list = eval(f.read()) # Alphabetical order of patterns. pattern_list.sort() missing = [] for pattern in pattern_list: for fname in fname_list: if re.match(pattern, fname): print('MATCH:', pattern, '-->', fname) break else: # No matching entry found missing.append(pattern) print('MISSING:', pattern) # Not all modules matched. # Stop comparing other .toc files and fail the test. if missing: for m in missing: print('Missing', m, 'in', exe) return False # All patterns matched. return True
def test_logs(self): """ Compare log files (now used only by multipackage test_name). Return True if .toc files match or when .toc patters are not defined. """ logsfn = glob.glob(self.test_file + '.toc') # Other main scripts do not start with 'test_'. assert self.test_file.startswith('test_') logsfn += glob.glob(self.test_file[5:] + '_?.toc') # generate a mapping basename -> pathname progs = dict((os.path.splitext(os.path.basename(nm))[0], nm) for nm in self._find_exepath(self.test_file)) for logfn in logsfn: self._msg("EXECUTING MATCHING " + logfn) tmpname = os.path.splitext(logfn)[0] prog = progs.get(tmpname) if not prog: return False, 'Executable for %s missing' % logfn fname_list = archive_viewer.get_archive_content(prog) fname_list = [fn for fn in fname_list] with open(logfn, text_read_mode) as fp: pattern_list = eval(fp.read()) # Alphabetical order of patterns. pattern_list.sort() missing = [] for pattern in pattern_list: for fname in fname_list: if re.match(pattern, fname): self._plain_msg('MATCH: %s --> %s' % (pattern, fname)) break else: # no matching entry found missing.append(pattern) self._plain_msg('MISSING: %s' % pattern) # Not all modules matched. # Stop comparing other .toc files and fail the test. if missing: msg = '\n'.join('Missing %s in %s' % (m, prog) for m in missing) return False, msg return True, ''