59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| import haxelib.client.Vcs.VcsID;
 | |
| import haxe.unit.TestRunner;
 | |
| import sys.*;
 | |
| import sys.io.*;
 | |
| import tests.*;
 | |
| using StringTools;
 | |
| 
 | |
| class HaxelibTests {
 | |
| 	public static function runCommand(cmd:String, args:Array<String>):Void
 | |
| 	{
 | |
| 		Sys.println('Command: $cmd $args');
 | |
| 
 | |
| 		var exitCode = Sys.command(cmd, args);
 | |
| 
 | |
| 		Sys.println('Command exited with $exitCode: $cmd $args');
 | |
| 
 | |
| 		if(exitCode != 0)
 | |
| 			Sys.exit(exitCode);
 | |
| 	}
 | |
| 
 | |
| 	static function cmdSucceed(cmd:String, ?args:Array<String>):Bool {
 | |
| 		var p = try {
 | |
| 			new Process(cmd, args);
 | |
| 		} catch(e:Dynamic) {
 | |
| 			return false;
 | |
| 		}
 | |
| 		var exitCode = p.exitCode();
 | |
| 		p.close();
 | |
| 		return exitCode == 0;
 | |
| 	}
 | |
| 
 | |
| 	static function main():Void {
 | |
| 		var r = new TestRunner();
 | |
| 
 | |
| 		r.add(new TestSemVer());
 | |
| 		r.add(new TestData());
 | |
| 		r.add(new TestRemoveSymlinks());
 | |
| 		r.add(new TestRemoveSymlinksBroken());
 | |
| 
 | |
| 		var isCI = Sys.getEnv("CI") != null;
 | |
| 
 | |
| 		if (isCI || cmdSucceed("hg", ["version"])) {
 | |
| 			// Hg impl. suports tags & revs. Here "78edb4b" is a first revision "initial import" at that repo:
 | |
| 			r.add(new TestHg());
 | |
| 		} else {
 | |
| 			Sys.println("hg not found.");
 | |
| 		}
 | |
| 		if (isCI || cmdSucceed("git", ["version"])) {
 | |
| 			// Git impl. suports only tags. Here "0.9.2" is a first revision too ("initial import"):
 | |
| 			r.add(new TestGit());
 | |
| 		} else {
 | |
| 			Sys.println("git not found.");
 | |
| 		}
 | |
| 		r.add(new TestVcsNotFound());
 | |
| 
 | |
| 		var success = r.run();
 | |
| 		Sys.exit(success ? 0 : 1);
 | |
| 	}
 | |
| } |