Lines Matching defs:reporter

59 from testdriver import reporter;
127 reporter.log('Creating session "%s" ...' % (sName,));
134 reporter.logXcpt('Creating a guest session "%s" failed; sUser="%s", pw="%s", sDomain="%s":'
139 reporter.log('Waiting for session "%s" to start within %ldms...' % (sName, self.timeoutMS));
149 reporter.log('Session did not start successfully, returned wait result: %ld' \
152 reporter.log('Session "%s" successfully started' % (sName,));
155 reporter.logXcpt('Waiting for guest session "%s" to start failed:' % (sName));
158 reporter.log('Warning: Session already set; this is probably not what you want');
178 reporter.log('Closing session "%s" ...' % (sName,));
183 reporter.logXcpt('Closing guest session "%s" failed:' % (sName,));
524 reporter.log(' --add-guest-ctrl-tests <s1[:s2[:]]>');
525 reporter.log(' Default: %s (all)' % (':'.join(self.asTestsDef)));
534 reporter.log("Active tests: %s" % (self.asTests,));
537 reporter.testStart('Session Basics');
541 reporter.testDone(fSkip);
543 reporter.testStart('Session Environment');
547 reporter.testDone(fSkip);
549 reporter.testStart('Session File References');
553 reporter.testDone(fSkip);
556 #reporter.testStart('Session Directory References');
560 #reporter.testDone(fSkip);
562 reporter.testStart('Session Process References');
566 reporter.testDone(fSkip);
568 reporter.testStart('Execution');
572 reporter.testDone(fSkip);
574 reporter.testStart('Execution Error Levels');
578 reporter.testDone(fSkip);
580 reporter.testStart('Execution Timeouts');
584 reporter.testDone(fSkip);
586 reporter.testStart('Creating directories');
590 reporter.testDone(fSkip);
592 reporter.testStart('Creating temporary directories');
596 reporter.testDone(fSkip);
598 reporter.testStart('Reading directories');
602 reporter.testDone(fSkip);
605 # reporter.testStart('Copy to guest');
609 # reporter.testDone(fSkip);
611 reporter.testStart('Copy from guest');
615 reporter.testDone(fSkip);
617 reporter.testStart('Removing files');
621 reporter.testDone(fSkip);
623 reporter.testStart('Querying file information (stat)');
627 reporter.testDone(fSkip);
630 # reporter.testStart('File read');
634 # reporter.testDone(fSkip);
636 # reporter.testStart('File write');
640 # reporter.testDone(fSkip);
642 reporter.testStart('Updating Guest Additions');
648 reporter.testDone(fSkip);
658 reporter.log2('Copying guest file "%s" to host "%s"' % (sSrc, sDst));
665 reporter.log('Waiting for copyFrom failed');
668 reporter.logXcpt('Copy from waiting exception for sSrc="%s", sDst="%s":' \
673 reporter.logXcpt('Copy from exception for sSrc="%s", sDst="%s":' \
685 reporter.log2('Copying host file "%s" to guest "%s"' % (sSrc, sDst));
692 reporter.log('Waiting for copyTo failed');
695 reporter.logXcpt('Copy to waiting exception for sSrc="%s", sDst="%s":' \
699 reporter.error('No progress object returned');
702 reporter.logXcpt('Copy to exception for sSrc="%s", sDst="%s":' \
732 reporter.log2('Copying guest directory "%s" to host "%s"' % (sSrcAbs, sDstAbs));
735 #reporter.log2('Directory="%s", filter="%s", aFlags="%s"' % (sCurDir, sFilter, aFlags));
742 #reporter.log2('\tSkipping "%s"' % (oFsObjInfo.name,));
745 #reporter.log2('\tDirectory "%s"' % (oFsObjInfo.name,));
751 reporter.log2('\tCreating directory "%s"' % (sDirCreate,));
762 reporter.logXcpt('\tDirectory creation exception for directory="%s":' % (sSubDir,));
765 #reporter.log2('\tFile "%s"' % (oFsObjInfo.name,));
770 #reporter.log2('\tSymlink "%s" -- not tested yet' % oFsObjInfo.name);
773 reporter.error('\tDirectory "%s" contains invalid directory entry "%s" (%d)' \
779 #reporter.log2('\tNo more directory entries for "%s"' % (sCurDir,));
782 reporter.logXcpt('\tDirectory read exception for directory="%s":' % (sSrcAbs,));
788 reporter.logXcpt('\tDirectory open exception for directory="%s":' % (sSrcAbs,));
805 reporter.log2('sSrc=%s, sDst=%s, aFlags=%s' % (sSrc, sDst, aFlags));
818 reporter.log2('Copying host directory "%s" to guest "%s"' % (sSrcAbs, sDstAbs));
825 reporter.log2('Processing host file "%s"' % (sCurFile,));
827 reporter.log2('Copying file to "%s"' % (sFileDest,));
838 reporter.log2('Processing host dir "%s"' % (sCurDir,));
840 reporter.log2('Creating guest dir "%s"' % (sDirDest,));
850 reporter.logXcpt('Copy to exception for sSrc="%s", sDst="%s":' \
862 reporter.log2('Creating directory "%s"' % (oTest.sDirectory,));
873 reporter.logXcpt('Directory create exception for directory "%s":' % (oTest.sDirectory,));
896 #reporter.log2('Directory="%s", filter="%s", aFlags="%s"' % (sCurDir, sFilter, aFlags));
903 #reporter.log2('\tSkipping "%s"' % oFsObjInfo.name);
906 #reporter.log2('\tDirectory "%s"' % oFsObjInfo.name);
915 #reporter.log2('\tFile "%s"' % oFsObjInfo.name);
918 #reporter.log2('\tSymlink "%s" -- not tested yet' % oFsObjInfo.name);
921 reporter.error('\tDirectory "%s" contains invalid directory entry "%s" (type %d)' % \
927 #reporter.log2('\tNo more directory entries for "%s"' % (sCurDir,));
930 reporter.logXcpt('\tDirectory open exception for directory="%s":' % (sCurDir,));
936 reporter.logXcpt('\tDirectory open exception for directory="%s":' % (sCurDir,));
946 reporter.log('Testing #%d, cmd="%s" ...' % (i, oTest.sCmd));
953 reporter.error('Test #%d failed: Got exit status + code %d,%d, expected %d,%d' % \
962 reporter.error('Test #%d failed: Got buffer\n%s (%ld bytes), expected\n%s (%ld bytes)' %
967 reporter.log2('Test #%d passed: Buffers match (%ld bytes)' % (i, len(oRes.sBuf)));
970 reporter.error('Test #%d failed: Got no buffer data, expected\n%s (%dbytes)' %
975 reporter.error('Test #%d failed: Got %ld stdout data, expected %ld'
979 reporter.error('Test #%d failed: Got %s, expected %s' % (i, fRc, oRes.fRc));
993 reporter.log2('Using session user=%s, sDomain=%s, session name=%s, session timeout=%ld' \
996 reporter.log2('Executing cmd=%s, aFlags=%s, timeout=%ld, args=%s, env=%s' \
1004 reporter.log2('Process start requested, waiting for start (%ldms) ...' % (oTest.timeoutMS,));
1007 reporter.log2('Wait result returned: %d, current process status is: %ld' % (waitResult, curProc.status));
1016 reporter.log2('Process (PID %ld) started, waiting for termination (%dms), waitFlags=%s ...' \
1020 reporter.log2('Wait returned: %d' % (waitResult,));
1025 reporter.log2('Reading stdout ...');
1028 reporter.log2('Process (PID %ld) got %ld bytes of stdout data' % (curProc.PID, len(buf)));
1034 reporter.log2('Reading stderr ...');
1037 reporter.log2('Process (PID %ld) got %ld bytes of stderr data' % (curProc.PID, len(buf)));
1043 pass; #reporter.log2('Process (PID %ld) needs stdin data' % (curProc.pid,));
1048 reporter.log2('Process (PID %ld) reported terminate/error/timeout: %ld, status: %ld' \
1054 reporter.log2('Final process status (PID %ld) is: %ld' % (curProc.PID, curProc.status));
1055 reporter.log2('Process (PID %ld) %ld stdout, %ld stderr' % (curProc.PID, oTest.cbStdOut, oTest.cbStdErr));
1058 reporter.log2('Process (PID %ld) has exit code: %ld' % (curProc.PID, oTest.iExitCode));
1060 reporter.error('Process (PID %ld) execution interrupted' % (curProc.PID,));
1065 reporter.logXcpt('Execution exception for command "%s":' % (oTest.sCmd,));
1120 reporter.log('Testing #%d, user="%s", sPassword="%s", env="%s" (%d)...' \
1125 reporter.error('Test #%d failed: Session creation failed: Got %s, expected True' % (i, fRc2));
1130 reporter.log2('Test #%d: Environment initially has %d elements' % (i, len(curEnv)));
1132 reporter.error('Test #%d failed: Initial session environment has %d vars, expected 0' % (i, len(curEnv)));
1144 reporter.log2('Test #%d: Single key="%s", value="%s" (%d) ...' \
1150 reporter.logXcpt('Test #%d failed: Setting environment variable failed:' % (i,));
1153 reporter.error('Test #%d failed: Session environment has %d vars, expected %d' \
1158 reporter.log('Test #%d: API reported an error (single), good' % (i,));
1159 reporter.log2('Getting key="%s" ...' % (strKey,));
1164 reporter.error('Test #%d failed: Got environment variable "%s", expected "%s" (key: "%s")' \
1169 reporter.log2('Got key "%s=%s"' % (strKey, strValue2));
1172 reporter.error('Test #%d failed: Got (undecoded) environment variable "%s", ' \
1180 reporter.log('Test #%d: API reported an error (invalid key "%s"), good' % (i, strKey));
1182 reporter.errorXcpt('Test #%d failed: Getting environment variable:' % (i));
1187 reporter.log('Test #%d: Array %s (%d)' % (i, curTest.aEnv, len(curTest.aEnv)));
1196 reporter.error('Test #%d failed: Session environment has %d vars, expected %d (array)' \
1201 reporter.log('Test #%d: API reported an error (array), good' % (i,));
1203 reporter.log('Test #%d: Environment size' % (i,));
1205 reporter.log2('Test #%d: Environment (%d) -> %s' % (i, len(curEnv), curEnv));
1207 reporter.error('Test #%d failed: Session environment has %d vars (%s), expected %d' \
1214 reporter.error('Test #%d failed: Session environment has %d vars, expected 0');
1218 reporter.errorXcpt('Test #%d failed:' % (i,));
1222 reporter.error('Test #%d failed: Session could not be closed' % (i,));
1271 reporter.log('Testing #%d, user="%s", sPassword="%s", sDomain="%s" ...' \
1279 reporter.error('Test #%d failed: Session creation failed: Got %s, expected %s' \
1288 reporter.error('Test #%d failed: Session count does not match: Got %d, expected %d' \
1294 reporter.error('Test #%d failed: Session name does not match: Got "%s", expected "%s"' \
1300 reporter.error('Test #%d failed: Session could not be closed' % (i,));
1311 reporter.log2('Opening multiple guest tsessions at once ...');
1316 reporter.log2('MultiSession test #%d count is %d' % (i, curSessionCount));
1318 reporter.error('MultiSession count #%d must be %d, got %d' % (i, i, curSessionCount));
1324 reporter.error('MultiSession #%d test failed' % (i,));
1327 reporter.log('MultiSession #%d exceeded concurrent guest session count, good' % (i,));
1332 reporter.error('Final MultiSession count must be %d, got %d'
1336 reporter.log2('Closing MultiSessions ...');
1340 reporter.log2('MultiSession #%d count is %d' % (i, multiSession[i].getSessionCount(self.oTstDrv.oVBoxMgr),));
1342 reporter.error('Closing MultiSession #%d failed' % (i,));
1347 reporter.error('Final MultiSession count #2 must be 1, got %d' % (curSessionCount,));
1353 reporter.error('Accessing first removed MultiSession should not be possible, got name="%s"' % (curSessionName,));
1356 reporter.logXcpt('Could not access first removed MultiSession object, good:');
1361 reporter.log('Accessing last standing MultiSession worked, got name="%s"' % (curSessionName,));
1365 reporter.error('Final MultiSession count #3 must be 0, got %d' % (curSessionCount,));
1368 reporter.logXcpt('Could not access last standing MultiSession object:');
1403 reporter.log('Session did not start successfully, returned wait result: %ld' \
1406 reporter.log('Session successfully started');
1412 reporter.log2('Opening stale files');
1420 reporter.errorXcpt('Opening stale file #%ld failed:' % (i,));
1427 reporter.error('Test failed: Got %ld stale files, expected %ld' % (cFiles, cStaleFiles));
1434 reporter.log2('Opening non-stale files');
1441 reporter.errorXcpt('Opening non-stale file #%ld failed:' % (i,));
1447 reporter.error('Test failed: Got %ld total files, expected %ld' % (cFiles, cStaleFiles * 2));
1450 reporter.log2('Closing all non-stale files again ...');
1455 reporter.errorXcpt('Waiting for non-stale file #%ld failed:' % (i,));
1463 reporter.error('Test failed: Got %ld total files, expected %ld' \
1470 reporter.log2('Checking statuses of all non-stale files ...');
1475 reporter.error('Test failed: Non-stale file #%ld has status %ld, expected %ld' \
1479 reporter.errorXcpt('Checking status of file #%ld failed:' % (i,));
1483 reporter.log2('All non-stale files closed');
1485 reporter.log2('Final guest session file count: %ld' % (cFiles,));
1487 reporter.log2('Closing guest session ...');
1490 reporter.errorXcpt('Testing for stale processes failed:');
1532 reporter.log('Session did not start successfully, returned wait result: %ld' \
1535 reporter.log('Session successfully started');
1541 reporter.log2('Starting stale processes');
1552 reporter.logXcpt('Creating stale process #%ld failed:' % (i,));
1559 reporter.error('Test failed: Got %ld stale processes, expected %ld' % (cProcs, cStaleProcs));
1568 reporter.log2('Starting non-stale processes');
1578 reporter.logXcpt('Creating non-stale process #%ld failed:' % (i,));
1582 reporter.log2('Waiting for non-stale processes to terminate');
1588 reporter.error('Test failed: Waiting for non-stale processes #%ld'
1593 reporter.logXcpt('Waiting for non-stale process #%ld failed:' % (i,));
1601 reporter.error('Test failed: Got %ld total processes, expected %ld' \
1611 reporter.error('Test failed: Non-stale processes #%ld has status %ld, expected %ld' \
1615 reporter.log2('All non-stale processes terminated');
1620 reporter.log2('Starting blocking processes');
1632 reporter.logXcpt('Creating blocking process failed:');
1636 reporter.log2('Terminating blocking processes');
1641 reporter.logXcpt('Termination of blocking process failed, skipped:');
1644 reporter.error('Test failed: Got %ld total processes, expected %ld' % (cProcs, cStaleProcs * 2));
1647 reporter.log2('Final guest session processes count: %ld' % (cProcs,));
1649 reporter.log2('Closing guest session ...');
1652 reporter.logXcpt('Testing for stale processes failed:');
1672 reporter.error('Implement me!'); ## @todo Implement non-Windows bits.
1772 reporter.log('No OS-specific tests for non-Windows yet!');
1791 reporter.error('Single test failed: Could not create session');
1801 reporter.error('Single test failed: Could not create session');
1811 reporter.error('Single test failed: Could not create session');
1831 reporter.error('Test #%d failed: Could not create session' % (i,));
1844 reporter.error('Found %d stale session(s), expected 0' % (cSessions,));
1850 reporter.log('Now using one guest session for all tests ...');
1857 reporter.log('Creating session for all tests ...');
1864 reporter.error('Session did not start successfully, returned wait result: %ld' \
1867 reporter.log('Session successfully started');
1870 reporter.logXcpt('Waiting for guest session to start failed:');
1883 reporter.log2('Closing guest session ...');
1888 reporter.logXcpt('Closing guest session failed:');
1891 reporter.logXcpt('Could not create one session:');
1897 reporter.error('Found %d stale session(s), expected 0' % (cSessions,));
1917 reporter.error('Implement me!'); ## @todo Implement non-Windows bits.
1988 reporter.log('No OS-specific tests for non-Windows yet!');
1997 reporter.error('Test #%d failed: Could not create session' % (i,));
2022 reporter.error('Implement me!'); ## @todo Implement non-Windows bits.
2035 reporter.log('Waiting for process 1 being started ...');
2038 reporter.error('Waiting for process 1 to start failed, got status %ld');
2041 reporter.log('Waiting for process 1 to time out within 1ms ...');
2044 reporter.error('Waiting for process 1 did not time out when it should (1)');
2047 reporter.log('Waiting for process 1 timed out (1), good');
2049 reporter.log('Waiting for process 1 to time out within 5000ms ...');
2052 reporter.error('Waiting for process 1 did not time out when it should, got wait result %ld' % (waitRes,));
2055 reporter.log('Waiting for process 1 timed out (5000), good');
2058 reporter.errorXcpt('Exception for process 1:');
2066 reporter.log('Waiting for process 2 being started ...');
2069 reporter.error('Waiting for process 1 to start failed, got status %ld');
2072 reporter.log('Waiting for process 2 to get killed because it ran out of execution time ...');
2075 reporter.error('Waiting for process 2 did not time out when it should, got wait result %ld' \
2079 reporter.log('Waiting for process 2 indicated an error, good');
2081 reporter.error('Status of process 2 wrong; excepted %ld, got %ld' \
2085 reporter.log('Status of process 2 correct (%ld)' % (vboxcon.ProcessStatus_TimedOutKilled,));
2088 reporter.errorXcpt('Exception for process 2:');
2092 reporter.errorXcpt('Could not handle session:');
2155 reporter.log('No OS-specific tests for non-Windows yet!');
2161 reporter.log('Testing #%d, sDirectory="%s" ...' % (i, curTest.sDirectory));
2165 reporter.error('Test #%d failed: Could not create session' % (i,));
2170 reporter.error('Test #%d failed' % (i,));
2225 reporter.log('No OS-specific tests for non-Windows yet!');
2307 reporter.log('Testing #%d, sTemplate="%s", fMode=%#o, path="%s", secure="%s" ...' %
2312 reporter.error('Test #%d failed: Could not create session' % (i,));
2320 reporter.errorXcpt('Creating temp directory "%s" failed:' % (curTest.sDirectory,));
2324 reporter.logXcpt('Creating temp directory "%s" failed expectedly, skipping:' % (curTest.sDirectory,));
2327 reporter.log2('Temporary directory is: %s' % (sDirTemp,));
2330 reporter.error('Test #%d failed: Temporary directory "%s" does not exists' % (i, sDirTemp));
2379 reporter.log('No OS-specific tests for non-Windows yet!');
2385 reporter.log('Testing #%d, dir="%s" ...' % (i, curTest.sDirectory));
2389 reporter.error('Test #%d failed: Could not create session' % (i,));
2393 reporter.log2('Test #%d: Returned %ld directories, %ld files total' % (i, cDirs, cFiles));
2397 reporter.error('Test #%d failed: Got %ld files, expected %ld' % (i, cFiles, curRes.numFiles));
2401 reporter.error('Test #%d failed: Got %ld directories, expected %ld' % (i, cDirs, curRes.numDirs));
2405 reporter.error('Test #%d failed: Got %s, expected %s' % (i, fRc2, curRes.fRc));
2459 reporter.log('No OS-specific tests for non-Windows yet!');
2465 reporter.log('Testing #%d, file="%s" ...' % (i, curTest.sFile));
2469 reporter.error('Test #%d failed: Could not create session' % (i,));
2475 reporter.errorXcpt('Removing file "%s" failed:' % (curTest.sFile,));
2479 reporter.logXcpt('Removing file "%s" failed expectedly, skipping:' % (curTest.sFile,));
2530 reporter.log('No OS-specific tests for non-Windows yet!');
2536 reporter.log('Testing #%d, sFile="%s" ...' % (i, curTest.sFile));
2540 reporter.error('Test #%d failed: Could not create session' % (i,));
2547 reporter.errorXcpt('Querying file information for "%s" failed:' % (curTest.sFile,));
2551 reporter.logXcpt('Querying file information for "%s" failed expectedly, skipping:' % (curTest.sFile,));
2556 reporter.error('Test #%d failed: Got file type %ld, expected %ld' % (i, eFileType, curRes.eFileType));
2561 reporter.error('Test #%d failed: Got %ld bytes size, expected %ld bytes' % (i, cbFile, curRes.cbSize));
2580 reporter.error('Could not create scratch directory on guest');
2658 reporter.log('Testing #%d, sFile="%s", cbToReadWrite=%d, sOpenMode="%s", sDisposition="%s", cbOffset=%ld ...' % \
2663 reporter.error('Test #%d failed: Could not create session' % (i,));
2672 reporter.error('Test #%d failed: Initial offset on open does not match: Got %ld, expected %ld' \
2685 reporter.error('Test #%d failed: Read buffer length does not match: Got %ld, expected %ld' \
2691 reporter.error('Test #%d failed: Got buffer\n%s (%ld bytes), expected\n%s (%ld bytes)' \
2694 reporter.error('Test #%d failed: Got buffer\n%s, expected\n%s' \
2701 reporter.error('Test #%d failed: Final offset does not match: Got %ld, expected %ld' \
2706 reporter.logXcpt('Opening "%s" failed:' % (curTest.sFile,));
2712 reporter.error('Test #%d failed: Got %s, expected %s' % (i, fRc, curRes.fRc));
2733 reporter.error('Could not create scratch directory on guest');
2763 reporter.log('Testing #%d, sFile="%s", cbToReadWrite=%d, sOpenMode="%s", sDisposition="%s", cbOffset=%ld ...' % \
2768 reporter.error('Test #%d failed: Could not create session' % (i,));
2777 reporter.error('Test #%d failed: Initial offset on open does not match: Got %ld, expected %ld' \
2790 reporter.error('Test #%d failed: Written buffer length does not match: Got %ld, expected %ld' \
2799 reporter.logXcpt('Seeking back to initial write position failed:');
2803 reporter.error('Test #%d failed: Initial write position does not match current position, \
2810 reporter.error('Test #%d failed: Got buffer length %ld, expected %ld' \
2816 reporter.error('Test #%d failed: Got buffer\n%s, expected\n%s' \
2823 reporter.error('Test #%d failed: Final offset does not match: Got %ld, expected %ld' \
2828 reporter.logXcpt('Opening "%s" failed:' % (curTest.sFile,));
2834 reporter.error('Test #%d failed: Got %s, expected %s' % (i, fRc, curRes.fRc));
2855 reporter.error('Could not create scratch directory on guest');
2874 reporter.log('Validation Kit .ISO found at: %s' % (sVBoxValidationKitISO,));
2876 reporter.log('Warning: Validation Kit .ISO not found -- some tests might fail');
2923 reporter.log('No OS-specific tests for non-Windows yet!');
2929 reporter.log('Testing #%d, sSrc="%s", sDst="%s", aFlags="%s" ...' % \
2934 reporter.error('Test #%d failed: Could not create session' % (i,));
2942 reporter.error('Test #%d failed: Got %s, expected %s' % (i, fRc2, curRes.fRc));
2964 reporter.error('Failed: Unable to create scratch directory \"%s\"' % (sScratch,));
2966 reporter.log('Scratch path is: %s' % (sScratch,));
3018 reporter.log('No OS-specific tests for non-Windows yet!');
3024 reporter.log('Testing #%d, sSrc="%s", sDst="%s", aFlags="%s" ...' % \
3029 reporter.error('Test #%d failed: Could not create session' % (i,));
3037 reporter.error('Test #%d failed: Got %s, expected %s' % (i, fRc2, curRes.fRc));
3070 reporter.log('Validation Kit .ISO found at: %s' % (sVBoxValidationKitISO,));
3072 reporter.log('Warning: Validation Kit .ISO not found -- some tests might fail');
3079 reporter.error('Failed: Unable to create scratch directory \"%s\"' % (sScratch,));
3081 reporter.log('Scratch path is: %s' % (sScratch,));
3113 reporter.log('No OS-specific tests for non-Windows yet!');
3119 reporter.log('Testing #%d, sSrc="%s", aFlags="%s" ...' % \
3124 reporter.error('Test #%d failed: Could not create session' % (i,));
3133 reporter.log('Waiting for updating Guest Additions failed');
3136 reporter.logXcpt('Updating Guest Additions waiting exception for sSrc="%s", aFlags="%s":' \
3141 reporter.logXcpt('Updating Guest Additions exception for sSrc="%s", aFlags="%s":' \
3150 reporter.error('Test #%d failed: Got %s, expected %s' % (i, fRc, curRes.fRc));
3177 reporter.log('');
3178 reporter.log('tdAddGuestCtrl Options:');
3179 reporter.log(' --quick');
3180 reporter.log(' Same as --virt-modes hwvirt --cpu-counts 1.');
3221 reporter.log("TxsSession: %s" % (oTxsSession,));
3245 reporter.log('No progress object to print error for');
3249 reporter.log('%s' % (errInfo.text,));
3269 reporter.log('Manual testing ...');