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';
 | |
| 		}
 | |
| 	}
 | |
| }
 |