Browse Source

[tests] initialize haxe server in display tests

Simon Krajewski 6 năm trước cách đây
mục cha
commit
4cfb6ec106
2 tập tin đã thay đổi với 19 bổ sung8 xóa
  1. 18 8
      tests/display/src/DisplayTestContext.hx
  2. 1 0
      tests/display/src/Main.hx

+ 18 - 8
tests/display/src/DisplayTestContext.hx

@@ -101,21 +101,31 @@ class DisplayTestContext {
 		}
 	}
 
-	function callHaxe(displayPart:String):String {
+	function callHaxe(displayPart:String) {
 		var args = [
 			"-cp",
 			"src",
 			"-D",
 			"display-stdin",
-			"-lib",
-			"utest",
 			"--display",
 			source.path + "@" + displayPart,
+			"-lib",
+			"utest"
 		];
+		var result = runHaxe(args, source.content);
+		if (result.hasError || result.stderr == "") {
+			throw new HaxeInvocationException(result.stderr, fieldName, args, source.content);
+		}
+		return result.stderr;
+	}
+
+	static public function runHaxe(args:Array<String>, ?stdin:String) {
 		var bb = new BytesBuffer();
 		bb.addString(args.join("\n"));
-		bb.addByte(1);
-		bb.addString(source.content);
+		if (stdin != null) {
+			bb.addByte(1);
+			bb.addString(stdin);
+		}
 		var b = bb.getBytes();
 		haxeServer.stdin.writeInt32(b.length);
 		haxeServer.stdin.write(b);
@@ -133,10 +143,10 @@ class DisplayTestContext {
 			}
 		}
 		var s = buf.toString().trim();
-		if (hasError || s == "") {
-			throw new HaxeInvocationException(s, fieldName, args, source.content);
+		return {
+			hasError: hasError,
+			stderr: s
 		}
-		return s.toString();
 	}
 
 	static function extractType(result:String) {

+ 1 - 0
tests/display/src/Main.hx

@@ -10,6 +10,7 @@ class Main {
 		var report = Report.create(runner);
 		report.displayHeader = AlwaysShowHeader;
 		report.displaySuccessResults = NeverShowSuccessResults;
+		DisplayTestContext.runHaxe(["-cp", "src", "--no-output", "-lib", "utest"]);
 		runner.run();
 	}
 }