From dd153de114bbfa190ff615395de108b15e70f3d2 Mon Sep 17 00:00:00 2001
From: Pascal Terjan <pterjan@linuxfr.org>
Date: Thu, 23 Jul 2009 22:55:40 +0000
Subject: [PATCH]  * Add some simple bench (part 2, add the interesting file)

---
 tests/bench.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 tests/bench.c

diff --git a/tests/bench.c b/tests/bench.c
new file mode 100644
index 0000000..9340589
--- /dev/null
+++ b/tests/bench.c
@@ -0,0 +1,56 @@
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include "caca.h"
+
+
+#define TIME(desc,code) \
+{\
+    time_t start, end;\
+    start = time(NULL);\
+    code ;\
+    end = time(NULL);\
+    printf("%-25s:%4ld\n", desc, end-start);\
+}
+
+static void blit(int mask, int clear)
+{
+    caca_canvas_t *cv, *cv2;
+    int i;
+    cv = caca_create_canvas(40, 40);
+    cv2 = caca_create_canvas(16, 16);
+    caca_fill_box(cv2, 0, 0, 16, 16, 'x');
+    for (i=0; i<1000000; i++) {
+      if(clear)
+	      caca_clear_canvas(cv);
+      caca_blit(cv, 1, 1, cv2, mask?cv2:NULL);
+    }
+    caca_free_canvas(cv);
+    caca_free_canvas(cv2);
+}
+
+static void putchars(void)
+{
+    caca_canvas_t *cv;
+    int i;
+    cv = caca_create_canvas(40, 40);
+    for (i=0; i<50000000; i++) {
+      caca_put_char(cv, 1, 1, 'x');
+      caca_put_char(cv, 1, 1, 'o');
+    }
+    caca_free_canvas(cv);
+}
+
+int main(int argc, char *argv[])
+{
+    TIME("blit no mask, no clear",blit(0, 0));
+    TIME("blit no mask, clear",blit(0, 1));
+    TIME("blit mask, no clear",blit(1, 0));
+    TIME("blit mask, clear",blit(1, 1));
+    TIME("putchars",putchars());
+    return 0;
+}
+