Notcurses-Native.git | xt/ | 01-version.rakutest edit


use Test;
use lib 'lib';
use lib 't/lib';
use TestHelper;
use NativeCall;
use Notcurses::Native;
use Notcurses::Native::Types;

plan 3;

subtest 'Version string' => {
	plan 2;
	my $ver = notcurses_version();
	ok $ver.defined, 'Version string returned';
	ok $ver.contains('3.0'), "Version is 3.0.x (got: $ver)";
};

subtest 'Version components' => {
	plan 4;
	my int32 ($major, $minor, $patch, $tweak);
	notcurses_version_components($major, $minor, $patch, $tweak);
	is $major, 3, 'Major version';
	is $minor, 0, 'Minor version';
	is $patch, 17, 'Patch version';
	ok $tweak.defined, 'Tweak defined';
};

subtest 'Init and stop' => {
	plan 2;
	my $opts = NotcursesOptions.new(
		:loglevel(NCLOGLEVEL_SILENT),
		:flags(NCOPTION_SUPPRESS_BANNERS +| NCOPTION_NO_ALTERNATE_SCREEN +| NCOPTION_INHIBIT_SETLOCALE),
	);
	my ($nc, $) = test-init-nc($opts);
	if $nc.defined {
		ok True, 'notcurses_init succeeded';
		my $rc = notcurses_stop($nc);
		is $rc, 0, 'notcurses_stop returned 0';
	} else {
		# May fail in CI without a terminal
		skip 'No terminal available for init', 2;
	}
};

done-testing;