Newer
Older
dub_jkp / test / 0-init-fail-json.script.d
@drug007 drug007 on 1 Mar 2021 949 bytes Convert one bash script test to D script
/+ dub.sdl:
	name "0-init-fail-json"
	dependency "common" path="./common"
 +/

module _0_init_fail_json;

import std.file : exists, remove;
import std.path : buildPath;
import std.process : environment, spawnProcess, wait;

import common;

int main()
{
	enum packname = "0-init-fail-pack";
	enum deps = "logger PACKAGE_DONT_EXIST"; // would be very unlucky if it does exist...

	auto dub = environment.get("DUB");
	if (!dub.length)
		die(`Environment variable "DUB" must be defined to run the tests.`);

	//** if $$DUB init -n $packname $deps -f json 2>/dev/null; then
	if (!spawnProcess([dub, "init", "-n", packname, deps, "-f", "json"]).wait)
		die("Init with unknown non-existing dependency expected to fail");

	//** if [ -e $packname/dub.json ]; then # package is there, it should have failed
	const filepath = buildPath(packname, "dub.json");
	if (filepath.exists)
	{
		remove(packname);
		die(filepath ~ " was not created");
	}

	return 0;
}