|  | #!/usr/bin/perl -w | 
|  |  | 
|  | # | 
|  | # Use this script to visit each python test case under the specified directory | 
|  | # and invoke unittest.main() on each test case. | 
|  | # | 
|  |  | 
|  | use strict; | 
|  | use FindBin; | 
|  | use File::Find; | 
|  | use File::Basename; | 
|  | use Cwd; | 
|  | use Cwd 'abs_path'; | 
|  |  | 
|  | scalar(@ARGV) == 1 or die "Usage: dotest.pl testdir"; | 
|  |  | 
|  | my $scriptDir = $FindBin::Bin; | 
|  | my $baseDir = abs_path("$scriptDir/.."); | 
|  | my $pluginDir = "$baseDir/test/plugins"; | 
|  | my $testDir = $ARGV[0]; | 
|  |  | 
|  | my $dbgPath = "$baseDir/build/Debug/LLDB.framework/Resources/Python"; | 
|  | my $relPath = "$baseDir/build/Release/LLDB.framework/Resources/Python"; | 
|  | if (-d $dbgPath) { | 
|  | $ENV{'PYTHONPATH'} = "$dbgPath:$scriptDir:$pluginDir"; | 
|  | } elsif (-d $relPath) { | 
|  | $ENV{'PYTHONPATH'} = "$relPath:$scriptDir:$pluginDir"; | 
|  | } | 
|  | #print("ENV{PYTHONPATH}=$ENV{'PYTHONPATH'}\n"); | 
|  |  | 
|  | # Traverse the directory to find our python test cases. | 
|  | find(\&handleFind, $testDir); | 
|  |  | 
|  | sub handleFind { | 
|  | my $foundFile = $File::Find::name; | 
|  | my $dir = getcwd; | 
|  | #print("foundFile: $foundFile\n"); | 
|  |  | 
|  | # Test*.py is the naming pattern for our test cases. | 
|  | if ($foundFile =~ /.*\/(Test.*\.py)$/) { | 
|  | print("Running python $1 (cwd = $dir)...\n"); | 
|  | system("python $1"); | 
|  | } | 
|  | } |