示例#1
0
int
main(int argc, char **argv)
{
	test_prepare();
	test_allow();

	test_0();
	getchar();
#if 1
	test_allowed_read();
	getchar();
	test_allowed_write();
	getchar();
	test_destroy();

	test_prepare();
	test_allow();
	test_0();
	getchar();
#endif
	test_not_allowed_read();
	getchar();
	test_not_allowed_write();
	getchar();

	test_destroy();

	return (0);
}
示例#2
0
    void run()
    {
        {
            beast::asio::streambuf b(10);
            std::string const s = "1234567890";
            b << s;
            expect (to_str(b.data()) == s);
            b.prepare(5);
        }

        {
            beast::asio::streambuf b(10);
            b.prepare(10);
            b.commit(10);
            b.consume(10);
        }

        {
            beast::asio::streambuf b(5);
            boost::asio::buffer_copy(b.prepare(14),
                boost::asio::buffer(std::string("1234567890ABCD")));
            b.commit(4);
            expect(to_str(b.data()) == "1234");
            b.consume(4);
            b.commit(10);
            expect(to_str(b.data()) == "567890ABCD");
        }
        
        test_prepare();
        test_commit();
        test_consume();
    }
示例#3
0
int main(int argc, char **argv)
{
	int ret;
	struct ev_eloop *eloop;
	struct uterm_vt_master *vtm;
	struct uterm_input *input;
	struct uterm_vt *vt;
	size_t onum;

	onum = sizeof(options) / sizeof(*options);
	ret = test_prepare(options, onum, argc, argv, &eloop);
	if (ret)
		goto err_fail;

	ret = uterm_vt_master_new(&vtm, eloop);
	if (ret)
		goto err_exit;

	ret = uterm_input_new(&input, eloop, "", "", "", "", "", 0, 0,
			      log_llog, NULL);
	if (ret)
		goto err_vtm;

	ret = uterm_vt_allocate(vtm, &vt, UTERM_VT_FAKE | UTERM_VT_REAL,
				"seat0", input, vtpath, NULL, NULL);
	if (ret)
		goto err_input;

	if (switchvt) {
		ret = uterm_vt_activate(vt);
		if (ret == -EINPROGRESS)
			log_debug("VT switch in progress");
		else if (ret)
			log_warn("cannot switch to VT: %d", ret);
	}

	ev_eloop_run(eloop, -1);

	log_debug("Terminating");

	/* switch back to previous VT but wait for eloop to process SIGUSR0 */
	if (switchvt) {
		ret = uterm_vt_deactivate(vt);
		if (ret == -EINPROGRESS)
			ev_eloop_run(eloop, 50);
	}

	uterm_vt_unref(vt);
err_input:
	uterm_input_unref(input);
err_vtm:
	uterm_vt_master_unref(vtm);
err_exit:
	test_exit(options, onum, eloop);
err_fail:
	if (ret != -ECANCELED)
		test_fail(ret);
	return abs(ret);
}
示例#4
0
int main(int argc, char **argv)
{
	int ret;
	struct uterm_monitor *mon;
	size_t onum;

	onum = sizeof(options) / sizeof(*options);
	ret = test_prepare(options, onum, argc, argv, &eloop);
	if (ret)
		goto err_fail;

	if (!setlocale(LC_ALL, "")) {
		log_err("Cannot set locale: %m");
		ret = -EFAULT;
		goto err_exit;
	}

	ret = uterm_monitor_new(&mon, eloop, monitor_event, NULL);
	if (ret)
		goto err_exit;

	ret = ev_eloop_register_signal_cb(eloop, SIGQUIT, sig_quit, NULL);
	if (ret)
		goto err_mon;

	system("stty -echo");
	uterm_monitor_scan(mon);
	ev_eloop_run(eloop, -1);
	system("stty echo");

	ev_eloop_unregister_signal_cb(eloop, SIGQUIT, sig_quit, NULL);
err_mon:
	uterm_monitor_unref(mon);
err_exit:
	test_exit(options, onum, eloop);
err_fail:
	if (ret != -ECANCELED)
		test_fail(ret);
	return abs(ret);
}
示例#5
0
文件: test_vt.c 项目: mdlh/kmscon
int main(int argc, char **argv)
{
	int ret;
	struct ev_eloop *eloop;
	struct kmscon_vt *vt;

	ret = test_prepare(argc, argv, &eloop);
	if (ret)
		goto err_fail;

	ret = kmscon_vt_new(&vt, NULL, NULL);
	if (ret)
		goto err_exit;

	ret = kmscon_vt_open(vt, KMSCON_VT_NEW, eloop);
	if (ret)
		goto err_vt;

	ret = kmscon_vt_enter(vt);
	if (ret)
		log_warn("Cannot switch to VT");

	ev_eloop_run(eloop, -1);

	log_debug("Terminating\n");

	/* switch back to previous VT but wait for eloop to process SIGUSR0 */
	ret = kmscon_vt_leave(vt);
	if (ret == -EINPROGRESS)
		ev_eloop_run(eloop, 50);

err_vt:
	kmscon_vt_unref(vt);
err_exit:
	test_exit(eloop);
err_fail:
	test_fail(ret);
	return abs(ret);
}
示例#6
0
int main(int argc, char **argv)
{
	struct uterm_video *video;
	int ret;
	const char *node;
	const struct uterm_video_module *mode;
	size_t onum;

	onum = sizeof(options) / sizeof(*options);
	ret = test_prepare(options, onum, argc, argv, &eloop);
	if (ret)
		goto err_fail;

	if (output_conf.fbdev) {
		mode = UTERM_VIDEO_FBDEV;
		node = "/dev/fb0";
	} else {
		mode = UTERM_VIDEO_DRM3D;
		node = "/dev/dri/card0";
	}

	if (output_conf.dev)
		node = output_conf.dev;

	log_notice("Creating video object using %s...", node);

	ret = uterm_video_new(&video, eloop, node, mode);
	if (ret) {
		if (mode == UTERM_VIDEO_DRM3D) {
			log_notice("cannot create drm device; trying drm2d mode");
			ret = uterm_video_new(&video, eloop, node,
					      UTERM_VIDEO_DRM2D);
			if (ret)
				goto err_exit;
		} else {
			goto err_exit;
		}
	}

	log_notice("Wakeing up video object...");
	ret = uterm_video_wake_up(video);
	if (ret < 0)
		goto err_unref;

	if (!output_conf.test) {
		ret = list_outputs(video);
		if (ret) {
			log_err("Cannot list outputs: %d", ret);
			goto err_unref;
		}
	} else {
		ret = blit_outputs(video);
		if (ret) {
			log_err("Cannot set outputs: %d", ret);
			goto err_unref;
		}
	}

err_unref:
	uterm_video_unref(video);
err_exit:
	test_exit(options, onum, eloop);
err_fail:
	if (ret != -ECANCELED)
		test_fail(ret);
	return abs(ret);
}
示例#7
0
文件: test_output.c 项目: myra/kmscon
int main(int argc, char **argv)
{
	struct uterm_video *video;
	int ret;
	unsigned int mode;
	const char *node;

	ret = test_prepare(argc, argv, &eloop);
	if (ret)
		goto err_fail;

	if (conf_global.use_fbdev) {
		mode = UTERM_VIDEO_FBDEV;
		node = "/dev/fb0";
	} else {
		mode = UTERM_VIDEO_DRM;
		node = "/dev/dri/card0";
	}

	log_notice("Creating video object using %s...", node);

	ret = uterm_video_new(&video, eloop, mode, node);
	if (ret) {
		if (mode == UTERM_VIDEO_DRM) {
			log_notice("cannot create drm device; trying dumb drm mode");
			ret = uterm_video_new(&video, eloop,
					      UTERM_VIDEO_DUMB, node);
			if (ret)
				goto err_exit;
		} else {
			goto err_exit;
		}
	}

	log_notice("Wakeing up video object...");
	ret = uterm_video_wake_up(video);
	if (ret < 0)
		goto err_unref;

	if (argc < 2) {
		ret = list_outputs(video);
		if (ret) {
			log_err("Cannot list outputs: %d", ret);
			goto err_unref;
		}
	} else {
		ret = uterm_video_use(video);
		if (ret)
			ret = blit_outputs(video);
		else
			ret = set_outputs(video);

		if (ret) {
			log_err("Cannot set outputs: %d", ret);
			goto err_unref;
		}
	}

err_unref:
	uterm_video_unref(video);
err_exit:
	test_exit(eloop);
err_fail:
	test_fail(ret);
	return abs(ret);
}