Robert Brewer avatar Robert Brewer committed 4562c51

Benchmark: simpler, more inclusive detection of ab/apache not on system path.

Comments (0)

Files changed (1)

cherrypy/test/benchmark.py

 
 def read_process(cmd, args=""):
     pipein, pipeout = os.popen4("%s %s" % (cmd, args))
-    output = pipeout.read()
-    if (# Windows
-        output.startswith("'%s' is not recognized" % cmd)
-        # bash
-        or re.match(r"bash: .*: (No such file|command not found)", output)
-        ):
-        raise IOError('%s must be on your system path.' % cmd)
-    pipeout.close()
+    try:
+        firstline = pipeout.readline()
+        if (re.search(r"(not recognized|No such file|not found)", firstline,
+                      re.IGNORECASE)):
+            raise IOError('%s must be on your system path.' % cmd)
+        output = firstline + pipeout.read()
+    finally:
+        pipeout.close()
     return output
 
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.