Fix run-jsc-stress-tests to use Pathname instead of File.realpath.
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Sep 2013 19:36:34 +0000 (19:36 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Sep 2013 19:36:34 +0000 (19:36 +0000)
Also make it uses system() instead of popen(); that means that test output
will go to the console. This reduces error detection flakiness. It's fine
because stress tests don't print() unless they really have to.

Rubber stamped by Mark Hahnenberg.

* Scripts/run-jsc-stress-tests:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155205 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/run-jsc-stress-tests

index 25d19f7..fa6d156 100644 (file)
@@ -1,3 +1,15 @@
+2013-09-06  Filip Pizlo  <fpizlo@apple.com>
+
+        Fix run-jsc-stress-tests to use Pathname instead of File.realpath.
+        
+        Also make it uses system() instead of popen(); that means that test output
+        will go to the console. This reduces error detection flakiness. It's fine
+        because stress tests don't print() unless they really have to.
+
+        Rubber stamped by Mark Hahnenberg.
+
+        * Scripts/run-jsc-stress-tests:
+
 2013-09-05  Filip Pizlo  <fpizlo@apple.com>
 
         Introduce a way to run benchmarks and JSRegress as stress tests with different jsc command-line options
index 15cbb4a..98745ad 100755 (executable)
 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 require 'getoptlong'
+require 'pathname'
 
 $jscPath = nil
 $collections = []
-$outputDir = "results"
+$outputDir = Pathname.new("results")
 
 def usage
     puts "run-jsc-stress-tests -j <shell path> <collections path> [<collections path> ...]"
@@ -46,9 +47,9 @@ GetoptLong.new(['--help', '-h', GetoptLong::NO_ARGUMENT],
     when '--help'
         usage
     when '--jsc'
-        $jscPath = File.realpath(arg)
+        $jscPath = Pathname.new(arg).realpath
     when '--output-dir'
-        $outputDir = arg
+        $outputDir = Pathname.new(arg)
     end
 }
 
@@ -62,18 +63,11 @@ $numFailures = 0
 def run(kind, *options)
     name = "#{$benchmark}.#{kind}"
     print "#{name}: "
-    IO.popen([$jscPath] + options + [$benchmark], "r") {
-        | inp |
-        File.open($outputDir + "/" + $collectionName + "/" + name, "w") {
-            | outp |
-            outp.write inp.read
-        }
-    }
-    if $?.success?
+    if system($jscPath.to_s, *options, $benchmark)
         puts "OK."
     else
         puts "FAIL: #{$?.inspect}"
-        File.open($outputDir + "/failed", "a") {
+        File.open($outputDir + "failed", "a") {
             | outp |
             outp.puts name
         }
@@ -113,28 +107,17 @@ def skip
     puts "Skipping #{$benchmark}"
 end
 
-collectionNames = {}
-
-Dir.mkdir($outputDir) unless FileTest.directory? $outputDir
+Dir.mkdir($outputDir) unless $outputDir.directory?
 begin
-    File.delete($outputDir + "/failed")
+    File.delete($outputDir + "failed")
 rescue
 end
 
-$outputDir = File.realpath($outputDir)
+$outputDir = $outputDir.realpath
 
 ARGV.each {
     | collection |
     $collection = collection
-    $collectionName = File.basename(collection)
-    toAdd = 1
-    while collectionNames[$collectionName]
-        $collectionName = File.basename(collection) + "-#{toAdd}"
-        toAdd += 1
-    end
-    collectionNames[$collectionName] = true
-    dir = $outputDir + "/" + $collectionName
-    Dir.mkdir(dir) unless FileTest.directory? dir
     Dir.chdir(collection) {
         Dir.foreach('.') {
             | benchmark |