72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | const fs = require("fs"); | ||
|  | const path = require("path"); | ||
|  | 
 | ||
|  | const utils = require(path.join(__dirname, "utils.js")); | ||
|  | 
 | ||
|  | const useInstrument = true; | ||
|  | 
 | ||
|  | async function run() { | ||
|  | 	if (!fs.existsSync(".haxelib/")) { | ||
|  | 		await utils.install_deps(); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	const project = new Project('Aura Tests'); | ||
|  | 
 | ||
|  | 	project.addSources("."); | ||
|  | 
 | ||
|  | 	await project.addProject("../"); | ||
|  | 
 | ||
|  | 	project.addLibrary("utest"); | ||
|  | 	project.addDefine("UTEST_PRINT_TESTS"); | ||
|  | 
 | ||
|  | 	// Easier to match problems with the problem matcher below, enable if
 | ||
|  | 	// running headless in command line (this will prevent displaying the html output)
 | ||
|  | 	// project.addDefine("UTEST_FAILURE_THROW");
 | ||
|  | 
 | ||
|  | 	if (useInstrument) { | ||
|  | 		project.addLibrary("instrument"); | ||
|  | 		project.addDefine("instrument_quiet"); | ||
|  | 		project.addDefine("coverage-console-package-summary-reporter"); | ||
|  | 		// project.addDefine("coverage-console-summary-reporter");
 | ||
|  | 		project.addParameter("--macro instrument.Instrumentation.coverage(['aura'], null, ['auratests'])"); | ||
|  | 
 | ||
|  | 		// From https://github.com/HaxeFoundation/hxnodejs/blob/master/extraParams.hxml
 | ||
|  | 		// to fix sys access error on nodejs even if it should work
 | ||
|  | 		// Reference:
 | ||
|  | 		//     https://github.com/AlexHaxe/haxe-instrument/issues/8
 | ||
|  | 		//     https://github.com/HaxeFoundation/hxnodejs/issues/59
 | ||
|  | 		//     https://community.haxe.org/t/using-sys-in-nodejs-target/3702
 | ||
|  | 		// project.addParameter("--macro allowPackage('sys')");
 | ||
|  | 		// project.addParameter("--macro define('nodejs')");
 | ||
|  | 		// project.addParameter("--macro _internal.SuppressDeprecated.run()");
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	if (project.targetOptions.html5.expose === undefined) { | ||
|  | 		project.targetOptions.html5.expose = ""; | ||
|  | 	} | ||
|  | 	project.targetOptions.html5.expose += "logToMainProcess: (type, text) => electron.ipcRenderer.send('log-main', type, text),"; | ||
|  | 
 | ||
|  | 	project.addParameter("--no-opt"); | ||
|  | 	project.addParameter("--no-inline"); | ||
|  | 	project.addParameter('-dce full'); | ||
|  | 
 | ||
|  | 	// project.addParameter("--macro nullSafety('aura', Strict)");
 | ||
|  | 	// project.addParameter("--macro nullSafety('aura', StrictThreaded)");
 | ||
|  | 
 | ||
|  | 	project.addDefine("AURA_UNIT_TESTS"); | ||
|  | 	project.addDefine("AURA_ASSERT_LEVEL=Debug"); | ||
|  | 
 | ||
|  | 	project.addCDefine("KINC_NO_WAYLAND"); // Causes errors in the CI
 | ||
|  | 
 | ||
|  | 	callbacks.postBuild = () => { | ||
|  | 		fs.copyFileSync("Data/index.html", "build/debug-html5/index.html"); | ||
|  | 
 | ||
|  | 		const electronJSAppend = fs.readFileSync("Data/electron-append.js", "utf8"); | ||
|  | 		fs.appendFileSync("build/debug-html5/electron.js", "\n\n" + electronJSAppend); | ||
|  | 	}; | ||
|  | 
 | ||
|  | 	resolve(project); | ||
|  | } | ||
|  | 
 | ||
|  | await run(); |