Home | History | Annotate | Download | only in Scripts
      1 #!/usr/bin/perl
      2 
      3 # Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
      4 #
      5 # Redistribution and use in source and binary forms, with or without
      6 # modification, are permitted provided that the following conditions
      7 # are met:
      8 #
      9 # 1.  Redistributions of source code must retain the above copyright
     10 #     notice, this list of conditions and the following disclaimer.
     11 # 2.  Redistributions in binary form must reproduce the above copyright
     12 #     notice, this list of conditions and the following disclaimer in the
     13 #     documentation and/or other materials provided with the distribution.
     14 # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
     15 #     its contributors may be used to endorse or promote products derived
     16 #     from this software without specific prior written permission.
     17 #
     18 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     19 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     20 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     21 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     22 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     23 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     24 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     25 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     27 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     28 
     29 # This script runs a list of scripts through jsc a specified number of times.
     30 
     31 use strict;
     32 use warnings;
     33 use File::Spec;
     34 use FindBin;
     35 use lib $FindBin::Bin;
     36 use Getopt::Long;
     37 use webkitdirs;
     38 
     39 my $usage = "Usage: run-jsc [--count run_count] [--verbose] shell_file [file2...]";
     40 
     41 my $count = 1;
     42 my $verbose = 0;
     43 GetOptions("count|c=i" => \$count,
     44            "verbose|v" => \$verbose);
     45 die "$usage\n" if (@ARGV < 1);
     46 
     47 my $jsc = jscProductDir() . "/jsc @ARGV";
     48 $jsc .= " 2> " . File::Spec->devnull() unless $verbose;
     49 
     50 my $dyld = jscProductDir();
     51 
     52 $ENV{"DYLD_FRAMEWORK_PATH"} = $dyld;
     53 print STDERR "Running $count time(s): DYLD_FRAMEWORK_PATH=$dyld $jsc\n";
     54 while ($count--) {
     55     if (system("$jsc") != 0) {
     56         last;
     57     }
     58 }
     59 
     60