45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
| #!/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");
 | |
|   }
 | |
| }
 |