#!/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"); } }