34 lines
		
	
	
		
			855 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			855 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
import sys.*;
 | 
						|
import sys.io.*;
 | 
						|
import haxe.io.*;
 | 
						|
import haxe.unit.*;
 | 
						|
 | 
						|
class TestBase extends TestCase {
 | 
						|
	static var haxelibPath = FileSystem.fullPath("run.n");
 | 
						|
	public function runHaxelib(args:Array<String>) {
 | 
						|
		var p = new Process("neko", [haxelibPath].concat(args));
 | 
						|
		var stdout = p.stdout.readAll().toString();
 | 
						|
		var stderr = p.stderr.readAll().toString();
 | 
						|
		var exitCode = p.exitCode();
 | 
						|
		p.close();
 | 
						|
		return {
 | 
						|
			stdout: stdout,
 | 
						|
			stderr: stderr,
 | 
						|
			exitCode: exitCode
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public function deleteDirectory(dir:String):Void {
 | 
						|
		if (!FileSystem.exists(dir)) return;
 | 
						|
		var exitCode = switch (Sys.systemName()) {
 | 
						|
			case "Windows":
 | 
						|
				Sys.command("rmdir", ["/S", "/Q", StringTools.replace(FileSystem.fullPath(dir), "/", "\\")]);
 | 
						|
			case _:
 | 
						|
				Sys.command("rm", ["-rf", dir]);
 | 
						|
		}
 | 
						|
		if (exitCode != 0) {
 | 
						|
			throw 'unable to delete $dir';
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |