summaryrefslogtreecommitdiff
path: root/pencil_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'pencil_test.c')
-rw-r--r--pencil_test.c104
1 files changed, 104 insertions, 0 deletions
diff --git a/pencil_test.c b/pencil_test.c
new file mode 100644
index 0000000..b1c26d4
--- /dev/null
+++ b/pencil_test.c
@@ -0,0 +1,104 @@
+/*
+ * This file is part of Pencil
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license
+ * Copyright 2005 James Bursa <james@semichrome.net>
+ */
+
+#include <assert.h>
+#include <stdio.h>
+#include <oslib/osfile.h>
+#include <rufl.h>
+#include "pencil.h"
+
+
+static void test_pencil(void);
+
+
+int main(int argc, char *argv[])
+{
+ rufl_code code;
+
+ code = rufl_init();
+ if (code != rufl_OK) {
+ printf("rufl_init failed: %i\n", code);
+ return 1;
+ }
+
+ test_pencil();
+
+ rufl_quit();
+
+ return 0;
+}
+
+
+void test_pencil(void)
+{
+ struct pencil_diagram *diagram;
+ pencil_code code;
+ int path[] = {2, 100, 40, 8, 100, 400, 8, 300, 300, 0};
+ char utf8_test[] = "Hello, world! ὕαλον "
+ "Uherské Hradiště. 𐀀";
+ char *drawfile_buffer;
+ size_t drawfile_size;
+ os_error *error;
+
+ diagram = pencil_create();
+ if (!diagram) {
+ printf("pencil_create failed\n");
+ return;
+ }
+
+ code = pencil_text(diagram,
+ 100, 40,
+ "Homerton", rufl_REGULAR,
+ 320,
+ "Hello, world!", 13,
+ 0x000000);
+ if (code != pencil_OK) {
+ printf("pencil_text failed: %i\n", code);
+ return;
+ }
+
+ code = pencil_path(diagram,
+ path, sizeof path / sizeof path[0],
+ 0x00ff00, 0x0000ff,
+ 5, pencil_JOIN_ROUND,
+ pencil_CAP_BUTT, pencil_CAP_TRIANGLE,
+ 15, 20,
+ false, pencil_SOLID);
+ if (code != pencil_OK) {
+ printf("pencil_path failed: %i\n", code);
+ return;
+ }
+
+ code = pencil_text(diagram,
+ 100, 400,
+ "NewHall", rufl_REGULAR,
+ 320,
+ utf8_test, sizeof utf8_test,
+ 0xff0000);
+ if (code != pencil_OK) {
+ printf("pencil_text failed: %i\n", code);
+ return;
+ }
+
+ pencil_dump(diagram);
+
+ code = pencil_save_drawfile(diagram, "Pencil-Test",
+ &drawfile_buffer, &drawfile_size);
+ if (code != pencil_OK) {
+ printf("pencil_save_drawfile failed: %i\n", code);
+ return;
+ }
+ assert(drawfile_buffer);
+
+ error = xosfile_save_stamped("DrawFile", osfile_TYPE_DRAW,
+ drawfile_buffer, drawfile_buffer + drawfile_size);
+ if (error) {
+ printf("xosfile_save_stamped failed: 0x%x: %s\n",
+ error->errnum, error->errmess);
+ return;
+ }
+}